项目简介

'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) 作为传输协议。

安装步骤

  1. 安装 Node.js: 确保您的系统已安装 Node.js (推荐 LTS 版本 20 或更高)。
  2. 安装依赖: 在项目根目录('ocm-sdk')下,运行以下命令安装所有依赖:
    npm install
    yarn install
  3. 构建 MCP 服务器: 切换到 'packages/mcp-server' 目录,并构建服务器:
    cd packages/mcp-server
    npm run build
    cd 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 客户端类型进行调整。"
  ]
}

基本使用方法

  1. 启动服务器(通过 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>
  2. 通过 OAuth 认证(Cloudflare Workers 部署): 如果作为 Cloudflare Worker 部署,您可以通过其 OAuth 流程进行认证。客户端需要通过提供的 'oauth-protected-resource' 端点发现认证服务器。在授权页面,您需要输入您的 OCM API Key 和其他客户端配置。

    部署到 Cloudflare Workers 的具体步骤请参考仓库中的 'packages/mcp-server/cloudflare-worker' 目录下的相关文档。

信息

分类

网页与API