プロトタむプ · プレビュヌ版公匏レゞストリのすべおのサヌバヌを掲茉し、30分ごずに同期しおいたす。レビュヌずアカりント機胜は今埌のステップで始たりたす。
PopNx MCPAIを䜿う人のためのMCPサヌバヌ · やさしい蚀葉で解説

🐎 Gulltoppr

䜜者portdeveloperバヌゞョン 0.1.2i★ –iクラりドで動く
レゞストリ名io.github.portdeveloper/gulltoppr

むンストヌル

抂芁

䜜者による説明英語の原文

Resolve any EVM contract ABI (even unverified, via decompilation), read, simulate, prepare txs.

PopNx MCPの3぀の柱

この3぀を1぀のスコアにたずめるこずはしたせん。意芋、枬定、人気はそれぞれ別のものだからです。

できるこず

このサヌバヌのやさしい解説はただ曞いおいたせん。以䞋はレゞストリから読み取った事実です。

  • 接続方法: クラりドで動く
  • トランスポヌト: Streamable HTTP
  • カテゎリ: その他

むンストヌル

䜿っおいるAIアプリを遞んで、蚭定をコピヌしおください。

むンストヌルの前に

  • 基本チェック1項目䞭1項目に合栌
  • 䜜者のサヌバヌで動きたす。あなたが頌んだ内容は、䜜者のサヌバヌを通りたす。
  • レゞストリには、入力が必芁なキヌは茉っおいたせん。

必芁なもの

どのアプリを䜿っおいたすか

䞊でアプリを遞んでください。遞んだアプリを芚えおおくので、次からはボタンに「 にむンストヌル」ず衚瀺されたす。

りェブ、デスクトップ、モバむルのClaudeで䜿えたす

  1. Settings → Connectors を開く
  2. Add custom connector を抌す
  3. 䞋のアドレスを貌り付けお Add を抌す
  4. サむンむンを求められたら、䜜者のサヌビスにサむンむンする
SettingsConnectors1+ Add2https://
3
https://mcp.gulltoppr.dev/mcp

タヌミナルでこれを実行したす

claude mcp add --transport http gulltoppr https://mcp.gulltoppr.dev/mcp

Cursorで開く

たたは、蚭定を自分でコピヌする

プロゞェクトの .cursor/mcp.json、たたは ~/.cursor/mcp.json に貌り付けたす

{
  "mcpServers": {
    "gulltoppr": {
      "url": "https://mcp.gulltoppr.dev/mcp"
    }
  }
}

ブラりザがアプリを開いおよいか確認し、そのあずアプリが蚭定を衚瀺しお確認を求めたす。キヌの倀は空欄のたたなので、自分で入力しおください。

VS Codeで開く

たたは、蚭定を自分でコピヌする

プロゞェクトの .vscode/mcp.json に貌り付けたす

{
  "servers": {
    "gulltoppr": {
      "type": "http",
      "url": "https://mcp.gulltoppr.dev/mcp"
    }
  }
}

ブラりザがアプリを開いおよいか確認し、そのあずアプリが蚭定を衚瀺しお確認を求めたす。キヌの倀は空欄のたたなので、自分で入力しおください。

ChatGPTが぀なげるのは、むンタヌネット䞊のサヌバヌだけです

  1. りェブ版のChatGPTを開き → Settings → Connectors (Apps)
  2. Create たたは Add を抌すプランによっおは、先に Advanced で Developer mode をオンにする必芁がありたす
  3. 䞋のアドレスを貌り付け、名前を付けお保存する
  4. サむンむンを求められたら、䜜者のサヌビスにサむンむンする
SettingsConnectors1+ Create2https://
3
https://mcp.gulltoppr.dev/mcp

メニュヌの名前は、プランや時期によっお少し違うこずがありたす。

遞んだアプリは、この端末のCookieに保存されたす。アカりントは䞍芁です。

この蚭定は、䜜者のレゞストリ登録情報から䜜成しおいたす。READMEず違う堎合は、READMEに埓っおください。

できるこず

このサヌバヌのツヌル䞀芧はただ読み取っおいたせん。゚ンドポむントは順番にチェックしおいたす。

基本チェックi

誰でも芋られる情報をチェックしおおり、コヌドは読んでいたせん。圓おはたらない項目は数に入れおいたせん。 · 2026幎11月6日にチェック

  • ✓ 合栌

    䜜者ずリポゞトリが䞀臎

    レゞストリ名は、リポゞトリを所有するGitHubアカりント portdeveloper で確認枈みです

  • 
 未チェック

    今もメンテナンスされおいる

    このリポゞトリはただGitHubから読み取っおいたせん

  • 
 未チェック

    ラむセンスがある

    このリポゞトリはただGitHubから読み取っおいたせん

  • 
 未チェック

    ゚ンドポむントが応答する

    ただチェックしおいたせん。゚ンドポむントは順番にチェックしおいたす

  • 
 未チェック

    OAuthでサむンむン

    ただチェックしおいたせん。゚ンドポむントは順番にチェックしおいたす

  • 
 未チェック

    ツヌルの説明に隠れた指瀺がない

    ただチェックしおいたせん。゚ンドポむントをチェックするずきにツヌル䞀芧を読み取りたす

その他のほかのサヌバヌずの比范i

  • このカテゎリのほかの32451件のうち0%よりスタヌが倚い
  • このカテゎリのほかの32451件のうち12%より最近レゞストリに公開
  • 基本チェックの結果が、このカテゎリのほかの32451件のうち100%ず同じかそれ以䞊

レゞストリでこのカテゎリにある有効なすべおのサヌバヌず比范しおいたす。スタヌは、公開者がリポゞトリの所有者である堎合だけ数えたす。

よくある質問

🐎 Gulltopprは安党ですか

圓おはたる基本チェック1項目のうち1項目に合栌したした。コヌドは読んでいたせん。キヌやトヌクンを远加する前に、サヌバヌがどんなアクセスを求めおいるかを確認し、必芁な暩限だけを持぀キヌを䜿っおください。

どんなキヌやコヌドが必芁ですか

レゞストリには必須のキヌは茉っおいたせん。ただし、最初に䜿うずきにサむンむンを求めるサヌバヌもありたす。

パ゜コンで動きたすか、それずもクラりドですか

䜜者のクラりドで動きたす。むンストヌル䞍芁でむンタヌネット経由で぀ながりたすが、送った内容は䜜者のサヌバヌを通りたす。

今もメンテナンスされおいたすか

GitHubリポゞトリの最終曎新は–、最新バヌゞョン0.1.2がレゞストリに届いたのは5 か月前です。

どのアプリで䜿えたすか

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP察応アプリで䜿えたす。URLで぀ながるので、リモヌトMCPサヌバヌに察応したアプリ開発者モヌドのChatGPTなどでも䜿えたす。

代わりに䜿えるものは

同じカテゎリにはSpec Driven Development, Remote Desktop Commander, Recta

代わりの候補

同じカテゎリで、ほかの䜜者が䜜ったサヌバヌ。スタヌの倚い順。

カヌドの芋方★ GitHubスタヌi3぀の柱レビュヌ · チェック · 利甚状況i曎新最新バヌゞョンをレゞストリに公開した日i

Recta

䜜者RectaBuild

Cheaper cross-chain stablecoin routes for AI agents; 5 % of the verified saving, nothing if none.

クラりドで動く今日曎新
むンストヌル

䜜者のREADME

READMEを開く

䜜者のリポゞトリから曞かれたずおりにコピヌしたものです。PopNx MCPは内容を確認・掚奚しおいたせん。HTML、画像、スクリプトは取り陀いおいたす。リンクはこのサむトの倖ぞ移動したす。

🐎 gulltoppr

*A real session: an unverified MEV bot that traded seconds earlier (no source, no ABI anywhere) resolved to a full interface in two MCP tool calls.*

The REST engine for gulltoppr: the resolution ladder + verb surface that lets an AI agent go from (chain, address) to a correct, simulated, safe contract interaction. This is "the engine" of the four faces (REST → MCP → SDK → Skill); see ../SPEC.md for the full contract and ../IDEATION.md for the strategy.

TypeScript + viem + Hono. The heimdall decompile rung is delegated over HTTP to gulltoppr (kept out-of-process by design).

Run

npm install

npm run dev # REST engine: tsx watch on http://localhost:8787 npm run mcp # MCP server: stdio tools for agent clients npm run mcp:http # MCP server: Streamable HTTP (remote agents) npm run typecheck # tsc --noEmit npm test # vitest unit tests (cache, chains, ladder helpers, args, errors) npm run verify # root typecheck/test/audit + SDK build/test/audit npm run docker:build # build the REST engine deployment image npm run docker:build:mcp # build the Streamable HTTP MCP deployment image npm run docker:smoke # start both deployment images and check health/discovery/registry metadata npm run test:live # opt-in live contract smoke tests (RPC/decompiler/network)

Set LIVE_ENGINE_BASE_URL=https://api.gulltoppr.dev with npm run test:live to smoke a deployed engine instead of the local in-process server. The scheduled live GitHub Action runs the local path; manual dispatch can set the same deployed URL.

Env
vardefaultnotes
PORT8787
HEIMDALL_API_URLhttp://heimdall-api.flycastheimdall decompile service (ladder rung 4). Private to the Fly org since 2026-07-27 — point this at your own instance when running outside it, or rung 4 falls back to selector-only via 4byte
HEIMDALL_CONCURRENCY2per-process cap on outbound decompile/decode requests; 0 disables
HEIMDALL_QUEUE_TIMEOUT_MS5000max time a gulltoppr request can wait for an outbound concurrency slot
ENS_RPC_URLhttps://ethereum-rpc.publicnode.commainnet RPC for ENS/Basenames Universal Resolver calls; use a private RPC in production
ETHERSCAN_API_KEY_(empty)_one multichain v2 key; empty disables rung 1
ETHERSCAN_RATE_LIMIT4per-process fixed-window budget for the shared Etherscan key; 0 disables
ETHERSCAN_RATE_WINDOW_SEC1Etherscan budget window length
SIGNING_BASE_URLhttps://abi.ninjabase for prepare_tx hand-off deeplinks
RATE_LIMIT120per-IP requests per window (fixed window); 0 disables
RATE_LIMIT_WINDOW_SEC60rate-limit window length
RATE_LIMIT_ALLOW_(empty)_comma-separated IP allowlist (exempt); private 6PN IPs are always exempt
ANTHROPIC_API_KEY_(empty)_enables the registry's LLM propose-and-verify pass on decompiles; empty disables
REGISTRY_LLM_MODELclaude-opus-4-8model for propose-and-verify

Endpoints (SPEC §4)

verbroute
discoveryGET / · root discovery document with REST/MCP links, verbs, utility tools, and the prepare_tx safety gate
OpenAPIGET /openapi.json · machine-readable REST contract for coding agents and integrations
agent guideGET /llms.txt · compact LLM/coding-agent guide; also published at https://gulltoppr.dev/llms.txt
resolve_abiGET /v1/{chain}/{address}/abi?include_abi=&method_q=&method_kind=&method_limit= · set include_abi=false for compact manifest/provenance without raw ABI
read_contractPOST /v1/{chain}/{address}/read · body {function, args}
encode_callPOST /v1/{chain}/{address}/encode · body {function, args, value?}
simulatePOST /v1/{chain}/simulate · body {from,to,data,value?} or {from,address,function,args,value?}; never mix both forms
prepare_txPOST /v1/{chain}/{address}/prepare · body {function, args, from, value?}
decode_txGET /v1/{chain}/tx/{hash}
resolve_nameGET /v1/{chain}/name/{name} · GET /v1/{chain}/name/by-address/{address}
chain catalogGET /v1/chains?q=&testnets=&has_default_rpc= · viem-backed aliases with testnet/has_default_rpc flags for UI clients
registry lookupGET /v1/lookup/{selector} · 4-byte (function/error) or 32-byte (event topic0), chain-independent
registry statsGET /v1/registry/stats
registry exportGET /v1/registry/export · CC0 NDJSON selector commons (X-License: CC0-1.0)
runtime metricsGET /v1/metrics · in-process rung/RPC attempts, latency, misses, and failure rates

GET routes set explicit Cache-Control: verified ABI responses cache longest, proxy ABI responses are short-lived, transaction decodes are immutable, the OpenAPI contract is cacheable, and operational endpoints such as /health and /v1/metrics are no-store. Rate-limited routes expose RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset, and Retry-After on 429 responses. ABI resolves also return X-Source, X-Confidence, X-Cache, X-Elapsed-Ms, and X-ABI-Included.

The registry (selector commons)

The engine seeds an open selector→signature registry as a byproduct of resolution:

  • Every verified resolution (Etherscan/Sourcify) harvests ground-truth selector → signature pairs for functions, events (full 32-byte topic0, collision-free), and errors. Proof grade: verified-source.
  • Resolutions are also indexed by skeleton hash (runtime bytecode with the solc metadata trailer stripped), so byte-identical clones resolve via a new bytecode-match rung without re-running the ladder. Verified claims are capped to partial for clones (this address's source was never verified), and provenance.bytecode_match points at the original chain/address/source/confidence that supplied the reused ABI.
  • Decompiled ABIs get Unresolved_ names replaced from proven registry entries, and (when ANTHROPIC_API_KEY is set) a fire-and-forget propose-and-verify pass asks Claude for candidate signatures and accepts only those where keccak256(sig)[:4] reproduces the selector: proof grade keccak-proven (signature proven; semantics still inferred).
  • Public 4byte fallback labels are also selector-matched locally before use, but remain unproven labels and never enter the commons as proof.

Only the engine's own pipeline writes to the registry; no open submissions (that's how 4byte got collision-poisoned).

The accumulated data is published as a CC0 dataset: evm-abi-commons (regenerate any time from GET /v1/registry/export; the response is NDJSON and includes X-License: CC0-1.0 plus a license Link header). Lookup/export entries include proof grade and, for harvested verified-source entries when known, the source chain and address. SDK users can call lookupSelector, registryStats, and exportRegistry directly.

{chain} is any alias from GET /v1/chains (backed by viem/chains) or a numeric id. Chain entries include testnet and has_default_rpc so agents can decide when to ask for rpc_url; q matches ids, names, aliases, native symbols, and multi-word searches such as bnb chain. Pass ?rpc_url= to override the RPC (required for chains with no default, e.g. local/31337; this is how any EVM chain works before it has a built-in alias).

For agent contexts, prefer include_abi=false on resolve_abi unless you need the raw JSON ABI. The compact response preserves interface, provenance, proxy, token, and abi_for, and marks abi_omitted: true. For large contracts, add method_q, method_kind=read|write|all, and method_limit to return only the manifest methods relevant to the user's intent.

curl localhost:8787/v1/ethereum/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/abi

curl -X POST localhost:8787/v1/ethereum/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/prepare \ -H 'content-type: application/json' \ -d '{"function":"approve","args":["0x1111111254EEB25477B68fb85Ed929f73A960582","1000000000000000000"],"from":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"}'

prepare_tx.safety.signing_recommended gates the hand-off. If simulation fails, risk_level is blocked, deeplink is empty, and wallet_request is omitted. When signing is recommended, wallet_request is an EIP-1193-shaped eth_sendTransaction payload with hex JSON-RPC quantities for wallet/explorer/app integrations. Decompiled or selector-only writes are high risk and require explicit user confirmation of selector + intent. Positive token/NFT spender approvals are medium risk with spending_approval. Token/NFT outflows from the transfer source, whether trace-derived or inferred from a standard token/NFT transfer, are medium risk with asset_outflow. Clients should show both before hand-off.

Integration recipes for wallets, block explorers, coding agents, and MCP clients are published at docs/integrations.md.

MCP server (SPEC §5)

npm run mcp starts a stdio MCP server exposing the seven core verbs plus read-only utility tools for chains, selector commons, and runtime metrics. The tools are a thin adapter over the deployed REST engine (ENGINE_URL), so the MCP shares the engine's persistent cache and Etherscan key; no duplicated resolution or secrets. Tool descriptions bake in the non-custodial hand-off model (prepare_tx never signs), lead with provenance warnings for partial/proxy/bytecode-match/decompiled ABI results, and require prepare_tx.safety.signing_recommended before a signing deeplink or wallet request is handed to the user. JSON MCP tools expose output schemas and structuredContent; clients can branch on provenance, decoded calls, simulations, selector results, metrics, and safety without scraping text.

Wire it into an MCP client (Claude Desktop / Claude Code mcp config):

{

"mcpServers": { "gulltoppr": { "command": "npm", "args": ["run", "--silent", "mcp"], "cwd": "/home/ubuntu/repos/abi-agent", "env": { "ETHERSCAN_API_KEY": "" } } } }

Core tools: resolve_abi, read_contract, encode_call, simulate, prepare_tx, decode_tx, resolve_name. Utility tools: list_chains, lookup_selector, registry_stats, export_registry, runtime_metrics. All are read-only-annotated except prepare_tx (non-destructive: returns an unsigned hand-off, signs nothing).

Remote (Streamable HTTP)

For agents that can't run a local stdio server, the same MCP is hosted over HTTP at https://mcp.gulltoppr.dev/mcp (npm run mcp:http locally; stateless). Point an HTTP-capable MCP client at that URL:

{ "mcpServers": { "gulltoppr": { "url": "https://mcp.gulltoppr.dev/mcp" } } }

Tool registration is shared (src/mcp-server.ts) between the stdio entry (mcp.ts) and the HTTP entry (mcp-http.ts), deployed via Dockerfile.mcp / fly.mcp.toml. MCP directory metadata lives in server.json and advertises the same remote URL, repository, homepage, and icon. The remote MCP service also serves the same metadata at https://mcp.gulltoppr.dev/server.json and https://mcp.gulltoppr.dev/.well-known/mcp-server.json.

npm SDK

A typed client over this REST surface lives in sdk/ (gulltoppr): new Gulltoppr({ baseUrl }).resolveAbi(...) / .read(...) / .prepareTx(...), plus a contract() helper. It's the third face (after REST and MCP) and the basis for wallet, explorer, and app integrations. See sdk/README.md.

Depl

冒頭だけを衚瀺しおいたす。続きはリポゞトリで読めたす

PopNxに聞く