Introspect and analyze FastAPI applications through natural language.
FastAPI MCP Server
A Model Context Protocol (MCP) server that provides comprehensive tools for introspecting and working with FastAPI applications.
Features
๐ง Tools
- load_fastapi_app - Load a FastAPI application from a module path
- list_routes - List all routes with optional filtering
- get_route_details - Get comprehensive details about a specific route
- get_openapi_schema - Extract the OpenAPI schema
- list_models - List all Pydantic models used in the app
- get_model_schema - Get detailed schema for a specific model
- search_routes - Search routes by query and criteria
- analyze_dependencies - Analyze dependency injection usage
- get_route_source - View the source code of route handlers
Installation
pip install -e .
Usage
With Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"fastapi": {
"command": "python",
"args": [
"-m",
"fastapi_mcp_server.server"
],
"cwd": "/path/to/your/fastapi/project"
}
}
}
Standalone
# From your FastAPI project directory
python -m fastapi_mcp_server.server
Example Usage
1. Load Your FastAPI App
Tool: load_fastapi_app
Arguments: {"app_path": "main:app"}
2. List All Routes
Tool: list_routes
Arguments: {}
Or with filters:
Tool: list_routes
Arguments: {
"method_filter": "GET",
"tag_filter": "users"
}
3. Get Route Details
Tool: get_route_details
Arguments: {
"path": "/users/{user_id}",
"method": "GET"
}
4. Search for Routes
Tool: search_routes
Arguments: {
"query": "authentication",
"has_auth": true
}
5. View Route Source Code
Tool: get_route_source
Arguments: {
"path": "/users",
"method": "POST"
}
6. List All Models
Tool: list_models
Arguments: {}
7. Get Model Schema
Tool: get_model_schema
Arguments: {"model_name": "User"}
8. Get OpenAPI Schema
Tool: get_openapi_schema
Arguments: {}
Or for specific paths:
Tool: get_openapi_schema
Arguments: {
"include_only": ["/users", "/users/{user_id}"]
}
9. Analyze Dependencies
Tool: analyze_dependencies
Arguments: {}
Example FastAPI App
See example_app.py for a sample FastAPI application to test with.
Use Cases
๐ **API Discovery**
- Quickly understand what endpoints exist
- Find routes by functionality or path
- Explore API structure
๐ **Documentation Generation**
- Extract OpenAPI schemas
- Get detailed parameter information
- View model schemas with examples
๐ **Debugging**
- Inspect route configurations
- View dependency injection hierarchy
- Check parameter validations
๐จ **Development**
- Generate client code from schemas
- Understand existing APIs before modification
- Find all routes using specific models
๐งช **Testing**
- List all endpoints for test coverage
- Get parameter requirements for test cases
- Validate response models
Requirements
- Python 3.10+
- FastAPI 0.100.0+
- MCP 1.0.0+
- Pydantic 2.0.0+
Contributing
Contributions are welcome! This tool helps developers work more efficiently with FastAPI applications.
License
MIT License - feel free to use in your projects!
Author
Created as part of the FastAPI ecosystem to improve developer experience with AI-assisted development.
Tools (9)
load_fastapi_appLoad a FastAPI application from a module pathlist_routesList all routes with optional filteringget_route_detailsGet comprehensive details about a specific routeget_openapi_schemaExtract the OpenAPI schemalist_modelsList all Pydantic models used in the appget_model_schemaGet detailed schema for a specific modelsearch_routesSearch routes by query and criteriaanalyze_dependenciesAnalyze dependency injection usageget_route_sourceView the source code of route handlersConfiguration
{"mcpServers": {"fastapi": {"command": "python", "args": ["-m", "fastapi_mcp_server.server"], "cwd": "/path/to/your/fastapi/project"}}}