feat: Migrate eval from MCPStdio to mcpd (fixes #279) #310
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.
Summary
Fixes #279 - Migrate evaluation system from MCPStdio to mcpd
Changes
mcpd_tools.py
module to bridge any-agent with mcpd's REST APIgenerate_evaluation_case.py
to use mcpd instead of MCPStdioinstructions.py
to show mcpd usageImplementation Details
Since mcpd doesn't support WebSocket/streamable-http protocol, this PR implements a REST API bridge:
--use_dynamic_discovery
flag fetches schemas from mcpdcreate_all_server_tools()
can replace mcpd Python clientUsage Comparison: MCPStdio vs mcpd
from any_agent.config import MCPStdio
from eval.mcpd_tools import create_filesystem_tools
/api/v1/servers/{server}/tools/{tool}
/api/v1/servers/{server}/tools
endpointConfiguration Example
Before (MCPStdio):
After (mcpd):
Usage
Future Compatibility
Pre-configured for AGNTCY protocol support (mozilla-ai/mcpd#154). When merged, just uncomment the DID header injection code in
mcpd_call_tool()
.