Skip to main content
Glama
moawizbinyamin

FastAPI MCP Server

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:

Related MCP server: Simple MCP Server

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 MIT License.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

For support, please open an issue on the GitHub repository.

F
license - not found
-
quality - not tested
D
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
โ€“Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/moawizbinyamin/Fastapi-mcp-server-'

If you have feedback or need assistance with the MCP directory API, please join our Discord server