-
Notifications
You must be signed in to change notification settings - Fork 419
Agentic refactoring and full MCP support #1502
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
gustavo-grieco
wants to merge
37
commits into
master
Choose a base branch
from
dev-agents
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
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
This was referenced Dec 18, 2025
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.
This branch contains a rewrite of some core features of Echidna to transform workers into agents, which can receive commands and collaborate with each other. It also allows to easily add MCP commands to query and guide the fuzzing campaign.
Commands
This code is still a work in progress but it can already tested with the few command implemented:
status(): Show fuzzing campaign statustarget(): Show the name and the ABI of the target contractreload_corpus(): Reload the transactions from the corpus, but without replay themdump_lcov(): Dump coverage in LCOV format"inject_fuzz_transactions(string): Inject a sequence of transaction to fuzz with optional concrete arguments (e.g.f(1, ?, 3) ; g(?, -1))inject_symb_transaction(string): Inject a single of transaction to explore using symbolic execution with optional concrete arguments (e.g.f(1, ?, 3))clear_fuzz_priorities(): Clear the function prioritization list used in fuzzingread_logs(): Read the last 100 log messages [disabled in the current code, perhaps not necessary]show_coverage(string): Show coverage report for a particular contractavoid_function(string): Exclude a transaction from the list of randomly generated transactionsAll these commands are subject to change, and there will be an experimentation phase where we will challenge the agents to increase the coverage (or break properties) using different commands
There are some additional changes in the logs to convey useful information for the agent, in particular, when new coverage is found:
How to test this PR
echidnaexecutable from our CI tests.--format text) for this test. Append the--server 3000to your command line to start the MCP server in the port 3000..vscode/mcp.jsonfile with the following content:{ "servers": { "Echidna fuzzing campaign": { "type": "http", "url": "http://localhost:3000/mcp" } } }Once you save the file, you will be able to click on the "Run" button next the server name to make sure the it is detected by Copilot. It should list the number of commands available (currently 7).
5. Everything should be ready to go, open the Chat window (Cmd + Shift + P and write
/chat) and start prompting. My recommended option to quickly start: