FastAPI项目生成器

一个用于创建标准化FastAPI项目的MCP服务器,提供项目结构生成、Docker配置和CRUD操作自动生成功能。

  • by EmanHamdyMohamed
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 EmanHamdyMohamed/fastapi-mcp-server

使用说明

FastAPI MCP 服务器

一个模型上下文协议(MCP)服务器,提供工具用于创建具有标准项目结构的FastAPI应用程序。

特点/特性

  • 创建FastAPI项目生成具有良好组织结构的FastAPI新项目
  • Docker 配置生成用于容器化的Docker和Docker Compose文件
  • CRUD 生成为任何模型自动生成完整的CRUD操作
  • 标准结构包括路由器、模型、模式、服务、中间件等
  • 即开即用生成的项目包含了所有必要的依赖项和配置

安装

这个项目使用 uv 用于依赖管理。请确保您已 uv 已安装:

curl -LsSf https://astral.sh/uv/install.sh | sh

然后安装项目依赖项:

uv sync

本地MCP服务器设置

在本地设置MCP服务器

  1. 克隆仓库:

    git clone <repository-url>
    cd fastapi-mcp-server
    
  2. 安装依赖项:

    uv sync
    
  3. 测试MCP服务器:

    uv run python -m fastapi_mcp.server
    

与MCP客户端一起使用

Claude 桌面集成

要在Claude Desktop中使用此MCP服务器,请在您的Claude Desktop配置中添加以下内容:

macOS(苹果电脑操作系统): ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "fastapi-mcp-server": {
      "command": "uv",
      "args": ["run", "python", "-m", "fastapi_mcp.server"],
      "cwd": "/path/to/fastapi-mcp-server"
    }
  }
}

光标集成

要在Cursor中使用此MCP服务器,您需要在Cursor的设置中进行配置:

  1. 打开光标设置:

    • 按压 Cmd/Ctrl + , 打开设置
    • 进入“功能”→“模型上下文协议”
  2. 添加MCP服务器配置:

    {
      "mcpServers": {
        "fastapi-mcp-server": {
          "command": "uv",
          "args": ["run", "python", "-m", "fastapi_mcp.server"],
          "cwd": "/path/to/fastapi-mcp-server"
        }
      }
    }
    
  3. 备选方案:使用 Cursor 的 MCP 配置文件: 创建或编辑 ~/.cursor/mcp_config.json:

    {
      "mcpServers": {
        "fastapi-mcp-server": {
          "command": "uv",
          "args": ["run", "python", "-m", "fastapi_mcp.server"],
          "cwd": "/path/to/fastapi-mcp-server"
        }
      }
    }
    
  4. 重启光标 添加配置后。

使用方法

运行MCP服务器

uv run python -m fastapi_mcp.server

可用工具

创建FastAPI项目

创建一个具有以下结构的新 FastAPI 项目:

project_name/
├── app/
│   ├── __init__.py
│   ├── main.py              # Main FastAPI application
│   ├── routers/             # API route handlers
│   ├── models/              # Database models
│   ├── schemas/             # Pydantic schemas
│   ├── services/            # Business logic
│   ├── middleware/          # Custom middleware
│   ├── utils/               # Utility functions
│   └── core/                # Core configuration
├── tests/                   # Test files
├── requirements.txt         # Python dependencies
├── .env.example            # Environment variables template
└── README.md               # Project documentation

参数:

  • project_name (字符串,必填):要创建的 FastAPI 项目名称

示例用法:

{
  "name": "create_fastapi_project",
  "arguments": {
    "project_name": "my-awesome-api"
  }
}

生成Docker配置

为现有的FastAPI项目生成Docker配置文件。

参数:

  • project_path (字符串,必填):FastAPI 项目目录的路径
  • python_version (字符串,可选):要使用的 Python 版本(默认:“3.12”)
  • port (整数,可选):应用程序暴露的端口(默认:8000)

生成的文件:

  • Dockerfile - 多阶段Docker构建配置
  • docker-compose.yml - Docker Compose 配置

示例用法:

{
  "name": "generate_docker_config",
  "arguments": {
    "project_path": "./my-awesome-api",
    "python_version": "3.12",
    "port": 8000,
  }
}

生成CRUD操作

为给定模型生成完整的CRUD操作,包括模式、服务和API端点。

参数:

  • project_path (字符串,必填):FastAPI 项目目录的路径
  • model_name (字符串,必填):模型的名称(例如,'用户','产品')
  • fields (数组,必需): 模型的字段列表

字段结构:

{
  "name": "field_name",
  "type": "str",
  "required": true,
  "description": "Field description"
}

生成的文件:

  • app/schemas/{model}.py - Pydantic 模式(创建、更新、响应)
  • app/services/{model}_service.py - 具有CRUD方法的服务层
  • app/routers/{model}.py - 带有REST端点的FastAPI路由器

生成的端点:

  • POST /{model}s/ - 创建新记录
  • GET /{model}s/ - 列出分页记录
  • GET /{model}s/{id} - 通过ID获取记录
  • PUT /{model}s/{id} - 更新记录
  • DELETE /{model}s/{id} - 删除记录

示例用法:

{
  "name": "generate_crud_operations",
  "arguments": {
    "project_path": "./my-awesome-api",
    "model_name": "User",
    "fields": [
      {
        "name": "email",
        "type": "str",
        "required": true,
        "description": "User email address"
      },
      {
        "name": "name",
        "type": "str",
        "required": true,
        "description": "User full name"
      },
      {
        "name": "age",
        "type": "int",
        "required": false,
        "description": "User age"
      }
    ],
  }
}

生成的项目特性

生成的FastAPI项目包括:

  • CORS 中间件配置为开发环境,采用宽松设置
  • 健康检查端点: /health 监控端点
  • 根端点欢迎信息于 /
  • 依赖项FastAPI、Uvicorn、Pydantic 和 Pydantic 设置
  • 环境配置: .env.example 环境变量文件
  • 文档包含设置和使用说明的README文件

发展

项目结构

src/
└── fastapi_mcp/
    ├── __init__.py
    └── server.py           # Main MCP server implementation

添加新工具

在MCP服务器上添加新工具:

  1. 在(相应位置)添加一个新的工具定义 handle_list_tools() 函数
  2. 在相应位置添加对应的处理程序 call_tool() 函数
  3. 将工具逻辑实现为一个独立的异步函数

要求

  • Python >= 3.12(Python 3.12或更高版本)
  • uv(用于依赖管理)

依赖项

  • mcp>=0.1.0模型上下文协议服务器实现
  • pydantic>=2.12.0数据验证与设置管理
  • pydantic-settings>=2.11.0Pydantic 的设置管理

许可证

这个项目是开源的,并且遵循MIT许可协议。