别每个 AI 工具单独配了!MCP 一次搭建,Claude、Cursor、TRAE 全能用

MCP 服务器怎么搭建:从零到本地部署完整入门指南(2026)

MCP(Model Context Protocol)是 Anthropic 于 2024 年推出的 AI 工具扩展接口标准,基于 JSON-RPC 2.0 协议,让 AI 模型可以通过标准化方式调用外部工具、读取资源和使用提示模板。2026 年,Cursor、TRAE、Claude Code、OpenClaw 已全线接入 MCP,开发者只需搭建一次 MCP 服务器,就能在所有支持 MCP 的 AI 客户端里直接调用自定义工具。


MCP 的三大能力与两种传输方式

理解这两组概念,是搭建 MCP 服务器的前提。

三大能力

能力类型 作用 示例
Tools(工具) AI 可主动调用的函数,执行操作并返回结果 查数据库、调 API、操作文件
Resources(资源) AI 可读取的数据或信息,类似只读文件系统 读取本地文档、访问知识库
Prompts(提示模板) 预定义的提示词模板,供 AI 按需调用 代码审查模板、报告格式模板

大多数场景只需实现 Tools 即可满足需求。

两种传输方式

STDIO(标准输入输出):本地进程间通信,AI 客户端直接启动 MCP 服务进程,最简单,适合本地使用。

SSE / Streamable HTTP:远程 HTTP 服务,适合团队共享或云端部署,需要服务器地址和端口。

选择原则:个人开发和本地测试选 STDIO;团队共享或需要远程访问选 HTTP。


方案一:Python 搭建 MCP 服务器(推荐新手)

FastMCP 是 Python 版 MCP 官方 SDK 的高层封装,几行代码即可定义工具。

环境准备

bash 复制代码
# 推荐使用 uv 管理 Python 环境(比 pip 快 10-100 倍)
# 安装 uv(macOS/Linux)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 初始化项目
uv init MyMcpServer
cd MyMcpServer

# 创建虚拟环境并安装依赖
uv venv
source .venv/bin/activate          # macOS/Linux
# .venv\Scripts\activate           # Windows

uv add "mcp[cli]" httpx

编写第一个 MCP 服务器

创建 server.py

python 复制代码
from mcp.server.fastmcp import FastMCP
import os

# 初始化 MCP 服务器实例
mcp = FastMCP("我的工具箱")

# 注册 Tool:读取本地文件内容
@mcp.tool()
def read_file(path: str) -> str:
    """读取指定路径的文件内容,返回文本"""
    try:
        with open(path, "r", encoding="utf-8") as f:
            return f.read()
    except Exception as e:
        return f"读取失败:{str(e)}"

# 注册 Tool:列出目录文件
@mcp.tool()
def list_files(directory: str) -> list[str]:
    """列出指定目录下的所有文件名"""
    try:
        return os.listdir(directory)
    except Exception as e:
        return [f"错误:{str(e)}"]

# 注册 Resource:暴露本地文档
@mcp.resource("docs://readme")
def get_readme() -> str:
    """返回项目说明文档"""
    return "这是我的 MCP 工具箱,支持文件读写操作。"

if __name__ == "__main__":
    mcp.run()   # 默认 STDIO 模式

本地调试

bash 复制代码
# 启动 MCP Inspector(可视化测试工具)
fastmcp dev server.py
# 打开浏览器访问 http://localhost:5173 进行交互测试

方案二:Node.js 搭建 MCP 服务器

适合已有 Node.js 项目或需要集成前端生态的场景。

bash 复制代码
npm init -y
npm install @modelcontextprotocol/sdk zod

创建 server.js

javascript 复制代码
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: 'node-tools',
  version: '1.0.0'
});

// 注册工具:两数相加
server.tool(
  'add',
  { a: z.number(), b: z.number() },
  async ({ a, b }) => ({
    content: [{ type: 'text', text: String(a + b) }]
  })
);

// 启动 STDIO 传输(注意:只能用 console.error 打日志,console.log 会污染通信通道)
const transport = new StdioServerTransport();
await server.connect(transport);
console.error('✅ MCP 服务器启动成功(STDIO 模式)');

接入主流 AI 客户端

接入 Claude Desktop

配置文件路径:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:C:\Users\用户名\AppData\Roaming\Claude\claude_desktop_config.json
json 复制代码
{
  "mcpServers": {
    "my-tools": {
      "command": "python",
      "args": ["/Users/你的用户名/MyMcpServer/server.py"],
      "env": {
        "PYTHONPATH": "/Users/你的用户名/MyMcpServer"
      }
    },
    "node-tools": {
      "command": "node",
      "args": ["/Users/你的用户名/node-mcp/server.js"]
    }
  }
}

保存后重启 Claude Desktop,在对话中输入"你有哪些工具?"验证是否生效。

接入 Claude Code(命令行)

bash 复制代码
# 添加 MCP 服务器
claude mcp add my-tools python /绝对路径/server.py

# 查看已添加的 MCP 服务器列表
claude mcp list

# 删除某个服务器
claude mcp remove my-tools

接入 Cursor

Settings → MCP → Add new MCP server,填写:

  • Typecommand
  • Name :自定义名称(如 my-tools
  • Commandpython /绝对路径/server.py

接入 TRAE

在项目根目录创建 .trae/mcp.json

json 复制代码
{
  "servers": [
    {
      "name": "my-tools",
      "command": "python",
      "args": ["/绝对路径/server.py"],
      "transport": "stdio"
    }
  ]
}

不想自己写?直接安装这 5 个热门 MCP 服务器

开源社区已有大量高质量 MCP 服务器可直接使用,无需从零编写:

MCP 服务器 功能 GitHub Stars 安装命令
chrome-devtools-mcp 浏览器自动化,26 个工具 18.5k npx chrome-devtools-mcp@latest
github-mcp GitHub API 集成,管理 Issue/PR 10k+ npx @modelcontextprotocol/server-github
postgres-mcp PostgreSQL 数据库操作 5k+ npx @modelcontextprotocol/server-postgres
filesystem-mcp 增强文件系统读写 3k+ npx @modelcontextprotocol/server-filesystem
web-search-mcp 网络搜索功能 2k+ npx @modelcontextprotocol/server-brave-search

以 Claude Desktop 接入 GitHub MCP 为例:

json 复制代码
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_你的token"
      }
    }
  }
}

对于不想维护本地环境的团队,也可以接入托管型 MCP 编排平台------例如七牛云 MCP 服务支持标准化模型能力编排,无需本地部署服务器即可构建 Agent 应用,具体接入方式见官方文档


常见问题

Q:MCP 和普通函数调用(Function Calling)有什么区别? Function Calling 是各家大模型私有实现,格式不统一,换模型就要改代码。MCP 是跨模型的标准协议,一套 MCP 服务器可以被 Claude、GPT、Cursor、TRAE 等任意支持 MCP 的客户端调用,不需要为每个客户端单独适配。

Q:STDIO 模式下 console.log 为什么会让 MCP 服务器出错? STDIO 模式使用标准输入输出作为通信通道,console.log 输出的内容会被客户端误认为 JSON-RPC 消息,导致解析报错。Node.js 中必须用 console.error 打印日志(走 stderr),Python 中使用 import sys; print("log", file=sys.stderr)

Q:MCP 服务器的 args 路径必须是绝对路径吗? 是的,配置文件中的 args 必须使用绝对路径。使用相对路径会因为客户端的工作目录不确定而导致找不到文件。可以用 $(pwd)/server.py 在终端里打印当前路径再粘贴进配置。

Q:如何让团队共享同一个 MCP 服务器,而不是每人本地跑一份? 将 MCP 服务器改为 HTTP 模式部署到云服务器,客户端配置中将 command 替换为 url 指向远程地址。Python FastMCP 切换 HTTP 模式只需 mcp.run(transport="streamable-http", port=8000),不需要修改工具逻辑代码。

Q:MCP Inspector 是什么,有什么用? MCP Inspector 是官方提供的可视化调试工具,运行 fastmcp dev server.py 后在浏览器中打开,可以直接测试每个 Tool 的输入输出,不需要连接真实 AI 客户端。开发阶段强烈推荐先用 Inspector 验证工具逻辑,再接入 Claude/Cursor。


延伸资源


把本文"接入 Claude Desktop"一节的配置模板加入团队 Runbook,新成员 15 分钟内即可完成 MCP 环境搭建,不依赖口口相传的口头文档。

本文内容基于 2026 年 5 月 MCP 官方 Python SDK、Node.js SDK 及各客户端最新文档,代码示例已在 Python 3.12 / Node.js 22 环境验证。

相关推荐
小小小小宇1 小时前
设计稿转代码:如何将生成代码与内部组件库关联
前端
_xaboy1 小时前
FormCreate 设计器 v6.3 正式发布:AI 表单助理3.0登场!
前端·vue.js·低代码·开源·表单设计器
胡志辉1 小时前
邮件中点击“加载图片”,你的IP地址已经被泄漏
前端·后端·安全
openKaka_1 小时前
reconcileChildren 深入:React 如何根据 ReactElement 构建子 Fiber
前端·javascript·react.js
三翼鸟数字化技术团队2 小时前
事件循环原来这么简单!
前端
gf13211112 小时前
python_【更新已发送的消息卡片】
java·前端·python
一点一木2 小时前
2026 终端 AI 编码 Agent 六大工具深度横评
前端·人工智能·claude
Highcharts.js2 小时前
Highcharts React v5升级三问|最大的升级方向是什么?需要注意什么?有什么优化?
前端·javascript·react.js·前端框架·highcharts·大数据渲染·前端性能
马玉霞2 小时前
vue web端页面组件展示
前端·vue.js