Prevision MCP Server
使用说明
- 项目简介
- 该仓库实现了一个完整的 MCP 服务器端框架,包含资源、工具、提示的注册与读取,以及通过 JSON-RPC 风格的接口与客户端交互的能力。还包含用于 RBAC、RAG 集成、多租户隔离、以及对外暴露的 MCP HTTP/SSE 传输层。
- 主要功能点
- MCP 核心能力:支持工具(Tools)、资源(Resources)、提示(Prompts)的注册、查询与执行,遵循 MCP 的请求/响应结构。
- JSON-RPC 风格的接口:/mcp(HTTP POST)实现 MCP 请求处理,/mcp/sse 提供 SSE 流式传输。
- 多传输与会话管理:内置 Lifespan 启动/关闭阶段,整合 Redis、Kong 网关等组件的入口。
- 资源与数据访问:odoo 与 rag 资源的暴露与读取,支持模式化的数据读取与缓存。
- 工具执行与 RBAC:工具调度器(Tool Registry/Dispatcher),结合 RBAC 引擎进行权限校验,并输出审计信息。
- 监控与可观测性:集成 Metrics 与 Audit 日志,支持无 Kafka 时的日志输出,以及与 Kafka 的可选集成。
- RBAC 与 RBAC 投影:包含完整的 RBAC 模型、评估器、加载器,以及缓存能力。
- RAG 集成:通过 Rag 客户端实现知识查询、文档上传/读取等能力。
- 安装步骤(简要)
- 克隆代码库到本地。
- 安装依赖并准备运行环境(Python 环境建议使用虚拟环境)。
- 根据需要选择本地开发环境(可使用 Docker Compose 启动本地环境,包含 Redis、PostgreSQL、Kong、多个服务等)。
- 配置环境变量与服务地址(如 ODOO 连接、Redis、Kafka 等)。
- 服务器配置(MCP 客户端需要的最小信息)
- MCP 服务器名称(server name): odoo-mcp-server
- 启动命令(command): uvicorn
- 启动参数(args):
- app.main:app
- --host 0.0.0.0
- --port 8095
- 说明:上述信息用于 MCP 客户端在初始阶段建立与 MCP 服务器的连接与通信;MCP 客户端不需要直接包含服务器实现代码,只需知道服务器名称与启动方式即可与 MCP 服务器建立连接。
- 基本使用方法
- 启动服务器后,使用 MCP 客户端通过 JSON-RPC 风格的请求向 /mcp 发送方法调用,例如查询工具、读取资源、获取提示等。
- 通过 /health、/execute 等路由可进行健康检查与执行测试,确保 RBAC、Redis 缓存、RAG 集成等组件正常工作。
- 在生产环境中,可以结合 Kubernetes/Docker 进行编排,使用 Docker Compose/ Railway 部署组合来实现完整的微服务架构。
- 若需要自定义工具/资源/提示,修改相应的注册实现(ToolRegistry、ResourceRegistry、PromptRegistry),并重新部署即可。