A comprehensive Node.js implementation of an Agent-to-Agent (A2A) system compliant with the A2A Protocol v0.3.0. The system features dual AI-powered agents (Buyer and Seller) for OpenDirect advertising operations, with integrated Model Context Protocol (MCP) support for tool execution.
Built on a clean modular architecture with 5 independent modules that work together seamlessly.
- ๐ค Dual AI Agents - Autonomous Buyer and Seller agents with natural language understanding
- ๐ A2A Protocol v0.3.0 - Full compliance with agent card discovery, JSON-RPC 2.0, and HTTP+JSON transports
- ๐ง MCP Integration - 33+ auto-generated tools from OpenDirect schemas
- ๐จ Schema-Driven - Single source of truth from OpenAPI 3.0 schemas
- ๐ฌ Multi-Provider AI - Support for OpenAI, Anthropic Claude, and Google Gemini
- ๐ Web Interface - Ready-to-use test client for agent interactions
node >= 18.0.0
npm >= 9.0.0# Clone repository
git clone https://github.com/InteractiveAdvertisingBureau/mcp-config.git
cd mcp-config
# Install dependencies
npm install
# Install test client
cd client-test && npm install && cd ..Create .env file:
NODE_ENV=development
PORT=3000
# AI Provider (choose one)
OPENAI_API_KEY=sk-proj-your-key
OPENAI_MODEL=gpt-4o-mini
# Optional: Other providers
ANTHROPIC_API_KEY=sk-ant-...
GEMINI_API_KEY=...
# MCP Configuration
DEFAULT_ANALYSIS_MODEL=openai
DEFAULT_CHAT_MODEL=openai
MCP_ENABLE_ADMIN_TOOLS=falseOr use the quick-start script:
./quick-start.shnpm start
# Expected: Server on port 3000, MCP integration with 33 toolscd client-test && npm start
# Expected: Server on http://localhost:8080โ Agent Card Discovery:
curl http://localhost:3000/a2a/buyer/.well-known/agent-card.json | jqโ Web Client:
http://localhost:8080
โ Send test message:
"create an account for Nike"
The system is organized into four distinct layers:
-
Client Layer - Web UI (
client-test/) and A2A-compliant clients communicate via the A2A Protocol v0.3.0 over HTTPS. -
A2A Agent Layer - Express.js server (port 3000) hosting Buyer and Seller agents with multiple transport protocols (JSON-RPC 2.0, HTTP+JSON), dynamic agent card generation, and AI-powered execution.
-
MCP Layer - Schema-driven tool generator using OpenAPI 3.0 specs to dynamically create 33+ tools from the OpenDirect schema, with validation and API handlers via Server-Sent Events (SSE) transport.
-
Schema Layer - OpenAPI 3.0 specification defining 13 resource types (Account, Order, Line, Product, Creative, etc.), 40+ object definitions, and standardized endpoints with parameters and validations.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CLIENT LAYER โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ Web Client โ โClaude Desktopโ โ Test Client โ โ
โ โ(client-test) โ โ (MCP HTTP) โ โ (SDK) โ โ
โ โโโโโโโโฌโโโโโโโโ โโโโโโโโฌโโโโโโโโ โโโโโโโโฌโโโโโโโโ โ
โโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโ
โ โ โ
โ HTTP/JSON โ SSE โ HTTP
โ A2A Protocol โ MCP Protocol โ A2A Protocol
โ โ โ
โโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโ
โ A2A AGENT LAYER (Port 3000) โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Client Agent (Orchestrator) โ โ
โ โ โข Autonomous Mode: Auto-selects buyer/seller โ โ
โ โ โข Orchestrated Mode: User-directed routing โ โ
โ โ โข Session management & conversation history โ โ
โ โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โโโโโโโโโโโโโโผโโโโโโโโโโโ โโโโโโโโโโโผโโโโโโโโโโโ โ
โ โ Buyer Agent โ โ Seller Agent โ โ
โ โ /a2a/buyer โ โ /a2a/seller โ โ
โ โ โโโโโโโโโโโโโโโโโโโ โ โ โโโโโโโโโโโโโโโโโโโโ โ
โ โ โ Agent Card โ โ โ โ Agent Card โโ โ
โ โ โ - Skills โ โ โ โ - Skills โโ โ
โ โ โ - Transports โ โ โ โ - Transports โโ โ
โ โ โ - Examples โ โ โ โ - Examples โโ โ
โ โ โโโโโโโโโโโโโโโโโโโ โ โ โโโโโโโโโโโโโโโโโโโโ โ
โ โ Skills: โ โ Skills: โ โ
โ โ โข create_account โ โ โข list_products โ โ
โ โ โข create_order โ โ โข search_inventory โ โ
โ โ โข search_inventory โ โ โข process_orders โ โ
โ โโโโโโโโโโโโโโฌโโโโโโโโโโโ โโโโโโโโโโโฌโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ MCP Tool Calls โ MCP Tool Calls
โ โ
โโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MCP LAYER โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ API Testing โ โ OpenDirect โ โSchema-Driven โ โ
โ โ MCP โ โ MCP โ โ MCP โ โ
โ โ /mcp/sse โ โ/agenticdirectโ โ /schema/mcp โ โ
โ โ (8 tools) โ โ /mcp/sse โ โ /sse โ โ
โ โ โ โ (10 tools) โ โ (33 tools) โ โ
โ โ Transport: โ โ Transport: โ โ Transport: โ โ
โ โ SSE โ โ SSE โ โ SSE โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโฌโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ Schema Loading
โ & Validation
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโ
โ SCHEMA LAYER โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ OpenDirect OpenAPI 3.0 Schema โ โ
โ โ (opendirect-mcp-schema.json) โ โ
โ โ โ โ
โ โ ๐ 13 Resource Types: โ โ
โ โ Account, Order, Line, Product, Creative, โ โ
โ โ Assignment, Organization, ChangeRequest, Message โ โ
โ โ โ โ
โ โ ๐๏ธ 40+ Object Definitions: โ โ
โ โ - Request/Response schemas โ โ
โ โ - Validation rules (Zod) โ โ
โ โ - Parameter specifications โ โ
โ โ โ โ
โ โ โ
CRUD Operations: create, get, list, update, delete โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- Web UI (
client-test/): Pure HTML/CSS/JavaScript interface - A2A Protocol v0.3.0: Standard agent communication
- Features:
- Agent selection (Buyer/Seller)
- Connection management
- Real-time response display
- Message history and session tracking
- Dual Agents: Buyer (
/a2a/buyer) and Seller (/a2a/seller) - Agent Card Discovery:
/.well-known/agent-card.json - Transports:
- JSON-RPC 2.0 (
/jsonrpc) - HTTP+JSON (
/rest) - MCP tools integration
- JSON-RPC 2.0 (
- AI-Powered Execution: OpenAI GPT for natural language understanding
- Modes:
- Autonomous: Agent auto-selects sub-agents
- Orchestrated: User-directed routing
- Schema-Driven Tool Generator: Processes OpenAPI 3.0 specs
- Validation: Zod schemas for runtime parameter checking
- Tool Registry:
- API Testing MCP: 8 tools (register, test, analyze APIs)
- OpenDirect MCP: 10 tools (manual implementations)
- Schema-Driven MCP: 33 tools (auto-generated CRUD)
- Transport: Server-Sent Events (SSE) for streaming
- OpenDirect Specification: OpenAPI 3.0 format
- 13 Resource Types: Account, Order, Line, Product, Creative, etc.
- 40+ Object Definitions: Complete request/response schemas
- Validation Rules: JSON Schema with Zod transformation
โโโโโโโโโโโโโโโ
โ Client โ 1. User sends message: "create account for Nike"
โ (Web UI) โ
โโโโโโโโฌโโโโโโโ
โ
โ POST /api/a2a/chat
โ { message: "create account for Nike" }
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Client Agent (Orchestrator) โ
โ โ
โ 2. Analyze message with AI (OpenAI GPT) โ
โ โ Determine: Account creation needed โ
โ โ Select: Buyer Agent โ
โ โ Extract params: { name: "Nike" } โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ 3. Route to Buyer Agent
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Buyer Agent โ
โ /a2a/buyer โ
โ โ
โ 4. Receive message via JSON-RPC 2.0: โ
โ POST /a2a/buyer/jsonrpc โ
โ { โ
โ "method": "sendMessage", โ
โ "params": { โ
โ "message": "create account for Nike" โ
โ } โ
โ } โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ 5. Execute skill: create_account
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MCP Layer โ
โ (Schema-Driven MCP Server) โ
โ โ
โ 6. Call MCP tool: create_account โ
โ POST /schema/mcp/sse โ
โ { โ
โ "method": "tools/call", โ
โ "params": { โ
โ "name": "create_account", โ
โ "arguments": { โ
โ "name": "Nike", โ
โ "type": "advertiser" โ
โ } โ
โ } โ
โ } โ
โ โ
โ 7. Validate with Zod schema โ
โ 8. Execute account creation logic โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ 9. Return result
โ { accountId: "acc_123", name: "Nike", ... }
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Buyer Agent โ
โ โ
โ 10. Format response โ
โ "โ
Created account for Nike (ID: acc_123)" โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ 11. Return to orchestrator
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Client Agent (Orchestrator) โ
โ โ
โ 12. Add to conversation history โ
โ 13. Publish progress events โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ 14. Return to client
โ {
โ response: "โ
Created account...",
โ data: { accountId: "acc_123", ... }
โ }
โ
โผ
โโโโโโโโโโโโโโโ
โ Client โ 15. Display response to user
โ (Web UI) โ
โโโโโโโโโโโโโโโ
Multi-Step Workflow Example:
Message: "Create account for Adidas and create order for Adidas with budget $300"
Step 1: create_account
โโ> Response: { accountId: "acc_456" }
โ
โผ
Step 2: create_order
โโ> Input: { accountId: "acc_456", budget: 300 }
โโ> Response: { orderId: "ord_789", accountId: "acc_456" }
The orchestrator automatically:
- โ Chains multiple operations
- โ Passes data between steps (account ID)
- โ Maintains conversation context
- โ Handles errors gracefully
| Component | File/Module | Purpose |
|---|---|---|
| Main Server | server.js |
Express setup, module orchestration, routing |
| Agent Card | modules/a2a-protocol/lib/a2aEndpoints.js |
Agent discovery with skills, capabilities, security |
| Agent Executor | modules/a2a-protocol/lib/agentExecutor.js |
AI-powered tool selection and task management |
| Client Agent | modules/a2a-protocol/lib/clientAgent.js |
Agent orchestrator (autonomous/orchestrated modes) |
| MCP Server | modules/schema-driven-mcp/server.js |
Schema-driven tool registry with SSE transport |
| Tool Generator | modules/schema-driven-mcp/lib/toolGenerator.js |
Auto-generate CRUD tools from schemas |
| Schema Loader | modules/schema-driven-mcp/lib/schemaLoader.js |
Load and validate OpenAPI schemas |
| Web Client | client-test/ |
HTML/CSS/JS A2A test interface |
| OpenDirect Schema | opendirect-mcp-schema.json |
OpenAPI 3.0 resource definitions and validations |
- Web UI (
client-test/): Pure HTML/CSS/JS interface - Direct A2A protocol calls
- Agent selection (Buyer/Seller)
- Real-time monitoring and status updates
- Message streaming support
- Express.js server (Port 3000)
- Dual agents:
- Buyer:
/a2a/buyer - Seller:
/a2a/seller
- Buyer:
- Agent card discovery:
/.well-known/agent-card.json - Skills: Order creation, campaigns, creative management, product search
- Multiple transports: JSON-RPC 2.0, HTTP+JSON, MCP tools
- AI-powered orchestration: Natural language โ tool mapping
- Schema-driven tool generator from OpenAPI schemas
- Input: OpenDirect OpenAPI 3.0 specification
- Output: 33+ executable MCP tools with validation
- Transport: Server-Sent Events (SSE) for streaming
- Tool categories: CRUD operations, search, validation
- OpenDirect JSON specification (OpenAPI 3.0)
- 13 resource types: Account, Order, Line, Product, Creative, etc.
- 40+ object definitions with full validation schemas
- Parameter validation and response schemas
mcp-config/
โโโ server.js # Main entry point (modular architecture)
โโโ package.json # Dependencies
โ
โโโ modules/ # 5 Independent modules
โ โโโ a2a-protocol/ # โญ Agent-to-Agent communication
โ โ โโโ server.js # A2A agent orchestrator
โ โ โโโ routes/ # Agent endpoints
โ โ โโโ lib/ # Agent cards, executors, SDK integration
โ โโโ opendirect-mcp/ # OpenDirect MCP implementation
โ โโโ schema-driven-mcp/ # Schema-to-tools generator
โ โโโ api-testing-mcp/ # API testing & validation
โ โโโ ai-chat/ # Multi-provider AI chat
โ
โโโ shared/ # Shared utilities
โ โโโ config/ # Centralized configuration
โ โโโ database/ # Database connection
โ โโโ utils/ # Logger, UUID, date utilities
โ โโโ middleware/ # CORS, error handlers
โ
โโโ client/ # Frontend clients
โ โโโ standalone/ # AI chat UI
โโโ client-test/ # โญ A2A test client
โ โโโ index.html # Web interface
โ โโโ app.js # Client logic
โ โโโ style.css # Styling
โโโ client-test-sdk/ # SDK-based test client
โ
โโโ prompts/ # AI agent prompts
โ โโโ buyer/ # Buyer agent prompts
โ โโโ seller/ # Seller agent prompts
โ
โโโ tests/ # Test resources
โ โโโ schemas/ # Test schemas
โ โโโ test.sh # Module testing script
โ
โโโ opendirect-mcp-schema.json # OpenDirect schema
โโโ claude-desktop-config.json # MCP client configuration
โโโ quick-start.sh # Quick setup script
โโโ deploy.sh # Cloud deployment script
โโโ Dockerfile # Docker configuration
โ
โโโ a2a-agenticdirect-standalone/ # Standalone A2A module
Each agent exposes a standard agent card at /.well-known/agent-card.json:
# Buyer Agent Card
curl http://localhost:3000/a2a/buyer/.well-known/agent-card.json
# Seller Agent Card
curl http://localhost:3000/a2a/seller/.well-known/agent-card.jsonAgent Card Structure:
- Identity: Name, description, version
- Skills: Available operations (create_order, search_products, etc.)
- Transports: JSON-RPC 2.0, HTTP+JSON, MCP tools
- Security: Authentication requirements
- Examples: Sample requests and responses
1. Autonomous Mode (Default)
- Agent automatically selects appropriate sub-agents
- Natural language understanding
- Multi-step workflow orchestration
- Example: "Create order for Nike" โ Agent calls buyer agent with correct tools
2. Orchestrated Mode
- User manually selects target agent
- Direct agent communication
- More control over agent selection
POST /a2a/{agent}/jsonrpc
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "sendMessage",
"params": {
"message": "create an account for Nike",
"context": {}
},
"id": 1
}POST /a2a/{agent}/rest
Content-Type: application/json
{
"message": "search for video ad products",
"sessionId": "optional-session-id"
}# Send message to orchestrator
POST /api/a2a/chat
# Get conversation history
GET /api/a2a/chat/:sessionId/history
# Clear conversation
DELETE /api/a2a/chat/:sessionId
# Get progress events
GET /api/a2a/chat/:sessionId/progress
# Set/get agent mode
POST /api/a2a/mode
GET /api/a2a/modePurpose: Agent-to-agent communication using official @a2a-js/sdk with AI orchestration.
Endpoints:
/a2a/agents- Agent discovery/a2a/buyer/.well-known/agent-card.json- Buyer agent card/a2a/seller/.well-known/agent-card.json- Seller agent card/api/a2a/chat- Client agent chat/api/a2a/mode- Set orchestration mode
Agent Skills:
Buyer Agent:
- Create and manage accounts
- Create advertising orders
- Manage campaigns and budgets
- Search for ad inventory
- Assign creatives to placements
Seller Agent:
- List available products
- Process orders
- Manage inventory
- Handle change requests
Key Features:
- โ Agent card auto-generation with skills, examples, security
- โ Multiple transports: JSON-RPC 2.0, HTTP+JSON, MCP tools
- โ AI-powered natural language understanding (OpenAI GPT)
- โ Autonomous and orchestrated modes
- โ Session management and conversation history
- โ Progress tracking and streaming responses
Purpose: Advertising operations following OpenDirect v2.1 specification.
Endpoints: /agenticdirect/mcp/sse
Tools (10 core operations):
- Organization, Account, Order, Line, Creative management
- Product search and inventory queries
- Change requests and messaging
Purpose: Auto-generate MCP tools from OpenAPI schemas with runtime validation.
Endpoints: /schema/mcp/sse
Tools (33+ auto-generated):
- CRUD operations for all OpenDirect resources
- Runtime JSON Schema validation
- Hot-reload capability without server restart
- Sandbox testing environment
Schema Management API:
POST /api/schema/register # Register custom schema
POST /api/schema/fetch-url # Fetch schema from URL
POST /api/schema/reset # Reset to default
POST /api/schema/test-tool # Test tool in sandbox
GET /api/schema/current # Get current schema
GET /api/schema/history # Get registration historyPurpose: Test and validate REST APIs with AI analysis.
Endpoints: /mcp/sse
Tools: Register APIs, test endpoints, generate AI-powered analysis and test scenarios.
Purpose: Multi-provider AI chat with MCP integration.
Endpoints: /chat
Providers: Anthropic Claude, OpenAI GPT, Google Gemini
curl http://localhost:3000/a2a/buyer/.well-known/agent-card.json | jqExpected Response:
{
"name": "OpenDirect Buyer Agent",
"version": "1.0.0",
"skills": [
{
"name": "create_account",
"description": "Create a new buyer account",
"parameters": { ... }
}
],
"transports": [
{
"type": "jsonrpc",
"version": "2.0",
"endpoint": "/a2a/buyer/jsonrpc"
}
]
}curl -X POST http://localhost:3000/a2a/buyer/jsonrpc \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "sendMessage",
"params": {
"message": "create an account for Nike"
},
"id": 1
}' | jq# List available MCP tools
curl http://localhost:3000/schema/mcp/tools | jq '.tools[].name'
# Test MCP health
curl http://localhost:3000/schema/mcp/health
curl http://localhost:3000/agenticdirect/mcp/health
curl http://localhost:3000/mcp/health./tests/test.sh# Account creation
"create an account for Nike"
# Order creation
"create an order for Adidas with budget $50000"
# Inventory search
"search for video ad inventory"
# Campaign setup
"create a campaign for summer sale targeting 25-34 age group"# Product listing
"list available products"
# Inventory search
"search for premium ad space"
# Order processing
"process order for account ABC"
# Change requests
"handle change request for order 12345"Create claude-desktop-config.json:
{
"mcpServers": {
"api-testing-mcp": {
"url": "http://localhost:3000/mcp/sse",
"transport": "http"
},
"opendirect-mcp": {
"url": "http://localhost:3000/agenticdirect/mcp/sse",
"transport": "http"
},
"schema-driven-mcp": {
"url": "http://localhost:3000/schema/mcp/sse",
"transport": "http"
}
}
}# Build image
docker build -t mcp-config .
# Run container
docker run -p 3000:3000 \
-e PORT=3000 \
-e OPENAI_API_KEY=sk-proj-... \
-e OPENAI_MODEL=gpt-4o-mini \
mcp-config# Deploy to Google Cloud Run
./deploy.sh
# Or manually
gcloud run deploy mcp-config \
--source . \
--platform managed \
--region us-east4 \
--allow-unauthenticated| Issue | Solution |
|---|---|
| Port 3000 in use | lsof -i :3000 then kill -9 <PID> |
| Missing API key | Verify .env contains OPENAI_API_KEY |
| Server not responding | curl http://localhost:3000/mcp/health |
| Client connection fails | Confirm server running, check CORS |
| Agent card 404 | Check /a2a/buyer/.well-known/agent-card.json |
| MCP tools not loading | Verify schema loaded: GET /api/schema/current |
# Enable debug logging
NODE_ENV=development node server.js
# Check server logs
tail -f /tmp/server-test.log
# Test each module independently
curl http://localhost:3000/mcp/health
curl http://localhost:3000/agenticdirect/mcp/health
curl http://localhost:3000/schema/mcp/health
curl http://localhost:3000/a2a/agentsGET /mcp/health # API Testing MCP
GET /agenticdirect/mcp/health # OpenDirect MCP
GET /schema/mcp/health # Schema-Driven MCP
GET /a2a/agents # A2A Protocol
GET /api/ai-health # AI ChatGET /a2a/agents # List agents
GET /a2a/{agent}/.well-known/agent-card.json # Agent card
POST /a2a/{agent}/jsonrpc # JSON-RPC 2.0
POST /a2a/{agent}/rest # HTTP+JSON
POST /api/a2a/chat # Client chat
GET /api/a2a/chat/:sessionId/history # History
POST /api/a2a/mode # Set modePOST /mcp/sse # API Testing MCP (SSE)
POST /agenticdirect/mcp/sse # OpenDirect MCP (SSE)
POST /schema/mcp/sse # Schema-Driven MCP (SSE)
GET /schema/mcp/tools # List generated tools
GET /schema/mcp/resources # List resourcesAfter setup, verify:
- โ
Server running on
http://localhost:3000 - โ
Test client running on
http://localhost:8080 - โ
Agent cards accessible:
http://localhost:3000/a2a/buyer/.well-known/agent-card.jsonhttp://localhost:3000/a2a/seller/.well-known/agent-card.json
- โ
MCP endpoints healthy:
http://localhost:3000/mcp/healthhttp://localhost:3000/schema/mcp/health
- โ Messages sent/received successfully via web client
- โ Response data displayed as JSON
- โ Multi-step workflows execute sequentially
- Protocol Compliance - Full A2A v0.3.0 support with agent cards
- Scalability - Modular design allows independent scaling
- Extensibility - Schema-driven tool generation from OpenAPI
- Maintainability - Clear separation of concerns across modules
- AI-Powered - Natural language understanding with multiple AI providers
- Interoperability - Standard MCP protocol for tool execution
- Explore Agent Cards - Review buyer and seller capabilities
- Test with Web Client - Use
http://localhost:8080for interactive testing - Review MCP Tools - Check
/schema/mcp/toolsfor available operations - Integrate with Claude - Use HTTP transport configuration
- Deploy to Production - Use
deploy.shfor Cloud Run deployment - Customize Agents - Modify prompts in
prompts/buyer/andprompts/seller/
- A2A Protocol: https://a2a-protocol.org/v0.3.0/specification/
- OpenDirect Spec: https://www.iab.com/guidelines/opendirect/
- MCP Protocol: https://modelcontextprotocol.io/
- JSON-RPC 2.0: https://www.jsonrpc.org/specification
- IABTechLab MCP Server: https://mcpclient.iabtechlab.com