跳到主要内容

MCP 生态与应用场景

问题

MCP 生态有哪些常用 Server?在实际项目中如何应用?

答案

一、官方与社区 Server

Server类型功能
filesystem官方文件读写、搜索、目录操作
github官方PR、Issue、代码搜索
postgres官方SQL 查询、Schema 查看
sqlite官方SQLite 数据库操作
puppeteer官方网页截图、爬取
playwright社区浏览器自动化
slack官方消息发送、频道管理
brave-search官方网页搜索
context7社区代码库文档检索
sequential-thinking官方思维链推理

二、支持 MCP 的 Host 应用

Host支持情况传输方式
Claude Desktop完整支持stdio
VS Code (Copilot)支持stdio
Cursor支持stdio
Windsurf支持stdio
Zed支持stdio
自建应用SDK 支持stdio / Streamable HTTP

三、应用场景

1. AI 编程助手增强

2. 企业内部 AI 平台

3. 数据分析工作流

一个分析师可以通过自然语言:

  1. 连接数据库查看表结构(Resources)
  2. 让 AI 编写并执行 SQL(Tools)
  3. 将结果导出为报告(Tools)

四、自建 MCP 集成架构

自建 AI 应用集成 MCP
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";

async function setupMCPClient() {
// 启动 MCP Server 并连接
const transport = new StdioClientTransport({
command: "npx",
args: ["-y", "@modelcontextprotocol/server-postgres"],
env: { DATABASE_URL: process.env.DATABASE_URL }
});

const client = new Client({ name: "my-app", version: "1.0.0" });
await client.connect(transport);

// 获取工具列表 → 转为 LLM Function Calling 格式
const { tools } = await client.listTools();

// 转为 OpenAI Tool 格式
const openaiTools = tools.map(tool => ({
type: "function" as const,
function: {
name: tool.name,
description: tool.description,
parameters: tool.inputSchema
}
}));

return { client, openaiTools };
}

五、MCP 与 Function Calling 的整合


常见面试问题

Q1: MCP 的主要优势是什么?

答案

  1. 标准化:统一的协议,避免 M×N 集成问题
  2. 可组合:多个 Server 自由组合,像乐高积木
  3. 安全:内置权限控制和用户确认机制
  4. 开放生态:社区贡献 Server,开箱即用
  5. 跨平台:同一个 Server 可被不同 Host 使用

Q2: MCP 目前的局限性?

答案

  • 生态成熟度:仍在早期,部分 Server 质量参差不齐
  • 远程部署:Streamable HTTP 方案刚推出,企业级方案尚在探索
  • 认证授权:协议层面的 OAuth 支持仍在开发中
  • 性能:JSON-RPC over stdio 在高频调用场景有开销
  • 调试:错误排查工具不够完善

Q3: 如何在自己的 AI 应用中使用 MCP?

答案

  1. 使用 MCP Client SDK 连接现有 Server
  2. 调用 listTools() 获取工具定义
  3. 将工具定义转为 LLM 的 Function Calling 格式
  4. LLM 返回 tool_call 后,通过 MCP Client 执行
  5. 将结果返回 LLM 生成最终回答

相关链接