跳转到主要内容

什么是 MCP?

Model Context Protocol (MCP) 是一个 JSON-RPC 2.0 接口,使 AI agent 和应用程序能够发现 Mirobody Health 的工具(tools)和资源(resources)并与之交互。它为 LLM 访问健康数据、调用函数和检索上下文信息提供了一种标准化方式。
MCP 端点: http://localhost:18080/mcp (公开) 或 http://localhost:18080/mcp/{user_secret} (用户特定)协议版本: 2025-06-18

核心概念

工具 (Tools)

执行操作的可调用函数(例如:获取健康数据、渲染图表、链接提供商)

资源 (Resources)

提供上下文的只读数据源(例如:用户个人资料、图表模板、上传表单)

JSON-RPC 2.0

具有请求/响应格式的远程过程调用标准协议

身份验证

基于 JWT 的身份验证,具有可选的用于工具授权的 OAuth 流程

MCP 方法

MCP 服务支持以下标准方法:
方法描述
initialize握手以建立协议版本和能力
tools/list列出所有可用工具
tools/call执行特定工具
resources/list列出所有可用资源
resources/read读取特定资源
prompts/list列出可用提示词模板
prompts/get获取特定提示词模板

身份验证

MCP 端点支持两种身份验证模式:
在 Authorization 标头中传递 JWT 令牌:
curl -X POST http://localhost:18080/mcp \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list"
  }'
某些工具需要身份验证。如果在没有有效凭据的情况下调用,它们会返回一个用于用户授权的 OAuth 流程 URL。

示例:初始化

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2025-06-18",
    "clientInfo": {
      "name": "MyHealthApp",
      "version": "1.0.0"
    }
  }
}

示例:列出工具

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/list"
}

示例:调用工具

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "get_health_data",
    "arguments": {
      "user_id": "user_123",
      "indicator": "steps",
      "start_date": "2024-01-01",
      "end_date": "2024-01-07"
    }
  }
}

错误处理

MCP 使用标准的 JSON-RPC 2.0 错误代码:
代码名称描述
-32700解析错误无效的 JSON
-32600无效请求缺少必填字段
-32601未找到方法未知的方法
-32602参数无效无效的方法参数
-32603内部错误服务端错误
-32000需要身份验证需要进行身份验证
{
  "jsonrpc": "2.0",
  "id": 4,
  "error": {
    "code": -32000,
    "message": "Authentication required",
    "data": {
      "authorization_url": "http://localhost:18080/mcplogin?...",
      "instructions": "请进行身份验证以访问此工具"
    }
  }
}

工具分类

Mirobody Health MCP 工具按类别组织:

下一步