机器控制协议服务器

一个基于Django的机器控制协议(MCP)服务器,用于实验OpenAI集成,提供JSON-RPC风格的API端点,支持前端开发与后端交互。

  • by mehran-shabani
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 mehran-shabani/Mcp-server

使用说明

MCP 服务器

这个仓库包含一个最小化的Django项目,该项目提供了机器控制协议(MCP)风格的端点,用于实验与OpenAI的集成。项目使用内存存储来模拟数据库记录,并通过环境驱动的配置将提示转发到OpenAI响应API。

开始入门

  1. 安装Python依赖项:

    pip install -r requirements.txt
    
  2. 配置所需的环境变量(见下文)。

  3. 应用迁移并运行测试套件以确认安装:

    python manage.py migrate
    python manage.py test
    
  4. 在不同的终端中安装前端依赖项并启动开发服务器:

    # Terminal 1 - Django API
    python manage.py runserver
    
    # Terminal 2 - React development server
    cd frontend
    npm install
    npm run dev
    

    Vite 开发服务器会代理以以下内容开头的 API 请求 /mcp/ 连接到运行在8000端口上的Django后端,因此无需额外的 需要配置CORS。请更新 frontend/.env.development 如果你的后端运行在不同的主机或端口上。

  5. 参观 http://127.0.0.1:5173/ 在开发过程中使用MCP客户端接口。

    MCP端点仍然可用,位于 http://127.0.0.1:8000/mcp/ 并且,如果您需要,它也接受JSON-RPC风格的POST请求 直接与之互动(例如通过 curl 或者邮递员(Postman)。

环境变量

该项目读取以下环境变量: mcp_server/settings.py:

变量 描述 默认值
OPENAI_API_KEY 用于与OpenAI进行身份验证的API密钥。 空字符串(直播请求时必需)
OPENAI_BASE_URL OpenAI API的基地址。通过兼容网关路由时可覆盖该地址。 https://api.openai.com/v1
OPENAI_MODEL 传递给响应API的模型标识符。 gpt-4o-mini

至少您必须提供 OPENAI_API_KEY 生成真实的完成结果。通过模拟客户端,测试可以在不连接网络的情况下运行。

虚假数据模型

该 interactions 应用(或APP)播下了一小撮(种子/想法) InteractionRecord 模拟数据库支持资源的条目。MCP视图提供了操作来列出可用记录、获取单个记录,并使用提供的提示或记录的默认提示生成OpenAI支持的响应。

前端配置

前端从(某处)读取运行时配置 .env 使用(该工具/方法)处理文件 VITE_ 前缀。提供两个预设:

  • frontend/.env.development 将API基础URL设为默认值 /mcp/ 以及通过代理 http://localhost:8000。
  • frontend/.env.production 将API基础URL设置为默认值 /mcp/ 当React包由Django提供服务时。

以(权力)否决 VITE_API_BASE_URL 在这些文件中(或创建 .env.local) 指向另一个MCP主机。

为生产构建(或:准备生产环境)

创建一个优化后的React构建版本,并将其复制到Django的静态目录中:

cd frontend
npm run build:django

编译后的资源存储在 mcp_server/static/frontend/Django 会自动从根目录提供打包后的界面 URL(统一资源定位符)/当构建已存在时。如果您更倾向于单独部署前端,请运行 npm run build 并托管以下内容: frontend/dist 在你选择的静态托管服务提供商上。

运行测试

运行Django测试运行器:

python manage.py test

单元测试对MCP端点进行了验证,并确保通过依赖注入和模拟,OpenAI客户端的调用能够正确连接。