Appearance
OpenClaw MCP工具接入指南:扩展AI能力边界
MCP(Model Context Protocol)是一种标准化的工具接入协议,让AI模型能够安全地调用外部工具和服务。OpenClaw支持MCP协议,可以轻松接入各种强大的工具。
什么是MCP
MCP是一个开放协议,定义了AI模型与外部工具之间的通信标准:
- 标准化接口:统一的工具定义和调用方式
- 安全可控:工具权限可精细控制
- 跨平台兼容:支持多种AI模型和工具
- 易于扩展:社区贡献丰富的工具生态
MCP的核心概念
| 概念 | 说明 |
|---|---|
| Tool | 工具,提供具体功能 |
| Resource | 资源,可读取的数据源 |
| Prompt | 提示词模板 |
| Server | MCP服务器,提供工具服务 |
| Client | MCP客户端,调用工具服务 |
第一步:了解MCP工具生态
官方工具库
OpenClaw内置支持多种MCP工具:
| 工具名称 | 功能描述 |
|---|---|
| filesystem | 文件系统操作 |
| web-search | 网络搜索 |
| database | 数据库查询 |
| git | Git操作 |
| http | HTTP请求 |
| shell | Shell命令执行 |
社区工具
社区贡献了丰富的MCP工具:
- Playwright:浏览器自动化
- Slack:Slack集成
- GitHub:GitHub操作
- Google Drive:云盘操作
- Notion:笔记管理
第二步:安装MCP服务器
方式一:通过OpenClaw设置安装
- 打开「设置」→「MCP工具」
- 点击「添加工具」
- 搜索或粘贴工具地址
- 点击「安装」
方式二:手动配置
编辑OpenClaw的MCP配置文件:
json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/dir"]
},
"web-search": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-web-search"],
"env": {
"SEARCH_API_KEY": "your-api-key"
}
}
}
}方式三:从源码安装
bash
# 克隆MCP服务器仓库
git clone https://github.com/example/mcp-server-example
# 进入目录
cd mcp-server-example
# 安装依赖
npm install
# 构建项目
npm run build
# 在OpenClaw中配置路径第三步:配置MCP工具
基本配置结构
json
{
"mcpServers": {
"工具名称": {
"command": "执行命令",
"args": ["参数列表"],
"env": {
"环境变量": "值"
}
}
}
}常用工具配置示例
文件系统工具
json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/home/user/projects"
]
}
}
}GitHub工具
json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "ghp_xxxxxxxxxxxx"
}
}
}
}数据库工具
json
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost:5432/db"
}
}
}
}第四步:使用MCP工具
在对话中调用
安装MCP工具后,OpenClaw会自动识别可用工具:
用户:帮我搜索一下最新的AI新闻
OpenClaw:我将使用web-search工具为您搜索...
[调用web-search工具]
找到以下最新AI新闻...查看可用工具
在OpenClaw中输入:
/list-tools或点击界面上的工具图标查看所有可用工具。
工具权限管理
某些工具需要用户确认:
yaml
tool_permissions:
filesystem:
auto_approve: false # 需要用户确认
allowed_paths:
- "/home/user/projects"
web-search:
auto_approve: true # 自动批准
shell:
auto_approve: false
allowed_commands:
- "ls"
- "cat"第五步:开发自定义MCP工具
工具开发基础
创建一个简单的MCP工具:
typescript
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server(
{ name: "my-tool", version: "1.0.0" },
{ capabilities: { tools: {} } }
);
// 定义工具
server.setRequestHandler(ListToolsRequestSchema, async () => {
return {
tools: [
{
name: "hello",
description: "打招呼工具",
inputSchema: {
type: "object",
properties: {
name: { type: "string", description: "名字" }
},
required: ["name"]
}
}
]
};
});
// 处理工具调用
server.setRequestHandler(CallToolRequestSchema, async (request) => {
if (request.params.name === "hello") {
const name = request.params.arguments.name;
return {
content: [{ type: "text", text: `你好,${name}!` }]
};
}
});
// 启动服务器
const transport = new StdioServerTransport();
await server.connect(transport);工具开发最佳实践
- 清晰的描述:为工具和参数提供详细说明
- 参数验证:严格验证输入参数
- 错误处理:优雅处理各种错误情况
- 安全考虑:避免危险操作,限制权限范围
第六步:高级配置
工具组合
多个工具可以组合使用:
用户:帮我分析这个GitHub仓库的代码质量
OpenClaw:
1. 使用github工具获取仓库信息
2. 使用filesystem工具克隆代码
3. 使用代码分析工具进行检查
4. 生成分析报告条件触发
配置工具的触发条件:
yaml
tool_triggers:
- tool: "web-search"
conditions:
- "消息包含'搜索'"
- "消息包含'查找'"
- tool: "filesystem"
conditions:
- "消息包含'文件'"
- "消息包含'目录'"工具链
定义工具调用链:
yaml
tool_chains:
- name: "代码审查流程"
steps:
- tool: "git"
action: "获取最新代码"
- tool: "linter"
action: "代码检查"
- tool: "ai-review"
action: "AI审查"常见问题
Q: 工具安装失败?
检查:
- Node.js版本是否满足要求
- 网络连接是否正常
- npm包名是否正确
- 是否有足够的权限
Q: 工具调用超时?
调整超时设置:
json
{
"mcpServers": {
"slow-tool": {
"command": "...",
"timeout": 60000
}
}
}Q: 如何调试MCP工具?
启用调试日志:
json
{
"mcpServers": {
"my-tool": {
"command": "...",
"debug": true,
"logFile": "/path/to/log.txt"
}
}
}安全注意事项
1. 限制文件访问
只允许访问特定目录:
json
{
"args": ["@modelcontextprotocol/server-filesystem", "/safe/directory"]
}2. 敏感信息保护
不要在配置中硬编码密钥,使用环境变量:
json
{
"env": {
"API_KEY": "${API_KEY}"
}
}3. 权限最小化
只授予工具必要的最小权限。
4. 定期审计
定期检查已安装的工具和权限设置。
总结
通过本指南,你已经学会了:
- MCP协议的基本概念
- 安装和配置MCP工具
- 在OpenClaw中使用MCP工具
- 开发自定义MCP工具
- 安全注意事项
MCP工具极大扩展了OpenClaw的能力边界,让AI可以安全地访问外部资源和服务。建议从官方工具开始,逐步探索社区生态,最终开发适合自己需求的工具。
