Fastapi-mcp-server-

moawizbinyamin/Fastapi-mcp-server-

3.2

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.

Tools
5
Resources
0
Prompts
0

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:

  1. Click the video link above to view in GitHub
  2. Right-click on the video โ†’ "Save video as" to download
  3. Play locally for the best viewing experience

๐Ÿ”— Alternative Hosting Options:

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

  1. Clone the repository:
git clone https://github.com/moawizbinyamin/Fastapi-mcp-server-.git
cd Fastapi-mcp-server-
  1. Create a virtual environment:
python -m venv venv
  1. Activate the virtual environment:
# Windows
venv\Scripts\activate

# Linux/Mac
source venv/bin/activate
  1. 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:

  1. Add the tool definition to the tools dictionary in the MCPServer.__init__() method
  2. Add the tool implementation to the call_tool() method
  3. 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.