Repository navigation
feat(mcp): map MCP tools to schema-derived bash commands - #177
Merged
Merged
Conversation
2 of 13 tasks
M09Ic
force-pushed
the
codex/mcp-to-cli-extension
branch
from
October 12, 2026 03:46
4e6fe42 to
264b5ae
Compare
M09Ic
force-pushed
the
codex/mcp-to-cli-extension
branch
2 times, most recently
from
October 12, 2026 05:04
8d8e248 to
8f0f5aa
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Profiles can mount existing MCP servers as named commands in the AI's bash tool. Runtime
tools/listdiscovery generates subcommands and schema-derived flags: a server namedidaexposesida decompile --addr 0x401000. The model discovers detailed parameters on demand and uses JSON/file input for complex schemas.isErrorretains stdout and fails the command. Existing bash variables, pipelines, redirects, conditionals, admission hooks and cancellation apply.examples/mcphost and the real-modelexamples/mcp-agenthost, plus configuration and existing IDA/REA integration instructions. The latter composes existing StandardLoop/Session extensions, maintains MCP state across model decisions and records AOP evidence. No new IDA adapter/server is required.Command design references: hengyunabc/mcp2cli, knowsuchagency/mcp2cli, and mcporter CLI generation.
Validation on Windows:
gpt-6.1-solinvestigations pass through StandardLoop → bash → MCP → JADX. UnCrackable L1: 10 model decisions, 16 bash calls, 521.50s; recovered the accepted plaintext, independently checked against AES ciphertext roundtrip and a one-character negative. ApiDemos LoaderCustom: 13 decisions, 41 bash calls, 448.31s; reconstructed async enumeration, caching, broadcasts, cancellation/reset and UI flow, and found the incoming-list release anomaly and empty release hook. Nine finite source/evidence checks pass. Both tasks finish with EMPTY engine state, closed harnesses and exited processes.The live verification record retains model limitations: an overgeneralized cached-icon branch and omitted configuration field names required independent correction. An unsupported flag and Windows FIND failure were recovered; empty upstream inner-class source results led to method queries. Reported token counts exclude API attempts without usage. Credentials, binaries and large traces are not committed; the live host removes its dedicated credential environment variable before loading tools/children.
Scope: opt-in Go extension with a catalog snapshot at load time, rather than an aiscan CLI configuration declaration or generated PATH executable. MCP tools support stdio and Streamable HTTP; engines remain separately installed. Connections are shared within a Profile; upstream databases and detached workers remain caller-owned. Cancellation does not establish remote job termination. Actual JADX verification covers stdio/static analysis. Android runtime, JADX HTTP, real IDA, Hopper and Ghidra execution are unverified.
Refs #176.