云端MCP服务接入指南
概述
MCP(Model Context Protocol)是新一代AI应用集成协议,基于标准 JSON-RPC 2.0 格式,实现AI平台与云端服务之间的无缝连接。通过MCP协议,大模型可以动态发现和调用外部"工具"(Tool),极大扩展AI应用的能力边界。
MCP协议优势
- 🔌 标准化接口:基于JSON-RPC 2.0,确保跨平台兼容性
- 🚀 动态发现:支持工具的动态注册和发现机制
- 🔒 安全可靠:内置身份验证和权限控制
- 📈 高性能:轻量级协议设计,支持高并发调用
- 🛠️ 易于扩展:模块化架构,便于添加新功能
本指南将详细介绍如何搭建云端MCP服务器,实现与灵矽AI平台的深度集成,让您的AI助手具备丰富的外部能力。
目录
典型使用场景
云端MCP服务为AI应用提供了强大的外部能力扩展,主要应用于以下场景:
架构图
┌─────────────────┐ MCP协议 ┌─────────────────┐ API调用 ┌─────────────────┐
│ 灵矽AI平台 │ ←──────────→ │ 云端MCP服务 │ ←──────────→ │ 第三方服务 │
│ (智能助手) │ JSON-RPC 2.0 │ (Go+ 服务器) │ HTTP/gRPC │ (外部API) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
用户交互指令 工具调用转发 实际业务处理
│ │ │
├── "播放音乐" ├── 🎵 音乐播放控制 ├── Spotify API
├── "查询天气" ├── 🌤️ 天气信息查询 ├── OpenWeather API
├── "安排会议" ├── 📅 日程管理 ├── Google Calendar
├── "控制灯光" ├── 📱 智能家居控制 ├── 小米/华为IoT
├── "获取新闻" ├── 📰 新闻资讯 ├── 新闻API
└── "搜索信息" └── 🔍 信息检索 └── 搜索引擎API核心应用场景
🎵 音乐娱乐服务
- 音乐播放控制:播放、暂停、切换歌曲、调节音量
- 歌单管理:创建播放列表、收藏歌曲、推荐音乐
- 多平台支持:Spotify、网易云音乐、QQ音乐等
🌤️ 生活信息服务
- 天气查询:实时天气、7天预报、空气质量指数
- 出行建议:交通状况、路线规划、公交查询
- 生活指数:紫外线、穿衣、运动指数
📅 效率办公服务
- 日程管理:查看安排、添加提醒、会议通知
- 任务管理:待办事项、项目跟踪、进度提醒
- 文档处理:文件搜索、格式转换、内容摘要
📱 智能家居控制
- 设备控制:灯光、空调、窗帘、音响等
- 场景模式:回家模式、睡眠模式、离家模式
- 安全监控:门锁状态、摄像头查看、报警通知
📰 信息获取服务
- 新闻资讯:热点新闻、行业动态、个性化推荐
- 金融信息:股票行情、汇率查询、投资建议
- 知识问答:百科查询、翻译服务、计算工具
业务价值
- 🚀 快速集成:标准化协议,降低接入成本
- 🔄 灵活扩展:模块化设计,易于添加新功能
- ⚡ 高效响应:异步处理,提升用户体验
- 🛡️ 安全可控:权限管理,保障数据安全
环境要求
云端 MCP 服务需实现标准 MCP 协议(基于 JSON-RPC 2.0),可使用任意语言/框架实现。
网络要求
- 支持 HTTPS 和 WebSocket/SSE 连接
- 接收端点:
GET /mcp:SSE 长连接POST /mcp/message:接收 MCP 请求
接入协议说明
HTTP Header 参数
云端 MCP 服务可以读取以下 Header:
| Header 名称 | 说明 |
|---|---|
X-Linx-Device-Id | 设备唯一标识符 |
X-Linx-Session-Id | 会话标识符 |
工具调用响应格式
成功响应示例:
json
{
"jsonrpc": "2.0",
"id": 5,
"result": {
"content": [
{
"type": "text",
"text": "查询成功,北京今天晴,25℃"
}
],
"isError": false
}
}说明:
content是数组,每个元素对应一段内容(text/image/audio等),设备端会按顺序处理- 涉及系统调用指令(需驱动设备执行操作,如播放音乐、切换角色等)时,应同时返回
structuredContent,结构与字段含义详见系统调用响应格式 isError: true表示工具执行失败
错误响应示例:
json
{
"jsonrpc": "2.0",
"id": 5,
"result": {
"content": [
{
"type": "text",
"text": "工具执行失败:参数错误"
}
],
"isError": true
}
}系统调用响应格式
当工具执行结果需要驱动设备执行具体操作(播放音频、停止播放、切换角色等)时,除 content.text 外还应同时返回 structuredContent:
json
{
"jsonrpc": "2.0",
"id": 5,
"result": {
"content": [
{
"type": "text",
"text": "{\n \"code\": 0,\n \"funcs\": [\n {\n \"name\": \"linx_play\",\n \"arguments\": {\n \"audio_url\": \"http://music-storage.xrobo-io.qiniuapi.com/夜上海.mp3\",\n \"title\": \"夜上海\"\n }\n }\n ],\n \"message\": \"\"}"
}
],
"structuredContent": {
"code": 0,
"funcs": [
{
"name": "linx_play",
"arguments": {
"audio_url": "http://music-storage.xrobo-io.qiniuapi.com/夜上海.mp3",
"title": "夜上海"
}
}
],
"message": ""
},
"isError": false
}
}说明:
content.text是格式化的 JSON 字符串(带\n换行和缩进),用于展示给用户/模型structuredContent是原始 JSON 对象,供设备程序化解析,按funcs数组执行系统调用
Func 结构说明:
| 字段 | 类型 | 说明 |
|---|---|---|
name | string | 系统函数名 |
arguments | object | 函数参数 |
内置系统函数
| 函数名 | 参数 | 说明 |
|---|---|---|
linx_play | audio_url, title | 播放音频 |
linx_stop | 无 | 停止播放 |
change_role | role_prompt | 切换角色 |
调用示例 - 播放音频:
json
{
"code": 0,
"message": "success",
"funcs": [
{
"name": "linx_play",
"arguments": {
"audio_url": "https://example.com/music.mp3",
"title": "音乐名称"
}
}
]
}调用示例 - 停止播放:
json
{
"code": 0,
"message": "success",
"funcs": [{ "name": "linx_stop", "arguments": {} }]
}调用示例 - 切换角色:
json
{
"code": 0,
"message": "切换角色成功",
"funcs": [
{
"name": "change_role",
"arguments": {
"role_prompt": "你是一个友善的助手"
}
}
]
}快速开始
1. 在灵矽AI平台注册服务
在灵矽AI平台的 MCP 服务管理页面,添加您的服务端点:
- 服务名称:个人助手 MCP 服务
- SSE URL:
https://your-domain.com/mcp - 描述:提供天气查询、音乐播放等个人助手功能
2. 接收 MCP 连接
您的云端 MCP 服务需要实现标准的 MCP 协议,支持以下端点:
- SSE 端点:
GET /mcp- 接收设备端的 SSE 连接 - POST 端点:
POST /mcp/message- 接收 MCP 消息
3. 处理工具调用
当收到 tools/call 请求时,返回符合规范的响应格式。