MCPSDK vs 官方 MCP SDK

发布: (2026年2月6日 GMT+8 11:16)
5 分钟阅读
原文: Dev.to

Source: Dev.to

为什么在官方 Model Context Protocol SDK 之上使用 MCPSDK?

官方 MCP SDK 是一个用于深度定制的低层协议实现,而 MCPSDK 是一个高层抽象,旨在帮助 AI 应用快速集成 MCP 工具生态系统。

一句话概括
Official MCP SDK → 构建服务器/客户端。
MCPSDK → 在 AI 应用中使用 MCP 工具。

Feature Comparison

维度官方 MCP SDKMCPSDK
定位协议实现库开发者体验层
最佳使用场景构建 MCP 服务器/客户端在 AI 应用中使用 MCP 工具
设置复杂度高(手动传输配置)低(托管 + API 密钥)
AI SDK 集成需要手动桥接开箱即用(AI SDK / OpenAI)
部署方式需要进程管理云托管,无本地进程
设计理念协议实现以开发者为中心的 API
维护方式手动(更新和 SDK 同步)由 MCPSDK 自动管理

官方 MCP SDK

官方 SDK 提供了 Model Context Protocol 的完整实现。如果您需要以下情况,它是理想选择:

  • 从头构建自己的 MCP 服务器。
  • 对传输层(stdio、SSE、WebSocket)进行深度控制。
  • 了解底层协议细节。

优势

  • 完全控制 – 直接访问每个协议特性和扩展。
  • 无中间人 – 客户端与服务器之间直接连接。
  • 官方支持 – 由协议创建者(Anthropic)维护。

权衡

您必须自行管理进程生命周期、传输配置以及手动工具调用的序列化。

// official-sdk-example.js
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";

// 1. 手动配置传输
const transport = new StdioClientTransport({
  command: "npx",
  args: ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"],
});

// 2. 初始化客户端
const client = new Client(
  { name: "my-client", version: "1.0.0" },
  { capabilities: { tools: {} } }
);

await client.connect(transport);

// 3. 列出工具
const { tools } = await client.listTools();

// 4. 手动调用工具
const result = await client.callTool({
  name: "read_file",
  arguments: { path: "file.txt" },
});

// 5. 需要手动桥接逻辑以用于 Vercel AI SDK 或其他平台

MCPSDK

MCPSDK 假设您的目标是 使用 MCP 工具于 AI 应用,而不是自行实现协议本身。它提供:

  • 托管运行时 – MCP 服务器运行在云端;无需管理本地进程。
  • 即插即用集成 – 直接生成兼容 Vercel AI SDK、OpenAI SDK 等的工具。
  • API 密钥管理 – 统一处理第三方工具密钥(例如 Tavily、Resend)。

快速集成示例

// mcpsdk-example.js
import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";
import { MCPSDKApiClient } from "toolsdk/api";

// 1. Initialize MCPSDK (API Key only)
const toolSDK = new MCPSDKApiClient({
  apiKey: "your-toolsdk-api-key",
});

// 2. Load a tool package (MCPSDK hosts the MCP server)
const searchPackage = await toolSDK.package("@mcpsdk.dev/tavily-mcp", {
  TAVILY_API_KEY: "xxx",
});

// 3. Get an AI SDK‑compatible tool (zero bridging code)
const searchTool = await searchPackage.getAISDKTool("tavily-search");

// 4. Use directly in an AI call
const result = await generateText({
  model: openai("gpt-4o"),
  tools: { searchTool },
  prompt: "What is the latest news about AI?",
});

何时选择哪个 SDK

选择 Official MCP SDK 的情况:

  • 正在构建 MCP 服务器或协议层工具。
  • 需要对传输层进行绝对控制(自定义扩展等)。
  • 已经拥有健全的进程管理基础设施。
  • 想避免第三方服务依赖。

选择 MCPSDK 的情况:

  • 正在构建 AI 代理、聊天机器人或工作流。
  • 使用 Vercel AI SDK、OpenAI SDK 或 Anthropic SDK。
  • 想快速集成现有 MCP 工具(搜索、邮件、数据库等)。
  • 希望避免进程管理和部署的复杂性。
  • 需要在 Edge Runtime 或无服务器环境中运行。

类比

  • Official MCP SDK – 如同从零件组装汽车(你得到发动机、底盘和轮子,但必须自行组装)。
  • MCPSDK – 如同通过应用租用车队(汽车已准备好、维护完毕,你只需驾驶)。

多工具统一两行集成

import { MCPSDKApiClient } from "toolsdk/api";

const toolSDK = new MCPSDKApiClient({ apiKey: "your-api-key" });

const [searchTool, emailTool] = await Promise.all([
  toolSDK
    .package("@mcpsdk.dev/tavily-mcp", { TAVILY_API_KEY: "xxx" })
    .getAISDKTool("tavily-search"),
  toolSDK
    .package("@mcpsdk.dev/mcp-send-email", { RESEND_API_KEY: "xxx" })
    .getAISDKTool("send-email"),
]);

在 GitHub 上查看完整示例 →

Back to Blog

相关文章

阅读更多 »