MCP

通过 Model Context Protocol 接入外部工具与数据源,适合复用现成服务能力并减少本地工具编排成本

概述

MCP(Model Context Protocol)能力依赖百炼侧的 mcp 工具。Ling.AI 不会自己托管或转译 MCP Server,而是把 MCP 工具配置原样透传给上游。当前该能力仅支持通过 Responses API 调用

协议限制

当前仅支持配置SSE协议的 MCP Server,也就是 server_protocol 需要设置为 sse。单次请求中最多添加 10 个 MCP Server

与函数调用的区别

如果您已经有遵循 MCP 规范的外部服务,优先使用 MCP 会更省事;如果您需要完全控制工具定义、入参 schema 和执行链路,则更适合使用本地函数调用。两者都属于工具增强,但接入方式不同。

Responses API

/v1/responses 中,把 MCP Server 描述为一个 type=mcp 的工具对象,并放入 tools 数组即可。

Python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.vip.lingapi.ai/v1",
    api_key="sk-xxxxxxxx"
)

mcp_tool = {
    "type": "mcp",
    "server_protocol": "sse",
    "server_label": "amap-maps",
    "server_description": "高德地图 MCP 服务,提供地图、导航、路径规划和天气查询能力。",
    "server_url": "https://dashscope.aliyuncs.com/api/v1/mcps/amap-maps/sse",
    "headers": {
        "Authorization": "Bearer YOUR_TOKEN"
    }
}

response = client.responses.create(
    model="qwen3.5-plus",
    input="从北京到上海驾车怎么走?",
    tools=[mcp_tool]
)

print(response.output_text)

其中 server_label 用于标识服务,server_description 用于帮助模型理解适用场景,server_url 指向 MCP Server 的 SSE 入口,headers 可用于透传认证信息。

流式输出

MCP 调用可能涉及多轮外部服务交互,建议开启 stream=True。流式模式下可以按普通 Responses 事件处理模型输出,并在 response.completed 中读取最终 usage

参数说明

参数 必填 说明
type 固定为 mcp
server_protocol 服务通信协议,当前仅支持 sse
server_label MCP 服务标签,用于标识该服务。
server_description 服务能力描述,建议填写,帮助模型更准确地选择和使用该 MCP Server。
server_url MCP Server 的 SSE 端点地址。
headers 连接 MCP 服务时附带的请求头,例如 Authorization

计费说明

  • 模型推理部分仍按 Token 用量计费。
  • MCP 服务本身的费用取决于具体服务提供方,Ling.AI 不内置统一的 mcp 工具单价。
  • 如果 MCP 服务返回的数据被拼接进上下文,也会相应增加输入 Token 成本。