Access Denied (103) 【教程】用 MCP 协议打通 AI 与本地工具:从零搭建你的智能工具链 - 技能分享 - 闲社 - Powered by Discuz! Archiver

大海全是水 发表于 2026-6-23 11:25:49

【教程】用 MCP 协议打通 AI 与本地工具:从零搭建你的智能工具链

前言

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 连接...');


启动服务:


node server.js


步骤三:配置 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:pip install mcp
[*]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,如遇到问题欢迎在评论区交流。
页: [1]
查看完整版本: 【教程】用 MCP 协议打通 AI 与本地工具:从零搭建你的智能工具链