Skip to content

Add A2A (Agent-to-Agent) Protocol Support to Registry #195

@aarora79

Description

@aarora79

Overview

Enable the MCP Gateway Registry to serve as a curated registry for A2A (Agent-to-Agent) protocol, allowing agents to discover and communicate with other agents while maintaining enterprise security and governance.

Current State

Registry currently manages MCP servers (tools). No agent discovery or management.

Requirements

Core Functionality

  • Agent Card Registry: Store and manage A2A Agent Cards following the A2A protocol specification
  • Agent Discovery: Find agents by skills, capabilities, and tags using semantic search
  • CRUD Operations: Register, update, retrieve, and delete agent cards
  • Access Control: Fine-grained authorization using existing Keycloak/OAuth2 infrastructure

Architecture

  • Registry-Only: Agents discover other agents through the registry but communicate directly (P2P)
  • Separate API Namespace: /api/agents/* endpoints (distinct from /api/servers/*)
  • Unified Search: Extend existing FAISS-based semantic search for both MCP servers and agents
  • Authentication: Keycloak controls registry access; agents define their own security schemes
  • No Breaking Changes: Existing MCP functionality completely unchanged

Design Document

See .scratchpad/a2a-integration-design.md for detailed architecture, data models, and API specifications.

Key Design Decisions

  1. Registry API is custom - A2A spec does not define registry standards (implementation-specific)
  2. Keycloak for registry access - Agent-to-agent auth is separate (agents handle their own)
  3. Direct P2P communication - Registry returns URLs only, doesn't route traffic
  4. Minimal new modules - Reuse existing auth, search, storage patterns

Acceptance Criteria

  • Agent Card data models implemented (Pydantic)
  • CRUD endpoints implemented
  • Discovery/search endpoints working
  • Authorization working (Keycloak integration)
  • Tests passing
  • Design document finalized in docs/design/

Related

Metadata

Metadata

Assignees

Labels

a2aAgent-to-Agent protocol and featuresenhancementNew feature or requestfeature-requestNew feature or enhancement requestintegrationsIntegration with external systems and services

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions