MCPilot
About
A FastAPI-based gateway for the Model Context Protocol (MCP) designed to unify and scale AI toolchains.
Details
- Author
- ferrary7
- Categories
- Developer Tools
Jump to
Setup
Install MCPilot in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/ferrary7/MCPilot
Follow the installation instructions in the repository README, then restart your MCP client.
A powerful, FastAPI-based gateway for the Model Context Protocol (MCP), designed to unify and scale your AI toolchain.
MCPilot is nowfully functionalwith the following working features:
- FastAPI Gateway Server- Running onhttp://localhost:8000/docs
- Admin Dashboard- Beautiful web UI athttp://localhost:8000
- REST API Endpoints- Full CRUD operations via /api/v1/
- API Wrapper System- Convert REST APIs to MCP tools (tested with JSONPlaceholder)
- Configuration Management- Environment-based settings
- Transport Framework- Ready for HTTP, WebSocket, SSE, stdio
- Modular Architecture- Clean separation of concerns
- Interactive Documentation- OpenAPI/Swagger UI at /docs
- MCP Server Federation- Basic framework ready, needs MCP client integration fixes
- WebSocket Real-time Communication- Framework ready
- Admin UI Management- Backend ready, frontend interactions needed
The API wrapper successfully converts REST APIs to MCP tools:
# Example: JSONPlaceholder API → MCP Tool result = await gateway.call_tool( "api:jsonplaceholder:get_user", {"user_id": "1"} ) # Returns: Full user data from REST API
- Federation of multiple MCP serversinto one unified endpoint
- REST API and function wrappingas virtual MCP-compliant tools
- Multiple transport support: HTTP/JSON-RPC, WebSocket, SSE, and stdio
- Centralized tools, prompts, and resourceswith full JSON-Schema validation
- Admin UIwith built-in auth, observability, and transport layers
src/mcpilot/ ├── main.py # FastAPI application entry point ├── config.py # Configuration management ├── gateway.py # Core MCP federation logic ├── api.py # REST API endpoints ├── admin.py # Admin management endpoints ├── transports.py # Transport layer implementations ├── api_wrapper.py # REST API to MCP tool wrapper ├── middleware.py # Request/response middleware └── server.py # Original MCP server implementation
- Python 3.10 or higher
- uv package manager (recommended) or pip
# Using uv (recommended) uv sync # Or using pip pip install -e .
# Run the FastAPI server uv run python -m mcpilot.main # Or using uvicorn directly uvicorn mcpilot.main:app --reload --host 0.0.0.0 --port 8000
Open your browser tohttp://localhost:8000to access the admin dashboard.
- OpenAPI/Swagger UI:http://localhost:8000/docs
- ReDoc:http://localhost:8000/redoc
MCPilot can be configured via environment variables or a.envfile:
# Server Configuration MCPILOT_HOST=0.0.0.0 MCPILOT_PORT=8000 MCPILOT_DEBUG=false # CORS Settings MCPILOT_CORS_ORIGINS=[""] # Logging MCPILOT_LOG_LEVEL=INFO
Configure MCP servers via the admin API or by setting up the configuration:
from mcpilot.config import MCPServerConfig server_config = MCPServerConfig( name="my-server", type="stdio", command="python", args=["-m", "my_mcp_server"], enabled=True )
from mcpilot.config import APIWrapperConfig api_config = APIWrapperConfig( name="my-api", base_url="https://api.example.com", auth_type="bearer", auth_config={"token": "your-token"}, endpoints=[ { "name": "get_user", "method": "GET", "path": "/users/{user_id}", "description": "Get user information", "path_params": [ {"name": "user_id", "type": "string", "required": True} ] } ] )
- GET /api/v1/tools- List all available tools
- POST /api/v1/tools/call- Call a tool
- GET /api/v1/prompts- List all available prompts
- POST /api/v1/prompts/get- Get a prompt
- GET /api/v1/resources- List all available resources
- POST /api/v1/resources/read- Read a resource
- GET /admin/servers- List MCP servers
- POST /admin/servers- Add new MCP server
- PUT /admin/servers/{name}- Update MCP server
- DELETE /admin/servers/{name}- Remove MCP server
- GET /admin/api-wrappers- List API wrappers
- POST /admin/api-wrappers- Add new API wrapper
- GET /health- Health check endpoint
- GET /api/v1/status- Gateway and server status
- GET /admin/metrics- System metrics
Connect to the WebSocket endpoint for real-time MCP communication:
const ws = new WebSocket('ws://localhost:8000/api/v1/ws'); // Send MCP JSON-RPC message ws.send(JSON.stringify({ "jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {} }));
# Install development dependencies uv sync --dev # Run with auto-reload uvicorn mcpilot.main:app --reload --host 0.0.0.0 --port 8000
# Run tests (when implemented) uv run pytest # Type checking uv run mypy src/mcpilot
This project is licensed under the MIT License.
Contributions are welcome! Please feel free to submit a Pull Request.
MCPilot also includes the original MCP server functionality for development and testing:
The server implements a simple note storage system with:
- Custom note:// URI scheme for accessing individual notes
- Each note resource has a name, description and text/plain mimetype
- summarize-notes: Creates summaries of all stored notes
- Optional "style" argument to control detail level (brief/detailed)
- Generates prompt combining all current notes with style preference
- add-note: Adds a new note to the server
- Takes "name" and "content" as required string arguments
- Updates server state and notifies clients of resource changes
[TODO: Add configuration details specific to your implementation]
On MacOS:~/Library/Application\ Support/Claude/claude_desktop_config.jsonOn Windows:%APPDATA%/Claude/claude_desktop_config.json
To prepare the package for distribution:
This will create source and wheel distributions in thedist/directory.
Note: You'll need to set PyPI credentials via environment variables or command flags:
- Token:--tokenorUV_PUBLISH_TOKEN
- Or username/password:--username/UV_PUBLISH_USERNAMEand--password/UV_PUBLISH_PASSWORD
Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using theMCP Inspector.
You can launch the MCP Inspector vianpmwith this command:
npx @modelcontextprotocol/inspector uv --directory C:\Users\ary7s\OneDrive\Desktop\MCPilot run mcpilot
Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.
This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.
Create crafted UI components inspired by the best 21st.dev design engineers.
Bring agent evaluations, observability, and synthetic test set generation directly into your IDE for free with Galileo's new MCP server
An MCP server to help AI assistants to answer questions and generate AccelByte Extend SDK code more effectively .
MCP server for AI Diagram Maker — generate beautiful software engineering diagrams directly inside Cursor, Claude Desktop, Claude Code, or any MCP-compatible AI agent
ALAPI MCP Tools,Call hundreds of API interfaces via MCP
AI-powered SVG animation generator that transforms static files into animated SVG components using the Allyson platform
MCP server that gives AI assistants on-demand access to 1,500+ amCharts docs, ~300 code examples, and 1000+ class API references.
APIMatic MCP Server is used to validate OpenAPI specifications using APIMatic. The server processes OpenAPI files and returns validation summaries by leveraging APIMatic’s API.
One shared context layer for AI agents and humans — live API specs, DB schemas, and versioned contracts across repos so every agent and teammate works from the same source of truth.
Build and deploy full-stack Next.js apps with 98 tools for React, AWS, and MongoDB
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





