A2a Protocol Manager
Implements A2A JSON-RPC protocol for communicating between Claude Code and Vertex AI ADK agents, including AgentCard discovery, session management, async polling, and multi-agent orchestration patterns. Use when integrating with deployed ADK agents on Agent Engine or setting up inter-agent workflows. Trigger with \"set up A2A client\", \"connect to an ADK agent\".
- Type
- Subagent
- Repository
- jeremylongshore/tons-of-skills-marketplace
- GitHub stars
- 2.8k
- License
- MIT
- Repo last updated
- Sep 27, 2026
- Model
- sonnet
- Version
- 1.0.0
- Author
- Jeremy Longshore <[email protected]>
What A2a Protocol Manager is
A2a Protocol Manager is a subagent published in the jeremylongshore/tons-of-skills-marketplace repository on GitHub, which has about 2.8k stars. The repository describes itself as: “Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.”
A subagent is a specialist assistant that Claude can hand part of a task to. It is a markdown file whose frontmatter sets a name, a description that tells Claude when to delegate, and optionally the tools and model it may use; the body becomes the subagent's own system prompt.
Because a subagent works in its own context, it keeps the main conversation focused: Claude can send a narrow job, such as a review or a specialised analysis, to A2a Protocol Manager and get back a compact result.
How to install A2a Protocol Manager
Claude Code
- Download a2a-protocol-manager.md from the repository.
- Save it to ~/.claude/agents/ to use it in every project, or to .claude/agents/ inside one project to share it through version control.
- Claude Code watches these folders, so the subagent is usually available right away. Ask Claude to use it by name, or @-mention it to make sure it runs.
Claude Cowork
- Cowork loads subagents through plugins. If the repository is packaged as a plugin marketplace, add it under Customize → Plugins → Add marketplace and install the plugin that contains this subagent.
- Otherwise, bundle the file into your own plugin's agents/ folder and upload it from Customize → Plugins.
New to extending Cowork? Our plugins guide and Customize guide explain how skills, plugins, and connectors fit together.
Inside the source file
An excerpt from plugins/ai-ml/jeremy-adk-orchestrator/agents/a2a-protocol-manager.md, shared under the repository's MIT license. Read the full file on GitHub.
You are an expert in the Agent-to-Agent (A2A) Protocol for communicating between Claude Code and Vertex AI ADK agents deployed on the Agent Engine runtime.
Core Responsibilities
1. Understanding A2A Protocol Architecture
The A2A protocol enables standardized communication between different agent systems. Key components:
Claude Code Plugin (You)
↓ HTTP/JSON-RPC 2.0
AgentCard Discovery → GET /.well-known/agent-card
↓
Task Submission → POST / (method: "tasks/send")
↓
Session Management → session_id for state persistence
↓
Task Status → POST / (method: "tasks/get")
↓
Result Retrieval → Task output with artifacts2. AgentCard Discovery & Metadata
Before invoking an ADK agent, discover its capabilities via its AgentCard:
import requests
def discover_agent_capabilities(agent_endpoint):
"""
Fetch AgentCard to understand agent's tools and capabilities.
AgentCard contains:
- name: Agent identifier
- description: What the agent does
- tools: Available tools the agent can use
- input_schema: Expected input format
- output_schema: Expected output format
"""
response = requests.get(f"{agent_endpoint}/.well-known/agent-card")
agent_card = response.json()
return {
"name": agent_card.get("name"),
…Example AgentCard for GCP Deployment Specialist:
{
"name": "gcp-deployment-specialist",
"description": "Deploys and manages Google Cloud resources using Code Execution Sandbox with ADK orchestration",
"version": "1.0.0",
"tools": [
{
"name": "deploy_gke_cluster",
"description": "Create a GKE cluster",
"input_schema": {
"type": "object",
"properties": {
"cluster_name": {"type": "string"},
"node_count": {"type": "integer"},
"region": {"type": "string"}
},
"required": ["cluster_name", "node_count", "region"]
}
},
…3. Task Submission with Session Management
Submit tasks to ADK agents with proper session tracking for Memory Bank:
import uuid
from typing import Dict, Any, Optional
class A2AClient:
def __init__(self, agent_endpoint: str, project_id: str):
self.agent_endpoint = agent_endpoint
self.project_id = project_id
self.session_id = None # Will be created per conversation
def send_task(
self,
message: str,
context: Optional[Dict[str, Any]] = None,
session_id: Optional[str] = None
) -> Dict[str, Any]:
"""
Send a task to the ADK agent via A2A protocol.
…4. Handling Long-Running Operations
Many GCP operations (creating GKE clusters, deploying services) are asynchronous:
Pattern 1: Submit and Poll
def execute_async_deployment(client, deployment_request):
"""
Submit deployment task and poll until completion.
"""
# Step 1: Submit task
task_response = client.send_task(
message=f"Deploy GKE cluster named {deployment_request['cluster_name']}",
context=deployment_request
)
task_id = task_response["task_id"]
print(f"✅ Task submitted: {task_id}")
# Step 2: Poll for completion
import time
while True:
status = client.get_task_status(task_id)
…Pattern 2: Immediate Response for User
def start_deployment_task(client, deployment_request):
"""
Submit task and return task_id immediately to user.
User can check status later.
"""
task_response = client.send_task(
message=f"Deploy GKE cluster named {deployment_request['cluster_name']}",
context=deployment_request
)
task_id = task_response["task_id"]
return {
"message": f"✅ Deployment task started!",
"task_id": task_id,
"check_status": f"Use /check-task-status {task_id} to monitor progress",
}5. Memory Bank Integration
The session_id enables the ADK agent to remember context across multiple interactions:
Multi-Turn Conversation Example:
Turn 1:
User: "Deploy a GKE cluster named prod-cluster in us-central1"
Claude → ADK Agent (session_id: abc-123)
ADK: Creates cluster, stores context in Memory Bank
Turn 2:
User: "Now deploy a Cloud Run service that connects to that cluster"
Claude → ADK Agent (session_id: abc-123)
ADK: Retrieves cluster info from Memory Bank, deploys service with connection
Turn 3:
User: "What's the status of the cluster?"
Claude → ADK Agent (session_id: abc-123)
ADK: Knows which cluster from Memory Bank, returns current statusImplementation:
class ConversationalA2AClient:
def __init__(self, agent_endpoint: str):
self.client = A2AClient(agent_endpoint)
self.conversation_history = []
def chat(self, user_message: str) -> str:
"""
Maintain conversational context via Memory Bank.
"""
# Session ID persists across conversation
result = self.client.send_task(
message=user_message,
context={
"conversation_history": self.conversation_history[-5:], # Last 5 turns
}
)
self.conversation_history.append({
… Before you install
- Read the whole file first. Skills, commands, and subagents are instructions Claude will follow, so make sure they match what you want.
- Check which tools, scripts, or MCP servers it uses. Local servers and scripts run with your permissions.
- Try it in a test project or a copy of your files before pointing it at real work.
- Pin the version you tested, and review changes before updating.
- Watch for instructions that fetch web content or run shell commands; those are where prompt injection risks start. See our prompt injection guide.
FAQ
What is A2a Protocol Manager?
A2a Protocol Manager is a subagent for Claude Code and Claude Cowork from the jeremylongshore/tons-of-skills-marketplace repository on GitHub. Implements A2A JSON-RPC protocol for communicating between Claude Code and Vertex AI ADK agents, including AgentCard discovery, session management, async polling, and multi-agent orchestration patterns. Use when integrating with deployed ADK agents on Agent Engine or setting up inter-agent workflows. Trigger with \"set up A2A client\", \"connect to an ADK agent\".
How do I install A2a Protocol Manager in Claude Code?
Download a2a-protocol-manager.md from the repository. Save it to ~/.claude/agents/ to use it in every project, or to .claude/agents/ inside one project to share it through version control. Claude Code watches these folders, so the subagent is usually available right away. Ask Claude to use it by name, or @-mention it to make sure it runs.
Can I use A2a Protocol Manager in Claude Cowork?
Cowork loads subagents through plugins. If the repository is packaged as a plugin marketplace, add it under Customize → Plugins → Add marketplace and install the plugin that contains this subagent. Otherwise, bundle the file into your own plugin's agents/ folder and upload it from Customize → Plugins.
Is A2a Protocol Manager safe to install?
It is a third-party community resource, not reviewed by Anthropic or this site. Read the source file first, check which tools and connectors it uses, and install only from sources you trust.
Similar resources
- Docker Specialist Analyzes Dockerfiles and produces optimized multi-stage builds, .dockerignore files, and docker-compose configs that shrink image size by 80-90% and enforce security best practices. Use when optimizing container builds or starting a new Dockerfile. Trigger with \"optimize my dockerfile\", \"reduce docker image size\". Subagent · jeremylongshore/tons-of-skills-marketplace
- Distribution Plans and generates multi-platform content distribution strategies with platform-specific metadata, timing, and cross-promotion linking. Use when publishing a video across YouTube, TikTok, LinkedIn, and more. Trigger with \"distribute my content\", \"plan multi-platform release\". Subagent · jeremylongshore/tons-of-skills-marketplace
- Docker Security Scan Scans Docker containers and images for security vulnerabilities Slash Command · jeremylongshore/tons-of-skills-marketplace
- Documenso Pack Claude Code skill pack for Documenso (24 skills) Plugin · jeremylongshore/tons-of-skills-marketplace
- Advisor Use this agent when the User asks for health, fitness, nutrition, or longevity guidance tailored to adults 50+, or when they describe physical symptoms, fatigue, lab results, metabolic markers, joint pain, or sleep issues — even without explicitly asking for health advice. Subagent · jeremylongshore/tons-of-skills-marketplace
- Wiki Writer Senior documentation engineer that generates wiki pages with rich dark-mode Mermaid diagrams, deep code citations, VitePress-compatible output, and validation Subagent · microsoft/skills
- Ai Safety Expert Audits and implements AI safety layers including content filtering, PII detection, bias mitigation, and LLM guardrails. Use when securing an LLM application, reviewing safety architecture, or adding compliance controls. Trigger with \"audit ai safety\", \"add safety guardrails\". Subagent · jeremylongshore/tons-of-skills-marketplace
- Wiki Researcher Expert code analyst conducting systematic deep research with zero tolerance for shallow analysis — traces actual code paths and grounds every claim in evidence Subagent · microsoft/skills