{
  "markdown": "# PublicAML MCP server\n\nBlockchain AML screening inside Claude Desktop, Cursor, or any other MCP client.\nAsk about an address in plain language and the assistant checks it against\nPublicAML: sanctions, issuer freezes, risk propagated through the transaction\ngraph, who funded the wallet and who it dealt with.\n\nChains: bitcoin, ethereum, bsc, tron.\n\nWorks without an account. An API key only lifts the rate limit and unlocks\nforward tracing.\n\n## Install\n\nClaude Desktop, `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"publicaml\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@publicaml/mcp-server\"]\n    }\n  }\n}\n```\n\nWith an API key:\n\n```json\n{\n  \"mcpServers\": {\n    \"publicaml\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@publicaml/mcp-server\"],\n      \"env\": { \"PUBLICAML_API_KEY\": \"your-key\" }\n    }\n  }\n}\n```\n\nCursor uses the same block in `.cursor/mcp.json`. Claude Code:\n\n```\nclaude mcp add publicaml -- npx -y @publicaml/mcp-server\n```\n\n## Tools\n\n### `screen_address`\nRisk level and score, sanctions, Tether/Circle freezes, what the address is\n(exchange, mixer, gambling, bridge, personal wallet) and where its risk comes\nfrom.\n\n`chain` is optional. Omit it and every chain the address format allows is\nscreened, each result labelled with its chain: the same `0x…` string is a\ndifferent wallet on ethereum, bsc and tron, so it is never guessed silently.\n\n### `trace_funds`\n`direction: \"incoming\"` walks the funding backwards to answer \"who paid this\nwallet\", stopping at labelled entities rather than walking into an exchange's\nother customers. `direction: \"outgoing\"` follows the largest outgoing flows to\nwhere the money left the chain's anonymous part. Outgoing needs an API key.\n\nThe walk is bounded by wall clock, so an incomplete answer is returned rather\nthan a timeout, and the answer says which one it is.\n\n### `list_counterparties`\nThree questions, one tool. `classify` enumerates counterparties and says what\neach one is (person, venue, hub, deposit address, contract, mint/burn).\n`category` answers \"did this wallet touch any exchange / mixer / casino\".\n`check` tests a list of suspect addresses against the wallet.\n\n## Reading the answers\n\n- `sanctioned: true` is a blocking fact on its own, whatever the score says.\n- The score is a risk reading 0-100, never a share of the funds, and its parts\n  combine by MAX, so the breakdown does not add up to the total.\n- An address absent from the data comes back as NOT FOUND. That is unknown,\n  not clean.\n- Lists are ranked and capped. A `PARTIAL` answer is a floor, not a census.\n- USD figures cover priced tokens only and can be inflated by low-liquidity\n  tokens. Treat them as an order of magnitude.\n\nThis is evidence for a human decision, not the decision itself.\n\n## Configuration\n\n| Variable | Default | Meaning |\n| --- | --- | --- |\n| `PUBLICAML_API_KEY` | none | Lifts the anonymous rate limit, unlocks outgoing tracing. |\n| `PUBLICAML_API_BASE` | `https://intelapi.publicaml.org` | API base URL. |\n| `PUBLICAML_TIMEOUT_MS` | `60000` | Per-request timeout. |\n| `PUBLICAML_TRACE_CONTINUES` | `2` | How many times an incomplete backward walk is resumed automatically. |\n\n## One-click desktop install\n\nThe same server is also distributed as an MCPB bundle, which Claude Desktop\ninstalls with a double click and no JSON editing. Build it with:\n\n```\nnpm run build:mcpb\n```\n\nThe bundle lands in `dist/`. Version, description, licence and the tool list are\nread from `package.json` and from the server's own tool definitions, so the\nbundle cannot drift from the npm release.\n\n## Development\n\n```\nnpm install\nnpm test          # unit tests, no network\nnode scripts/live.mjs  # end-to-end against the live API\n```\n\nMIT licensed. API docs: https://publicaml.org/api\n",
  "bytes": 3754,
  "sha": "5ad11a8229367823791cb9a8ca93e9028d6c03483f501101936b56f80d3a1f13",
  "repo_slug": "publicaml/mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_publicaml_mcp_server_2b26785c/readme"
}