MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

secondlayer

Claim this listing

tools.secondlayer/secondlayer

secondlayer.toolsVerified

Stacks chain data: contracts, events, transfers, subgraph scaffolds. Hosted with browser sign-in.

LegalIs secondlayer down?Alternatives

13 of 22 checks passed

  • Handshake
  • Tools listed
  • Updated recently

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Connect to server
Median latency
80 ms
Uptime, 30 days
Not measured
Last checked

Measurement details

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 80 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name secondlayer.

  • Pass
    Lists tools

    tools/list returned 15 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 80 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 80 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    59 of 59 parameters have a description (100%). The bar is 80%.

  • Fail
    Safety hints

    15 tools set neither readOnlyHint nor destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-11-09T19:14:13.497062Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Tools

  • account_whoami

    Show the archive account email at api.secondlayer.tools, not the self-host instance.

    Measured

  • batch_query

    Run up to 10 public /v1 reads in one round trip (POST /v1/batch). Each item keeps its own auth/quota/pay-per-call semantics; results return in order with per-item status. Paths must start with /v1/index, /v1/subgraphs, /v1/streams, or /v1/contracts.

    Measured

  • contracts_find

    Discover deployed Stacks contracts conforming to a trait (e.g. "sip-010", "sip-009", "sip-013"). The discovery endpoint for "which contracts implement X". Reads are public.

    Measured

  • contracts_get_abi

    Fetch a single deployed contract's ABI from the registry (prod-safe). Returns the contract's metadata + full ABI (functions, maps, variables, fungible/non-fungible tokens). Returns not_found if the contract isn't in the registry. Use it to inspect a contract before subgraphs_scaffold.

    Measured

  • index_blocks

    List decoded blocks from Index. Reads are keyless.

    Measured

  • index_contract_calls

    List decoded contract calls from the Index (function name, args, result). Set `trait` (e.g. sip-010) to match calls to all contracts conforming to a standard. Note: contract-call cursors are a SEPARATE keyspace from event cursors — they are not interchangeable.

    Measured

  • index_discover

    Discover the Index vocabulary: every event type and its columns, allowed/equality filters, and required-non-null fields (and which types accept `trait`). Read this before building Index queries instead of guessing filters. Anonymous read.

    Measured

  • index_events

    List decoded chain events from the Index by event type. Use this for event types without a dedicated tool (stx_*, ft_mint/burn, nft_mint/burn, print), and for trait-scoped queries: set `trait` (e.g. sip-010) to match all contracts conforming to a standard — pair with contracts_find to discover traits. For ft/nft transfers without a trait prefer index_ft_transfers / index_nft_transfers.

    Measured

  • index_ft_transfers

    List decoded SIP-010 fungible-token transfers from Index. Reads are keyless.

    Measured

  • index_nft_transfers

    List decoded SIP-009 non-fungible-token transfers from Index. Reads are keyless.

    Measured

  • index_print_schema

    Empirical per-topic print payload schemas for a contract, inferred from sampled on-chain events: each topic's fields with observed Clarity types, decoded TS types, subgraph column types, and presence rates. Use before writing print_event subgraph handlers to learn what's on e.data. Anonymous read.

    Measured

  • index_transactions

    List decoded transactions from Index. Filter by type, sender, or contract. Reads are keyless.

    Measured

  • streams_dumps

    List the Streams bulk parquet dumps manifest — coverage range, latest_finalized_cursor, and per-file metadata (block range, row count, size, sha256, signed URL). This is the cold backfill path for downloading all raw data; fetch the file URLs directly (e.g. with DuckDB). Requires the dumps base URL to be configured (SL_STREAMS_DUMPS_URL). For live reads use REST GET /v1/streams/events; for tip/lag use streams_tip.

    Measured

  • streams_tip

    Current canonical chain tip as Streams sees it: block height/hash, burn height, finalized_height, lag_seconds, and the oldest seekable height/cursor for this key's retention window. Call it before a cursor walk to know where the stream ends, and after an ingest to check lag.

    Measured

  • subgraphs_scaffold

    Generate a subgraph from observed print events when available; ABI token transfers or public functions only when the contract has never printed. Review the TypeScript, run subgraphs_test until ok: true with written >= 1, read skipped, then subgraphs_deploy. dryRun is DDL only.

    Measured

Probe history

  • ok80 ms15 tools

Status and uptime

Add badge to your README

The image links back to this page. It shows checks passed, or uptime, and the colour follows the latest status. Responses are cached for 5 to 15 minutes.

MCP Heartbeat badge

Markdown

[![MCP Heartbeat](https://mcpheartbeat.com/badge/tools.secondlayer/secondlayer.svg)](https://mcpheartbeat.com/s/tools.secondlayer/secondlayer)

HTML

<a href="https://mcpheartbeat.com/s/tools.secondlayer/secondlayer"><img alt="MCP Heartbeat" src="https://mcpheartbeat.com/badge/tools.secondlayer/secondlayer.svg"></a>

Uptime markdown

[![MCP Heartbeat uptime](https://mcpheartbeat.com/badge/tools.secondlayer/secondlayer.svg?kind=uptime)](https://mcpheartbeat.com/s/tools.secondlayer/secondlayer)

Served from https://mcpheartbeat.com.

Related servers

All alternatives

Same function and industry, ranked by checks passed then median latency.

Connect to this server

Claude Code

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

Cursor .cursor/mcp.json

{
  "mcpServers": {
    "secondlayer": {
      "url": "https://api.secondlayer.tools/mcp"
    }
  }
}

VS Code .vscode/mcp.json

{
  "servers": {
    "secondlayer": {
      "type": "http",
      "url": "https://api.secondlayer.tools/mcp"
    }
  }
}