前言
MCP(Model Context Protocol)是 Anthropic 推出的开放协议,让 AI 模型能够直接调用本地文件、数据库、浏览器等工具。相比传统 API 调用,MCP 实现了双向实时通信,AI 不再只是被动回答问题,而是能主动操作你的开发环境。
本教程手把手教你从零搭建 MCP 服务,让 Claude、Cursor 等 AI 工具直接操作你的本地资源。
前置条件
- 已安装 Node.js 18+ 或 Python 3.10+
- 使用 Claude Desktop、Cursor 或支持 MCP 的 AI 编辑器
- 基本的命令行操作能力
- 一台能联网的电脑(Windows/macOS/Linux 均可)
步骤一:安装 MCP 框架
以 Node.js 环境为例,全局安装 MCP SDK:
- npm install -g @anthropic/mcp
复制代码
验证安装:
- mcp --version
- # 应显示版本号,如 1.2.3
复制代码
步骤二:创建你的第一个 MCP 服务
新建项目目录并初始化:
- mkdir my-mcp-server && cd my-mcp-server
- npm init -y
- npm install @anthropic/mcp
复制代码
创建 server.js:
- const { Server } = require('@anthropic/mcp');
- const server = new Server({
- name: 'file-tools',
- version: '1.0.0'
- });
- // 注册一个读取文件的工具
- server.registerTool('readFile', {
- description: '读取本地文件内容',
- parameters: {
- type: 'object',
- properties: {
- path: { type: 'string', description: '文件绝对路径' }
- },
- required: ['path']
- }
- }, async ({ path }) => {
- const fs = require('fs');
- const content = fs.readFileSync(path, 'utf-8');
- return { content };
- });
- // 注册一个执行命令的工具
- server.registerTool('runCommand', {
- description: '执行本地 shell 命令',
- parameters: {
- type: 'object',
- properties: {
- command: { type: 'string', description: '要执行的命令' }
- },
- required: ['command']
- }
- }, async ({ command }) => {
- const { execSync } = require('child_process');
- const output = execSync(command, { encoding: 'utf-8' });
- return { output };
- });
- server.listen();
- console.log('MCP 服务已启动,等待 AI 连接...');
复制代码
启动服务:
步骤三:配置 AI 客户端连接 MCP
以 Claude Desktop 为例,编辑配置文件:
macOS:- ~/Library/Application Support/Claude/claude_desktop_config.json
复制代码
Windows:- %APPDATA%/Claude/claude_desktop_config.json
复制代码
添加 MCP 服务配置:
- {
- "mcpServers": {
- "file-tools": {
- "command": "node",
- "args": ["/absolute/path/to/my-mcp-server/server.js"]
- }
- }
- }
复制代码
重启 Claude Desktop,在输入框右侧会出现工具图标,表示 MCP 连接成功。
步骤四:实际使用演示
现在你可以对 Claude 说:
请读取我的 package.json 文件,然后运行 npm list 查看依赖树
Claude 会自动调用你注册的 readFile 和 runCommand 工具,无需你手动复制粘贴。
进阶示例:让 AI 帮你分析代码
- // 在 server.js 中新增工具
- server.registerTool('analyzeCode', {
- description: '分析代码文件并返回复杂度评估',
- parameters: {
- type: 'object',
- properties: {
- path: { type: 'string', description: '代码文件路径' }
- },
- required: ['path']
- }
- }, async ({ path }) => {
- const fs = require('fs');
- const code = fs.readFileSync(path, 'utf-8');
- const lines = code.split('\n').length;
- const functions = (code.match(/function|=>/g) || []).length;
- return {
- lines,
- functions,
- complexity: functions > 20 ? '高' : functions > 10 ? '中' : '低',
- suggestion: lines > 300 ? '建议拆分模块' : '代码结构良好'
- };
- });
复制代码
常见问题
Q1:提示 "MCP 服务连接失败" 怎么办?
- 检查 server.js 中的路径是否为绝对路径
- 确认 Node.js 版本 >= 18
- 查看 Claude Desktop 日志排查具体错误
Q2:如何限制 AI 的权限,防止误操作?
- 在工具实现中添加白名单校验
- 对敏感操作(如 rm、format)增加二次确认
- 使用只读权限运行 MCP 服务
Q3:Python 用户如何接入?
- 安装 Python MCP SDK:
- API 与 Node.js 版本完全一致,参考官方文档即可
Q4:支持哪些 AI 客户端?
- Claude Desktop(官方支持最完善)
- Cursor(需开启实验性功能)
- VS Code + Cline 插件
- 任何支持 stdio 传输的 MCP 客户端
总结
MCP 协议正在重塑 AI 与本地环境的交互方式。通过本教程,你已经学会:
- 安装和配置 MCP 框架
- 创建自定义工具服务
- 连接 Claude Desktop 等 AI 客户端
- 实现文件读取、命令执行等实用功能
下一步建议:尝试接入数据库查询、Git 操作、Docker 管理等更多工具,打造属于你的 AI 超级助手。
参考资源
- MCP 官方文档:https://modelcontextprotocol.io
- Anthropic 开发者博客
- GitHub: anthropic/mcp
发布于 2026-06-23,如遇到问题欢迎在评论区交流。 |