{"apiVersion":"v1","directorySlug":"smarts-mcp-9c24eb54ce","title":"Smarts","description":"Live docs for every smart contract. Start with USDC, USDT, DAI, and USDC/WETH across Ethereum, Base, Arbitrum, Optimism, BNB Smart Chain, Polygon, Robinhood Chain, and Arc, or connect your AI agent to query verified on-chain state.","pageUrl":"https://www.mcpbundles.com/skills/smarts-mcp-9c24eb54ce","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://smarts.md/mcp","hostedMcpUrl":null,"toolCount":15,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"md.smarts/smarts-mcp-9c24eb54ce","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"get_contract_info","description":"Get metadata about a verified smart contract: name, compiler, classification, supported adapters, and counts of functions and events. Accepts either a curated slug (uni-eth, usdc-base, …) or chain+address.","inputSchema":{"type":"object","properties":{"slug":{"type":"string"},"chain":{"type":"string"},"address":{"type":"string"}}},"logicalName":"get_contract_info","displayName":"get_contract_info","title":"get_contract_info","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_contract_source","description":"Fetch the verified Solidity source for an indexed contract. Three modes by argument: no `file`/`search` returns a file index; `file:` returns one file's content; `search:` greps across all files (case-insensitive substring). Accepts a curated slug or chain+address.","inputSchema":{"type":"object","properties":{"file":{"type":"string"},"slug":{"type":"string"},"chain":{"type":"string"},"search":{"type":"string"},"address":{"type":"string"}}},"logicalName":"get_contract_source","displayName":"get_contract_source","title":"get_contract_source","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_admin_risk","description":"Get the current admin / risk profile for a verified contract: detected privileged controls, current control values, recent governance summary, evidence, warnings, and freshness metadata. Accepts either a curated slug or chain+address.","inputSchema":{"type":"object","properties":{"slug":{"type":"string"},"chain":{"type":"string"},"address":{"type":"string"}}},"logicalName":"get_admin_risk","displayName":"get_admin_risk","title":"get_admin_risk","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_erc20_info","description":"Get live state of an ERC-20 token: supply (raw + human-formatted), price, market cap, and issuer. For admin / privilege controls (paused, owner, mintable, upgradeable, etc.) and recent governance activity, the contract page itself exposes an Admin & Risk section — those are not returned here. Accepts slug or chain+address.","inputSchema":{"type":"object","properties":{"slug":{"type":"string"},"chain":{"type":"string"},"address":{"type":"string"}}},"logicalName":"get_erc20_info","displayName":"get_erc20_info","title":"get_erc20_info","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_governance_timeline","description":"Return the governance / admin event history for a contract, newest first. Surfaces only privileged events (role changes, pauses, proxy upgrades, blacklisting, minter config) — never per-user Transfer/Approval traffic. Each event includes a human-readable `summary` and a `category` (role_change, config, upgrade, lifecycle, risk_action). First call on a contract backfills ~90 days; subsequent calls are incremental. Pass `category` to filter. Accepts slug or chain+address.","inputSchema":{"type":"object","properties":{"slug":{"type":"string"},"chain":{"type":"string"},"limit":{"type":"integer"},"address":{"type":"string"},"category":{"type":"string"}}},"logicalName":"get_governance_timeline","displayName":"get_governance_timeline","title":"get_governance_timeline","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_polymarket_market","description":"Get Polymarket market metadata and on-chain resolution state by slug or condition_id. Includes outcome token IDs, derived CTF position IDs, prices when present, payouts, and links.","inputSchema":{"type":"object","properties":{"slug":{"type":"string"},"condition_id":{"type":"string"}}},"logicalName":"get_polymarket_market","displayName":"get_polymarket_market","title":"get_polymarket_market","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_polymarket_position","description":"Get a wallet's Polymarket CTF outcome-token balances for up to 10 explicit markets. Input an address plus condition_ids and/or slugs.","inputSchema":{"type":"object","required":["address"],"properties":{"slugs":{"type":"array","items":{"type":"string"}},"address":{"type":"string"},"condition_ids":{"type":"array","items":{"type":"string"}}}},"logicalName":"get_polymarket_position","displayName":"get_polymarket_position","title":"get_polymarket_position","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_polymarket_resolution","description":"Audit a Polymarket market resolution by slug or condition_id. Reads CTF payout state on-chain, includes Gamma market status and outcome token IDs, and flags whether API-level closed status agrees with the chain.","inputSchema":{"type":"object","properties":{"slug":{"type":"string"},"condition_id":{"type":"string"}}},"logicalName":"get_polymarket_resolution","displayName":"get_polymarket_resolution","title":"get_polymarket_resolution","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_recent_events","description":"List the most recent events emitted by a contract, decoded against its ABI. Returns up to `limit` events (default 20, max 100), newest first. Pass `event_name` to filter to a single event signature (e.g. 'Swap', 'Transfer'). Unknown topics are returned with event='Unknown' and the raw topic0 + data — never errors out per-log. Accepts slug or chain+address.","inputSchema":{"type":"object","properties":{"slug":{"type":"string"},"chain":{"type":"string"},"limit":{"type":"integer"},"address":{"type":"string"},"event_name":{"type":"string"}}},"logicalName":"get_recent_events","displayName":"get_recent_events","title":"get_recent_events","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_uniswap_v3_pool","description":"Get live state of a Uniswap V3 pool: token pair, fee tier, current price (both directions), active liquidity, current tick, and TVL in USD (via DefiLlama token prices). Accepts slug or chain+address.","inputSchema":{"type":"object","properties":{"slug":{"type":"string"},"chain":{"type":"string"},"address":{"type":"string"}}},"logicalName":"get_uniswap_v3_pool","displayName":"get_uniswap_v3_pool","title":"get_uniswap_v3_pool","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"inspect_address","description":"Inspect any EVM address: classifies it as an EOA / unverified contract / EIP-7702 delegated wallet, returns native-token balance, outgoing tx count (nonce), and reverse-ENS name (Ethereum only). Works for unindexed addresses — useful before deciding whether to call get_contract_info or get_erc20_info.","inputSchema":{"type":"object","required":["chain","address"],"properties":{"chain":{"type":"string"},"address":{"type":"string"}}},"logicalName":"inspect_address","displayName":"inspect_address","title":"inspect_address","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_article_drafts","description":"List multilingual article drafts under docs/drafts, including slug, category, locales, and validation errors. Requires the MCP connection to carry an Authorization: Bearer <publish_token> header.","inputSchema":{"type":"object","properties":{}},"logicalName":"list_article_drafts","displayName":"list_article_drafts","title":"list_article_drafts","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"publish_article","description":"Publish a multilingual article into Smarts article pages. Pass meta (category/subcategory/title/summary) and content (locale -> markdown body) inline; falls back to docs/drafts/:slug on the server if not provided. Optionally schedule X posts via x_queue. Requires the MCP connection to carry an Authorization: Bearer <publish_token> header.","inputSchema":{"type":"object","required":["slug"],"properties":{"meta":{"type":"object"},"slug":{"type":"string"},"thread":{"type":"boolean"},"tweets":{"type":"object"},"content":{"type":"object"},"dry_run":{"type":"boolean"},"published_at":{"type":"string"}}},"logicalName":"publish_article","displayName":"publish_article","title":"publish_article","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"validate_article_draft","description":"Validate one multilingual article draft without publishing it. Pass meta and content inline to validate a local draft; omit both to read docs/drafts/:slug on the server. Requires the MCP connection to carry an Authorization: Bearer <publish_token> header.","inputSchema":{"type":"object","required":["slug"],"properties":{"meta":{"type":"object"},"slug":{"type":"string"},"content":{"type":"object"}}},"logicalName":"validate_article_draft","displayName":"validate_article_draft","title":"validate_article_draft","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"read_contract_state","description":"Read the current on-chain value of a view/pure function. Fetches from the chain (cached 60s) and returns the decoded output. Accepts slug or chain+address.","inputSchema":{"type":"object","required":["function_name"],"properties":{"args":{"type":"array"},"slug":{"type":"string"},"chain":{"type":"string"},"address":{"type":"string"},"function_name":{"type":"string"}}},"logicalName":"read_contract_state","displayName":"read_contract_state","title":"read_contract_state","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Smarts&config=eyJ1cmwiOiAiaHR0cHM6Ly9zbWFydHMubWQvbWNwIn0%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Smarts%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fsmarts.md%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Smarts%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fsmarts.md%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Smarts&connectorUrl=https%3A%2F%2Fsmarts.md%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Smarts\" --url \"https://smarts.md/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/smarts-mcp-9c24eb54ce","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/smarts-mcp-9c24eb54ce/tools/{tool}","mcpServerUrl":"https://smarts.md/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/smarts-mcp-9c24eb54ce?live=1"}