哈喽各位TRAE小伙伴!
相信很多同学在用TRAE时,都会遇到需要操作SQL Server数据库的场景——手动写SQL繁琐又容易出错,尤其是面对复杂查询时,耗时又费力。
今天就给大家带来一份超详细的实战技巧,手把手教你在TRAE中启用MSSQL MCP服务,只需用自然语言描述需求,就能让TRAE自动执行SQL查询、增删改操作,大幅提升开发和办公效率,新手也能轻松上手!![]()
话不多说,直接上干货,全程实操无废话,跟着做就能成功启用~
一、前言(为什么要启用MSSQL MCP服务?)
TRAE的MCP(Model Context Protocol)服务就像是它的“外挂插件系统”,能让TRAE连接各类工具和服务,拓展更多实用功能。而启用MSSQL MCP服务后,我们无需手动编写SQL语句,只要用自然语言和TRAE对话,比如“查询某数据库的用户信息”“创建一张新表”,TRAE就能自动调用工具执行对应操作,尤其适合经常和SQL Server打交道的小伙伴,能省不少时间!
本文整理了完整的启用流程,从环境准备、核心配置到常见问题排查,全部清晰说明,确保大家能一次成功,顺利实现自然语言与SQL Server的无缝交互。
二、环境准备(必看!缺一不可)
在开始配置前,先确认以下环境已准备到位,避免后续踩坑:
-
Node.js环境:请确保已安装Node.js(推荐v18+版本),并配置好环境变量(安装后可在终端输入node -v验证是否生效)。
-
SQL Server实例:拥有本地或远程的SQL Server实例(本文以通用示例SQLSERVER-INSTANCE为例),必须启用“混合认证模式”,同时确保sa账号可用(后续用于数据库连接)。
-
MCP服务目录:创建一个专门的服务目录,用于存放MSSQL MCP服务的代码和依赖,示例路径:D:\Trae\mcps\mssql_mcp_server(可根据自己的电脑路径调整)。
三、核心配置步骤(全程实操,一步不落)
步骤1:初始化Node.js项目,安装依赖
打开终端(建议用PowerShell),切换到我们刚才创建的MCP服务目录,执行以下命令,完成项目初始化和依赖安装,全程自动完成,耐心等待即可:
cd "D:\Trae\mcps\mssql_mcp_server"
npm init -y
npm install @modelcontextprotocol/sdk mssql
步骤2:编写MCP stdio协议版服务代码
在服务目录下,创建一个名为server.js的文件(注意文件名不能错),复制以下代码粘贴进去即可。这份代码是适配TRAE客户端的stdio协议版本,已优化配置逻辑,无需修改核心代码,后续只需在TRAE中配置环境变量即可。
const { Server } = require('@modelcontextprotocol/sdk/server/index.js');
const { StdioServerTransport } = require('@modelcontextprotocol/sdk/server/stdio.js');
const {
CallToolRequestSchema,
ListToolsRequestSchema,
} = require('@modelcontextprotocol/sdk/types.js');
const sql = require('mssql');
// 从环境变量读取数据库配置(后续在TRAE中配置,无需修改此处)
const config = {
server: process.env.MSSQL_SERVER || 'localhost',
port: parseInt(process.env.MSSQL_PORT || '1433'),
database: process.env.MSSQL_DATABASE || 'master',
user: process.env.MSSQL_USER || 'sa',
password: process.env.MSSQL_PASSWORD || '',
options: {
encrypt: process.env.MSSQL_ENCRYPT === 'true',
trustServerCertificate: process.env.MSSQL_TRUST_SERVER_CERTIFICATE === 'true',
connectTimeout: 10000
}
};
// 创建MCP服务器
const server = new Server(
{
name: 'mssql-mcp',
version: '1.0.0',
},
{
capabilities: {
tools: {},
},
}
);
// 定义可用工具(TRAE可调用的SQL操作功能)
server.setRequestHandler(ListToolsRequestSchema, async () => {
return {
tools: [
{
name: 'query_sql',
description: '执行SQL查询并返回结果集(适合查询数据,如查询用户、订单信息)',
inputSchema: {
type: 'object',
properties: {
sql: {
type: 'string',
description: '要执行的SQL查询语句',
},
},
required: ['sql'],
},
},
{
name: 'execute_sql',
description: '执行SQL命令(适合增删改操作,如创建表、插入数据、删除记录)',
inputSchema: {
type: 'object',
properties: {
sql: {
type: 'string',
description: '要执行的SQL命令',
},
},
required: ['sql'],
},
},
],
};
});
// 处理TRAE的工具调用请求(核心逻辑,无需修改)
server.setRequestHandler(CallToolRequestSchema, async (request) => {
try {
const { name, arguments: args } = request.params;
if (!args.sql) {
throw new Error('缺少参数:sql,请确保输入正确的SQL语句');
}
await sql.connect(config);
// 处理查询请求
if (name === 'query_sql') {
const result = await sql.query(args.sql);
await sql.close();
return {
content: [{ type: 'text', text: JSON.stringify({ success: true, data: result.recordset }, null, 2) }],
};
}
// 处理增删改请求
else if (name === 'execute_sql') {
const result = await sql.query(args.sql);
await sql.close();
return {
content: [{ type: 'text', text: JSON.stringify({ success: true, rows_affected: result.rowsAffected[0] }, null, 2) }],
};
}
// 未知工具处理
else {
throw new Error(`未知工具:${name},请确认工具名称是否正确`);
}
} catch (err) {
return {
content: [{ type: 'text', text: `错误:${err.message}` }],
isError: true,
};
} finally {
await sql.close(); // 确保数据库连接关闭,避免占用资源
}
});
// 启动MCP服务(stdio模式,适配TRAE客户端)
async function main() {
const transport = new StdioServerTransport();
await server.connect(transport);
}
main().catch((err) => {
console.error('MSSQL MCP服务启动失败:', err);
process.exit(1);
});
步骤3:在TRAE中配置MCP服务
这一步是关键,配置正确才能让TRAE识别并启用MSSQL MCP服务,操作如下:
-
打开TRAE,找到MCP服务管理面板,点击“添加服务”;
-
按照以下配置填写(重点核对路径和环境变量,避免出错):
-
命令:node
-
参数:[“D:\\Trae\\mcps\\mssql_mcp_server\\server.js”](注意路径要和你创建的服务目录一致,双反斜杠不能少)
-
环境变量:复制以下JSON,替换其中的示例值为你的实际数据库配置(如服务器地址、数据库名、sa密码):
{
"MSSQL_SERVER": "SQLSERVER-INSTANCE", // 你的SQL Server实例名称
"MSSQL_PORT": "1433", // 数据库端口,默认1433
"MSSQL_DATABASE": "DEFAULT_DB", // 要连接的数据库名称
"MSSQL_USER": "sa", // 数据库登录账号(默认sa)
"MSSQL_PASSWORD": "YourStrongPassword123!", // 你的sa密码
"MSSQL_ENCRYPT": "false", // 本地数据库建议设为false
"MSSQL_TRUST_SERVER_CERTIFICATE": "true" // 跳过本地证书验证,避免连接失败
}
-
-
填写完成后,保存配置,进入下一步验证。
步骤4:启动并验证服务(确认是否成功)
配置完成后,按照以下步骤验证服务是否正常启用,避免后续无法使用:
-
清理残留进程:打开PowerShell,执行以下命令,终止之前可能残留的node进程(避免端口占用):
taskkill /F /IM node.exe -
重启TRAE,回到MCP服务面板,等待1-2分钟,面板会从「准备中」变为「已就绪」(显示绿色对勾),说明服务启动成功;
-
测试调用:在TRAE聊天框中输入自然语言指令,比如“查询DEFAULT_DB数据库中SQL Server的版本”,TRAE会自动调用query_sql工具执行SQL,返回查询结果,就说明配置完全没问题啦!
四、常见问题及解决方案(避坑必备)
相信很多同学在配置过程中会遇到一些小问题,这里整理了4个最常见的问题,附上详细解决方案,帮大家快速排查,少走弯路:
1. 端口占用(EADDRINUSE)
-
现象:启动服务时报错“listen EADDRINUSE: address already in use”,提示端口被占用;
-
解决方案:
-
方法1:终止占用端口的进程,执行命令“taskkill /F /PID <占用进程PID>”(PID可通过任务管理器查看);
-
方法2:若不想终止进程,可参考HTTP版逻辑,在代码中添加自动检测空闲端口的功能(适合有一定代码基础的同学)。
-
2. 数据库连接失败(ELOGIN)
-
现象:sa账号登录失败,错误信息为“用户’sa’ 登录失败”;
-
解决方案:
-
确认SQL Server已启用「混合认证模式」(打开SSMS,右键服务器→属性→安全性,勾选“SQL Server和Windows身份验证模式”);
-
核对sa密码,确保和TRAE环境变量中配置的密码一致,避免输入错误;
-
确保环境变量中“MSSQL_TRUST_SERVER_CERTIFICATE”设为“true”,跳过本地证书验证(本地数据库必设)。
-
3. JSON解析错误(Unexpected token)
-
现象:MCP客户端报错“Unexpected token ‘�’, “
开始测试数据库连接…” is not valid JSON”; -
解决方案:
-
删除server.js中所有的console.log、console.error等控制台日志(非JSON格式的输出会导致TRAE解析失败);
-
确保服务端输出仅为MCP协议所需的JSON消息,不要添加任何多余的打印内容。
-
4. MCP面板一直显示“准备中”
-
现象:重启TRAE后,MCP服务面板一直显示「准备中」,无任何响应;
-
解决方案:
-
核心原因:使用了HTTP版服务代码,与TRAE的MCP stdio协议不兼容(很多同学会踩这个坑);
-
最终方案:直接使用本文提供的stdio协议版server.js代码,通过标准输入输出与TRAE通信,替换后重启TRAE即可解决。
-
五、使用技巧(提升效率,避坑指南)
服务启用成功后,分享几个实用小技巧,帮大家更好地利用MSSQL MCP服务,提升使用体验:
-
查询数据:在TRAE中直接输入自然语言,比如“帮我查询DEFAULT_DB数据库中所有用户的信息”“查询近30天的订单数据”,TRAE会自动调用query_sql工具,生成并执行SQL,返回结构化结果;
-
执行命令:输入“在DEFAULT_DB中创建新表TestTable,包含ID(主键)和Name字段”“删除TestTable中ID为1的记录”,TRAE会调用execute_sql工具执行对应操作,无需手动写SQL;
-
注意事项:
-
SQL语句会自动生成,但建议复杂操作前,先让TRAE展示生成的SQL,确认无误后再执行,避免误操作;
-
敏感操作(如删除数据、修改表结构),建议提前备份数据库,防止数据丢失;
-
确保数据库配置信息安全,不要随意分享包含sa密码的环境变量配置。
-
六、总结与互动
以上就是在TRAE中启用MSSQL MCP服务的完整流程啦!其实操作并不复杂,核心就是3步:准备环境→配置代码→在TRAE中设置服务,只要按照步骤来,新手也能一次成功。
启用后,大家就能彻底摆脱手动写SQL的麻烦,用自然语言就能操控SQL Server,不管是日常开发还是办公查询,都能节省大量时间,这也是TRAE提升效率的核心技巧之一。
最后,欢迎大家在评论区交流互动![]()
-
你在配置过程中遇到了什么问题?
-
还有哪些TRAE MCP服务的实用技巧?
-
你平时用TRAE做什么场景的开发或办公?
一起交流学习,让更多人掌握TRAE的实用技巧,解锁更多高效玩法~![]()
#技巧分享 #TRAE实用技巧 #MSSQL操作技巧