Skip to main content
Glama

mcp-prov

n8n(Metrotelのプロビジョニングインスタンス)内の既存のMCPサーバーをラップするPython製のローカルMCPプロキシ。バックエンドに触れることなく、キャッシュロギング診断用複合ツール独自のBearer認証を追加します。

Docker Hubイメージ: metrotel/mcp-prov

  • 🌐 stdio(Claude Code / 組み込みクライアント)またはHTTP(Claude Desktopなど)で通信

  • 🔐 アップストリームトークンを分離:クライアントに漏れることはありません

  • ⚡ 冪等な読み取り用のインメモリキャッシュ60秒(env varで設定)

  • 📝 各ツール呼び出しのJSON-linesログ(toolargscachedduration_mserror

  • 🛠 アップストリームの32ツール + 複合ツールdiagnostico_completoを公開

  • ♻️ アップストリームがセッションを閉じた場合に再初期化(n8n MCPの既知のバグ)

  • 🚀 デプロイ: Docker / Docker Swarm / Kubernetes / systemdユーザーユニット / スタンドアロンPython

  • 💾 永続ログ用の/dataボリューム(将来のキャッシュも)

存在理由

Metrotelのn8nフローに組み込まれたMCPサーバーは、一定時間非アクティブになるとlong-poll SSEを閉じ、mcp-remoteなどのクライアントがノイズの多い再試行を開始します。さらに、アップストリームトークンは設定JSONに平文で保存されていました。

このプロキシは:

  • long-pollを排除: 各ツール呼び出しはアップストリームへの独自のHTTPリクエストを開き、終了時に閉じます。

  • アップストリームトークンを分離X-Prov-MCP-Key):プロキシのenvファイルのみに存在し、Claude Desktop / Claude Codeの設定にはありません。

  • キャッシュを追加:繰り返される読み取り(例:同じcontexto_servicioを数分以内に複数回)に対して。

  • 複合ツールを追加:複数のアップストリームツールを連鎖させて要約を返します。モデルが1回の呼び出しで済むのに3回の呼び出しを調整する必要を防ぎます。

Related MCP server: @qelos/better-mcp

要件

  • Python 3.10+

  • uv(推奨、またはpip

  • アップストリームMCPサーバーへのネットワークアクセスと有効なX-Prov-MCP-Keyヘッダー

クイックスタート

Docker(推奨、ローカルビルド不要)

docker run -d --name prov-mcp -p 8767:8767 \
  -e PROV_MCP_KEY='pmcc_...' \
  -e PROV_MCP_AUTH_TOKEN='pmcp_...' \
  -v prov-data:/data \
  --restart unless-stopped \
  metrotel/mcp-prov:0.2.2

またはリポジトリのdocker-compose.ymlを使用:

git clone https://github.com/datacenter-metrotel/mcp-prov.git
cd mcp-prov
cp .env.example .env && chmod 600 .env    # editá .env
docker compose up -d

prov-dataボリューム(/data/logsにマウント)に永続化されるログ:

docker exec prov-mcp tail -f /data/logs/calls.log

ネイティブHTTPモード(Dockerなし)

git clone https://github.com/datacenter-metrotel/mcp-prov.git
cd mcp-prov

cp .env.example .env
chmod 600 .env
# editá .env con los valores reales

# Arrancar en foreground
uvx --from . prov-mcp-proxy
# server escuchando en http://0.0.0.0:8767/mcp

確認:

KEY=$(grep '^PROV_MCP_AUTH_TOKEN=' .env | cut -d= -f2)
curl -sS -L -X POST http://127.0.0.1:8767/mcp \
  -H "Authorization: Bearer $KEY" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  --data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1"}}}'

stdioモード(Claude Code / Cursorなど、プロセスを起動するクライアント向け)

export PROV_MCP_KEY='pmcc_...'
export PROV_MCP_TRANSPORT=stdio
uvx --from . prov-mcp-proxy

そして.mcp.json(Claude Code)内:

{
  "mcpServers": {
    "prov": {
      "command": "uvx",
      "args": ["--from", "/ruta/al/repo", "prov-mcp-proxy"],
      "env": { "PROV_MCP_KEY": "${PROV_MCP_KEY}" }
    }
  }
}

Kubernetes / Docker Swarmへのデプロイ

  • KubernetesenvFrom.secretRef + PersistentVolumeClaimを使用。 k8s/README.mdを参照。

  • Docker Swarm:raftで暗号化されたシークレット + ボリューム。 swarm/README.mdを参照。

systemdユーザーユニットとしてのデプロイ

テンプレートはsystemd/prov-mcp-proxy.service.example

mkdir -p ~/.config/systemd/user ~/.config/prov-mcp-proxy
cp systemd/prov-mcp-proxy.service.example ~/.config/systemd/user/prov-mcp-proxy.service
cp .env.example ~/.config/prov-mcp-proxy/env
chmod 600 ~/.config/prov-mcp-proxy/env
# editá ~/.config/prov-mcp-proxy/env con los valores reales

systemctl --user daemon-reload
systemctl --user enable --now prov-mcp-proxy.service
systemctl --user status prov-mcp-proxy.service

ログインなしで再起動後も存続させるには: sudo loginctl enable-linger $USER

Claude Desktopからの使用

claude_desktop_config.jsonを編集:

{
  "mcpServers": {
    "prov": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote",
        "http://<HOST_IP>:8767/mcp",
        "--allow-http",
        "--transport", "http-only",
        "--header", "Authorization:Bearer <PROV_MCP_AUTH_TOKEN>"
      ]
    }
  }
}

設定ファイルのパス:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux (community): ~/.config/Claude/claude_desktop_config.json

完全な例はexamples/claude_desktop_config.example.jsonを参照。

環境変数

変数

必須

デフォルト

説明

PROV_MCP_KEY

アップストリームに送信されるX-Prov-MCP-Keyヘッダー

PROV_MCP_AUTH_TOKEN

✅ (si TRANSPORT=http)

MCPクライアントがAuthorizationで送信する必要があるBearer

PROV_MCP_URL

https://n8n-asegured.metrotel.com.ar/mcp/prov_mcp_cc

アップストリームエンドポイント

PROV_MCP_TRANSPORT

stdio

stdioまたはhttp

PROV_MCP_HTTP_HOST

127.0.0.1

HTTPリスナーのバインド

PROV_MCP_HTTP_PORT

8767

ポート

PROV_MCP_HTTP_PATH

/mcp

エンドポイントのパス

PROV_MCP_CACHE_TTL

60

キャッシュTTL(秒)(0 = オフ)

PROV_MCP_LOG_DIR

~/.cache/prov_mcp_proxy

JSON-linesログのディレクトリ

公開ツール

アップストリームのすべてのツールはそのまま再公開されます(執筆時点で32個)。さらに複合ツールが1つあります:

  • diagnostico_completo(service_number)contexto_servicioTopologia →(サブプロダクトがISIの場合)ISI_Check_IPを呼び出し、グループ化された要約を返します。サービス番号から迅速な診断を行うための「エントリポイント」として便利です。

アップストリームツールの詳細は、postman/のPostmanコレクションを参照。

キャッシュ

決してキャッシュされないツール(アクティブな効果や揮発性データ):

  • Ping_tool

  • ATA_Test_1, ATA_Test_2, ATA_Test_3

  • Gestion_ACS

  • Obtener_backup_equipo

残りは設定可能なTTL(デフォルト60秒)でキャッシュに入ります。キーにはツール名 + 正規化された引数のSHA1ハッシュが含まれます。

ログ

各ツール呼び出しは~/.cache/prov_mcp_proxy/calls.logにJSON行として記録され、tstoolargscachedduration_mserrorが含まれます。自動ローテーションは5 MB × 3。

セキュリティ

SECURITY.mdを参照。要約:

  • HTTPモードではBearer必須(Starletteミドルウェア)。

  • アップストリームトークンはプロキシから外部に出ることはありません。

  • 認証情報を含むenvファイルはchmod 600で、gitの管理外。

  • .env.gitignoreに含める。

ライセンス

MIT — LICENSEを参照。

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Local-first MCP proxy with BM25 tool discovery, quarantine security, Docker isolation, OAuth support, activity logging, and web UI. Routes multiple upstream MCP servers through a single endpoint.
    9
    334
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A stdio MCP proxy that connects to one or more upstream MCP servers and exposes their tools, resources, and prompts through a single endpoint with a configurable middleware pipeline.
    14
    16
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A standalone MCP server that exposes Rancher-side tools, forwards Authorization headers or uses configured credentials, and supports HTTP and stdio transports.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Lifts local stdio MCP servers into remote Streamable HTTP endpoints for cloud-hosted AI clients, with bearer-token auth and tool policy filtering.
    15
    MIT

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/datacenter-metrotel/mcp-prov'

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