Skip to main content

MCP server giving Claude Code IDE-level intelligence for FastAPI projects

Project description

fastapi-architect-mcp

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.

Tools

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

Installation

pip install fastapi-architect-mcp

Configuration

Option 1 — Global (available in all projects)

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "fastapi-architect": {
      "command": "fastapi-architect-mcp"
    }
  }
}

Option 2 — Per project (recommended for best results)

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.

Usage examples

Once connected, you can ask Claude Code things like:

  • "List all routes in this project"
  • "What are the dependencies of the get_users handler?"
  • "Find all references to get_db across the project"
  • "Rename get_db to get_session everywhere"
  • "Inspect the UserCreate model"
  • "Are there any routes missing a response_model?"
  • "Show me the full dependency graph for the users router"
  • "Are there any mismatches between my User ORM model and UserPublic schema?"

Supported patterns

Dependency injection

  • def handler(x=Depends(func)) — standard FastAPI
  • def handler(*, x=Depends(func)) — keyword-only args
  • @router.get("/", dependencies=[Depends(func)]) — decorator-level deps
  • SessionDep = Annotated[Session, Depends(get_db)] — Annotated aliases (modern FastAPI)

Models

  • BaseModel — Pydantic
  • SQLModel — SQLModel
  • BaseSettings — Pydantic settings
  • RootModel — Pydantic v2
  • Inherited models (e.g. class UserCreate(UserBase))

Validators

  • @validator — Pydantic v1
  • @field_validator — Pydantic v2

Known limitations

  • find_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.
  • Runtime dependencies (middleware, lifespan events, startup hooks) are not visible to static analysis and won't appear in dependency trees.
  • get_completions is most useful at attribute access positions (e.g. after a .). On empty lines it returns all Python builtins.

Requirements

  • Python 3.11+
  • Claude Code (VS Code extension or CLI)

Author

Abdessamad Touzani

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_architect_mcp-0.2.0.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastapi_architect_mcp-0.2.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_architect_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: fastapi_architect_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for fastapi_architect_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a637d03b6dcac6b64fbcd9012da48d922f7bc946f7cf8fd124cfc516b4e05d7d
MD5 f266e3bbf0edb3ba14e64d5d2571d813
BLAKE2b-256 86d6b1c1ba5b481502e922e2c4debc8679c3a6de8b96050e74ee6d7b0afcf16e

See more details on using hashes here.

File details

Details for the file fastapi_architect_mcp-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_architect_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f06d5914941cada49d597ec2e87fa402d6ffcf80a817ff2be2db549e019f074c
MD5 368903bbe8e92c18c8af92b5ca0bdeb4
BLAKE2b-256 d0be81f2f40689d1e8d674cb80c233b61c92e586da8ff0559a8a844229333141

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page