Task Manager MCP Server
Exposes a FastAPI task management REST API as MCP tools, enabling an LLM client to list, create, get, complete, and delete tasks via natural language.
README
MCP + FastAPI demo
Small example showing how a normal FastAPI REST API becomes an MCP server that an LLM client (Claude Desktop, Claude Code, etc.) can call as tools.
What's here
main.py— a tiny "Tasks" REST API (/tasks,/tasks/{id}, ...) built with plain FastAPI, plus 3 lines at the bottom that wrap it withfastapi-mcp.fastapi-mcpintrospects your routes (via theiroperation_id) and auto-generates an MCP tool for each one — no separate tool definitions to hand-write. It mounts an MCP endpoint at/mcpalongside your normal REST routes.
How MCP fits in
MCP (Model Context Protocol) is a standard way for an LLM client to
discover and call "tools" exposed by a server. Normally you'd hand-write
a tool schema for each capability. fastapi-mcp skips that by reusing
the OpenAPI schema FastAPI already generates from your Pydantic models
and route signatures — so each REST endpoint becomes both a normal HTTP
route and an MCP tool, for free.
Run it
cd ~/mcp-fastapi-demo
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --reload
- REST API + docs: http://127.0.0.1:8000/docs
- MCP endpoint: http://127.0.0.1:8000/mcp
Try it as a normal REST API first
curl -X POST http://127.0.0.1:8000/tasks -H 'Content-Type: application/json' -d '{"title": "learn MCP"}'
curl http://127.0.0.1:8000/tasks
Connect an MCP client
Option A: MCP Inspector (fastest way to poke at it)
npx @modelcontextprotocol/inspector
Point it at http://127.0.0.1:8000/mcp as an SSE/HTTP server and you'll
see list_tasks, create_task, get_task, complete_task,
delete_task show up as callable tools — one per FastAPI route.
Option B: Claude Desktop
Add to your Claude Desktop MCP config (claude_desktop_config.json):
{
"mcpServers": {
"tasks": {
"url": "http://127.0.0.1:8000/mcp"
}
}
}
Restart Claude Desktop, and you should be able to ask it to list/create tasks — it'll call your FastAPI endpoints under the hood.
Key takeaway
operation_id in each @app.get/post/... decorator becomes the MCP
tool name, and the summary becomes its description. Add a new FastAPI
route with an operation_id and it automatically becomes a new MCP tool
— that's the whole trick.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.