loading…
Search for a command to run...
loading…
An MCP server that gives Claude Code IDE-level intelligence for FastAPI projects — semantic code navigation, safe renaming, route inspection, dependency trees,
An MCP server that gives Claude Code IDE-level intelligence for FastAPI projects — semantic code navigation, safe renaming, route inspection, dependency trees, and Pydantic model analysis. Instead of Claude reading files blindly, it calls structured tools backed by Jedi (Python language server) and Python's AST.
An MCP server that gives Claude Code IDE-level intelligence for FastAPI projects — semantic code navigation, safe renaming, route inspection, dependency trees, and Pydantic model analysis.
Instead of Claude reading files blindly, it calls structured tools backed by Jedi (Python language server) and Python's AST.
| Tool | Description |
|---|---|
find_references |
Find all usages of a symbol across the project |
rename_symbol |
Safely rename a symbol across all files |
go_to_definition |
Jump to where a symbol is defined |
get_completions |
Get completion suggestions at a cursor position |
list_routes |
List all FastAPI routes across the entire project |
get_dependencies |
Get the full Depends() injection tree for a handler |
build_dependency_graph |
Full graph: route → input models → dependencies → response model |
validate_response_models |
Detect routes missing a response_model declaration |
list_models |
List all Pydantic/SQLModel models in a file |
inspect_model |
Inspect a model's fields, types, defaults, and validators |
find_model_usages |
Find everywhere a model is used across the project |
detect_schema_orm_mismatches |
Detect field mismatches between ORM model and Pydantic schema |
pip install fastapi-architect-mcp
Add to ~/.claude/settings.json:
{
"mcpServers": {
"fastapi-architect": {
"command": "fastapi-architect-mcp"
}
}
}
Create .mcp.json at your project root:
{
"mcpServers": {
"fastapi-architect": {
"command": "/path/to/your/project/venv/bin/fastapi-architect-mcp"
}
}
}
Using your project's own venv gives Jedi access to all your project's dependencies, which enables full cross-file find_references and rename_symbol support.
Then restart Claude Code.
Once connected, you can ask Claude Code things like:
get_users handler?"get_db across the project"get_db to get_session everywhere"UserCreate model"User ORM model and UserPublic schema?"def handler(x=Depends(func)) — standard FastAPIdef handler(*, x=Depends(func)) — keyword-only args@router.get("/", dependencies=[Depends(func)]) — decorator-level depsSessionDep = Annotated[Session, Depends(get_db)] — Annotated aliases (modern FastAPI)BaseModel — PydanticSQLModel — SQLModelBaseSettings — Pydantic settingsRootModel — Pydantic v2class UserCreate(UserBase))@validator — Pydantic v1@field_validator — Pydantic v2find_references and rename_symbol work cross-file only when the MCP is configured to use the project's own venv (Option 2 above). With a global install, they only operate on the file where the symbol is defined.get_dependencies supports native FastAPI Depends() only. Other DI frameworks (Dishka, dependency-injector, etc.) are not supported.get_completions is most useful at attribute access positions (e.g. after a .). On empty lines it returns all Python builtins.Abdessamad Touzani
Выполни в терминале:
claude mcp add fastapi-architect-mcp -- npx