
claude-reverser/ida-instances-mcp
Developer tools이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기
ida-pro-mcp 맞춤 빌드 - 헤드리스 IDA Pro 인스턴스를 호스팅하기 위한 안정성 강화 MCP 서버
개요
ida-pro-mcp 커스텀 빌드: MCP 클라이언트가 IDA Pro를 구동할 수 있게 하는 MCP 서버 — 호스팅을 위한 안정성 패스(Ida-Instances 설정)로 재구성됨. 이것은 mrexodia의 ida-pro-mcp(MIT)의 포크입니다. 모든 업스트림 크레딧은 Duncan Ogilvie와 기여자들에게 돌아갑니다; 아래의 커스텀 변경 사항은 이 저장소에서 유지됩니다. 업스트림 버전 2.0.0 위에 안정성 강화: - Linux, macOS 또는 Windows - Python (IDA 내 idapyswitch 사용) - IDA Pro (9.x 권장). - uv - MCP 클라이언트 (Claude Code, 커서, Codex, Opencode, VS Code 등) 자외선 환경에 대해 이달리브를 활성화하세요: 헤드리스 실행은 IDADIR의 IDA 설치 디렉터리도 필요합니다. 시작 시 a가 생성되거나 디스크에서 로드되고, 이 요청이 없는 모든 요청은 401 Unauthorized — 예외 없이 발생합니다. 인스턴스를 소유한 기계/네트워크에서 키를 한 번 가져오세요:
개요(AI 번역)
ida-pro-mcp 맞춤 빌드: MCP 클라이언트를 사용할 수 있는 MCP 서버 drive IDA Pro — multiple 호스팅을 위한 안정성 패스로 재작업됨 헤드리스 idalib 인스턴스 (Ida-Instances 설정).
이것은 mrexodia의 ida-pro-mcp (MIT)의 포크입니다. 모든 상류 공로는
던컨 오길비와 기고자들; 관습
아래의 변경 사항은 이 저장소에서 유지됩니다.
관습이란 무엇인가
업스트림 버전 2.0.0 위에 안정성 강화:
| 지역 | 변화 |
|---|---|
| 데이터 안전 | 부분 데이터베이스 정리는 소유권을 인식합니다: 다른 라이브 인스턴스가 주장한 .id0/.id1/.id2/.nam/.til 파일을 삭제하지 않으며, 발견이 불가능할 때는 안전장치 작동 |
| 저장 안정성 | idb_save 예산 600%로 운영됩니다(예전에는 60%였음); idb_close는 저장 실패 후 작업자를 죽이지 않고 조용히 변경 사항을 버리는 대신 |
| 동시성 | 감독자 락은 더 이상 워커 스폰(~120초), 건강 탐침(~세션당 2.5초), 또는 고착한 워커 종료를 포함하지 않습니다 — 느린 열음 한 번이 매 세션 모두 멈출 수는 없습니다 |
| 견고성 | stdio에서 JSON-RPC가 폼이 잘못 발생하면 프록시가 다운되지 않고 -32700/-32600를 반환합니다. |
이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.
README
원문 README의 일부입니다. 원문 보기.
IDA-instances-MCP
Custom build of ida-pro-mcp: an MCP Server that lets MCP clients drive IDA Pro — reworked with a stability pass aimed at hosting multiple headless idalib instances (the Ida-Instances setup).
This is a fork of mrexodia’s ida-pro-mcp (MIT). All upstream credit goes to
Duncan Ogilvie and contributors; the custom
changes below are maintained in this repository.
What’s custom
Stability hardening on top of upstream v2.0.0:
| Area | Change |
|---|---|
| Data safety | Partial-database cleanup is ownership-aware: it never deletes .id0/.id1/.id2/.nam/.til files claimed by another live instance, and fails safe when discovery is unavailable |
| Save reliability | idb_save runs with a 600s budget (was 60s); idb_close refuses to kill a worker after a failed save instead of silently discarding changes |
| Concurrency | Supervisor lock no longer spans worker spawn (~120s), health probes (~2.5s/session) or stale-worker termination — one slow open can’t freeze every session |
| Robustness | Malformed JSON-RPC over stdio returns -32700/-32600 instead of crashing the proxy |
| Timeouts | Proxy timeout raised 30s → 900s and made configurable (IDA_MCP_PROXY_TIMEOUT) so long decompiles don’t “fail” client-side while still running server-side |
| Networking | Worker port TOCTOU now retries; SSE writes and teardown are lock-guarded; CORS policy reads are cached off the IDA main thread |
| Resource limits | IDB trace log capped at 64 MB (IDA_MCP_TRACE_MAX_MB) with oversized arguments/results clipped; flush-failure queue bounded |
| Authentication | Every HTTP request requires an instance API key; issued exactly once via GET /key, then burned. The key persists on disk so it survives restarts and reboots |
| Hosting endpoints | GET /health (unauthenticated readiness probe), GET /sessions (open databases + last-accessed), POST /upload (direct binary upload with size cap) |
| Idle reaping | Sessions untouched for IDA_MCP_IDLE_TIMEOUT minutes are auto-closed (saved first) |
| Graceful shutdown | On SIGTERM/SIGINT every open database is saved before exit — no more lost work on pct stop |
| Self-update | Startup checks GitHub releases; interactive sessions are offered a one-keypress auto-update |
| Hosting defaults | Headless supervisor listens on 0.0.0.0:9999; the GUI plugin also binds 0.0.0.0 and now requires the same API key |
Requirements
- Linux, macOS or Windows
- Python 3.11+ (use
idapyswitchinside IDA to match) - IDA Pro 8.3+ (9.x recommended). IDA Free is not supported
- uv
- An MCP client (Claude Code, Cursor, Codex, Opencode, VS Code, …)
Setup
Activate idalib for your uv environment:
# linux (server deployment)
설치
This server does not publish a one-line install command.
Open the repository installation guide MCP 초보자라면? mcpskill.org 가이드부터 시작하세요 →설정
{
"mcpServers": {
"ida-instances": {
"url": "http://your-host:9999/mcp",
"headers": {
"Authorization": "Bearer <key-from-/key>"
}
}
}
}