文件与Git管理服务

一个提供文件和Git操作的服务,用于n8n工作流中的文件读写、Git版本控制及文件内容搜索。

  • by osamaloup
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 osamaloup/mcp-file-git-server

使用说明

MCP文件和Git管理器服务器

一个模型上下文协议(MCP)服务器,为n8n工作流提供文件和git操作。

特性

文件操作

  • read_file:读取文件内容
  • write_file:创建或更新文件
  • 列表文件:列出文件和目录(带递归选项)
  • 删除文件:删除文件或目录
  • create_directory:创建新目录

Git操作

  • git_status:检查存储库状态
  • git_add:提交阶段文件
  • git_提交:创建提交
  • git_push:推送到远程存储库
  • git_pull:从远程存储库中拉取
  • git_log:查看提交历史记录
  • 使用 git_diff:显示文件差异

搜索

  • search_in_files:在文件中搜索文本模式

快速开始

地方发展

# Install dependencies
npm install

# Build TypeScript
npm run build

# Start server
npm start

码头工人

# Build image
docker build -t mcp-file-git-server .

# Run container
docker run -d \
  --name mcp-file-git-server \
  -p 3001:3001 \
  -e PROJECT_ROOT=/workspace \
  -v /path/to/your/project:/workspace:rw \
  mcp-file-git-server

Docker Compose

添加到您的 docker-compose.yml:

services:
  mcp-server:
    build: ./mcp-file-git-server
    container_name: mcp-file-git-server
    environment:
      - PROJECT_ROOT=/workspace
      - PORT=3001
      - NODE_ENV=production
    ports:
      - "3001:3001"
    volumes:
      - /path/to/your/project:/workspace:rw
      - ~/.gitconfig:/root/.gitconfig:ro
      - ~/.ssh:/root/.ssh:ro
    networks:
      - n8n-traefik_default
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "wget", "-q", "--spider", "http://localhost:3001/health"]
      interval: 30s
      timeout: 10s
      retries: 3

配置

环境变量

  • PROJECT_ROOT:项目目录的路径(默认值: /workspace)
  • PORT:服务器端口(默认值: 3001)

端点

  • 健康检查: GET http://localhost:3001/health
  • SSE端点: POST http://localhost:3001/sse (适用于n8n节点mcp)
  • 消息端点: POST http://localhost:3001/message

n8n集成

在n8n中创建MCP凭据

  1. 首选 凭证 → 新
  2. 搜索 “MCP”
  3. 配置:
    • 运输: SSE (服务器发送的事件)
    • 统一资源定位符: http://mcp-file-git-server:3001/sse
  4. 保存

在工作流中使用

  1. 添加 MCP客户端 节点
  2. 选择您的MCP证书
  3. 选择操作(列表工具、调用工具等)
  4. 连接到 AI代理工具 通过 ai_tool 连接

测试

测试运行状况端点

curl http://localhost:3001/health

测试SSE端点

curl -X POST http://localhost:3001/sse \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

故障排除

权限不足

确保装载的项目目录具有正确的权限:

sudo chown -R $(id -u):$(id -g) /path/to/your/project

Git不工作

在项目目录中初始化git:

docker exec -it mcp-file-git-server sh
cd /workspace
git init
git config user.name "Your Name"
git config user.email "your@email.com"
exit

连接问题

检查Docker网络连接:

# From n8n container
docker exec -it n8n-traefik-n8n-1 sh
wget -O- http://mcp-file-git-server:3001/health
exit

许可证

麻省理工学院