内容
# n8n API MCP Server
一个旨在与自托管的 n8n 实例交互的模型上下文协议 (MCP) 服务器。
该服务器提供以下工具:
- 执行对 n8n API 的调用。
- 使用从 OpenAPI 规范填充的本地数据库搜索 n8n API 端点。
- 使用“快速内存”数据库存储和检索常用或成功的 API 调用,以便更快地进行自然语言访问。
## 特性
### 数据库
- **API 规范数据库 (`api_spec.db`):** 存储有关 n8n API 端点的详细信息,这些信息是从 OpenAPI/Swagger JSON 文件加载的。由搜索和详细工具使用。
- **快速内存数据库 (`fast_memory.db`):** 缓存与自然语言查询相关联的成功 API 调用。允许快速检索先前使用的调用,并建议保存新的成功调用。
### 工具
- **`search_api_endpoints`**:在本地 API 规范数据库中搜索与查询(路径、摘要、描述、标签)匹配的端点。
- **`get_api_endpoint_details`**:从本地 API 规范数据库中检索特定端点(路径和方法)的详细信息(参数、请求体、响应)。
- **`execute_api_call`**:对配置的 n8n 实例执行 API 调用。首先检查快速内存;如果未找到,则在成功后提示保存调用到快速内存。
- **`natural_language_api_search`**:使用自然语言搜索 API 调用。首先检查快速内存,然后根据查询回退到搜索 API 规范数据库。
- **`save_to_fast_memory`**:手动将 API 调用(路径、方法、参数、数据)及其原始自然语言查询和描述保存到快速内存数据库。
- **`list_fast_memory`**:列出当前存储在快速内存数据库中的条目,可以选择按搜索词过滤。
- **`delete_from_fast_memory`**:通过 ID 从快速内存数据库中删除特定条目。
- **`clear_fast_memory`**:从快速内存数据库中删除所有条目。
- **`load_api_spec_from_json`**:通过解析 OpenAPI/Swagger JSON 文件加载或更新 API 规范数据库 (`api_spec.db`)。
- **`send_raw_api_request`**:使用原始请求字符串(例如,“GET /workflows?limit=5”)执行 API 调用。使用与 `execute_api_call` 相同的底层逻辑,包括快速内存检查和保存提示。
## 设置
1. **克隆仓库:**
```bash
git clone https://github.com/jasondsmith72/N8N-api-MCP.git
cd N8N-api-MCP
```
2. **安装依赖:**
```bash
npm install
```
3. **构建服务器:**
```bash
npm run build
```
这会将 TypeScript 代码编译为 `build` 目录中的 JavaScript。
## 配置
该服务器需要环境变量以连接到您的 n8n 实例。这些通常在您的 MCP 客户端配置文件中设置(例如,`cline_mcp_settings.json`)。
- **`N8N_URL`**:您的 n8n 实例的基本 URL(例如,`http://your-n8n.example.com`)。如果未设置,则默认为 `http://localhost:5678`。
- **`N8N_API_KEY`**:您的 n8n API 密钥,用于身份验证。
## 加载 API 规范
在使用搜索工具(`search_api_endpoints`,`natural_language_api_search`)之前,您需要填充 API 规范数据库。
1. 获取您 n8n 版本的 OpenAPI (Swagger) JSON 规范文件。该文件可能可以从 n8n 文档中获得,或者可能可以从您的实例下载(例如,`/api/v1/docs-json`)。
2. 使用 `load_api_spec_from_json` 工具,提供下载的 JSON 文件的绝对路径:
```
load_api_spec_from_json(json_file_path="C:\\path\\to\\your\\n8n-openapi.json")
```
## Cline / Claude Desktop 的安装
将以下配置添加到您的 `cline_mcp_settings.json` 中(根据您的克隆位置调整 `index.js` 的路径):
```json
{
"mcpServers": {
"... other servers ...": {},
"n8n-api-mcp": {
"command": "node",
"args": [
"C:\\MCP-Servers\\N8N-api-MCP\\build\\index.js" // <-- 如有需要,请更新此路径
],
"env": {
"N8N_URL": "YOUR_N8N_INSTANCE_URL", // 例如,"http://192.168.1.100:5678"
"N8N_API_KEY": "YOUR_N8N_API_KEY_HERE"
},
"disabled": false,
"autoApprove": []
}
}
}
```
*(记得将 `YOUR_N8N_INSTANCE_URL` 和 `YOUR_N8N_API_KEY_HERE` 替换为您的实际值)*
## 开发
用于开发的自动重建文件更改:
```bash
npm run watch
```
### 调试
使用 [MCP Inspector](https://github.com/modelcontextprotocol/inspector) 进行更轻松的调试:
```bash
npm run inspector
```
Inspector 提供了一个 Web 界面来查看 MCP 通信。