# fastapi_mcp **Repository Path**: HangbinZheng/fastapi_mcp ## Basic Information - **Project Name**: fastapi_mcp - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: build-fixes - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-23 - **Last Updated**: 2025-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

fastapi-to-mcp

FastAPI-MCP

A zero-configuration tool for automatically exposing FastAPI endpoints as Model Context Protocol (MCP) tools.

[![PyPI version](https://badge.fury.io/py/fastapi-mcp.svg)](https://pypi.org/project/fastapi-mcp/) [![Python Versions](https://img.shields.io/pypi/pyversions/fastapi-mcp.svg)](https://pypi.org/project/fastapi-mcp/) [![FastAPI](https://img.shields.io/badge/FastAPI-009485.svg?logo=fastapi&logoColor=white)](#) ![](https://badge.mcpx.dev?type=dev 'MCP Dev') [![CI](https://github.com/tadata-org/fastapi_mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/tadata-org/fastapi_mcp/actions/workflows/ci.yml) [![codecov](https://codecov.io/gh/tadata-org/fastapi_mcp/branch/main/graph/badge.svg)](https://codecov.io/gh/tadata-org/fastapi_mcp)

fastapi-mcp-usage

## Features - **Direct integration** - Mount an MCP server directly to your FastAPI app - **Zero configuration** required - just point it at your FastAPI app and it works - **Automatic discovery** of all FastAPI endpoints and conversion to MCP tools - **Preserving schemas** of your request models and response models - **Preserve documentation** of all your endpoints, just as it is in Swagger - **Extend** - Add custom MCP tools alongside the auto-generated ones ## Installation We recommend using [uv](https://docs.astral.sh/uv/), a fast Python package installer: ```bash uv add fastapi-mcp ``` Alternatively, you can install with pip: ```bash pip install fastapi-mcp ``` ## Basic Usage The simplest way to use FastAPI-MCP is to add an MCP server directly to your FastAPI application: ```python from fastapi import FastAPI from fastapi_mcp import add_mcp_server # Your FastAPI app app = FastAPI() # Mount the MCP server to your app add_mcp_server( app, # Your FastAPI app mount_path="/mcp", # Where to mount the MCP server name="My API MCP", # Name for the MCP server ) ``` That's it! Your auto-generated MCP server is now available at `https://app.base.url/mcp`. ## Advanced Usage FastAPI-MCP provides several ways to customize and control how your MCP server is created and configured. Here are some advanced usage patterns: ```python from fastapi import FastAPI from fastapi_mcp import add_mcp_server app = FastAPI() mcp_server = add_mcp_server( app, # Your FastAPI app mount_path="/mcp", # Where to mount the MCP server name="My API MCP", # Name for the MCP server describe_all_responses=True, # False by default. Include all possible response schemas in tool descriptions, instead of just the successful response. describe_full_response_schema=True # False by default. Include full JSON schema in tool descriptions, instead of just an LLM-friendly response example. ) # Optionally add custom tools in addition to existing APIs. @mcp_server.tool() async def get_server_time() -> str: """Get the current server time.""" from datetime import datetime return datetime.now().isoformat() ``` ## Examples See the [examples](examples) directory for complete examples. ## Connecting to the MCP Server using SSE Once your FastAPI app with MCP integration is running, you can connect to it with any MCP client supporting SSE, such as Cursor: 1. Run your application. 2. In Cursor -> Settings -> MCP, use the URL of your MCP server endpoint (e.g., `http://localhost:8000/mcp`) as sse. 3. Cursor will discover all available tools and resources automatically. ## Connecting to the MCP Server using [mcp-proxy stdio](https://github.com/sparfenyuk/mcp-proxy?tab=readme-ov-file#1-stdio-to-sse) If your MCP client does not support SSE, for example Claude Desktop: 1. Run your application. 2. Install [mcp-proxy](https://github.com/sparfenyuk/mcp-proxy?tab=readme-ov-file#installing-via-pypi), for example: `uv tool install mcp-proxy`. 3. Add in Claude Desktop MCP config file (`claude_desktop_config.json`): On Windows: ```json { "mcpServers": { "my-api-mcp-proxy": { "command": "mcp-proxy", "args": ["http://127.0.0.1:8000/mcp"] } } } ``` On MacOS: ```json { "mcpServers": { "my-api-mcp-proxy": { "command": "/Full/Path/To/Your/Executable/mcp-proxy", "args": ["http://127.0.0.1:8000/mcp"] } } } ``` Find the path to mcp-proxy by running in Terminal: `which mcp-proxy`. 4. Claude Desktop will discover all available tools and resources automatically ## Development and Contributing **Notice:** We are currently refactoring our MCP auto-generation system. To avoid potential conflicts, we kindly request that you delay submitting contributions until this notice is removed from the README. Thank you for your understanding and patience. Thank you for considering contributing to FastAPI-MCP open source projects! It's people like you that make it a reality for users in our community. Before you get started, please see [CONTRIBUTING.md](CONTRIBUTING.md). ## Community Join [MCParty Slack community](https://join.slack.com/t/themcparty/shared_invite/zt-30yxr1zdi-2FG~XjBA0xIgYSYuKe7~Xg) to connect with other MCP enthusiasts, ask questions, and share your experiences with FastAPI-MCP. ## Requirements - Python 3.10+ - uv ## License MIT License. Copyright (c) 2024 Tadata Inc. ## About Developed and maintained by [Tadata Inc.](https://github.com/tadata-org)