moawizbinyamin/Fastapi-mcp-server-
If you are the rightful owner of Fastapi-mcp-server- and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The FastAPI MCP Server is a comprehensive application that integrates Model Context Protocol (MCP) server functionality, offering a suite of tools for various operations.
FastAPI MCP Server
A comprehensive FastAPI application with Model Context Protocol (MCP) server functionality, providing 21+ useful tools for mathematical operations, string manipulation, file handling, utilities, and web requests.
๐ฅ Demo Video
๐บ Watch the Demo
Direct Video Link: FastAPI MCP Server Demo Video
Click the link above to watch the demonstration video showing all 21+ tools in action!
๐ฌ Video Preview
The demo showcases:
- โ Mathematical Operations - Addition, subtraction, multiplication, division, power, square root
- โ String Manipulation - Uppercase, lowercase, reverse, length operations
- โ File Operations - Reading, writing, and directory listing
- โ Utility Functions - Time, random numbers, UUID generation, hashing
- โ Web Utilities - URL validation and HTTP requests
- โ MCP Protocol - WebSocket communication and tool calling
๐ Download Instructions:
- Click the video link above to view in GitHub
- Right-click on the video โ "Save video as" to download
- Play locally for the best viewing experience
๐ Alternative Hosting Options:
- YouTube - Best for public demos with embed preview
- Google Drive - Easy sharing and preview
- GitHub Releases - For downloadable files
- Vimeo - Professional video hosting
Features
๐ข Mathematical Operations
- add - Add two numbers together
- subtract - Subtract second number from first number
- multiply - Multiply two numbers
- divide - Divide first number by second number (with zero-division protection)
- power - Raise first number to the power of second number
- sqrt - Calculate square root of a number
๐ String Operations
- echo - Echo back the input text
- uppercase - Convert text to uppercase
- lowercase - Convert text to lowercase
- reverse_string - Reverse a string
- string_length - Get the length of a string
๐ File Operations
- read_file - Read contents of a file
- write_file - Write content to a file
- list_directory - List files and directories in a path
๐ ๏ธ Utility Functions
- get_time - Get current server time
- random_number - Generate a random number between min and max
- generate_uuid - Generate a random UUID
- hash_md5 - Generate MD5 hash of input text
- hash_sha256 - Generate SHA256 hash of input text
๐ Web Utilities
- validate_url - Validate if a string is a valid URL
- make_request - Make an HTTP request to a URL
Installation
- Clone the repository:
git clone https://github.com/moawizbinyamin/Fastapi-mcp-server-.git
cd Fastapi-mcp-server-
- Create a virtual environment:
python -m venv venv
- Activate the virtual environment:
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
Usage
Running the Server
python main.py
The server will start on http://localhost:8000
Available Endpoints
- GET / - Root endpoint with server info
- GET /health - Health check endpoint
- GET /tools - List all available tools
- POST /tools/call - Call tools via HTTP
- WebSocket /mcp - MCP protocol endpoint
- GET /docs - FastAPI automatic documentation
Testing Tools via HTTP
List all tools:
curl http://localhost:8000/tools
Call a tool:
curl -X POST http://localhost:8000/tools/call \
-H "Content-Type: application/json" \
-d '{"name": "add", "arguments": {"a": 5, "b": 3}}'
Example: Mathematical operations on 2 and 4:
# Addition: 2 + 4 = 6
curl -X POST http://localhost:8000/tools/call \
-H "Content-Type: application/json" \
-d '{"name": "add", "arguments": {"a": 2, "b": 4}}'
# Subtraction: 2 - 4 = -2
curl -X POST http://localhost:8000/tools/call \
-H "Content-Type: application/json" \
-d '{"name": "subtract", "arguments": {"a": 2, "b": 4}}'
# Multiplication: 2 ร 4 = 8
curl -X POST http://localhost:8000/tools/call \
-H "Content-Type: application/json" \
-d '{"name": "multiply", "arguments": {"a": 2, "b": 4}}'
# Division: 2 รท 4 = 0.5
curl -X POST http://localhost:8000/tools/call \
-H "Content-Type: application/json" \
-d '{"name": "divide", "arguments": {"a": 2, "b": 4}}'
# Power: 2^4 = 16
curl -X POST http://localhost:8000/tools/call \
-H "Content-Type: application/json" \
-d '{"name": "power", "arguments": {"base": 2, "exponent": 4}}'
MCP Protocol Support
This server implements the Model Context Protocol (MCP) specification, allowing it to be used with MCP-compatible clients. The WebSocket endpoint /mcp
handles MCP protocol communication.
MCP Configuration
For use with MCP clients, configure your MCP client with:
{
"mcpServers": {
"fastapi-mcp-server": {
"command": "python",
"args": ["main.py"],
"cwd": "/path/to/Fastapi-mcp-server-",
"env": {
"PYTHONPATH": "/path/to/Fastapi-mcp-server-"
}
}
}
}
Dependencies
- FastAPI - Modern, fast web framework for building APIs
- Uvicorn - ASGI server implementation
- Pydantic - Data validation using Python type annotations
- httpx - HTTP client for making web requests
- websockets - WebSocket implementation
Error Handling
All tools include comprehensive error handling:
- Division by zero protection
- File not found handling
- Invalid input validation
- Network request error handling
Development
Project Structure
Fastapi-mcp-server-/
โโโ main.py # Main FastAPI application
โโโ requirements.txt # Python dependencies
โโโ README.md # This file
โโโ .gitignore # Git ignore rules
โโโ start_server.bat # Windows startup script
โโโ start_server.sh # Linux/Mac startup script
Adding New Tools
To add a new tool:
- Add the tool definition to the
tools
dictionary in theMCPServer.__init__()
method - Add the tool implementation to the
call_tool()
method - Test the tool via the HTTP endpoint
License
This project is open source and available under the .
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
For support, please open an issue on the GitHub repository.