Browser Use
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
作者提供的说明(英文原文)
Stacks chain data: contracts, events, transfers, subgraph scaffolds. Hosted with browser sign-in.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
SECONDLAYER_API_KEY, SECONDLAYER_API_URL标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
适用于网页版、桌面版和手机版 Claude:
https://api.secondlayer.tools/mcp打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"secondlayer": {
"command": "npx",
"args": [
"-y",
"@secondlayer/mcp"
],
"env": {
"SECONDLAYER_API_KEY": "your-value",
"SECONDLAYER_API_URL": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add --transport http secondlayer https://api.secondlayer.tools/mcpclaude mcp add secondlayer --env SECONDLAYER_API_KEY=your-value --env SECONDLAYER_API_URL=your-value -- npx -y @secondlayer/mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"secondlayer": {
"url": "https://api.secondlayer.tools/mcp"
}
}
}粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"secondlayer": {
"command": "npx",
"args": [
"-y",
"@secondlayer/mcp"
],
"env": {
"SECONDLAYER_API_KEY": "your-value",
"SECONDLAYER_API_URL": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"secondlayer": {
"type": "http",
"url": "https://api.secondlayer.tools/mcp"
}
}
}粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"secondlayer": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@secondlayer/mcp"
],
"env": {
"SECONDLAYER_API_KEY": "your-value",
"SECONDLAYER_API_URL": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
ChatGPT 只能连接互联网上的服务器:
https://api.secondlayer.tools/mcp菜单名称可能因套餐和版本不同而略有差异。
你的选择通过 Cookie 保存在这台设备上,无需账户。
SECONDLAYER_API_URL env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
服务器要求先登录,才会列出它的工具。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过域名 secondlayer.tools 验证(注册中心会核实域名所有权)
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
在 159 毫秒内响应(HTTP 401)
声明支持 OAuth 登录,你的 AI 应用可以带你去登录
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:SECONDLAYER_API_KEY
两种方式都可以:安装在你的电脑上,或者连接云端版本。
GitHub 仓库最后更新于–,最新版本(11.2.4)于8天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Browser Use, Chrome DevTools MCP, MCP Server Browser
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
MCP server for Chrome DevTools
MCP server for browser use access
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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, stacking, proofs, live Streams reads) is available over REST /v1 + OpenAPI. There is no consume tool.
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 . Subgraph deploys, webhooks, archive, codegen and instance tools are local only. See /docs/mcp.
bun add @secondlayer/mcp
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/ / 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.
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": "..." } } } }
export SECONDLAYER_API_URL=http://127.0.0.1:3800
export INSTANCE_TOKEN= export SECONDLAYER_MCP_SECRET=your-secret bunx -p @secondlayer/mcp secondlayer-mcp-http
| 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. |
| 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, stacking, 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 triggersWebhooks 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 enhancementsfields — comma-separated column projection (e.g. "sender,amount_x")count — boolean, returns row count instead of rowseq, neq, gt, gte, lt, lte, like| 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 |
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.
import { createServer } from "@secondlayer/mcp";
const server = createServer(); // Connect to your own transport
MIT