Skip to content

osamaloup/mcp-file-git-server

Repository files navigation

MCP File & Git Manager Server

A Model Context Protocol (MCP) server that provides file and git operations for n8n workflows.

Features

File Operations

  • read_file: Read file contents
  • write_file: Create or update files
  • list_files: List files and directories (with recursive option)
  • delete_file: Delete files or directories
  • create_directory: Create new directories

Git Operations

  • git_status: Check repository status
  • git_add: Stage files for commit
  • git_commit: Create commits
  • git_push: Push to remote repository
  • git_pull: Pull from remote repository
  • git_log: View commit history
  • git_diff: Show file differences

Search

  • search_in_files: Search for text patterns in files

Quick Start

Local Development

# Install dependencies
npm install

# Build TypeScript
npm run build

# Start server
npm start

Docker

# 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

Add to your 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

Configuration

Environment Variables

  • PROJECT_ROOT: Path to project directory (default: /workspace)
  • PORT: Server port (default: 3001)

Endpoints

  • Health Check: GET http://localhost:3001/health
  • SSE Endpoint: POST http://localhost:3001/sse (for n8n-nodes-mcp)
  • Message Endpoint: POST http://localhost:3001/message

n8n Integration

Create MCP Credential in n8n

  1. Go to CredentialsNew
  2. Search for "MCP"
  3. Configure:
    • Transport: SSE (Server-Sent Events)
    • URL: http://mcp-file-git-server:3001/sse
  4. Save

Use in Workflow

  1. Add MCP Client node
  2. Select your MCP credential
  3. Choose operation (List Tools, Call Tool, etc.)
  4. Connect to AI Agent Tool via ai_tool connection

Testing

Test Health Endpoint

curl http://localhost:3001/health

Test SSE Endpoint

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

Troubleshooting

Permission Denied

Ensure the mounted project directory has correct permissions:

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

Git Not Working

Initialize git in the project directory:

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

Connection Issues

Check Docker network connectivity:

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

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published