通过 SDK 调用
安装依赖:
npm i @cloudbase/mcp @modelcontextprotocol/sdk
根据 MCP Server 的 Transport 类型连接至 MCP Server:
- Streamable HTTP
- SSE
- POST
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transport = new StreamableHTTPClientTransport(
// 将链接中的 your-env-id 替换为云开发环境 id
// 将链接中的 your-service-name 替换为云托管服务名
new URL(
"https://your-env-id.api.tcloudbasegateway.com/v1/cloudrun/your-service-name/messages"
),
{
requestInit: {
headers: {
// 将 your-api-key 替换为实际的 API KEY
Authorization: `Bearer your-api-key`,
},
},
}
);
const client = new Client(
{
name: "your-mcp-name",
version: "1.0.0",
},
{
capabilities: {
tools: {},
},
}
);
await client.connect(transport);
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
const transport = new SSEClientTransport(
// 将链接中的 your-env-id 替换为云开发环境 id
// 将链接中的 your-service-name 替换为云托管服务名
new URL(
"https://your-env-id.api.tcloudbasegateway.com/v1/cloudrun/your-service-name/messages"
),
{
requestInit: {
headers: {
// 将 your-api-key 替换为实际的 API KEY
Authorization: `Bearer your-api-key`,
}
},
eventSourceInit: {
fetch: (url, init) => {
return fetch(url, {
...(init || {}),
headers: {
...(init?.headers || {}),
// 将 your-api-key 替换为实际的 API KEY
Authorization: `Bearer your-api-key`,
}
})
}
}
}
);
const client = new Client(
{
name: "your-mcp-name",
version: "1.0.0",
},
{
capabilities: {
tools: {},
},
}
);
await client.connect(transport);
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { PostClientTransport } from "@cloudbase/mcp/transport/client/post";
const transport = new PostClientTransport(
// 将链接中的 your-env-id 替换为云开发环境 id
// 将链接中的 your-service-name 替换为云托管服务名
new URL(
"https://your-env-id.api.tcloudbasegateway.com/v1/cloudrun/your-service-name/messages"
),
{
requestInit: {
headers: {
// 将 your-api-key 替换为实际的 API KEY
Authorization: `Bearer your-api-key`,
},
},
}
);
const client = new Client(
{
name: "your-mcp-name",
version: "1.0.0",
},
{
capabilities: {
tools: {},
},
}
);
await client.connect(transport);
从 MCP Server 获取工具列表:
const prompts = await client.listTools();
发起工具调用:
const result = await client.callTool({
name: "example-tool",
arguments: {
arg1: "value",
},
});