Memungkinkan AI agent untuk mengakses data blockchain Stacks, mengelola subgraph, dan mengonfigurasi webhook melalui API terhosting atau instance lokal.
Juga dikenal sebagai ryanwaits/secondlayer, @secondlayer/mcp
- Stars
- 8
- Tools
- 2
- Unduhan, 30 hari
- —
- Versi terbaru
- 11.6.6
- Commit terakhir
- 13 Nov 2026
- Lisensi
- MIT
Apa itu secondlayer MCP?
secondlayer adalah MCP server. Memungkinkan AI agent untuk mengakses data blockchain Stacks, mengelola subgraph, dan mengonfigurasi webhook melalui API terhosting atau instance lokal. Server ini menyediakan 2 tool, seperti fields, count.
Ringkasan dibuat dari README proyek
Tentang secondlayer MCP server
Developer yang membangun di atas blockchain Stacks dapat menggunakan server ini untuk memberikan akses langsung kepada AI agent ke data blockchain dan manajemen infrastruktur. Server ini memungkinkan agent untuk melakukan pembacaan index, mengelola seluruh siklus hidup subgraph, dan mengonfigurasi webhook untuk bereaksi terhadap event chain mentah. Server ini mendukung API terhosting melalui sign-in browser maupun instance lokal yang dikelola melalui command line interface.
User dapat terhubung via stdio untuk integrasi IDE atau menggunakan transport HTTP untuk setup jarak jauh. Meskipun banyak tool index dan discovery contract bersifat publik, pengelolaan subgraph atau webhook memerlukan INSTANCE_TOKEN untuk setup lokal atau SECONDLAYER_API_KEY untuk layanan terhosting. Toolset ini berfokus pada operasi bernilai tinggi seperti deployment subgraph, reindexing, dan testing webhook, sementara pencarian data yang lebih granular disediakan melalui REST API.
Apa yang bisa Anda lakukan dengannya
- 1Kelola siklus hidup subgraphAI agent dapat melakukan deploy, reindex, atau menghapus custom subgraph untuk mengorganisir data blockchain.
- 2Otomatisasi konfigurasi webhookDeveloper dapat menginstruksikan agent untuk membuat dan mengetes webhook yang terpicu pada pemanggilan contract atau event tertentu.
- 3Query data blockchain yang telah didecodeAgent dapat mengambil informasi spesifik dari baris yang telah didecode menggunakan tool index untuk transaksi atau transfer.
- 4Verifikasi arsip blockchainServer ini memungkinkan agent untuk melakukan bootstrap dan verifikasi arsip guna memastikan integritas data.
Ditulis berdasarkan README proyek. Setiap use case diperiksa terhadap kutipan dari README tersebut.
Cara menginstal secondlayer MCP
Format diverifikasi 10 Nov 2026Tambahkan ke CursorTambahkan ke GooseInstal secondlayer MCP di Claude Code
$ claude mcp add --env 'SECONDLAYER_API_KEY=<YOUR_SECONDLAYER_API_KEY>' secondlayer -- npx -y @secondlayer/mcpInstal secondlayer MCP di Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"secondlayer": {
"command": "npx",
"args": [
"-y",
"@secondlayer/mcp"
],
"env": {
"SECONDLAYER_API_KEY": "<YOUR_SECONDLAYER_API_KEY>"
}
}
}
}Instal secondlayer MCP di VS Code
.vscode/mcp.json
{
"servers": {
"secondlayer": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@secondlayer/mcp"
],
"env": {
"SECONDLAYER_API_KEY": "<YOUR_SECONDLAYER_API_KEY>"
}
}
}
}Instal secondlayer MCP di VS Code CLI
$ code --add-mcp '{"name":"secondlayer","type":"stdio","command":"npx","args":["-y","@secondlayer/mcp"],"env":{"SECONDLAYER_API_KEY":"<YOUR_SECONDLAYER_API_KEY>"}}'Instal secondlayer MCP di Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"secondlayer": {
"command": "npx",
"args": [
"-y",
"@secondlayer/mcp"
],
"env": {
"SECONDLAYER_API_KEY": "<YOUR_SECONDLAYER_API_KEY>"
}
}
}
}Instal secondlayer MCP di Codex
$ codex mcp add secondlayer --env 'SECONDLAYER_API_KEY=<YOUR_SECONDLAYER_API_KEY>' -- npx -y @secondlayer/mcpInstal secondlayer MCP di Codex config.toml
~/.codex/config.toml
[mcp_servers.secondlayer] command = "npx" args = ["-y", "@secondlayer/mcp"] [mcp_servers.secondlayer.env] SECONDLAYER_API_KEY = "<YOUR_SECONDLAYER_API_KEY>"
Instal secondlayer MCP di Gemini CLI
$ gemini mcp add -s user -e 'SECONDLAYER_API_KEY=<YOUR_SECONDLAYER_API_KEY>' secondlayer npx -- -y @secondlayer/mcpInstal secondlayer MCP di Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"secondlayer": {
"command": "npx",
"args": [
"-y",
"@secondlayer/mcp"
],
"env": {
"SECONDLAYER_API_KEY": "<YOUR_SECONDLAYER_API_KEY>"
}
}
}
}Tool secondlayer MCP 2
Terdeteksi dari READMEfieldscount
| fields | — | |
| count | — |
Konfigurasi
SECONDLAYER_API_KEYRahasiaAccount API key (sk-sl_*) for the hosted API: credits, writes.
INSTANCE_TOKENSECONDLAYER_API_URLInstance API URL. Use https://api.secondlayer.tools for hosted.
SECONDLAYER_MCP_SECRET
| Nama | Deskripsi | Tipe |
|---|---|---|
| SECONDLAYER_API_KEY | Account API key (sk-sl_*) for the hosted API: credits, writes. | Rahasia |
| INSTANCE_TOKEN | — | |
| SECONDLAYER_API_URL | Instance API URL. Use https://api.secondlayer.tools for hosted. | |
| SECONDLAYER_MCP_SECRET | — |
Pengecekan otomatis
Berjalan 12 Nov 2026Laporan lengkap →Lolos checks otomatis kami. Ini bukan audit keamanan: baca kodenya dan berikan server akses paling terbatas yang dibutuhkannya. Cara kerja checks
- Source repository terhubung dan dapat dijangkauLolos
- Lisensi open source (OSI)Lolos
- Ada commit atau release dalam satu tahun terakhirLolos
- Nama package tidak mirip dengan package populerLolos
- Remote endpoint menggunakan HTTPSLolos
- Tools yang bersifat destruktif telah diberi labelLolos
- Tidak ada instruksi tersembunyi untuk modelLolos
- Tidak ada advisory kritis pada paket atau dependensinyaLolos
README
Lihat di GitHub@secondlayer/mcp
Gives your coding agent direct access to Stacks data, on the hosted API
(api.secondlayer.tools) or on your own instance:
Index (decoded rows), Subgraphs (tables you define, served from your account or instance),
and Streams (raw inputs). Exposes the golden-path tools only: Index reads, the
subgraph lifecycle, webhooks, contract discovery/scaffolding, instance
status, archive verify/bootstrap, and hosted credits/quote. Everything else
(single-record lookups, mempool, PoX, proofs, live Streams reads) is
available over REST /v1 + OpenAPI. There is no consume tool.
Hosted
No install: the hosted API serves the read tools over Streamable HTTP, with a browser sign-in.
claude mcp add --transport http secondlayer https://api.secondlayer.tools/mcp
Clients without OAuth send Authorization: Bearer <sk-sl_ key>. Subgraph
deploys, webhooks, archive, codegen and instance tools are local only. See
/docs/mcp.
Install
bun add @secondlayer/mcp
Auth
Most reads are public: index_* and contracts_find work with no key. Subgraph tools need an INSTANCE_TOKEN past loopback, and so does GET /v1/subgraphs/<name>/<table> over HTTP ({ rows, next_cursor, tip } cursor envelope); on loopback it is open. There is no per-subgraph public or private flag. streams_dumps needs no key: the dumps manifest is public; the tool only needs SL_STREAMS_DUMPS_URL configured. streams_tip is key-mandatory (keyless → 401). Live Streams list reads are REST-only (GET /v1/streams/*). Writes (deploy, reindex, delete, webhooks) need a key, and the key follows the host: on https://api.secondlayer.tools the server uses SECONDLAYER_API_KEY (sk-sl_*) automatically; anywhere else it uses INSTANCE_TOKEN from secondlayer init. Hosted credits/quote use SECONDLAYER_API_KEY too. On the hosted API, subgraph sources are limited to event filters and contract_call/contract_deploy (422 SOURCE_NOT_HOSTABLE otherwise); set startBlock. Read secondlayer://context first: it reports auth state and read-auth tiers.
Quick Start — Stdio (IDE)
Add to your Claude Desktop or Cursor config:
{
"mcpServers": {
"secondlayer": {
"command": "bunx",
"args": ["-p", "@secondlayer/mcp", "secondlayer-mcp"],
"env": {
"SECONDLAYER_API_URL": "http://127.0.0.1:3800",
"INSTANCE_TOKEN": "..."
}
}
}
}
Quick Start — HTTP (Remote)
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
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
INSTANCE_TOKEN |
Writes on your instance | — | From secondlayer init. Required for write tools elsewhere than api.secondlayer.tools; reads are public. Not sent to the hosted API. |
SECONDLAYER_API_KEY |
Hosted API, credits/quote/latest | — | sk-sl_*, used automatically when SECONDLAYER_API_URL is https://api.secondlayer.tools. |
SECONDLAYER_API_URL |
No | http://127.0.0.1:3800 |
Instance API, or https://api.secondlayer.tools for hosted. |
SECONDLAYER_BIN |
CLI tools | secondlayer on PATH |
Path to the CLI binary (bootstrap, repair). |
SECONDLAYER_CWD |
CLI tools | process cwd | Compose project directory. |
SECONDLAYER_MCP_PORT |
No | 3100 |
HTTP transport port. |
SECONDLAYER_MCP_SECRET |
No | — | Bearer token for HTTP auth. Disabled if unset. |
Tools
| Domain | Tools |
|---|---|
| Index (9) | index_events, index_ft_transfers, index_nft_transfers, index_contract_calls, index_blocks, index_transactions, index_print_schema, index_discover, batch_query |
| Subgraphs (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 |
| Webhooks (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 |
| Streams (2) | streams_tip, streams_dumps |
| Contracts (2) | contracts_find, contracts_get_abi |
| Instance (1) | instance_status |
| Archive (5) | archive_verify, archive_bootstrap, archive_repair, archive_latest, archive_quote |
| Credits (1) | credits_balance (needs SECONDLAYER_API_KEY) |
| Account (4) | account_whoami, account_create_key, account_list_keys, account_rotate_key (only when pointed at https://api.secondlayer.tools) |
Verify after mutating: subgraphs_operations for deploy/reindex/backfill/stop,
webhooks_deliveries for create/test/replay. Empty index:
archive_bootstrap, poll instance_status until decoders are ok, then
archive_verify, then codegen_index_schema.
Periphery surfaces (single block/tx lookups, mempool, PoX, proofs,
credits/caps, live Streams reads/SSE) are REST-only: see the OpenAPI spec at
the API host. Live Streams list reads use GET /v1/streams/events.
Point the server at your instance with SECONDLAYER_API_URL (default
http://127.0.0.1:3800). Writes use INSTANCE_TOKEN from
secondlayer init. account_* tools appear only when the server is pointed at
https://api.secondlayer.tools.
webhooks_create triggers
Webhooks fire on raw chain events. Pass a triggers array (contract / event /
function / trait), e.g. [{ "type": "contract_call", "contractId": "SP....amm", "functionName": "swap-*" }]. To react to subgraph rows, read the
table from your own Postgres or poll the subgraph API.
subgraphs_query enhancements
fields— comma-separated column projection (e.g."sender,amount_x")count— boolean, returns row count instead of rows- Filter operators:
eq,neq,gt,gte,lt,lte,like - Max limit: 200
Resources
| URI | Description |
|---|---|
secondlayer://context |
Live state — what exists (your subgraphs, webhooks, account), what you can do, and read-auth tiers. Read first. |
secondlayer://filters |
Subgraph source filter types and their fields |
secondlayer://column-types |
Column type mappings and options |
secondlayer://traits |
SIP trait standards (valid trait values) |
secondlayer://chain-triggers |
Chain-webhook trigger types and fields |
Error Handling
All tools return structured errors with isError: true:
{ "error": { "type": "not_found", "status": 404, "message": "Subgraph not found" } }
| Error type | Status | When |
|---|---|---|
unauthorized |
401 | Invalid or missing API key |
not_found |
404 | Resource doesn't exist |
rate_limited |
429 | Too many requests |
server_error |
5xx | Server-side failure |
error |
other | Validation, bundling, etc. |
Bundle/deploy errors use descriptive prefixes: "Bundle failed:", "Module evaluation failed:", "Validation failed:". HTTP transport enforces a 1MB body limit (413) and JSON parse safety (400). Scaffold ABI fetch has a 10s timeout.
Programmatic Usage
import { createServer } from "@secondlayer/mcp";
const server = createServer();
// Connect to your own transport
License
MIT
Pertanyaan tentang secondlayer MCP
Bagaimana cara menambahkan secondlayer MCP ke Claude Code?
Jalankan claude mcp add --env 'SECONDLAYER_API_KEY=<YOUR_SECONDLAYER_API_KEY>' secondlayer -- npx -y @secondlayer/mcp di terminal Anda. Tambahkan --scope user agar tersedia di semua proyek.
Bagaimana cara menambahkan secondlayer MCP ke Cursor?
Buka ~/.cursor/mcp.json dan tambahkan server di bawah mcpServers, menggunakan config Cursor yang ditunjukkan di bagian instalasi di atas.
Tool apa yang disediakan secondlayer MCP?
Server ini menyediakan 2 tool, termasuk fields, count.
Apakah saya memerlukan API key untuk semua tool?
Tidak, sebagian besar fungsi read seperti index_events dan contracts_find bersifat publik dan dapat digunakan tanpa key, namun tool subgraph dan fungsi write memerlukan INSTANCE_TOKEN atau API key.
Bisakah saya menggunakan ini dengan instance lokal saya sendiri?
Ya, Anda dapat mengarahkan server ke instance Anda sendiri dengan mengonfigurasi environment variable SECONDLAYER_API_URL.
Apa kegunaan dari resource secondlayer://context?
Resource ini digunakan untuk melaporkan status autentikasi saat ini dan tier read-auth yang tersedia.