The Agent Registry now supports registering any agent -- not just A2A (Agent-to-Agent) protocol agents. A new supported_protocol field distinguishes A2A agents from non-A2A agents, while trust_level and visibility defaults have been updated for consistency across all layers (backend, API, CLI, frontend).
The supported_protocol field indicates which protocol an agent implements:
| Value | Description |
|---|---|
a2a |
Agent implements the A2A protocol specification |
other |
Agent uses a different protocol (HTTP REST, gRPC, custom, etc.) |
- Registration API:
supportedProtocolis required when registering a new agent - Agent Card model:
supported_protocoldefaults toNonefor backward compatibility with existing agents - Agent listing: the field appears in all agent list and detail responses
The registration form includes a "This is an A2A Protocol Agent" checkbox. When checked, the agent is registered with supported_protocol: "a2a". When unchecked, it is registered as "other".
The edit dialog also includes a Supported Protocol dropdown (A2A / Other) so you can update an existing agent's protocol type.
Include the supportedProtocol field in your registration request:
curl -X POST http://localhost/api/agents/register \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"name": "My Agent",
"description": "An example agent",
"url": "https://my-agent.example.com",
"version": "1.0.0",
"supportedProtocol": "a2a",
"tags": ["example"]
}'uv run python api/registry_management.py \
--registry-url http://localhost \
--token-file .token \
agent-register \
--name "My Agent" \
--url "https://my-agent.example.com" \
--supported-protocol a2a \
--tags "example"The default trust_level has changed from "unverified" to "community" across all layers:
| Trust Level | Description |
|---|---|
unverified |
No verification performed |
community |
Community-contributed agent (new default) |
verified |
Verified by registry administrators |
trusted |
Fully trusted agent |
The default visibility has changed from "internal" to "public" across all layers:
| Visibility | Description |
|---|---|
public |
Visible to all users (new default) |
group-restricted |
Visible only to members of allowed groups |
internal |
Visible only to the agent owner |
Existing agents in MongoDB that were created before this change will not have the supported_protocol field, and may still have the old default values for trust_level and visibility. A one-time backfill script normalizes these:
uv run python scripts/backfill_agent_fields.pyThe script performs three operations:
supported_protocol-- Sets"other"on all agents that don't have the field. Agents already registered as A2A are not affected.trust_level-- Updates agents with"unverified"to"community"(the new default).visibility-- Updates agents with"internal"to"public"(the new default).
The script connects to MongoDB at localhost:27017 by default. For production deployments (e.g., Amazon DocumentDB), update the MONGODB_URI constant in scripts/backfill_agent_fields.py before running.
The script is idempotent -- running it multiple times has no additional effect. Each operation logs how many documents were modified.
Two Claude Code skills are available to help generate registration cards by analyzing source code:
Analyzes agent source code (local folder or GitHub URL) and generates an A2A-compliant agent card JSON file. Detects agent name, skills, tools, auth mechanisms, protocol bindings, and streaming support.
/generate-agent-card /path/to/agent/folder
/generate-agent-card https://github.com/org/agent-repo
See .claude/skills/generate-agent-card/SKILL.md for details.
Analyzes MCP server source code and generates a registry-compatible server card JSON file. Detects server name, tools, transport type, auth scheme, and deployment URLs.
/generate-server-card /path/to/server/folder
/generate-server-card https://github.com/org/server-repo
See .claude/skills/generate-server-card/SKILL.md for details.
- The Dashboard now shows an "A2A Protocol" badge on agent cards for agents with
supported_protocol: "a2a" - Agent details modal shows a clickable A2A card URL for A2A agents
- Trust level and visibility values are read from the API (no longer hardcoded)
- The edit dialog includes dropdowns for Trust Level, Supported Protocol, and Visibility
The supported_protocol, trust_level, and visibility fields are included in all agent API responses:
{
"name": "Flight Booking Agent",
"path": "/flight-booking",
"supported_protocol": "a2a",
"trust_level": "community",
"visibility": "public",
...
}Agents that predate this feature will show "supported_protocol": null until the backfill script is run.