mcp-prov
mcp-prov
n8n(Metrotelのプロビジョニングインスタンス)内の既存のMCPサーバーをラップするPython製のローカルMCPプロキシ。バックエンドに触れることなく、キャッシュ、ロギング、診断用複合ツール、独自のBearer認証を追加します。
Docker Hubイメージ: metrotel/mcp-prov
🌐 stdio(Claude Code / 組み込みクライアント)またはHTTP(Claude Desktopなど)で通信
🔐 アップストリームトークンを分離:クライアントに漏れることはありません
⚡ 冪等な読み取り用のインメモリキャッシュ60秒(env varで設定)
📝 各ツール呼び出しのJSON-linesログ(
tool、args、cached、duration_ms、error)🛠 アップストリームの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 -dprov-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へのデプロイ
Kubernetes:
envFrom.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.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux (community):
~/.config/Claude/claude_desktop_config.json
完全な例はexamples/claude_desktop_config.example.jsonを参照。
環境変数
変数 | 必須 | デフォルト | 説明 |
| ✅ | — | アップストリームに送信される |
| ✅ (si | — | MCPクライアントが |
| ❌ |
| アップストリームエンドポイント |
| ❌ |
|
|
| ❌ |
| HTTPリスナーのバインド |
| ❌ |
| ポート |
| ❌ |
| エンドポイントのパス |
| ❌ |
| キャッシュTTL(秒)(0 = オフ) |
| ❌ |
| JSON-linesログのディレクトリ |
公開ツール
アップストリームのすべてのツールはそのまま再公開されます(執筆時点で32個)。さらに複合ツールが1つあります:
diagnostico_completo(service_number)—contexto_servicio→Topologia→(サブプロダクトがISIの場合)ISI_Check_IPを呼び出し、グループ化された要約を返します。サービス番号から迅速な診断を行うための「エントリポイント」として便利です。
アップストリームツールの詳細は、postman/のPostmanコレクションを参照。
キャッシュ
決してキャッシュされないツール(アクティブな効果や揮発性データ):
Ping_toolATA_Test_1,ATA_Test_2,ATA_Test_3Gestion_ACSObtener_backup_equipo
残りは設定可能なTTL(デフォルト60秒)でキャッシュに入ります。キーにはツール名 + 正規化された引数のSHA1ハッシュが含まれます。
ログ
各ツール呼び出しは~/.cache/prov_mcp_proxy/calls.logにJSON行として記録され、ts、tool、args、cached、duration_ms、errorが含まれます。自動ローテーションは5 MB × 3。
セキュリティ
SECURITY.mdを参照。要約:
HTTPモードではBearer必須(Starletteミドルウェア)。
アップストリームトークンはプロキシから外部に出ることはありません。
認証情報を含むenvファイルは
chmod 600で、gitの管理外。.envは.gitignoreに含める。
ライセンス
MIT — LICENSEを参照。
This server cannot be installed
Maintenance
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
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Related MCP Servers
- AlicenseAqualityAmaintenanceLocal-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.9334MIT
- AlicenseAqualityDmaintenanceA 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.14163MIT
- AlicenseNot gradedqualityBmaintenanceA standalone MCP server that exposes Rancher-side tools, forwards Authorization headers or uses configured credentials, and supports HTTP and stdio transports.MIT
- AlicenseNot gradedqualityAmaintenanceLifts local stdio MCP servers into remote Streamable HTTP endpoints for cloud-hosted AI clients, with bearer-token auth and tool policy filtering.15MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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