MCP FastAPI Server
by karthikv2k
A FastAPI-based async API server that communicates with Model Context Protocol (MCP) servers. It provides endpoints to list available MCP servers and tools, and to invoke tools on these servers.
View on GitHub
Last updated: N/A
MCP FastAPI Server
A FastAPI-based async API server that communicates with Model Context Protocol (MCP) servers.
Features
- List available MCP servers
- List tools available from MCP servers
- Invoke tools on MCP servers
API Endpoints
POST /api/list-mcp-servers
: List all available MCP serversPOST /api/list-tools
: List all tools available from an MCP serverPOST /api/invoke-tool
: Invoke a tool on an MCP server
Prerequisites
- Python 3.8 or higher
- An accessible MCP server (local or remote)
Installation
-
Clone this repository:
git clone <repository-url> cd mcp-fastapi-server
-
Create a virtual environment:
python -m venv venv source venv/bin/activate # For Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Create a
.env
file from the example:cp .env.example .env
Edit the
.env
file to configure your MCP server URL and other settings.
Running the Server
Start the server with:
uvicorn app.main:app --reload
This will start the server on http://localhost:8000
.
API Usage Examples
List MCP Servers
curl -X POST http://localhost:8000/api/list-mcp-servers -H "Content-Type: application/json" -d '{}'
List Tools from an MCP Server
curl -X POST http://localhost:8000/api/list-tools -H "Content-Type: application/json" -d '{"server_url": "http://localhost:5000"}'
Invoke a Tool
curl -X POST http://localhost:8000/api/invoke-tool -H "Content-Type: application/json" -d '{
"server_url": "http://localhost:5000",
"tool_name": "example_tool",
"params": {
"parameter1": "value1",
"parameter2": "value2"
}
}'
Documentation
Once the server is running, you can access the interactive API documentation at:
- Swagger UI:
http://localhost:8000/docs
- ReDoc:
http://localhost:8000/redoc
License
MIT # chat-mcp