跳到主内容
AIHO 2026 全新改版上线
mcpmodel-context-protocolcursorclaude-code工作流

MCP 实战:3 步把任意 API 接入 Claude / Cursor

发布 2026-08-02更新 2026-08-02核实 2026-08-02

一句话结论

MCP(Model Context Protocol)是 Anthropic 提出的开放标准,让 AI 工具能像调函数一样调你已有的工具——数据库、GitHub、Slack、文件系统。接入成本极低:先吃现成 server 解决 80% 需求,再按需用 TypeScript SDK 自建。别一上来就造轮子。

MCP 是什么(30 秒理解)

过去每个 AI 工具要接外部工具,都得各自写一套适配。MCP 把这套适配标准化成「客户端(Claude Code / Cursor)— 协议 — Server(暴露 tools 的程序)」:

AI 客户端  ←— MCP 协议 —→  MCP Server  ←—→  你的数据库 / API / 文件系统

Server 暴露三类能力:

  • Tools:AI 可调用的函数(如「查 PostgreSQL」「建 GitHub issue」)
  • Resources:AI 可读的数据(如配置文件、日志)
  • Prompts:预置的提示词模板

3 步上手

第 1 步:选一个现成 Server

社区已有大量现成 server(官方 registry),常用:

Server能力适合
@modelcontextprotocol/server-filesystem读/写本地文件让 AI 操作项目文件
@modelcontextprotocol/server-postgres跑 SQL 查数据数据分析 / 查库
github MCP建 issue / 读 PR / 搜代码研发工作流
slack MCP发消息 / 搜频道通知 / 协作
linear / notion MCP读写工单 / 文档项目管理

第 2 步:配到客户端

Claude Code(写入 .mcp.json~/.claude.json):

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://user:pass@localhost:5432/db"]
    }
  }
}

然后 claude 里跑 /mcp 看是否连上。

Cursor(Settings → MCP → 粘贴同款 JSON 到 ~/.cursor/mcp.json):

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"]
    }
  }
}

第 3 步:验证

在对话里直接说自然语言,看 AI 是否自动调 tool:

> 查一下 users 表里最近 7 天注册的人数

如果 AI 调用了 Postgres tool 并返回结果,说明 MCP 通了。Claude Code 里 /mcp 可看每个 server 的 tools 列表。

现成 Server 推荐

场景推荐 Server备注
文件操作filesystem最基础,先接这个
数据库postgres / sqlite接了就能「对话式查库」
代码协作github建 issue、读 diff
项目管理linear / notion工单联动
内部系统自建写一个最小 server 暴露内部 API

自建 MCP Server:Node + TypeScript 最小例子

当现成 server 不够,比如要暴露公司内部 API,用官方 SDK 写一个:

npm init -y
npm i @modelcontextprotocol/sdk zod
// server.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({ name: "demo", version: "1.0.0" });

// 暴露一个 tool:把文本转大写
server.tool("to_upper", { text: z.string() }, async ({ text }) => ({
  content: [{ type: "text", text: text.toUpperCase() }],
}));

// 暴露一个查内部 API 的 tool
server.tool("get_orders", { userId: z.string() }, async ({ userId }) => {
  const res = await fetch(`https://internal.api/orders?user=${userId}`);
  const data = await res.json();
  return { content: [{ type: "text", text: JSON.stringify(data) }] };
});

const transport = new StdioServerTransport();
await server.connect(transport);

配置到客户端:

{
  "mcpServers": {
    "demo": { "command": "npx", "args": ["tsx", "/path/to/server.ts"] }
  }
}

之后 AI 就能直接说「查一下用户 123 的订单」。

排错指南

  1. server 没出现:检查 command 路径和 npx 是否可访问;Claude Code 跑 /mcp 看报错。
  2. 连上了但 tool 调不动:看 server 日志,多数是权限 / 网络(如 Postgres 连接串错)。
  3. AI 不主动调:提示词要明确「用 X tool 做 Y」,或 tool 描述写得太模糊。
  4. 安全风险:MCP server 能访问你的文件 / 数据库,只装信任来源的 server,限制 filesystem server 的目录范围。
  5. 超时:MCP 调用超 2 分钟(Claude Code)会自动转后台,长任务别担心。

AIHO 观点:MCP 的最大价值是「你的私有数据 / 内部系统,不用把数据传给通用大模型就能被 AI 调用」。企业场景里,接一个 Postgres + 内部 API 的 server,比把数据库导给 ChatGPT 安全得多。

常见问题

Q:MCP 和 Function Calling 什么关系? A:Function Calling 是模型调用函数的能力,MCP 是「工具如何暴露给模型」的标准协议。MCP 让工具提供方和模型客户端解耦,一次写 server,多客户端可用。

Q:自建 server 要部署吗? A:stdio 模式的 server 随客户端本地拉起,不用单独部署;HTTP 模式的 server(SSE)才需要部署。

Q:多个 server 冲突怎么办? A:每个 server 的 tool 名全局唯一,重名会冲突。命名加前缀(如 pg_query / gh_create_issue)避免。

相关阅读

来源说明:本文基于 modelcontextprotocol.io 官方规范、TypeScript SDK、Claude Code / Cursor MCP 文档及 AIHO 编辑部实操归纳。SDK 版本迭代快,以官方最新文档为准。

相关工具