Skip to main content
Glama
bbajor

MCPO - MCP over HTTP Proxy

by bbajor

MCPO - MCP over HTTP Proxy für Cursor

Ein MCP (Model Context Protocol) Server, der Cursor-Tools als HTTP-API bereitstellt und mit Open WebUI und n8n integriert werden kann.

Features

  • 🚀 MCP Server mit Cursor-Tools (codebase_search, file operations, etc.)

  • 🌐 HTTP-API via mcpo (MCP over HTTP Proxy)

  • 🐳 Podman/Docker Support für einfaches Deployment

  • 🔧 PowerShell Install-Script für Windows

  • 📡 Open WebUI Integration ready

  • 🔄 n8n kompatibel für Workflow-Automation

Quick Start

Windows (PowerShell)

# Installations-Script ausführen
.\mcpo_install.ps1

Das Script:

  1. Prüft Voraussetzungen (Podman, Node.js)

  2. Installiert Dependencies

  3. Startet Podman-Compose als Daemon

  4. MCP Server ist unter http://localhost:8000 verfügbar

Manuell

# 1. Dependencies installieren
npm install

# 2. Environment konfigurieren
cp .env.example .env
# .env bearbeiten und API-Keys setzen

# 3. Mit Podman starten
podman-compose up -d

# 4. Status prüfen
podman-compose ps

Konfiguration

Environment Variables

Kopiere .env.example nach .env und passe an:

# MCPO Configuration
MCPO_PORT=8000
MCPO_API_KEY=dein-geheimer-api-key-hier

# Workspace (wird als Volume gemountet)
WORKSPACE_PATH=D:\workspace\pvs

# MCP Server
MCP_SERVER_NAME=cursor-mcp
MCP_SERVER_VERSION=1.0.0

API-Key generieren

# PowerShell: Zufälligen API-Key generieren
-join ((48..57) + (65..90) + (97..122) | Get-Random -Count 32 | ForEach-Object {[char]$_})

Verwendung

API-Endpunkte

Nach dem Start:

  • API Base: http://localhost:8000

  • OpenAPI Docs: http://localhost:8000/docs

  • Health Check: http://localhost:8000/health

Open WebUI Integration

  1. Open WebUI → Admin → Settings → External Tools

  2. MCP Server hinzufügen:

    • Type: MCP (Streamable HTTP)

    • URL: http://localhost:8000 (oder Docker-Hostname)

    • API Key: Wert aus MCPO_API_KEY in .env

  3. Tools aktivieren und speichern

n8n Integration

HTTP Request Node in n8n:

{
  "method": "POST",
  "url": "http://localhost:8000/api/tools/codebase_search",
  "headers": {
    "Authorization": "Bearer DEIN_API_KEY",
    "Content-Type": "application/json"
  },
  "body": {
    "query": "Wie funktioniert die Patient-Suche?",
    "target_directories": []
  }
}

Verfügbare Tools

Semantische Suche im Codebase.

Input:

{
  "query": "Wie wird die Patient-Suche implementiert?",
  "target_directories": ["src/main/java"]
}

file_read

Liest Dateien aus dem Workspace.

Input:

{
  "path": "src/main/java/de/bbajor/pvs/patient/service/PatientService.java"
}

file_list

Listet Verzeichnisinhalte.

Input:

{
  "directory": "src/main/java",
  "recursive": false
}

Entwicklung

Lokale Entwicklung (ohne Docker)

# 1. Node.js Dependencies
npm install

# 2. MCP Server starten
node cursor-mcp-server.js

# 3. In anderem Terminal: mcpo starten
uvx mcpo --port 8000 --api-key "test-key" -- node cursor-mcp-server.js

Logs ansehen

# Podman-Compose Logs
podman-compose logs -f mcp-cursor-proxy

# Nur MCP Server Logs
podman-compose logs -f mcp-server

Container neu bauen

podman-compose build --no-cache
podman-compose up -d

Troubleshooting

Port bereits belegt

# Prüfen, was Port 8000 nutzt
netstat -ano | findstr :8000

# In .env anderen Port setzen (z.B. 8001)

Podman nicht gefunden

# Prüfen, ob Podman installiert ist
podman --version

# Falls nicht: Podman Desktop installieren
# https://podman-desktop.io/

MCP Server startet nicht

# Logs prüfen
podman-compose logs mcp-server

# Container-Shell öffnen
podman-compose exec mcp-server sh

# Manuell testen
node cursor-mcp-server.js

Projekt-Struktur

mcpo/
├── cursor-mcp-server.js    # MCP Server (Node.js)
├── package.json            # Node.js Dependencies
├── Dockerfile              # MCP Server Container
├── podman-compose.yml      # Podman-Compose Config
├── mcpo_install.ps1        # Installations-Script
├── .env.example            # Environment Template
├── .gitignore
└── README.md

Lizenz

MIT License - siehe LICENSE Datei (falls vorhanden)

Beitragen

PRs sind willkommen! Bitte:

  1. Fork erstellen

  2. Feature-Branch (cursor/feature/mein-feature)

  3. Commit & Push

  4. PR gegen main erstellen

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bbajor/mcpo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server