Backend Architect MCP Server
# Backend Architect MCP Server
An expert MCP toolchain designed to act as a **Backend Architect** for AI agents. This server enforces a strict "Atomic Development" workflow for building Python FastAPI + Supabase backends.
## 🚀 Overview
The Backend Architect server guides an agent through a **Plan -> Prompt -> Write** loop, ensuring that database models, API routes, and tests are built in the correct dependency order.
### Key Features
- **Atomic Development**: Focuses on one component at a time.
- **Workflow Enforcement**: Models → Routes → Tests (respects model dependencies).
- **Auto-Imports**: Automatically updates `__init__.py` files for models and routes.
- **State Persistence**: Maintains `.mcp_state.json` to track building progress.
- **Contextual Prompts**: Generates specialized system prompts for each component.
## 🛠️ Tech Stack
- **Python 3.12**
- **MCP SDK** (FastMCP)
- **UV** (Dependency Manager)
- **Pydantic** (State Validation)
## 📦 Installation
Ensure you have `uv` installed. Then, clone the repository and install dependencies:
```powershell
# Clone the repository
cd mcp_fastapi
# Install dependencies and run the server
uv run server.py
```
## 🛠️ Tools Reference
### 1. Initialization
- `initialize_project(root_path: str = ".")`: Scaffolds the FastAPI project structure and `pyproject.toml`. Defaults to the current working directory.
### 2. Planning
- `save_roles_plan(roles: list)`: Define user roles and permissions.
- `save_database_plan(models: list)`: Define SQLModel schemas and relationships.
- `save_route_plan(routes: list)`: Define API endpoints and methods.
- `save_test_plan(tests: list)`: Define simulation scenarios.
### 3. Execution
- `get_next_pending_task()`: The "Traffic Cop" that tells you exactly what to build next.
- `get_file_instruction(task_type: str, task_name: str)`: Returns a strict system prompt for the AI to follow.
- `write_component_file(type: str, name: str, content: str)`: Writes the code and marks the task as "done".
## 🔄 The Loop
1. **Initialize**: Set up your project root.
2. **Plan**: Feed the architect your schemas and endpoints.
3. **Draft**: Ask `get_next_pending_task()` for the current objective.
4. **Learn**: Get instructions via `get_file_instruction()`.
5. **Write**: Submit code via `write_component_file()`.
6. **Repeat**: Until the entire backend is architected.
## ⚙️ MCP Configuration
Add this to your MCP settings file (e.g., `mcp_config.json` or your IDE's MCP settings):
```json
{
"mcpServers": {
"backend-architect": {
"command": "uv",
"args": [
"run",
"--project",
"/path/to/server/directory",
"python",
"server.py"
]
}
}
}
```
> [!TIP]
> Use the absolute path to the directory where you cloned this repository for the `--project` argument. This ensures the server can find its dependencies regardless of where your AI agent is currently working.
---
*Built with ❤️ for the AI-First Developer.*
TDQS
Scored across 9 tools
Each tool has a clearly distinct purpose with no overlap: get_file_instruction provides a prompt, get_next_pending_task fetches tasks, initialize_project sets up structure, save_* tools store different planning aspects, and write_component_file writes files. The descriptions clearly differentiate their functions, preventing agent misselection.
The naming follows a consistent verb_noun pattern with minor deviations: most tools use verb_noun (e.g., save_database_plan, initialize_project), but get_file_instruction and get_next_pending_task use verb_adjective_noun, and write_component_file uses verb_noun_noun. This slight inconsistency is readable but not perfectly uniform.
With 9 tools, the count is well-scoped for backend project management, covering initialization, planning, task management, and file writing. Each tool earns its place by addressing specific aspects of the workflow, avoiding bloat or thin coverage.
The tool set covers core backend development workflows: project setup, planning (database, roles, routes, tests, context), task management, and file writing. Minor gaps exist, such as no tools for updating or deleting plans, but agents can work around this by re-saving or using existing tools effectively.