mcpField
A
Abstraxn Agent Layer

Abstraxn Agent Layer

リモート
github.com/Abstraxn-Labs金融データ410 週間前に更新
リポジトリ

Abstraxn Agent Layer について

Abstraxn Agent Layer は、チェーンデータや関連情報を必要とする MCP クライアントとエージェント向けの公開 Web3 MCP サーバーです。無料の読み取り・未署名トランザクション用ツールと、呼び出し側のウォレットで直接決済する従量課金リレーを提供します。

主な機能

  1. 01EVM と Solana のチェーン・取引情報の照会
  2. 02ガス、ERC-20 情報、トークン価格の取得
  3. 03未署名の送金トランザクションの作成
  4. 04天気情報の照会ツール
  5. 05市場、Web3、旅行、場所、ID の有料照会

活用シーン

  1. 01ブロック高、取引状況、ガス情報の確認
  2. 02署名やブロードキャストをせずに送金を準備
  3. 03市場、ウォレット、旅行、場所の情報検索
  4. 04複数レコードのソーシャルプロフィール照合

MCP 対応

HTTP MCP エンドポイントを通じて、Web3、ネットワーク、天気、市場、旅行、場所、ソーシャルプロフィールの名前空間付きツールを公開します。有料ツールは x402 の支払いチャレンジを使い、呼び出し側のウォレットが直接決済します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.abstraxn.com/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

12
パラメーター型必須説明
chainenumいいえブロックチェーンネットワーク。すべてのサポート対象チェーンを指定する場合は "all"(デフォルト)。次のいずれか:solana、solana-devnet、ethereum、sepolia、polygon、amoy、bsc、bsc-testnet、base、base-sepolia、tempo、tempo-testnet、arbitrum-one、monad、skale-base-sepolia、allsolana | solana-devnet | ethereum | sepolia | polygon | amoy | bsc | bsc-testnet | base | base-sepolia | tempo | tempo-testnet | arbitrum-one | monad | skale-base-sepolia | all

詳細

Abstraxn 公開 Web3 MCP サービス

ライセンス:MIT Node

Web3 データを扱う無料の公開 MCP(Model Context Protocol)サーバーです。 任意の MCP クライアント(Claude Desktop、Cursor、ご自身のエージェントなど)から接続すると、リアルタイムのチェーンデータ(ブロック高、ガス、トランザクションのステータス、ERC-20 情報、現物価格)を読み取ったり、天気予報を調べたり、署名されていない EVM/Solana の送金トランザクションを作成したりできます。また、従量課金制の一部のツールでは、市場データ、ウォレット/トークン/ENS、旅行検索、場所/太陽光/航空写真のデータ、ソーシャルプロフィールの本人特定情報を検索できます。

**API キー、アカウント、登録は不要です。**無料ツールは誰でも利用できます。有料ツールの支払いは、x402 決済プロトコルを通じて呼び出し元のウォレットから直接行われます。このサービスがお客様に代わって資金を保管したり、署名したりすることはありません。

公式の @modelcontextprotocol/sdk と NestJS 11 を基盤に構築されています。

目次


クイックスタート

git clone https://github.com/Abstraxn-Labs/abstraxn-agent-layer.git
cd abstraxn-agent-layer
npm install
cp .env.example .env
# Edit .env: Postgres connection + UPSTREAM_RELAY_BASE_URL / ENRICHMENT_RELAY_BASE_URL
# (each required for its own group of paid tools) + WEATHERAPI_KEY (required for weather.forecast)
npm run start:dev
  • ヘルスチェック:GET http://localhost:3011/health
  • MCP エンドポイント:POST http://localhost:3011/mcp
  • API ドキュメント(ヘルスチェックのみ):http://localhost:3011/api/docs

データベースのマイグレーションは起動時に自動で実行されるため、個別に CLI を実行する必要はありません。

Claude Desktop/Cursor から使う

MCP クライアントの設定ファイル(例:claude_desktop_config.json または Cursor の mcp.json)に、次の内容を追加します。

{
  "mcpServers": {
    "abstraxn-public-web3": {
      "url": "http://localhost:3011/mcp"
    }
  }
}

クライアントを再起動すると、以下のツールを利用できるようになります。追加の設定は不要です。

利用可能なツール

ツール有料?機能
network.blocknumberいいえ現在の EVM ブロック番号または Solana スロットを取得します。1 つのチェーン、またはすべてのチェーンを一度に照会できます。
network.transaction_statusいいえEVM または Solana で、ハッシュからトランザクション/署名を検索します。
network.gas_infoいいえEVM チェーンの現在のガス価格と EIP-1559 の手数料の目安を取得します。
network.token_infoいいえERC-20 の名前/シンボル/小数桁数/総供給量を取得します。
network.token_priceいいえCoinGecko 経由で現物価格を取得します(デフォルトは ETH/USD)。
network.prepare_transferいいえ明示された from/to/amount に基づき、署名前のネイティブ/ERC-20/SPL 送金トランザクションを作成します。署名やブロードキャストは行いません。
weather.forecastいいえ現在の気象状況、予報、天文情報、場所の検索、過去の気象情報、海洋気象の照会に対応する 6 つのアクションです。
market.cryptoはい暗号資産の市場データを検索します(CoinGecko 提供)。6 つのアクションがあります。
web3.lookupはいマルチチェーンのウォレット/トークン/ENS/トランザクションシミュレーションを検索します。7 つのアクションがあります。
travel.searchはい航空券とホテルを検索します。2 つのアクションがあります。
places.lookupはい場所/太陽光/航空写真の情報を検索します。11 のアクションがあります。
social.profile_lookupはい複数のレコードを対象に、人物/ソーシャルプロフィールの本人特定情報を解決します。

ツールは分野ごとに名前空間(network.*、market.*、web3.*、travel.*、places.*、social.*)で分類されているため、MCP クライアントでは平坦な一覧ではなく、ツリーとして参照できます。

**有料ツールの仕組み:**支払いなしで呼び出すと、エラーではなく paymentRequired チャレンジが返されます。ウォレットクライアントで署名し、paymentPayload を設定して同じ呼び出しを再試行してください。支払いはウォレットから直接行われ、このサービスはリクエストを中継するだけです。

ツールを直接呼び出す(curl)

通常は(上記の)MCP クライアントを使いますが、エンドポイントは HTTP 上の通常の JSON-RPC なので、スクリプトから直接呼び出すこともできます。

BASE=http://localhost:3011
ACCEPT='Accept: application/json, text/event-stream'   # required by the MCP spec

# 1. Initialize a session
curl -s -X POST "$BASE/mcp" -H 'Content-Type: application/json' -H "$ACCEPT" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"my-client","version":"1.0"}}}'

# 2. List available tools
curl -s -X POST "$BASE/mcp" -H 'Content-Type: application/json' -H "$ACCEPT" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

# 3. Call a tool
curl -s -X POST "$BASE/mcp" -H 'Content-Type: application/json' -H "$ACCEPT" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"network.token_price","arguments":{"symbol":"bitcoin"}}}'

GET /mcp が 405 を返すのは仕様です。各呼び出しはステートレスであり、再開するセッションはありません。

設定

.env.example を .env にコピーします。必須と記された項目以外はすべて、安全なデフォルト値が設定されています。

変数必須説明
PORTいいえHTTP ポート(デフォルトは 3011)
POSTGRES_HOST / PORT / USER / PASSWORD / DBいいえPostgres 接続設定。乱用の追跡にのみ使用します
PUBLIC_MCP_RATE_LIMIT_PER_MIN / _WINDOW_MSいいえIP ごとのグローバルなレート制限(デフォルトは 30 回/分)
CHAIN_RPC_*いいえチェーンごとの EVM RPC オーバーライド。未設定の場合はパブリックのデフォルト値を使用します(src/mcp/utils/chain-registry.util.ts を参照)
SOLANA_RPC_URL / SOLANA_DEVNET_RPC_URLいいえSolana クラスター RPC のオーバーライド
WEATHERAPI_KEYはいweather.forecast 用の無料 API キーです。WeatherAPI.com の登録ページで取得できます(無料プランは月 100K 回の呼び出しに対応し、有料機能は使用しません)。未設定の場合、サービス全体が失敗するのではなく、weather.forecast が明確なエラーを返します。
WEATHERAPI_BASE_URLはいweather.forecast 用のアップストリームベース URL です。ソースにはデフォルト値を含めていないため、設定するまではツールが適切にエラーを返します(.env.example では https://api.weatherapi.com/v1 として設定されています。ローカルテストでモック/セルフホストのミラーを指定するには、値をオーバーライドしてください)。
UPSTREAM_RELAY_BASE_URLはいmarket.crypto / web3.lookup / travel.search の背後にあるアップストリームリレーのベース URL です。デフォルト値は含めていないため、設定するまでこれら 3 つのツールは動作しません
ENRICHMENT_RELAY_BASE_URLはいplaces.lookup / social.profile_lookup の背後にあるアップストリームリレーのベース URL です。UPSTREAM_RELAY_BASE_URL とは別のアップストリームで、デフォルト値は含めていません

仕組み

MCP client (Claude Desktop, Cursor, your agent)
    → POST /mcp  (this service, stateless — a fresh McpServer per request)
    → free tools: direct chain RPC / CoinGecko calls
    → paid tools: relayed upstream, settled by the caller's wallet via x402

これは単体でデプロイできるサービスであり、他の Abstraxn サービスとワークスペースやデータベースを共有しません。これは意図的な設計です。いくつかの MCP レジストリーでは、パブリック MCP サーバーを専用のリポジトリーに置き、ルートと固定のツールセットをそれぞれ 1 つにして、全体を通してレビューできることが求められます。

技術スタック: Node.js 20+ · NestJS 11 · @modelcontextprotocol/sdk ^1.30.0(公式 SDK) · PostgreSQL + TypeORM · @x402/core · viem(EVM)+ 生の JSON-RPC(Solana の読み取り)· @solana/web3.js + @solana/spl-token(Solana の送金トランザクション構築)· @skalenetwork/bite(SKALE のプライバシー保護暗号化送金)· helmet、 @nestjs/throttler

データベース

Postgres は乱用の追跡にのみ使用されます。テナント、ポリシー、設定のテーブルはありません。

テーブル用途
observed_ips呼び出し元の IP ごとに 1 行を記録し、累計呼び出し回数と最終確認時刻を保持します。
observed_walletsx402 経由で支払いを行ったことが確認されたウォレットアドレスごとに 1 行を記録します。
public_mcp_transactions完了した有料呼び出しの追記専用履歴です。

Postgres に接続できない場合でも、呼び出しは成功します。追跡データの書き込みはベストエフォートで行われ、実際の MCP リクエストをブロックしたり失敗させたりすることはありません。

セキュリティ

このサービスはキーなしで誰でも呼び出せるため、いくつかの不変条件が重要です。

  • SSRF の攻撃対象となる箇所はありません: すべての外部 URL(チェーン RPC、アップストリームリレー、CoinGecko)はサーバー側の設定から取得され、ツールが呼び出し元から渡された URL を受け付けることはありません。
  • レート制限はグローバルで、IP をキーにします。 アカウントがない場合に利用できる唯一の制御手段です。リバースプロキシの背後にデプロイする場合は、main.ts で app.set('trust proxy', ...) を設定してください。設定しないと、実際の呼び出し元ではなくプロキシに対してレート制限が適用されます。
  • シークレットは DB パスワードと WEATHERAPI_KEY のみで、どちらも環境変数でのみ管理し、ログには記録しません。 weather.forecast はキーをクエリパラメーターとしてプロバイダーへのリクエスト URL に含めますが、ログにはアクション名とエラーメッセージのみが記録され、URL 自体は記録されません。
  • CORS は設計上ワイルドカードです。 ここではテナント固有の情報がオリジンをまたいで送信されることはありません。

セキュリティ上の問題を見つけましたか?公開 issue を作成する前に、CONTRIBUTING.md を参照してください。

スクリプト

スクリプト説明
npm run start:devウォッチモードで実行します
npm run builddist/ にコンパイルします
npm run start:prodコンパイル済みのビルド(dist/main)を実行します
npm run lintESLint
npm testJest — ユニットテスト、SDK レベルの統合テスト、HTTP スモークテスト

コントリビューション

Issue と PR を歓迎します。新しいツールの追加方法と、プロジェクトの完了条件についてはCONTRIBUTING.mdをご覧ください。

ライセンス: MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。