Skip to main content
Glama
README.md
# FastAPI MCP Server

A Model Context Protocol (MCP) server that provides comprehensive tools for introspecting and working with FastAPI applications.

## Features

### ๐Ÿ”ง Tools

1. **load_fastapi_app** - Load a FastAPI application from a module path
2. **list_routes** - List all routes with optional filtering
3. **get_route_details** - Get comprehensive details about a specific route
4. **get_openapi_schema** - Extract the OpenAPI schema
5. **list_models** - List all Pydantic models used in the app
6. **get_model_schema** - Get detailed schema for a specific model
7. **search_routes** - Search routes by query and criteria
8. **analyze_dependencies** - Analyze dependency injection usage
9. **get_route_source** - View the source code of route handlers

## Installation

```bash
pip install -e .
```

## Usage

### With Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "fastapi": {
      "command": "python",
      "args": [
        "-m",
        "fastapi_mcp_server.server"
      ],
      "cwd": "/path/to/your/fastapi/project"
    }
  }
}
```

### Standalone

```bash
# 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.