OpenBotAuth MCP 服务器
- 项目简介
- OpenBotAuth 的 MCP 服务器实现,使用 MCP SDK 构建,暴露“策略评估、支付意图创建、计量事件上报”等工具,供 LLM 客户端统一调用与获得上下文/能力输出。
- 主要功能点
- 策略工具(policy_apply):基于资源和请求信息评估访问策略(允许、拒绝、 teaser、支付等)。
- 支付工具(payments_create_intent):为需要付费的内容创建支付意图,返回支付链接等信息。
- 计量工具(meter_ingest):对使用行为进行计量并写入数据库/缓存,供分析与报表使用。
- 使用 MCP SDK 提供的 ListTools 与 CallTool 接口,支持通过 JSON-RPC 请求查询工具列表与执行工具。
- 与 PostgreSQL、Redis 等外部服务集成,具备实时统计、历史数据与分析能力。
- 以 Node.js/TypeScript 实现,默认通过标准输入输出(stdio)等传输与 Claude Desktop 集成示例,便于嵌入式或桌面端工作流。
- 安装步骤
- 确保已安装 Node.js 14+(仓库使用 Node.js 生态,建议 Node.js 20+ 的环境)。
- 将仓库克隆到本地:git clone https://github.com/OpenBotAuth/openbotauth.git
- 进入 MCP 服务器包并安装依赖:
- 进入 packages/mcp-server
- 安装依赖(建议使用 pnpm/yarn/npm 之一)
- 构建 MCP 服务器:
- 构建产物(dist/index.js 等)以便通过 Node 运行
- 启动 MCP 服务器:
- 使用 Node 运行打包后的服务器文件,例如 node dist/index.js
- 服务器配置(MCP 客户端需要至少提供启动命令和参数来连接 MCP 服务器)
- 下面给出一个示例 JSON 配置,描述服务器名称、启动命令及参数,以及典型环境变量。此配置用于帮助 MCP 客户端了解如何启动并连接你的 MCP 服务器;实际客户端可能不需要直接执行此配置,但它有助于理解服务器端部署信息。
- 示例配置(JSON,字段含义在后续注释中解释): { "server_name": "openbotauth-mcp", "command": "node", "args": ["dist/index.js"], "working_directory": "packages/mcp-server", "env": { "DATABASE_URL": "postgresql://user:password@host:5432/dbname", "REDIS_URL": "redis://localhost:6379", "PAYMENT_BASE_URL": "http://localhost:8082", "PAYMENT_PROVIDER": "local" } }
- 说明
- server_name: MCP 服务器的唯一标识名称,便于在客户端日志与监控中识别。
- command: 启动服务器所用的可执行命令。这里使用 node。
- args: 启动参数,指向打包后的入口文件(dist/index.js)。
- working_directory: 服务器实际部署路径,便于脚本与部署工具定位。
- env: 运行时所需的外部依赖配置,通常包含数据库连接、缓存、支付相关接口等。
- 基本使用方法
- 启动前准备
- 确保 PostgreSQL 和 Redis 服务可用并正确配置连接字符串。
- 在 MCP 服务器目录下设置所需的环境变量(DATABASE_URL、REDIS_URL、PAYMENT_BASE_URL 等)。
- 启动流程
- 构建 MCP 服务器后,通过 Node 直接执行 dist/index.js 启动 MCP 服务。
- 启动后,服务器会监听并通过 MCP SDK 的 stdio transport 或其他传输方式与客户端进行 JSON-RPC 通信。
- 客户端调用示例(简述,不给出代码)
- 客户端通过 JSON-RPC 向 MCP 服务器请求工具列表(ListTools),或调用具体工具(CallTool)。
- 调用结果包含工具输出、可能的错误信息、以及状态指示。
- 启动前准备
- 运行与集成注意
- MCP 服务需要可靠的进程管理与日志记录,建议配合容器化部署(Docker/Kubernetes)和进程管理工具(pm2、systemd)。
- 生产环境应使用稳定的数据库/缓存集群,并配置正确的防火墙和密钥管理。