项目简介
'ocm-sdk' 不仅仅是一个用于访问 Open Charge Map (OCM) REST API 的 TypeScript 客户端库,它还包含一个完整的 MCP 服务器实现。该服务器旨在为大型语言模型(LLM)客户端提供一个标准化的接口,以便它们能够理解和调用与电动汽车 (EV) 充电相关的操作,例如查询充电站(POI)、提交评论、上传媒体以及管理用户资料等。服务器支持多种传输协议,并提供了灵活的工具过滤和兼容性配置选项,以适应不同LLM客户端的需求。
主要功能点
- 资源托管与数据访问:
- 充电站 (POI): 查询特定地理区域或附近充电站的详细信息。
- 参考数据: 获取充电连接类型、运营商、国家等核心参考数据。
- 用户资料: 验证用户身份,并获取/更新用户资料。
- 工具注册与执行:
- 动态工具: 允许LLM动态发现、检索和调用所有可用的API端点,无需预先了解所有工具名称。
- 代码执行工具: 允许LLM直接编写并执行TypeScript代码来与OCM API交互,提供极高的灵活性。
- 评论与媒体: 提交用户对充电站的评论和图片。
- Prompt 模板与兼容性:
- 通过 JSON-RPC 协议与 LLM 客户端通信。
- 支持多种客户端能力声明(如 'top-level-unions'、'refs'、'unions'、'formats'、'tool-name-length'),自动调整工具描述以确保与不同 LLM 客户端的最大兼容性。
- 支持 'Stdio'(标准输入输出)和 'HTTP' (包括 SSE 和 Streaming HTTP) 作为传输协议。
安装步骤
- 安装 Node.js: 确保您的系统已安装 Node.js (推荐 LTS 版本 20 或更高)。
- 安装依赖: 在项目根目录('ocm-sdk')下,运行以下命令安装所有依赖:
或npm installyarn install - 构建 MCP 服务器: 切换到 'packages/mcp-server' 目录,并构建服务器:
或cd packages/mcp-server npm run buildcd packages/mcp-server yarn build
服务器配置
MCP 客户端需要知道如何启动 MCP 服务器并与之通信。以下是 MCP 客户端配置该服务器的示例信息:
{ "server": { "name": "OCM MCP Server", "description": "连接到Open Charge Map (OCM) EV充电API的MCP服务器。", "command": "node", "args": [ "<path/to/ocm-sdk>/packages/mcp-server/dist/index.js", "--transport", "stdio", "--tools", "all" ], "environmentVariables": { "OCM_API_KEY": "<你的Open Charge Map API Key>" }, "capabilities": { "topLevelUnions": true, "validJson": true, "refs": true, "unions": true, "formats": true, "toolNameLength": 50 }, "defaultClientOptions": { "apiKeyHeader": "<可选:如果你的API Key在请求头中,或者不需要在环境变量中配置>", "bearer": "<可选:如果使用Bearer Token进行认证>" } }, "notes": [ "将 '<path/to/ocm-sdk>' 替换为您的 'ocm-sdk' 仓库的实际路径。", "在 'environmentVariables' 中提供您的 'OCM_API_KEY',这是访问 OCM API 所必需的。", "'--transport' 参数可设置为 'stdio'(通过标准输入输出通信)或 'http'(通过HTTP端口通信)。", "如果使用 'http' 传输,请添加 '--port <端口号>' 或 '--socket <Unix套接字路径>' 参数。", "'--tools all' 参数表示包含所有可用工具。您也可以根据需要调整工具过滤器,例如 '--tools dynamic' 来启用动态工具发现。", "'capabilities' 字段定义了 MCP 服务器支持的 LLM 客户端特性,以确保最佳兼容性。这些值可以根据您的 LLM 客户端类型进行调整。" ] }
基本使用方法
-
启动服务器(通过 CLI): 在 'packages/mcp-server' 目录下,您可以通过以下命令启动服务器:
- 通过标准输入输出 (stdio):
node dist/index.js --transport stdio --tools all --apiKey <你的API Key> - 通过 HTTP 协议(例如端口 3000):
node dist/index.js --transport http --port 3000 --tools all --apiKey <你的API Key> - 列出所有可用工具:
node dist/index.js --list - 仅包含特定工具:
node dist/index.js --transport stdio --tool list_poi --apiKey <你的API Key>
- 通过标准输入输出 (stdio):
-
通过 OAuth 认证(Cloudflare Workers 部署): 如果作为 Cloudflare Worker 部署,您可以通过其 OAuth 流程进行认证。客户端需要通过提供的 'oauth-protected-resource' 端点发现认证服务器。在授权页面,您需要输入您的 OCM API Key 和其他客户端配置。
部署到 Cloudflare Workers 的具体步骤请参考仓库中的 'packages/mcp-server/cloudflare-worker' 目录下的相关文档。
信息
分类
网页与API