Skip to content

feat: add A2A messaging support across CLI, MCP server, and SDK (v0.11.0)#44

Merged
iracic82 merged 1 commit intomainfrom
feat/a2a-messaging-and-cli
Mar 12, 2026
Merged

feat: add A2A messaging support across CLI, MCP server, and SDK (v0.11.0)#44
iracic82 merged 1 commit intomainfrom
feat/a2a-messaging-and-cli

Conversation

@iracic82
Copy link
Collaborator

Summary

  • Add send_a2a_message MCP tool for talking to A2A agents from Claude Desktop
  • Fix A2A protocol handler to send proper JSON-RPC 2.0 envelope for standard methods
  • Add CLI commands (message, call, list-tools) for feature parity across all interfaces
  • Bump version to v0.11.0

Changes

MCP Server (src/dns_aid/mcp/server.py)

  • New send_a2a_message tool — sends A2A JSON-RPC message/send, extracts text from response artifacts, routes through SDK for telemetry when available
  • Updated health endpoint tools list

SDK A2A Protocol Handler (src/dns_aid/sdk/protocols/a2a.py)

  • Fix: Standard A2A methods (message/send, message/stream, tasks/get, tasks/cancel, etc.) now wrapped in proper JSON-RPC 2.0 envelope with jsonrpc, id, and params
  • Non-standard/custom methods retain generic flat payload for backward compatibility

CLI (src/dns_aid/cli/main.py)

  • dns-aid message <endpoint> <text> — send a message to an A2A agent
  • dns-aid call <endpoint> <tool-name> — call a tool on a remote MCP agent
  • dns-aid list-tools <endpoint> — list tools on a remote MCP agent

Docs

  • README.md — added CLI agent communication section, updated MCP tools table, added A2A demo flow
  • docs/api-reference.md — added protocol handlers section, A2A invoke example

Version Bump

  • pyproject.toml, __init__.py, CITATION.cff, CHANGELOG.md → 0.11.0

Coverage Matrix (after this PR)

Interface MCP tools/call A2A message/send MCP tools/list
MCP Server call_agent_tool send_a2a_message list_agent_tools
CLI dns-aid call dns-aid message dns-aid list-tools
Python SDK invoke() invoke() invoke(method="tools/list")

Test plan

  • 753 tests passing, 0 failures
  • ruff lint clean (src/)
  • ruff format clean (src/)
  • mypy clean (50 files, 0 issues)
  • New tests for JSON-RPC 2.0 envelope, generic fallback, default method
  • Live tested: dns-aid message https://security-analyzer.ai.infoblox.com "Hello" works

…1.0)

Add send_a2a_message MCP tool for Claude Desktop to talk to A2A agents.
Fix A2A protocol handler to send proper JSON-RPC 2.0 envelope for
standard methods (message/send, tasks/get, etc.) while keeping backward
compatibility for custom methods. Add CLI commands: message, call,
list-tools for feature parity across all interfaces.

Signed-off-by: Igor Racic <iracic82@gmail.com>
@iracic82 iracic82 merged commit b033fc1 into main Mar 12, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant