{
  "markdown": "# idamesh\n\nA [Model Context Protocol](https://modelcontextprotocol.io) (MCP) server for\n**IDA Pro**. It exposes IDA's disassembler and the Hex-Rays decompiler to MCP\nclients (Claude and others) as tools and resources, with a supervisor that fronts\nmultiple databases behind one endpoint so several agents can work in parallel.\n\n## What it does\n\n- **Read** — decompile (Hex-Rays), disassemble, cross-references, call graphs, type\n  and struct inspection, memory reads, and string / byte / text search.\n- **Query** — structured filters over functions, instructions, xrefs, types, imports.\n- **Analyze** — survey / triage, crypto and dangerous-API detection, vulnerability\n  heuristics, stack-string reconstruction, and dataflow / taint tracing.\n- **Mutate** — rename, comment, retype, define code and data, edit stack frames,\n  patch bytes / assembly, bookmarks, and annotation export / import.\n- **Parallelize** — open each database over a private copy so multiple agents can\n  work the same binary at once, and merge their edits back into one database.\n\nRead-only IDB state is also projected as `ida://…` MCP resources.\n\n## Requirements\n\n- Python **3.9+**\n- A licensed **IDA Pro** install providing the `idapro` / `idalib` Python API. Point\n  the `IDADIR` environment variable at your IDA installation directory.\n\n## Install\n\n```bash\npip install idamesh\n```\n\nOr from a clone, for development:\n\n```bash\npip install -e .[dev]     # editable install + pytest, to run the test suite\n```\n\nThis provides the `idamesh` command with three subcommands: `worker`, `supervisor`,\nand `install`.\n\n## Usage\n\n**Headless worker** — one database on stdio (the client launches it):\n\n```bash\nidamesh worker /path/to/target.exe\n```\n\n**Supervisor** — one HTTP endpoint fronting many databases:\n\n```bash\nidamesh supervisor                       # http://127.0.0.1:8745/mcp\n```\n\nOpen and close databases behind it with the `idb_open` / `idb_list` / `idb_close`\ntools; route any tool to a session with an optional `database` key (omit it when a\nsingle database is open). Opening the same binary twice yields two independent\nsessions; `idb_merge` reconciles their edits.\n\n**GUI plugin** — serve MCP over your live, open IDA database:\n\n```bash\nidamesh install     # deploy the plugin into IDA's user directory, then restart IDA\n```\n\nRun `idamesh supervisor` (or set `IDAMESH_AUTOLAUNCH_SUPERVISOR=1` to have the\nplugin start one), then open a binary in IDA — the supervisor adopts the live\nsession and routes to it.\n\nBoth the worker (`--transport http`) and the supervisor speak MCP **Streamable\nHTTP** at a single `/mcp` endpoint, loopback-bound with `Origin` validation.\n\n## Connect from Claude Code\n\n```bash\nclaude mcp add --scope user --transport http idamesh http://127.0.0.1:8745/mcp\n```\n\nOr launch a single stdio worker directly:\n\n```bash\nclaude mcp add --scope user -e IDADIR=/path/to/IDA-Pro \\\n  idamesh -- idamesh worker /path/to/target.exe\n```\n\n## Tests\n\n```bash\npip install -e .[dev]\npython -m pytest -q\n```\n\nThe live `idalib` end-to-end tests skip cleanly when IDA is unavailable (no\n`IDADIR`), so the suite is green without an IDA install.\n\n## License\n\n[MIT](LICENSE).\n\n<!-- mcp-name: io.github.JordanRO2/idamesh -->\n\n",
  "bytes": 3206,
  "sha": "5e4226798fc1d14093c623bba2e72660c5c98d03be6ad6599e53584c68f43056",
  "repo_slug": "jordanro2/idamesh",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_jordanro2_idamesh_493e28e9/readme"
}