mcpField
M
MCP FastAPI Server

MCP FastAPI Server

github.com/karthikv2kFrameworks & SDKs4Updated 85w ago

About MCP FastAPI Server

MCP FastAPI Server is an asynchronous FastAPI service for interacting with MCP servers. It provides HTTP endpoints to enumerate servers and tools, then invoke a selected tool.

Key features

  1. 01List MCP servers
  2. 02List server tools
  3. 03Invoke MCP tools
  4. 04Interactive API documentation

Use cases

  1. 01Expose MCP operations through HTTP
  2. 02Inspect tools before invocation
  3. 03Call MCP tools from API clients

MCP support

It connects to accessible local or remote MCP servers. Its API lists servers and their tools and invokes tools on a selected server.

Details

From the project README

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 servers
  • POST /api/list-tools: List all tools available from an MCP server
  • POST /api/invoke-tool: Invoke a tool on an MCP server

Prerequisites

  • Python 3.8 or higher
  • An accessible MCP server (local or remote)

Installation

  1. Clone this repository:

    git clone <repository-url>
    cd mcp-fastapi-server
    
  2. Create a virtual environment:

    python -m venv venv
    source venv/bin/activate  # For Windows: venv\Scripts\activate
    
  3. Install dependencies:

    pip install -r requirements.txt
    
  4. 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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.