mcpField
S
secondlayer

secondlayer

リモート
secondlayer.tools金融データ82 日前に更新
リポジトリ公式サイト

secondlayer について

secondlayerは、Stacksのチェーンデータを扱うコーディングエージェント向けのMCPサーバーです。インデックスデータの読み取りや、サブグラフ、Webhook、コントラクト検索、アーカイブ操作を、ホストAPIまたは独自インスタンス経由で提供します。

主な機能

  1. 01インデックス済みイベント、転送、ブロックの検索
  2. 02サブグラフの作成と管理
  3. 03チェーンイベントのWebhook設定
  4. 04コントラクト検索とABI取得
  5. 05インスタンスとアーカイブの状態確認

活用シーン

  1. 01Stacksのイベントやトランザクションの調査
  2. 02カスタムチェーンサブグラフの構築と検索
  3. 03コントラクトの動作に応じたWebhook通知

MCP 対応

Stacksのインデックス、サブグラフ、Webhook、コントラクト、インスタンス、アーカイブ、アカウントのツールをMCPクライアントに公開します。ホストAPIはブラウザーサインイン付きのStreamable HTTPに対応し、独自インスタンスにも接続できます。

設定

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

エンドポイントhttps://api.secondlayer.tools/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 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
npm@secondlayer/mcp11.2.4

ツール

詳細

@secondlayer/mcp

コーディングエージェントが、ホスト型 API (api.secondlayer.tools)または独自のインスタンス上の Stacks データに直接アクセスできるようにします: Index(デコード済みの行)、Subgraphs(定義したテーブル。アカウントまたはインスタンスから提供)、 Streams(生の入力データ)。主要なツールのみを公開します:Index の読み取り、サブグラフの ライフサイクル、Webhook、コントラクトの検出とひな形生成、インスタンスの ステータス、アーカイブの検証とブートストラップ、ホスト型のクレジットと見積もりです。それ以外 (単一レコードの検索、メンプール、スタッキング、証明、Streams のライブ読み取り)は REST /v1 と OpenAPI から利用できます。consume ツールはありません。

ホスト型

インストールは不要です。ホスト型 API は、ブラウザーでのサインインを使用して、 Streamable HTTP 経由で読み取りツールを提供します。

claude mcp add --transport http secondlayer https://api.secondlayer.tools/mcp

OAuth に対応していないクライアントは、Authorization: Bearer <sk-sl_ key> を送信します。サブグラフの デプロイ、Webhook、アーカイブ、コード生成、インスタンスのツールはローカルでのみ利用できます。詳しくは /docs/mcp をご覧ください。

インストール

bun add @secondlayer/mcp

認証

ほとんどの読み取りは公開されています。index_* と contracts_find はキーなしで動作します。サブグラフのツールは、ループバック以外では INSTANCE_TOKEN が必要です。HTTP 経由の GET /v1/subgraphs/<name>/<table>({ rows, next_cursor, tip } カーソルエンベロープ)も同様です。ループバック上では認証不要です。サブグラフごとの公開/非公開フラグはありません。streams_dumps にキーは不要です。ダンプのマニフェストは公開されており、このツールには SL_STREAMS_DUMPS_URL の設定のみが必要です。streams_tip には必ずキーが必要です(キーなしの場合は 401)。Streams のライブリストの読み取りは REST のみで利用できます(GET /v1/streams/*)。書き込み(デプロイ、再インデックス、削除、Webhook)にはキーが必要です。キーはホストに応じて使い分けられます。https://api.secondlayer.tools では、サーバーが SECONDLAYER_API_KEY(sk-sl_*)を自動的に使用します。それ以外では、secondlayer init で取得した INSTANCE_TOKEN を使用します。ホスト型のクレジットと見積もりにも SECONDLAYER_API_KEY を使用します。ホスト型 API では、サブグラフのソースに指定できるのはイベントフィルターと contract_call/contract_deploy のみです(それ以外は 422 SOURCE_NOT_HOSTABLE)。startBlock を設定してください。まず secondlayer://context を読み取ってください。認証状態と読み取り認証のティアが示されます。

クイックスタート — Stdio(IDE)

Claude Desktop または Cursor の設定に追加してください:

{
  "mcpServers": {
    "secondlayer": {
      "command": "bunx",
      "args": ["-p", "@secondlayer/mcp", "secondlayer-mcp"],
      "env": {
        "SECONDLAYER_API_URL": "http://127.0.0.1:3800",
        "INSTANCE_TOKEN": "..."
      }
    }
  }
}

クイックスタート — HTTP(リモート)

export SECONDLAYER_API_URL=http://127.0.0.1:3800
export INSTANCE_TOKEN=<from secondlayer init>
export SECONDLAYER_MCP_SECRET=your-secret
bunx -p @secondlayer/mcp secondlayer-mcp-http
# Listening on port 3100

環境変数

変数必須条件デフォルト説明
INSTANCE_TOKENインスタンス上での書き込み—secondlayer init で取得します。api.secondlayer.tools 以外で書き込みツールを使う場合に必要です。読み取りは公開されています。ホスト型 API には送信されません。
SECONDLAYER_API_KEYホスト型 API、クレジット/見積もり/最新情報—sk-sl_*。SECONDLAYER_API_URL が https://api.secondlayer.tools の場合に自動的に使用されます。
SECONDLAYER_API_URLいいえhttp://127.0.0.1:3800インスタンス API。ホスト型の場合は https://api.secondlayer.tools を指定します。
SECONDLAYER_BINCLI ツールPATH 上の secondlayerCLI バイナリへのパス(bootstrap、repair)。
SECONDLAYER_CWDCLI ツールプロセスの cwdCompose プロジェクトのディレクトリ。
SECONDLAYER_MCP_PORTいいえ3100HTTP トランスポートのポート。
SECONDLAYER_MCP_SECRETいいえ—HTTP 認証用のベアラートークン。未設定の場合は無効です。

ツール

ドメインツール
インデックス (9)index_events, index_ft_transfers, index_nft_transfers, index_contract_calls, index_blocks, index_transactions, index_print_schema, index_discover, batch_query
サブグラフ (12)subgraphs_list, subgraphs_status, subgraphs_spec, subgraphs_scaffold, subgraphs_deploy, subgraphs_delete, subgraphs_query, subgraphs_backfill, subgraphs_reindex, subgraphs_stop, subgraphs_operations, subgraphs_gaps
Webhook (13)webhooks_create, webhooks_list, webhooks_get, webhooks_update, webhooks_delete, webhooks_test, webhooks_pause, webhooks_resume, webhooks_rotate_secret, webhooks_deliveries, webhooks_dead, webhooks_requeue, webhooks_replay
ストリーム (2)streams_tip, streams_dumps
コントラクト (2)contracts_find, contracts_get_abi
インスタンス (1)instance_status
アーカイブ (5)archive_verify, archive_bootstrap, archive_repair, archive_latest, archive_quote
クレジット (1)credits_balance(SECONDLAYER_API_KEY が必要)
アカウント (2)account_whoami, account_create_key(https://api.secondlayer.tools を指定した場合のみ)

変更後は、デプロイ/再インデックス/バックフィル/停止については subgraphs_operations、作成/テスト/再生については webhooks_deliveries で確認してください。空のインデックスの場合は、 archive_bootstrap を実行し、デコーダーが正常になるまで instance_status をポーリングしてから、 archive_verify、続いて codegen_index_schema を実行してください。

周辺機能(単一ブロック/トランザクションのルックアップ、メンプール、ステーキング、証明、 クレジット/上限、ライブ Streams の読み取り/SSE)は REST のみで利用できます。API ホストの OpenAPI 仕様を参照してください。ライブ Streams のリスト読み取りには GET /v1/streams/events を使用します。

SECONDLAYER_API_URL(デフォルトは http://127.0.0.1:3800)を設定して、サーバーの接続先インスタンスを指定してください。書き込みには secondlayer init で取得した INSTANCE_TOKEN を使用します。account_* ツールは、サーバーの接続先が https://api.secondlayer.tools の場合にのみ表示されます。

webhooks_create のトリガー

Webhook は生のチェーンイベントで発火します。triggers 配列(コントラクト/イベント/関数/トレイト)を渡してください。例:[{ "type": "contract_call", "contractId": "SP....amm", "functionName": "swap-*" }]。サブグラフの行に反応させるには、独自の Postgres からテーブルを読み取るか、サブグラフ API をポーリングしてください。

subgraphs_query の拡張機能
  • fields — カンマ区切りの列指定(例:"sender,amount_x")
  • count — ブール値。行の代わりに行数を返します
  • フィルター演算子:eq、neq、gt、gte、lt、lte、like
  • 最大上限:200

リソース

URI説明
secondlayer://contextライブ状態 — 何が存在するか(サブグラフ、Webhook、アカウント)、何ができるか、読み取り認証の階層。最初に読み取ってください。
secondlayer://filtersサブグラフのソースフィルターの種類とそのフィールド
secondlayer://column-types列の型の対応関係とオプション
secondlayer://traitsSIP トレイト規格(有効な trait 値)
secondlayer://chain-triggersチェーン Webhook のトリガーの種類とフィールド

エラー処理

すべてのツールは、isError: true を含む構造化エラーを返します。

{ "error": { "type": "not_found", "status": 404, "message": "Subgraph not found" } }
エラーの種類ステータス発生条件
unauthorized401API キーが無効、または指定されていない
not_found404リソースが存在しない
rate_limited429リクエストが多すぎる
server_error5xxサーバー側の障害
errorその他検証、バンドルなど

バンドル/デプロイのエラーには、内容を示すプレフィックスが使われます:"Bundle failed:"、"Module evaluation failed:"、"Validation failed:"。HTTP トランスポートでは、リクエスト本文の上限 1MB(413)と JSON 解析の安全性(400)が適用されます。スキャフォールドでの ABI 取得には 10 秒のタイムアウトが設定されています。

プログラムからの利用

import { createServer } from "@secondlayer/mcp";

const server = createServer();
// Connect to your own transport

ライセンス

MIT

コメント

MCP は初めてですか?

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

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