io.github.CloudCorpRecords/chainlens

السجل الرسمي أخرى

Blockscout explorer data: addresses, blocks, transactions, tokens, NFTs, and contract reads.

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

NPM package @reneturcios/chainlens
Claude Code
claude mcp add chainlens -- npx -y @reneturcios/chainlens@0.1.0 mcp
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "chainlens": {
            "command": "npx",
            "args": [
                "-y",
                "@reneturcios/chainlens@0.1.0",
                "mcp"
            ]
        }
    }
}
OCI package ghcr.io/cloudcorprecords/chainlens:0.1.0
Claude Code
claude mcp add chainlens -- docker run -i --rm ghcr.io/cloudcorprecords/chainlens:0.1.0 mcp
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "chainlens": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "ghcr.io/cloudcorprecords/chainlens:0.1.0",
                "mcp"
            ]
        }
    }
}

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. chainlens
  2. How it talks to the service
  3. Install
  4. CLI
  5. MCP server
  6. Development
  7. License

chainlens

chainlens looks into EVM blockchains through Blockscout: what an address holds and has done, what is in a block or a transaction, which tokens and NFTs sit in a wallet, and what a verified contract's ABI and source say. Six chains are built in — Ethereum, Optimism, Gnosis, Polygon, Base, and Arbitrum One — and every answer comes from that chain's public Blockscout API v2 instance.

This package is a clean-room rebuild of the 16 tools documented in the README of the original Blockscout MCP server. The full documented set is covered; the wire mapping is described below, including the parts that are reconstructions.

How it talks to the service

No API key is required — public Blockscout instances are keyless:

# Optional: send a key as an x-api-key header
export BLOCKSCOUT_API_KEY="your key"
# Optional: override the per-chain base URL for any chain
export BLOCKSCOUT_API_URL="https://eth.blockscout.com/api/v2"

The base URL is chosen per chain_id from a built-in map: 1 Ethereum, 10 Optimism, 100 Gnosis, 137 Polygon, 8453 Base, 42161 Arbitrum One. An unknown chain_id is an error naming the known chains (unless BLOCKSCOUT_API_URL is set, in which case the override wins for any chain).

Wire-format notes. The original server routes most data tools through its PRO gateway; this rebuild maps them onto the public Blockscout API v2 (/addresses/..., /blocks/..., /transactions/..., /smart-contracts/..., /search). A few shapings are documented reconstructions and first live-smoke checks:

  • ENS resolution uses mainnet /search?q=<name> and picks the first result carrying an address.
  • read_contract POSTs {function_name, args, abi} to /smart-contracts/{address}/methods/read — the least-proven mapping.
  • cursor arguments are forwarded as a cursor query parameter; Blockscout v2 paging normally uses next_page_params, so cursor support is a drift risk.
  • age_from / age_to (and methods / token) filters are applied client-side over the first fetched page, not forwarded upstream.

Two tools never touch the network: __unlock_blockchain_analysis__ returns local guidance plus the chain list, and get_chains_list filters that list locally by name, chain id, or currency substring.

Install

npx @reneturcios/chainlens get_block_number '{"chain_id":"1"}'

Or run the container image:

docker run -i ghcr.io/cloudcorprecords/chainlens

The container defaults to the MCP server. Pass CLI arguments to use it as a CLI instead.

CLI

The CLI mirrors the tools: one subcommand per tool, taking its arguments as a single JSON object.

chainlens get_chains_list '{"query":"base"}'
chainlens get_address_info '{"chain_id":"1","address":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"}'
chainlens get_transactions_by_address '{"chain_id":"1","address":"0x...","age_from":"2026-10-01T00:00:00Z","age_to":"2026-10-26T23:59:59Z"}'
chainlens get_block_info '{"chain_id":"8453","number_or_hash":"latest"}'
chainlens --version

Exit codes: 0 on success, 1 on an API or validation error (the error names the problem), 2 for usage errors.

MCP server

One bin serves both faces. The mcp subcommand starts a stdio MCP server:

npx -y @reneturcios/chainlens mcp

MCP client configuration:

{
  "mcpServers": {
    "chainlens": {
      "command": "npx",
      "args": ["-y", "@reneturcios/chainlens", "mcp"]
    }
  }
}
Tools
ToolInputWhat it does
__unlock_blockchain_analysis__—Local: returns status, guidance, and the supported chain list.
get_chains_listqueryLocal: the 6-chain list filtered by a name/id/currency substring.
get_address_by_ens_namename (required)Resolve an ENS name via mainnet search; returns the first result with an address.
lookup_token_by_symbolchain_id, symbol (required)Search a chain; returns token-type items (fallback: all items).
get_contract_abichain_id, address (required)The ABI of a verified contract.
inspect_contract_codechain_id, address (required), file_nameSource code and creation status of a verified contract.
get_address_infochain_id, address (required)Address balance, type, and metadata.
get_tokens_by_addresschain_id, address (required), cursorToken balances held by an address.
get_block_numberchain_id (required), datetimeLatest block number and timestamp; echoes the requested datetime.
get_transactions_by_addresschain_id, address, age_from, age_to (required), methods, cursorAddress transactions; age and method filters applied client-side over the first page.
get_token_transfers_by_addresschain_id, address, age_from, age_to (required), token, cursorERC-20 transfers; age and token filters applied client-side over the first page.
nft_tokens_by_addresschain_id, address (required), cursorNFT tokens (ERC-721, ERC-1155) held by an address.
get_block_infochain_id, number_or_hash (required), include_transactionsBlock details by number or hash.
get_transaction_infochain_id, hash (required), include_raw_inputTransaction details by hash.
read_contractchain_id, address, abi, function_name (required), args (JSON string, default []), blockRead a contract function (reconstructed wire mapping, see notes).
direct_api_callchain_id, endpoint_path (required), query_params, method, json_body, cursorCall any Blockscout API v2 endpoint path directly.

Development

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, fake fetch only, no network
npm run dev     # run the CLI from source via tsx

License

MIT — see LICENSE.

الأسئلة الشائعة

ما هو io.github.CloudCorpRecords/chainlens؟

Blockscout explorer data: addresses, blocks, transactions, tokens, NFTs, and contract reads.

كيف أثبّت io.github.CloudCorpRecords/chainlens؟

يعمل على جهازك. في Claude Code: claude mcp add chainlens -- npx -y @reneturcios/chainlens@0.1.0 mcp. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج io.github.CloudCorpRecords/chainlens إلى مفتاح API؟

لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.

هل io.github.CloudCorpRecords/chainlens مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص MIT.

من يصون io.github.CloudCorpRecords/chainlens؟

ينشره CloudCorpRecords. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.