AI导航

MCP协议如何提供自定义资源?

AI百科
3 min read
116 次阅读

MCP协议中如何提供自定义资源

MCP(Model Context Protocol)协议支持通过注册“资源(Resource)”的方式,向大语言模型提供结构化、最新、只读的上下文信息。自定义资源是开发者为特定业务需求封装的上下文片段,例如数据库记录、本地文件、第三方 API 返回值等,便于模型使用时理解外部环境。

资源的组成结构

一个完整的 MCP 自定义资源包括以下三个部分:

1. URI(统一资源标识符) 每个资源都使用类似 URI 的格式来唯一标识。例如:

  • file:///data/help.txt 表示本地文件
  • sql://db/user/42 表示数据库中的某一行
  • api://weather/beijing 表示某个 API 响应结果
  • custom://myapp/recent_logs 表示你自定义生成的内容

2. metadata(元信息) 帮助模型快速判断资源用途,包括:

  • displayName: 给人看的名称(如 “用户资料”)
  • description: 简要描述内容(如 “当前登录用户的最新信息”)
  • mimeType: 内容类型,例如 text/plainapplication/jsonimage/png

3. content(资源内容) 资源的实际内容。可以是:

  • 文本:直接以字符串方式内联
  • 二进制:Base64 编码,同时加上 encoding: "base64" 字段

示例结构如下:

{
  "uri": "custom://user/profile",
  "metadata": {
    "displayName": "用户资料",
    "description": "展示当前用户的个人信息",
    "mimeType": "application/json"
  },
  "content": {
    "name": "下xa2025",
    "age": 30,
    "location": "Taiwan"
  }
}

如何注册自定义资源

MCP 本身是协议规范,具体的资源注册方式依赖于你使用的框架或模型系统(如 OpenAI Function Call/MCP、LangGraph、Lamini 等)。通常有以下几种注册方式:

1. 静态资源注册(配置/文件加载) 将资源以 JSON 文件方式编写,应用启动时加载到内存中注册。

2. 动态资源注册(代码生成) 例如 Python/Node.js 动态生成资源内容并封装成结构体。

Python 示例:

def get_custom_resource():
    return {
        "uri": "custom://news/latest",
        "metadata": {
            "displayName": "今日要闻",
            "description": "从新华社拉取的新闻摘要",
            "mimeType": "text/plain"
        },
        "content": "中共中央今日召开会议..."
    }

3. 远程资源注册(通过 API 提供) 可用后端 API 统一封装资源,然后在前端或模型调用时请求资源。

使用建议与最佳实践

  • 资源不要太大:每个资源建议小于 4KB,必要时分页。
  • 命名清晰:URI 命名最好有分层逻辑,方便管理。
  • mimeType 精准:有助于模型判断资源内容格式。
  • 定期刷新:对接外部系统的数据资源要定期更新或缓存。

推荐工具

NVIDIA Chat with RTX AI聊天 Chat with RTX 是 NVIDIA 面向 RTX 电脑的本地 AI 聊天工具,可围绕本地文档和视频资料做问答,适合重视隐私、离线检索并具备硬件条件的用户更适合资料不便上传云 文心一言 AI聊天 文心一言 是百度文心大模型 AI 助手,支持百度 AI 聊天、文案创作和图像理解,适合中文用户和内容创作者完成 AI 对话、资料问答和任务协作,适合上线前核对权限、成本和资料质量。 HuggingChat AI聊天 HuggingChat 是 Hugging Face 的开源模型聊天应用,支持 Omni 自动选模型,也可手动选社区开放模型对话。它适合体验开源模型、技术探索和问答,结果可能不稳定,重要内容需复核。 纳米AI搜索 AI搜索 纳米AI 是 360 旗下 AI 搜索和智能体入口,支持文字、语音、拍照提问、多模型协作与内容创作,适合中文用户做日常搜索、学习问答、移动查询、热点追踪、生活决策、知识整理和轻量创作。 Meta AI AI聊天 Meta AI 是 Meta 的个人 AI 助手,可在网页、应用、AI 眼镜及 WhatsApp、Instagram 中使用,支持问答、图像理解和语音交流,适合社交与生活场景,部分功能受地区限制。 Pi AI AI聊天 Pi AI 是 Inflection AI 推出的个人 AI 助手,强调情绪理解、陪伴式交流、生产力建议和安全对话,可在 pi.ai 与移动端使用。它适合日常思考、学习陪练和规划,不替代专业心理支持。