[PR #784] [CLOSED] Feat/binary ninja mcp #2239

Closed
opened 2026-10-16 21:16:05 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/784
Author: @radge
Created: 10/6/2026
Status: ❌ Closed

Base: main ← Head: feat/binary-ninja-mcp


📝 Commits (2)

  • f5a4859 feat: add built-in Binary Ninja MCP backend
  • 0428b3c chore: merge upstream updates into Binary Ninja backend

📊 Changes

29 files changed (+2745 additions, -11 deletions)

View changed files

📝 .oxlintrc.json (+7 -1)
📝 README.md (+1 -1)
➕ docs/binary-ninja.md (+104 -0)
📝 docs/product-catalog.json (+26 -1)
📝 docs/testing.md (+2 -0)
📝 package.json (+2 -0)
➕ scripts/inspect-binary-ninja-mcp.mjs (+46 -0)
📝 scripts/lib/catalog-builders.mjs (+5 -0)
📝 scripts/lib/catalog-core.mjs (+1 -0)
➕ scripts/verify-real-binary-ninja.mjs (+58 -0)
📝 src/application/Doctor.ts (+6 -1)
📝 src/application/runtime.ts (+2 -1)
➕ src/binaryNinja/BinaryNinja.fixture.ts (+248 -0)
➕ src/binaryNinja/BinaryNinjaDoctor.ts (+90 -0)
➕ src/binaryNinja/BinaryNinjaInputs.ts (+48 -0)
➕ src/binaryNinja/BinaryNinjaMcp.ts (+336 -0)
➕ src/binaryNinja/BinaryNinjaProvider.test.ts (+348 -0)
➕ src/binaryNinja/BinaryNinjaProvider.ts (+241 -0)
➕ src/binaryNinja/BinaryNinjaSession.ts (+450 -0)
➕ src/binaryNinja/BinaryNinjaValues.ts (+283 -0)

...and 9 more files

📄 Description

Summary

Problem and expected behavior

Change and scope

Contract and boundary impact

  • Semantic owner and earliest changed stage:
  • CLI and MCP/tool-catalog contract:
  • Provider, bridge, target-format, or platform compatibility:
  • Evidence, artifact, provenance, or reconstruction contract:
  • Process execution, authorization, cleanup, or containment impact:
  • Generated metadata (docs/product-catalog.json), package, or installation impact:

Evidence and regression coverage

  • Tests added or updated:
  • Base reproduction or other evidence:
  • User-visible CLI/MCP output (if applicable):
  • Remaining proof gaps:

For evidence-bearing changes:

  • Observed, derived, and inferred claims remain distinguishable.
  • Artifact identity, source provenance, and failed attempts remain preserved.
  • Unsupported, incomplete, unavailable, or uncertain outcomes remain visible.

Validation performed

  • command — result

Compatibility, safety, and release

  • Breaking changes or migration steps:
  • Real Hopper/Ghidra, browser, or OS coverage:
  • Package or release metadata impact:
  • Security, privacy, process, or containment review:

Review checklist

  • The PR has one focused outcome and the title follows type(scope): outcome.
  • Related issue is linked, or the reason for not linking one is stated above.
  • Tests cover changed observable behavior and meaningful failure paths.
  • Owning docs, contracts, and generated metadata are updated where needed.
  • User-visible CLI/MCP changes include representative output.
  • I checked the final diff for secrets, unrelated cleanup, and unsupported claims.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/784 **Author:** [@radge](https://github.com/radge) **Created:** 10/6/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `feat/binary-ninja-mcp` --- ### 📝 Commits (2) - [`f5a4859`](https://github.com/morluto/rea/commit/f5a4859fd106201b71580bd6711b1c182724c337) feat: add built-in Binary Ninja MCP backend - [`0428b3c`](https://github.com/morluto/rea/commit/0428b3cfcfbb35dc5f2968d2ef40b5a07224ce32) chore: merge upstream updates into Binary Ninja backend ### 📊 Changes **29 files changed** (+2745 additions, -11 deletions) <details> <summary>View changed files</summary> 📝 `.oxlintrc.json` (+7 -1) 📝 `README.md` (+1 -1) ➕ `docs/binary-ninja.md` (+104 -0) 📝 `docs/product-catalog.json` (+26 -1) 📝 `docs/testing.md` (+2 -0) 📝 `package.json` (+2 -0) ➕ `scripts/inspect-binary-ninja-mcp.mjs` (+46 -0) 📝 `scripts/lib/catalog-builders.mjs` (+5 -0) 📝 `scripts/lib/catalog-core.mjs` (+1 -0) ➕ `scripts/verify-real-binary-ninja.mjs` (+58 -0) 📝 `src/application/Doctor.ts` (+6 -1) 📝 `src/application/runtime.ts` (+2 -1) ➕ `src/binaryNinja/BinaryNinja.fixture.ts` (+248 -0) ➕ `src/binaryNinja/BinaryNinjaDoctor.ts` (+90 -0) ➕ `src/binaryNinja/BinaryNinjaInputs.ts` (+48 -0) ➕ `src/binaryNinja/BinaryNinjaMcp.ts` (+336 -0) ➕ `src/binaryNinja/BinaryNinjaProvider.test.ts` (+348 -0) ➕ `src/binaryNinja/BinaryNinjaProvider.ts` (+241 -0) ➕ `src/binaryNinja/BinaryNinjaSession.ts` (+450 -0) ➕ `src/binaryNinja/BinaryNinjaValues.ts` (+283 -0) _...and 9 more files_ </details> ### 📄 Description <!-- PR title: type(optional-scope): imperative outcome The title becomes the squash-merge commit subject and generated changelog entry. --> ## Summary <!-- What user, agent, or maintainer problem does this solve? Link the issue with "Fixes #123" when applicable. Keep the prior behavior, expected contract, and new behavior understandable without private context. --> ## Problem and expected behavior <!-- For fixes, give the smallest trigger and violated invariant. For features, describe the use case and observable outcome. --> ## Change and scope <!-- Explain the chosen approach, why it fits REA's architecture, and what is intentionally not included. --> ## Contract and boundary impact <!-- Complete the applicable lines; use "none" or "not applicable" explicitly. --> - Semantic owner and earliest changed stage: - CLI and MCP/tool-catalog contract: - Provider, bridge, target-format, or platform compatibility: - Evidence, artifact, provenance, or reconstruction contract: - Process execution, authorization, cleanup, or containment impact: - Generated metadata (`docs/product-catalog.json`), package, or installation impact: ## Evidence and regression coverage <!-- State whether evidence is executed, source-derived, or proposed. For fixes, explain how the regression would fail on the affected base revision when practical. --> - Tests added or updated: - Base reproduction or other evidence: - User-visible CLI/MCP output (if applicable): - Remaining proof gaps: For evidence-bearing changes: - [ ] Observed, derived, and inferred claims remain distinguishable. - [ ] Artifact identity, source provenance, and failed attempts remain preserved. - [ ] Unsupported, incomplete, unavailable, or uncertain outcomes remain visible. ## Validation performed <!-- List only commands that actually ran, with observed results. Include the relevant real-provider or platform workflow, or explain why it was unavailable. --> - `command` — result ## Compatibility, safety, and release <!-- Call out breaking changes, migrations, package effects, platform/provider limits, security/privacy/containment implications, and meaningful proof gaps. --> - Breaking changes or migration steps: - Real Hopper/Ghidra, browser, or OS coverage: - Package or release metadata impact: - Security, privacy, process, or containment review: ## Review checklist - [ ] The PR has one focused outcome and the title follows `type(scope): outcome`. - [ ] Related issue is linked, or the reason for not linking one is stated above. - [ ] Tests cover changed observable behavior and meaningful failure paths. - [ ] Owning docs, contracts, and generated metadata are updated where needed. - [ ] User-visible CLI/MCP changes include representative output. - [ ] I checked the final diff for secrets, unrelated cleanup, and unsupported claims. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-16 21:16:05 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#2239
No description provided.