mcp-exports
mcp-exports
ハウスMCPサーバー向けの共有・単回使用ダウンロードホスト。
https://exports.example.com · ホストポート 8114 · 顧客ログインなし
MCP server --POST /put (service token)--> mcp-exports --> download URL
customer --GET /d/{token} (no auth) --> mcp-exports --> the file, once存在理由
1週間分の通話記録をインラインで返すツールは 約530,000トークン を消費します。同じデータをCSVにすると1MBで、1.6秒で生成できます。そこで、エクスポートはリンクを返す方式にしました。最初のバージョンではそのリンクをMCPサーバー自身が配信していましたが、3つの問題が発生しました。
MCPホストはAnthropic専用IP許可リストの背後にあります が、ダウンロードを取得するのは任意のアドレスにある顧客のブラウザです。別のホスト名を使うことで、2つのアクセスポリシーが衝突するのを防ぎます。MCPが必要とするストリーミング設定も含むプロキシ設定からパス例外を切り出す必要がなくなります。
MCPコンテナはプッシュのたびに再デプロイされ、インメモリストアも一緒に消えてしまいます。会話の途中で有効なリンクが無効化されます。
ストアが1つのプロセスに属していたため、2番目のワーカーがランダムに404を返していました。
Related MCP server: agent-secret
セキュリティモデル(明確に)
ダウンロードURLはケイパビリティです。URLを持つ者は誰でもファイルを取得でき、ログインは不要です。これは、すでに配布しているNetSapiensの録音URLやOdooポータルのPDFと同じトレードオフであり、チャットウィンドウからクリックしたときにリンクが機能する理由でもあります。これは認証ではありません。脆弱性は現実に存在します。URLは転送されたり、プロキシに記録されたり、トランスクリプトに永久に残ったりする可能性があります。
そこで、設計は実際に役立つ要素に依存しています。
制御 | 理由 |
単回使用(デフォルト | バイトは取得されると削除されるため、後から漏洩したリンクはすでに無効です。ケイパビリティURLは共有解除できないため、利用可能な最強の制御です。 |
短いTTL — データは1時間、金融は15分 | ウィンドウを縮小します。お金に関わるものはより短く。 |
256ビットの | 推測不可能、列挙不可能 |
欠落・不正・期限切れ・使用済みで同一の404 | 違いから何も学習できない |
常に | HTMLやSVGのエクスポートが当オリジンでレンダリングされてはならない。そうなれば、このホストが保存型XSSのベクターになります。 |
| キャッシュされず、インデックスされず、リファラー漏洩なし |
トークン接頭辞のみのアクセスログ | アップロード↔ダウンロードの相関には十分。ファイルよりも多くの人が読めるログから、動作するURLを再構築するには不十分。 |
アップロードは認証付きです。サーバーごとのベアラートークンを使用します。公開ホストへのファイル公開は、インターネットに許可されるものではありません。サービスは空の許可リストでは起動を拒否します。
API
POST /put?filename=x.csv&sensitivity=data|financial&customer=Acme%20Movers
&ttl=3600&max_downloads=1
Authorization: Bearer <server token>
-> 201 {download_url, filename, size, expires_in_seconds, expires_at,
max_downloads, single_use}
GET /d/{token} -> 200 the file (then it is gone), or 404
GET /healthz -> counters + bytes heldttl は従うのではなくクランプされます。1週間を要求しても MCP_EXPORTS_TTL_MAX が返され、レスポンスには実際に取得した値が示されます。
MCPサーバーからの使用
client/export_client.py をサーバーにコピーし、MCP_EXPORTS_URL と MCP_EXPORTS_TOKEN を設定します。ExportClient.from_env() は未設定の場合 None を返すため、サーバーはホストが実際に配線されている場合にのみエクスポートツールを提供でき、常に失敗するツールを宣伝する必要はありません。
インライン行へのフォールバックではなく例外を発生させます。ホストがダウンしている場合、安全な縮退はありません。行を返すことが、エクスポートが存在する目的である失敗モードだからです。
デプロイ
Portainer → Stacks → Repository、refs/heads/main、ポート8114。MCPサーバーごとにトークンを生成します。
python -c "import secrets; print(secrets.token_urlsafe(32))"NPM: exports.example.com → 10.0.0.10:8114、アクセスリストなし(それがポイントです)、Websocketオフ、標準タイムアウト。
テスト
python -m pytest tests -q47テスト、ネットワークなし。セキュリティ特性を具体的にカバーしています。単回使用が実際にバイトを削除すること、すべての不正なトークン形状が区別できないこと、ファイル名がエスケープやヘッダー注入をできないこと、金融TTLがより短いこと、Dockerfileがrootを落とす前にボリュームマウントポイントをchownすること(これがないと、名前付きボリュームがroot所有で到着し、すべてのアップロードが EACCES で失敗します)。
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 Servers
- AlicenseAqualityFmaintenanceProvides secure OAuth2-based credential management for MCP servers, allowing agents to obtain short-lived token references without exposing raw secrets.718MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for one-time secret sharing, enabling AI agents to securely claim and store secrets (e.g., API keys) via claim codes without exposing them in chat transcripts.3MIT
- FlicenseNot gradedqualityBmaintenanceEnables sharing self-contained HTML files via public or access-key-protected private links. Provides MCP tools to create shares, retrieve public share metadata, and describe the service.2
- FlicenseNot gradedqualityBmaintenanceMCP server for end-to-end encrypted secret storage and retrieval, enabling LLM agents to fetch secrets by name via one-time URLs while keeping plaintext out of model context and logs.1
Related MCP Connectors
An authenticated remote MCP server for user-owned devices and one-shot capability invocation.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Remote MCP for C2PA intake verifier MCP, structured receipts, audit logs, and reviewer-ready evidenc
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/JohnGilligan2/mcp-exports'
If you have feedback or need assistance with the MCP directory API, please join our Discord server