Skip to Content
四. 配置与集成13 · MCP 集成

13 · MCP 集成

让 Trae 通过 Model Context Protocol 连接数据库、API 和文件系统,把 AI 的能力延伸到外部世界。


01 什么是 MCP

MCP(Model Context Protocol)是 Anthropic 提出的一种开放协议,定义了 AI 应用如何安全地与外部工具和数据源交互。可以把它理解为 AI 世界的 USB 协议——就像 USB 让你统一标准地连接鼠标、键盘和硬盘,MCP 让你统一标准地连接数据库、API 和文件系统。

在 Trae 中,MCP 扮演一个关键角色:它是 AI 从”读代码写代码”到”操作真实系统”的桥梁

为什么需要 MCP

没有 MCP 之前,AI 编程工具的边界很明确:

  • 它能读你项目里的文件
  • 它能在你的编辑器里改代码
  • 但它碰不到你的数据库、你的 API、你的服务器

MCP 打破了这个边界。通过配置 MCP Server,Trae 可以:

Trae (AI) ←→ MCP Server ←→ 数据库 / API / 文件系统

AI 不再只是”脑补”数据库里有什么表——它可以直接连接你的 PostgreSQL,查询表结构,甚至执行迁移脚本。

MCP 的核心组件

组件角色类比
MCP Client集成在 Trae 内部,负责发现和调用工具USB 接口(电脑端)
MCP Server你配置的外部工具适配器,暴露具体能力USB 设备(键盘/硬盘)
ToolMCP Server 暴露的一个具体操作(如 query_database)设备的一个功能按钮
PromptMCP Server 暴露的预设对话模板设备附带的说明书模板

心智模型:你配置的每一个 MCP Server,相当于给 Trae 装了一个”外挂器官”。装数据库 MCP,AI 就长了”能看到数据库的眼睛”;装文件系统 MCP,AI 就长了”能操作文件系统的手”。


02 Trae 中的 MCP 架构

Trae 的 MCP 实现和 VS Code 生态深度集成。正因为 Trae 基于 VS Code 内核,它可以直接沿用 VS Code 的 MCP 配置规范,同时加入了 Trae 特有的增强能力。

架构层次

┌──────────────────────────────────────┐ │ Trae AI 引擎 │ │ (Chat / Builder / SOLO) │ ├──────────────────────────────────────┤ │ MCP Client 层 │ │ 负责发现、路由、安全隔离 │ ├──────────────────────────────────────┤ │ ┌────────┐ ┌────────┐ ┌────────┐ │ │ │ MCP │ │ MCP │ │ MCP │ │ │ │ Server │ │ Server │ │ Server │ │ │ │ (DB) │ │ (API) │ │ (File) │ │ │ └────────┘ └────────┘ └────────┘ │ │ ┌────────┐ ┌────────┐ │ │ │ MCP │ │ MCP │ │ │ │ Server │ │ Server │ │ │ │ (Git) │ │ (云服务)│ │ │ └────────┘ └────────┘ │ ├──────────────────────────────────────┤ │ 外部系统(你的基础设施) │ │ PostgreSQL Supabase GitHub 文件系统│ └──────────────────────────────────────┘

配置位置

MCP 配置写在项目的 .vscode/mcp.json 文件中。这个文件和 VS Code 的 MCP 规范完全兼容,所以如果你之前用过 VS Code 的 MCP,可以直接迁移。

一个典型的 MCP 配置:

{ "servers": { "my-database": { "type": "stdio", "command": "node", "args": ["path/to/mcp-server.js"], "env": { "DATABASE_URL": "postgresql://user:pass@localhost:5432/mydb" } } } }

Trae 的特殊处理

和 VS Code 相比,Trae 的 MCP 有几个增强点:

特性VS CodeTrae
MCP 配置格式.vscode/mcp.json兼容,路径一致
SOLO 自动调用不支持✅ SOLO 能自动选择和调用 MCP 工具
安全确认机制基础✅ 分层权限:按模式区分
多 Server 编排手动管理✅ SOLO 可编排多个 Server 联动
GUI 管理面板需要插件✅ 内置 MCP 状态面板

03 配置你的第一个 MCP Server

配置文件结构

所有 MCP 配置存放在项目根目录的 .vscode/mcp.json。如果文件不存在,手动创建即可。

完整配置结构:

{ "servers": { "<server-name>": { "type": "stdio", "command": "<可执行文件>", "args": ["<参数>"], "env": { "<环境变量名>": "<环境变量值>" } } } }
字段说明
type目前支持 stdio(本地进程通信)
command启动 MCP Server 的可执行文件路径或命令
args传给可执行文件的参数数组
env注入的环境变量,通常用来传递密钥和连接信息

实战:连接 PostgreSQL

我们来配置一个 PostgreSQL MCP Server。

第一步:安装 MCP Server 包。推荐使用社区最成熟的 @anthropic/mcp-postgres

npm install -g @anthropic/mcp-postgres # 或者用 npx 临时运行 npx @anthropic/mcp-postgres --help

第二步:在 .vscode/mcp.json 中添加配置:

{ "servers": { "postgres": { "type": "stdio", "command": "npx", "args": ["-y", "@anthropic/mcp-postgres"], "env": { "DATABASE_URL": "postgresql://username:password@localhost:5432/myapp" } } } }

第三步:重启 Trae(或重载窗口,Cmd+Shift+PDeveloper: Reload Window)。

第四步:打开 MCP 面板(底部状态栏有 MCP 图标),确认 Server 状态变成绿色:

┌─ MCP Servers ──────────────────┐ │ ● postgres 已连接 │ │ Tools: query, schema, migrate│ └────────────────────────────────┘

验证连接

在 Chat 模式下输入:

连接一下 PostgreSQL,列出 myapp 数据库的所有表。

如果配置正确,Trae 会自动调用 MCP Server 的 query 工具执行 SELECT table_name FROM information_schema.tables,并返回结果。

注意:第一次使用 MCP 工具时,Trae 会弹出确认对话框,询问你是否允许 AI 调用这个工具。这是安全机制的一部分——后面会详细讲。


04 可用 MCP Server 一览

MCP 生态正在快速成长。以下是 Trae 场景下最常用的几类 MCP Server:

数据库类

MCP Server连接目标暴露的工具
@anthropic/mcp-postgresPostgreSQLquery, schema, migrate, backup
@anthropic/mcp-sqliteSQLite 文件query, schema, analyze
@anthropic/mcp-mysqlMySQL/MariaDBquery, schema, dump
@anthropic/mcp-mongodbMongoDBfind, aggregate, collection_info
@anthropic/mcp-redisRedisget, set, keys, info

API 和云服务类

MCP Server连接目标暴露的工具
@anthropic/mcp-supabaseSupabase 项目query_table, manage_bucket, invoke_edge_function
@anthropic/mcp-githubGitHub APIlist_issues, create_pr, read_file, search_code
@anthropic/mcp-slackSlacksend_message, list_channels, search_history
@anthropic/mcp-vercelVerceldeploy, list_projects, inspect_deployment
@anthropic/mcp-awsAWS 服务s3_list, lambda_invoke, ec2_describe

文件和工具类

MCP Server连接目标暴露的工具
@anthropic/mcp-filesystem本地文件系统read_file, write_file, list_directory
@anthropic/mcp-gitGit 仓库commit, branch, diff, log
@anthropic/mcp-dockerDocker 引擎ps, exec, logs, compose_up
@anthropic/mcp-browser无头浏览器screenshot, evaluate, get_html

Trae 内置 MCP Server

Trae 在 2.1 版本之后,内置了几个常用的 MCP Server,开箱即用:

  • Trae File System:增强版文件操作(比标准文件系统多了项目感知)
  • Trae Terminal:安全的终端命令执行(受权限系统控制)
  • Trae Search:代码搜索和语义索引

重点提示:上表中的 @anthropic/mcp-* 前缀是社区命名惯例。MCP 生态是开放的,你也可以用任何语言(Node.js、Python、Go、Rust)自己写 MCP Server。


05 SOLO 模式下的 MCP:真正的自主

如果说 Chat 模式下 MCP 是”你让 AI 帮忙查一下数据库”,那 SOLO 模式下 MCP 就是 AI 自己规划任务并自主调用工具

SOLO + MCP 的工作流

假设你告诉 SOLO:

“帮我分析数据库性能瓶颈,给意见。”

在 SOLO 模式下,AI 会自动:

  1. 规划:拆解任务 → “需要查询慢查询日志” → “检查表大小和索引” → “分析连接数”
  2. 调用:依次调用 MCP 工具
    • postgres.query("SHOW SLOW QUERIES")
    • postgres.query("SELECT table_name, pg_size_pretty(...) FROM ...")
    • postgres.query("SELECT count(*) FROM pg_stat_activity")
  3. 分析:根据返回数据给出结论
  4. 执行:如果权限允许,可能需要创建索引 → 自动调用 postgres.query("CREATE INDEX ...")
  5. 验证:再次查询确认性能提升
  6. 汇报:汇总结果给你阅读

整个过程,SOLO 自主完成了 拆解 → 执行 → 分析 → 行动 → 验证 的闭环。

对比:Chat 模式 vs SOLO 模式调用 MCP

维度Chat 模式 + MCPSOLO 模式 + MCP
谁决定调用顺序你来指导AI 自主规划
调用前确认每次调工具都问你可以批量授权
多次工具编排你一步步给指令AI 自动串联
适合场景单次查询、调试复杂分析、自动运维
安全级别高(全程确认)中(基于信任层级)

心智模型:Chat + MCP 像你拿着遥控器指挥一个机器人——你说”左转”,它左转,你说”停”,它停。SOLO + MCP 像给了机器人一张地图和一个目的地——它自己规划路线,你只需要在关键路口说”行”或”不行”。


06 安全:MCP 的”守门”机制

MCP 的强大也带来了安全挑战——让 AI 直接操作数据库和 API 是一件需要谨慎对待的事情。Trae 设计了多层安全机制:

第一层:按 Server 授权

当你第一次启动一个 MCP Server 时,Trae 会询问:

MCP Server “postgres” 请求权限: ┌─────────────────────────────────────┐ │ ☑ 允许执行 SQL 查询 │ │ ☐ 允许修改数据(INSERT/UPDATE/DELETE)│ │ ☐ 允许修改表结构(CREATE/ALTER/DROP) │ │ │ │ [允许本次] [始终允许] [拒绝] │ └─────────────────────────────────────┘

你可以按操作粒度授权——只允许读取,不允许写入。

第二层:按模式区分权限

Trae 根据你当前所处的模式,默认有不同的安全策略:

模式默认安全策略行为
Chat严格每次调用工具都弹确认框
Builder中等允许自动调用只读工具,修改操作弹确认
SOLO信任层级在一个”信任任务”内,允许批量的工具调用

第三层:环境变量隔离

MCP 配置中的 env 字段是仅对 MCP Server 进程可见的。你的 .vscode/mcp.json 不要提交到 Git(或者用 .env 变量注入)。最佳实践:

{ "servers": { "postgres": { "type": "stdio", "command": "npx", "args": ["-y", "@anthropic/mcp-postgres"], "env": { "DATABASE_URL": "${DATABASE_URL}" } } } }

然后在 .env 文件中定义真实的数据库连接字符串,并把 .env 加入 .gitignore

第四层:手动断开

任何时候,你都可以在 MCP 面板中点 Disconnect 断开某个 Server。断开后 AI 无法再调用这个 Server 的任何工具,直到你重新连接。

安全黄金法则

给 MCP Server 的最小必要权限。不要用 root / superuser 连接。如果 AI 只需要读数据,就不要给写入权限。如果只需要查业务库,就连接只读副本而不是主库。

一个安全的示例配置:

{ "servers": { "postgres-readonly": { "type": "stdio", "command": "npx", "args": ["-y", "@anthropic/mcp-postgres"], "env": { "DATABASE_URL": "postgresql://readonly_user:password@read-replica:5432/myapp" } } } }

注意:MCP Server 本身的访问控制(谁可以执行什么 SQL)是由你连接的用户决定的。Trae 的 MCP 客户端层面只做调用确认,不做 SQL 拦截——所以正确配置数据库用户权限仍然是你的责任。


07 实战:PostgreSQL schema 管理 + SOLO

让我们做一个完整的实战案例:连接 PostgreSQL,让 SOLO 分析现有 schema、诊断问题、生成迁移计划

场景设定

你有一个电商应用数据库,包含 users、orders、products 三张表。你想让 SOLO 分析数据库设计,找出潜在的优化点,并生成迁移脚本。

步骤 1:配置 MCP Server

确保 .vscode/mcp.json 已经配置好 PostgreSQL MCP Server:

{ "servers": { "pg": { "type": "stdio", "command": "npx", "args": ["-y", "@anthropic/mcp-postgres"], "env": { "DATABASE_URL": "postgresql://analyzer:password@localhost:5432/ecommerce" } } } }

这里的 analyzer 用户只有 SELECT 权限——安全第一。

步骤 2:切换到 SOLO 模式

点击左上角模式切换器 → SOLO。在任务输入框中输入:

连接我们的电商数据库,分析所有表的 schema,找出索引缺失、外键漏配、或数据类型不合理的地方。生成一份优化报告。

步骤 3:SOLO 自主分析

SOLO 会做什么?

  1. 调用 pg.schema 获取所有表结构
  2. 调用 pg.query 检查索引状态

它在内部看到的数据类似这样:

Table: orders ├─ id (UUID, PK) ├─ user_id (UUID, NO INDEX → 发现问题) ├─ total (DECIMAL(10,2)) └─ status (VARCHAR(20), NO INDEX → 发现问题) Table: order_items ├─ id (UUID, PK) ├─ order_id (UUID, FK → 但 orders 表未定义外键约束) ├─ product_id (UUID, FK → 但 products 表未定义外键约束) └─ quantity (INTEGER)
  1. 生成报告
┌─────────── ecommerce 数据库优化报告 ──────────────────┐ │ │ │ 🔴 发现问题 3 个: │ │ │ │ 1. orders.user_id 缺少索引 │ │ 影响:按用户查询订单时全表扫描 │ │ 建议:CREATE INDEX idx_orders_user_id ON ... │ │ │ │ 2. orders.status 缺少索引 │ │ 影响:按状态过滤订单时全表扫描 │ │ 建议:CREATE INDEX idx_orders_status ON ... │ │ │ │ 3. order_items 缺少外键约束 │ │ 影响:可能产生孤儿数据 │ │ 建议:ALTER TABLE order_items ADD FOREIGN KEY ... │ │ │ │ 🟢 设计合理的地方: │ │ - users 表有 created_at 索引 │ │ - 金额字段使用 DECIMAL 而非 FLOAT(正确) │ │ ───────────────────────────────────────────────────── │ │ 优化后预期: │ │ - 用户订单查询:从 ~300ms 降至 ~5ms │ │ - 状态过滤查询:从 ~200ms 降至 ~2ms │ │ └─────────────────────────────────────────────────────┘
  1. 如果你确认,可以追加指令:
接受所有建议,生成迁移 SQL 脚本,写入到 migrations/optimize_001.sql 文件。

SOLO 会生成包含 CREATE INDEXALTER TABLE 的迁移脚本。

步骤 4:审核并执行

SOLO 完成迁移脚本后,仔细检查每一行 SQL。确认无误后,你可以手动连接到数据库执行,或者如果权限允许,让 SOLO 调用 MCP 的 migrate 工具直接执行。

整个过程,你只说了两句话——SOLO 做了:连接数据库 → 分析 schema → 诊断问题 → 生成报告 → 编写迁移脚本


08 MCP 生态与社区资源

MCP 的优势在于它的开放生态。除了官方工具,社区贡献了大量高质量的 MCP Server。

发现 MCP Server

值得关注的社区项目

项目功能语言
anthropic/mcp-servers官方维护的参考实现合集Python/TS
anthropic/mcp-filesystem安全文件系统操作Python
anthropic/mcp-githubGitHub API 集成Python
tursodatabase/mcp-server-tursoTurso/LibSQL 数据库TS
supabase/mcp-server-supabaseSupabase 项目管理和数据操作TS
n8n-io/n8n-mcp-servern8n 工作流自动化TS
block/gooseBlock(Square)开源的 MCP 框架Go
pocketbase/pocketbase-mcpPocketBase 集成Go

写一个自己的 MCP Server

MCP 协议非常简单。一个最小的 MCP Server 只需要几十行代码。这里展示一个 Node.js 版本的 Hello World:

import { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; const server = new Server( { name: "hello-world", version: "1.0.0" }, { capabilities: { tools: {} } } ); server.setRequestHandler("tools/list", async () => ({ tools: [{ name: "greet", description: "向用户打招呼", inputSchema: { type: "object", properties: { name: { type: "string" } } } }] })); server.setRequestHandler("tools/call", async (request) => { if (request.params.name === "greet") { const name = request.params.arguments?.name || "World"; return { content: [{ type: "text", text: `Hello, ${name}!` }] }; } throw new Error("Unknown tool"); }); const transport = new StdioServerTransport(); await server.connect(transport);

编译并运行后,在 .vscode/mcp.json 中配置即可被 Trae 发现和使用。


09 常见问题与调试

MCP Server 启动失败

检查 Trae 底部的 MCP 面板(状态栏右侧的 MCP 图标)。红色状态表示启动失败,点击可以看到错误日志。

常见原因:

  • command 指向的可执行文件不存在(试试全路径)
  • env 中的连接字符串格式错误
  • 环境变量中包含特殊字符没有正确转义

工具调用被拒绝

如果你在 Chat 模式下,每次调用工具都会弹确认框,这是正常行为。如果你希望在某个会话中减少提示,可以勾选”记住此次授权”。

如果确认框一直没有出现但工具也没返回,检查 SOLO/Build 模式下的权限层级是否有足够的工具访问权限。

连接超时

MCP Server 启动后默认有 60 秒的超时。如果数据库连接慢,可以在 env 中增加特定 Server 的 timeout 配置(视具体 MCP Server 的实现而定)。

重新加载配置

修改 .vscode/mcp.json 后,执行 Cmd+Shift+PTrae: Reload MCP Servers,不需要重启整个 IDE。


10 小结

关键问题答案
MCP 是什么AI 连接外部工具的标准协议,类似”USB 但给 AI 用”
配置文件在哪项目根目录 .vscode/mcp.json
最主要的用途连数据库、连 API、连文件系统
Trae 的 MCP 独特之处与 SOLO 模式深度集成,AI 可自主编排多个工具
安全怎么做最小权限原则、环境变量隔离、按模式分层确认
一个能直接上手的方向配置 PostgreSQL MCP Server → 让 SOLO 分析你的数据库 schema
哪里找更多 MCP ServerGitHub、mcp.so、官方 Server 仓库

MCP 将 Trae 从”一个会写代码的编辑器”变成了”一个能操作你整个基础设施的 AI 工程师”。它的能力上限取决于你接入了多少 MCP Server——连接一个数据库,AI 多一只眼睛;连接一个部署平台,AI 多一双手。

但记住:连接越多,责任越大。始终遵循最小权限原则,只给 AI 完成任务所需的最低访问权限。技术越强大,审慎越重要。


下一篇: 14 远程开发配置 —— 通过 SSH 连接远程服务器,在远程环境中使用 Trae 的全部 AI 能力。