CookaReq MCP 服务端
使用说明(Markdown 格式)
- 项目简介
- CookaReq 是一个包含图形界面和后台 MCP 服务的桌面应用。其 MCP 服务采用 FastAPI 实现,默认在应用进程内以本地服务运行,监听本地地址 127.0.0.1、端口 59362,并支持通过令牌进行认证。该服务器端实现了 Resource(资源)托管、Tool(工具)注册/执行,以及 Prompt 模板的定义与渲染,面向 LLM 客户端提供可扩展的上下文服务。
- 主要功能点
- 托管和管理 Resources(数据资源),提供对需求、文档、以及相关数据的访问能力。
- 注册和执行 Tools(工具),允许 LLM 通过 MCP 调用外部功能。
- 定义和渲染 Prompt 模板,支持定制化的交互模式与上下文组合。
- 使用 JSON-RPC 规范与客户端进行请求/响应交互,支持统一的请求格式和响应结构。
- 运行模式灵活:可以在 CookaReq 应用内以“内嵌/在进程内运行”的方式提供 MCP 服务,必要时也可在独立进程中部署(通过常见的 FastAPI/uvicorn 启动方式)。
- 会话管理、能力声明、以及对鉴权、日志和追踪的支持,便于审计和扩展。
- 资源、工具、提示模板等的可扩展性,方便在多种 LLM 场景中使用。
- 安装与运行步骤
- 环境准备
- Python 3.8 及以上(本项目在较新版本上开发与测试过)。
- 需要的依赖在项目的 pyproject.toml / requirements/ 中声明,建议使用虚拟环境安装并安装开发依赖。
- 本地运行(默认在应用内集成的 MCP 提供方式)
- 直接启动 CookaReq GUI,MCP 服务会在启动时按配置在本进程内启动并监听本地端口 59362。
- 适合不希望额外部署服务的场景,MCP 客户端直接通过 127.0.0.1:59362 进行连接。
- 独立部署(如需要将 MCP 服务独立为单独进程)
- 使用常见的 FastAPI/uvicorn 部署方式启动 MCP 服务,例如将应用中的 MCP 子模块作为独立服务暴露出来。
- 监听地址通常设为 127.0.0.1,端口为 59362,若开启令牌认证,请配置相应的 token。
- 服务器配置(给 MCP 客户端的连接信息,JSON 格式,包含 server name、command、args 等)
- 说明:MCP 客户端通常通过给予 MCP 服务器的地址、端口、以及可选的鉴权信息进行连接。以下为示例配置,请按实际部署方式调整。注:若采用内嵌在 CookaReq 内的运行方式,可不需要单独的启动命令,但如果你要把 MCP 作为独立服务运行,以下信息可参考使用。
{ "server_name": "CookaReq-MCP", "command": "uvicorn", "args": [ "app.mcp.server:app", "--host", "127.0.0.1", "--port", "59362" ], "notes": "若在同一进程内运行(默认),客户端通常不需要显式启动命令;读取配置时请指向本地 127.0.0.1:59362 的端口。若开启令牌鉴权,请在 token 字段中提供对应的访问令牌。" }
- 基本使用方法
- 启动与连接
- 以内嵌方式运行时,直接启动 CookaReq GUI,MCP 服务随应用启动自動就绪。
- 如需独立部署,请按照上方配置启动 MCP 服务,并在客户端配置中指定服务器地址与端口。
- 使用要点
- 通过 MCP 客户端发送标准化的 JSON-RPC 请求,来读取 Resources、执行 Tools、获取 Prompts 等。
- 服务端负责对会话进行管理、能力声明,以及根据请求返回 JSON-RPC 响应或可观测的通知事件。
- 结合 LLM 客户端进行工具调用与上下文获取时,确保服务器端资源、工具和 Prompt 的模型上下文约束得到满足。
- 安全与运维
- 如启用令牌认证,请妥善保管 Token,并在客户端连接配置中提供。
- 日志与追踪信息可帮助排查请求路径、工具调用和提示渲染过程中的问题。
- 参考与扩展
- MCP 的服务器实现具备可扩展性,方便未来增加新的资源类型、工具适配器和提示模板渲染策略。
- 服务端与客户端之间通过统一的 JSON-RPC 交互,支持多传输通道(如 Stdio、SSE、WebSocket),以适配不同的部署场景。
- 备注
- 仓库中对 MCP 的配置、启动、鉴权、日志等细节在设置与配置模块有相应实现(参见 app/settings.py、app/mcp 相关模块)。
- 如需在生产环境独立部署,请参考相应的部署脚本与 FastAPI 运行方式,以及确保端口暴露策略与安全策略符合你的运营需求。