Skip to main content
Glama
JohnGilligan2

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つの問題が発生しました。

  1. MCPホストはAnthropic専用IP許可リストの背後にあります が、ダウンロードを取得するのは任意のアドレスにある顧客のブラウザです。別のホスト名を使うことで、2つのアクセスポリシーが衝突するのを防ぎます。MCPが必要とするストリーミング設定も含むプロキシ設定からパス例外を切り出す必要がなくなります。

  2. MCPコンテナはプッシュのたびに再デプロイされ、インメモリストアも一緒に消えてしまいます。会話の途中で有効なリンクが無効化されます。

  3. ストアが1つのプロセスに属していたため、2番目のワーカーがランダムに404を返していました。

Related MCP server: agent-secret

セキュリティモデル(明確に)

ダウンロードURLはケイパビリティです。URLを持つ者は誰でもファイルを取得でき、ログインは不要です。これは、すでに配布しているNetSapiensの録音URLやOdooポータルのPDFと同じトレードオフであり、チャットウィンドウからクリックしたときにリンクが機能する理由でもあります。これは認証ではありません。脆弱性は現実に存在します。URLは転送されたり、プロキシに記録されたり、トランスクリプトに永久に残ったりする可能性があります。

そこで、設計は実際に役立つ要素に依存しています。

制御

理由

単回使用(デフォルト max_downloads=1

バイトは取得されると削除されるため、後から漏洩したリンクはすでに無効です。ケイパビリティURLは共有解除できないため、利用可能な最強の制御です。

短いTTL — データは1時間、金融は15分

ウィンドウを縮小します。お金に関わるものはより短く。

256ビットの secrets.token_urlsafe トークン

推測不可能、列挙不可能

欠落・不正・期限切れ・使用済みで同一の404

違いから何も学習できない

常に Content-Disposition: attachment

HTMLやSVGのエクスポートが当オリジンでレンダリングされてはならない。そうなれば、このホストが保存型XSSのベクターになります。

no-storenoindexnosniffno-referrer

キャッシュされず、インデックスされず、リファラー漏洩なし

トークン接頭辞のみのアクセスログ

アップロード↔ダウンロードの相関には十分。ファイルよりも多くの人が読めるログから、動作する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 held

ttl従うのではなくクランプされます。1週間を要求しても MCP_EXPORTS_TTL_MAX が返され、レスポンスには実際に取得した値が示されます。

MCPサーバーからの使用

client/export_client.py をサーバーにコピーし、MCP_EXPORTS_URLMCP_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.com10.0.0.10:8114アクセスリストなし(それがポイントです)、Websocketオフ、標準タイムアウト。

テスト

python -m pytest tests -q

47テスト、ネットワークなし。セキュリティ特性を具体的にカバーしています。単回使用が実際にバイトを削除すること、すべての不正なトークン形状が区別できないこと、ファイル名がエスケープやヘッダー注入をできないこと、金融TTLがより短いこと、Dockerfileがrootを落とす前にボリュームマウントポイントをchownすること(これがないと、名前付きボリュームがroot所有で到着し、すべてのアップロードが EACCES で失敗します)。

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    F
    maintenance
    Provides secure OAuth2-based credential management for MCP servers, allowing agents to obtain short-lived token references without exposing raw secrets.
    7
    18
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP 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.
    3
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables 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
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP 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

View all related MCP servers

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

View all MCP Connectors

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/JohnGilligan2/mcp-exports'

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