AIMarket MCP Gateway について
AIMarket MCP Gatewayは、ウェブ取得、回答検証、AIMarketハブの機能呼び出しを提供するPython製MCPサーバーです。stdioとStreamable-HTTPに対応し、セルフホスト時のセキュリティ制御も備えています。
主な機能
- 01SSRF対策付きページ取得
- 02DuckDuckGoウェブ検索
- 03Metisによる回答検証
- 04AIMarket機能の検索と実行
- 05試用枠と残高の確認
活用シーン
- 01ウェブページの取得と整形
- 02MCPクライアントからのウェブ検索
- 03Metisで回答と検証スコアを確認
- 04AIMarketハブの機能を検索して呼び出す
MCP 対応
stdioまたはStreamable-HTTP経由で、web_fetch、web_search、metis_verify、market_search、market_invoke、market_statusの6ツールをMCPクライアントに公開します。HTTP運用ではBearer認証とレート制限を利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://{aimarket_host}/mcpclaude mcp add --transport http alexar76-aimarket https://{aimarket_host}/mcp{"mcpServers":{"alexar76-aimarket":{"type":"http","url":"https://{aimarket_host}/mcp"}}}Cursor で開く{"servers":{"alexar76-aimarket":{"type":"http","url":"https://{aimarket_host}/mcp"}}}VS Code で開く{"mcpServers":{"alexar76-aimarket":{"type":"http","url":"https://{aimarket_host}/mcp"}}}{"mcpServers":{"alexar76-aimarket":{"serverUrl":"https://{aimarket_host}/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://{aimarket_host}/mcp認証が必要ツール
詳細
🔄 モノレポから同期されていますが、履歴は継続しています。
aimarket-mcpは、正規の AI-Factory モノレポを反映しています。履歴は追記のみです(強制プッシュはありません)。 プルリクエストを歓迎します — マージされたプルリクエストはモノレポに取り込まれ、ここに再同期されるため、あなたの貢献が正式なものになります。 💬 Issue · プルリクエスト のどちらも歓迎します。
aimarket-mcp — エコシステム向け MCP ゲートウェイ
🟢 マーケットプレイスを試してみたいだけですか?インストールは不要です。
https://modelmarket.dev/mcpをMCP クライアントに貼り付けるだけで、ライブハブに対してmarket_searchとmarket_invokeを利用できます。呼び出し元ごとに無料トライアルを数回利用でき、呼び出しごとに 署名付きレシートが発行されます。ウォレットもキーもインストールも不要です。 →docs/hosted-mcp-endpoint.mdほかの3つのツール(
web_fetch、web_search、metis_verify)を使いたい場合や、マーケットツールの接続先を独自のハブにしたい場合は、このパッケージをインストールしてください。
1つのMCP ゲートウェイ。強化された5つのツール。Metis、ARGUS、そしてエコシステムで共有。
トランスポート:Glama/Claude Desktop/Cursor向けのstdio(aimarket_mcp/stdio_server.py)。公式のModel Context Protocol Python SDK(mcp、FastMCP)を使用して構築しています。
セルフホスト型デプロイ向けに、:9090 で動作する Streamable-HTTP も提供しています(aimarket-mcp-http、Docker Compose)。
| 項目 | 場所 |
|---|---|
| MCP エントリーポイント(stdio) | aimarket_mcp/stdio_server.py |
| MCP ゲートウェイ(HTTP) | aimarket_mcp/server.py |
| ツールハンドラーとセキュリティ | aimarket_mcp/tools.py、aimarket_mcp/security.py |
| Glama/Docker(stdio) | Dockerfile、glama.json |
| セルフホスト型 HTTP | Dockerfile.http、docker-compose.yml |
対応ホスト:Claude Desktop、Cursor、Glama、およびstdioまたはStreamable-HTTPに対応するすべてのMCP クライアント。
ツール
| ツール | 機能 | セキュリティ強化 |
|---|---|---|
web_fetch | URL を取得し、本文を返します(readability-lite) | SSRF 対策済み。出力をサニタイズし、<untrusted> でラップします |
web_search | DuckDuckGo でリアルタイム検索し、上位のスニペットを返します | 出力をサニタイズし、<untrusted> でラップします |
metis_verify | Metis の認知・検証エンベロープ | 回答と verify_score / verified ゲートを返します |
market_search | AIMarket ハブで価格付きの機能を検索します | 無料です。ウォレット、キー、チャネルは不要です。ハブには実行可能なものだけが掲載されます |
market_invoke | ハブの無料トライアル枠で機能を 1 つ実行します | 署名済みレシートのノンスを返します。利用枠を使い切った場合は、ハブの 402 をそのまま報告します |
market_status | 無料トライアルの実行回数と残りのプリペイド残高を表示します | 読み取り専用です。ハブの状態、このインストールで現在の期間内に残っているトライアル枠、設定されている場合は AIMARKET_API_KEY の残高を表示します(キー自体は表示しません) |
例 — GAIA Open-Meteo の読み取りを購入する
market_search_tool(intent="gaia weather open-meteo")
market_invoke_tool(
capability_id="gaia.weather.read@v1",
product_id="gaia.gateway",
source_hub="https://iot.modelmarket.dev",
# input JSON with device_id om-wx-01 — see tool schema / hub docs
)
ツールがラップする同じ HTTP リクエストは次のとおりです。
curl -s -X POST "${AIMARKET_HUB_URL:-https://modelmarket.dev}/ai-market/v2/invoke" \
-H 'Content-Type: application/json' \
-H 'X-AIMarket-Sandbox-Visitor: vis_mcp_om_wx' \
-d '{"capability_id":"gaia.weather.read@v1","product_id":"gaia.gateway",
"source_hub":"https://iot.modelmarket.dev","input":{"device_id":"om-wx-01"}}'
これは簡単な方法(トライアル/サンドボックス)です。オンチェーンで外部ウォレットによる支払いを証明するには、別のエスクローフロー(openChannel → DebitAuthorization → ハブによるデビット/決済)が必要です。詳しくは docs/onchain-journal.md §3l–§3m と
gaia/docs/LIVE-RELAYS.md を参照してください。
エージェントごとのツールではなくゲートウェイを使う理由:汎用機能は一度だけ実装すればよく、セキュリティの中核を監査済みの 1 か所に集約できます。エコシステム固有の機能は、それぞれ独自の MCP サーバー(aimarket-oracle-gateway、aimarket-plugins)にあります。
設定(環境変数)
| 変数 | 意味 |
|---|---|
AIMARKET_METIS_URL | Metis 検証 API のベース URL(デフォルトは https://metis.modelmarket.dev) |
AIMARKET_METIS_KEY | Metis 検証用の任意のベアラーキー |
AIMARKET_SEARCH_URL | DuckDuckGo HTML エンドポイントの上書き |
AIMARKET_HUB_URL | market_search / market_invoke 用の AIMarket ハブ(デフォルトは https://modelmarket.dev) |
AIMARKET_API_KEY | ハブの /start ページ(https://modelmarket.dev/start)から取得するクレジットアカウントキー。価格の設定された market_invoke の呼び出しは、プリペイド残高から支払われます。残高が不足している間は、無料トライアルが引き続き適用されます。HTTP モードでは、このサーバーのすべての呼び出し元の支払いに使われます |
AIMARKET_SANDBOX_VISITOR | market_invoke 用のトライアル ID。インストールごとにランダムに設定されます。再インストール後も利用枠を維持するには、値を設定してください |
AIMARKET_MCP_KEY | HTTP 専用 — ベアラー認証キー。キーがない場合、サーバーはこのマシンのユーザーからのリクエストにのみ応答します。ループバックパケットで、Host がループバックアドレス、転送ヘッダーがなく、別サイトのブラウザー Origin がなく、Linux ではサーバーを実行しているユーザーが所有するソケットである必要があります。最後のチェックにより、ワーカーが別のユーザーとして実行されている同一マシン上のリバースプロキシを拒否できます。nginx のデフォルトの proxy_pass はループバックの Host を送信し、転送ヘッダーを付けないためです。リバースプロキシの背後では、いずれの場合もキーを設定してください。サーバーと同じユーザーで動作するプロキシや、macOS または Windows 上のプロキシは、ローカルに見えるためです。HTTP Docker イメージでは(呼び出し元はブリッジ経由で接続します)、キーのない呼び出しはすべて 401 になります。キーを設定するか、AIMARKET_MCP_PUBLIC=1 を指定してください |
AIMARKET_MCP_PUBLIC | HTTP 専用 — 1 の場合、キーなしで匿名の呼び出し元にどこからでも応答します(パブリックエンドポイントとして明示的に選択する設定です) |
AIMARKET_MCP_HOST | HTTP 専用 — リッスンアドレス(デフォルトは 127.0.0.1。HTTP イメージでは 0.0.0.0 に設定されます) |
AIMARKET_MCP_PRODUCTION | HTTP 専用 — 1 の場合、AIMARKET_MCP_KEY が必須になります(フェイルクローズ) |
AIMARKET_MCP_RATE | HTTP 専用 — キー/IP あたりの 1 分間のリクエスト数(デフォルトは 120) |
AIMARKET_MCP_PORT | HTTP 専用 — リッスンポート(デフォルトは 9090) |
実行(stdio — Glama / Claude Desktop)
Claude Desktop(mcpServers エントリ)— クローンは不要で、作業ディレクトリを間違える心配もありません。
{
"mcpServers": {
"aimarket-mcp": {
"command": "uvx",
"args": ["aimarket-mcp"]
}
}
}
uvx は公開済みのパッケージを取得し、その aimarket-mcp コンソールスクリプト(stdio サーバー)を実行します。パッケージがすでにインストールされている場合は、"command": "aimarket-mcp" を指定して引数を付けなくても同じ動作になります。
チェックアウトから開発する場合:
pip install -e .
python -m aimarket_mcp.stdio_server
実行(HTTP — セルフホスト)
pip install -e .
AIMARKET_MCP_KEY=sk-... AIMARKET_MCP_PRODUCTION=1 aimarket-mcp-http # :9090
# or: docker compose up -d (uses Dockerfile.http)
Cursor / Claude(Streamable HTTP)
{
"mcpServers": {
"aimarket-web": {
"type": "streamable-http",
"url": "http://127.0.0.1:9090/mcp",
"headers": {
"Authorization": "Bearer YOUR_AIMARKET_MCP_KEY"
}
}
}
}
Glama で公開する
掲載先:aimarket-mcp。 Glama は、管理パネルのビルド設定からコンテナーを生成します。
| 項目 | 値 |
|---|---|
| ビルド手順 | ["bash scripts/glama_install.sh"] |
| CMD 引数 | ["mcp-proxy", "--", ".venv/bin/python", "-m", "aimarket_mcp.stdio_server"] |
| プレースホルダーパラメーター | {} |
| 固定するコミット SHA | 空欄(最新の同期済みコミット) |
ソースの変更を同期した後、ビルド、確認を行い、リリースを公開してください。リポジトリを同期しただけでは、デプロイ済みのツールカタログや品質評価は更新されません。カタログには、上記の6つのツールすべてが含まれている必要があります。 Glama のビルドおよびリリース手順を参照してください。
利用者
- 接続に成功しましたか?ホスト、設定、正常に動作するツールを1つ、紹介テンプレートで共有してください。
- Metis — プリセットを有効にします:
enable_mcp_tools: true mcp_ecosystem_presets: [aimarket-web] - ARGUS —
argus.config.jsonのmcpServersにサーバーを追加します(詳細は該当リポジトリを参照してください)。
テスト
pip install -e '.[dev]' && pytest -q
レジストリ
掲載を申請または更新する前に、ディレクトリへの登録チェックリストと現在の状況を確認してください。
| レジストリ | 掲載先 |
|---|---|
| Glama | glama.ai/mcp/servers/alexar76/aimarket-mcp |
| Official MCP Registry | io.github.alexar76/aimarket-mcp — server.json + GitHub Actions |
| PyPI | pip install aimarket-mcp |
| GitHub Releases | github.com/alexar76/aimarket-mcp/releases |
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。