agentic-profile/cloud-a2a-mcp-quickstart
If you are the rightful owner of cloud-a2a-mcp-quickstart and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Agentic Profile A2A/MCP service is a scalable solution deployed on AWS, designed to handle agentic profiles and task management using A2A and MCP protocols.
Cloud A2A and MCP Quickstart
Leverages cloud formation scripts and templates to create a scalable server with example A2A and MCP services.
Features
For each cloud infrastructure, scripts can optimize with VPCs, NATs, caches, scalable databases, scalable compute, native security, and different AI model providers.
Demonstrates Universal Authentication using DIDs, JWT, and standard HTTPS headers.
The A2A and MCP services are written in Javascript/Typescript using Node.js and have abstracted storage to map to the cloud native data stores.
Example A2A agents include:
- Venture: an agent that learns about a startup and helps that startup find the right technology providers, capital partners, teamates, and co-founders.
- Business Match: an MCP that learns about all the ventures and the people that might want to work with them and suggests connections.
- Volunteer: an agent that learns about a volunteer and helps them find volunteering opportunities
- Charity: an agent that learns about a charity and helps them find volunteers
- Reputation: an MCP that learns about peoples and business reputations
- Volunteer Match: an MCP that learns about volunteers and charities and suggests matches
The demo website is written using React and converted to a static website which can be deployed to an edge caching service.
Cloud Providers
Support for various cloud providers:
- AWS: using CloudFormation
Development
Suports local development with these dependencies:
- git
- Node.js 22+
- Redis
Quickstart
- Make sure Redis is installed and running
-
Install Redis
-
Start Redis locally
redis-server
- Clone the repo and change dir into it
git clone git@github.com:agentic-profile/cloud-a2a-mcp-quickstart.git
cd cloud-a2a-mcp-quickstart
- Start the website service locally
cd website
npm install
npm run dev
- Start the A2A and MCP server locally
cd service
npm install
npm run dev
- Open the website with your browser, visit http://localhost:5173
Example usage:
- Create an Agentic Profile so your agents can authenticate
- Click "Settings", then "Manage" on the Digital Identity row
- Enter your name, then click "Create Digital Identity"
- Click MCP in the navigation bar
- Click the "Test" button under Location
- Click "Update Location"
Cloud Deployment
The /website and /service projects are designed to be generic and easy to deploy on cloud infrastructure.
Currently are available, and other cloud providers such as Google Cloud and Azure should be easy to implement.
Project Structure
āāā aws/ # AWS deployment scripts and CloudFormation templates
ā āāā agentic-foundation.yaml # Foundation infrastructure template
ā āāā agentic-service.yaml # Service deployment template
ā āāā agentic-website.yaml # Website deployment template
ā āāā deploy-service.sh # Service deployment script
ā āāā deploy-website.sh # Website deployment script
ā āāā ssh-nat-instance.sh # NAT instance SSH script
āāā service/ # A2A and MCP Backend service (Node.js/TypeScript)
ā āāā src/
ā ā āāā index.ts # Main Lambda function
ā ā āāā index.local.ts # Local development server
ā ā āāā router.ts # Express router with all endpoints
ā ā āāā a2a/ # A2A TaskHandler implementations
ā ā ā āāā hireme/ # HireMe task handlers
ā ā ā āāā venture/ # Venture task handlers
ā ā ā āāā vc/ # VC task handlers
ā ā ā āāā index.ts # A2A main exports
ā ā ā āāā utils.ts # A2A utilities and middleware
ā ā āāā mcp/ # MCP protocol implementations
ā ā ā āāā location/ # Location-related MCP methods
ā ā ā āāā match/ # Matching MCP methods
ā ā ā āāā utils.ts # MCP utilities
ā ā āāā json-rpc/ # JSON-RPC protocol handling
ā ā ā āāā auth.ts # Authentication
ā ā ā āāā index.ts # JSON-RPC main handler
ā ā ā āāā types.ts # Type definitions
ā ā ā āāā utils.ts # JSON-RPC utilities
ā ā āāā cache/ # Redis caching layer
ā ā ā āāā redis.ts # Redis client and utilities
ā ā āāā stores/ # Data storage abstractions
ā ā ā āāā memory-store.ts # In-memory storage implementation
ā ā āāā __tests__/ # Unit tests
ā āāā www/ # Static web files for the landing page
ā ā āāā index.html # Web interface HTML
ā ā āāā images/ # Static images and icons
ā āāā docs/ # Service documentation
ā āāā scripts/ # Helper scripts
ā āāā examples/ # Usage examples
ā āāā dist/ # Compiled JavaScript output
ā āāā package.json
ā āāā tsconfig.json
ā āāā jest.config.js
āāā website/ # Frontend React application
āāā src/
ā āāā App.tsx # Main React application
ā āāā main.tsx # Application entry point
ā āāā components/ # Reusable React components
ā āāā pages/ # Page components
ā ā āāā agents/ # Agent-related pages
ā ā āāā mcp/ # MCP-related pages
ā āāā stores/ # State management (Zustand)
ā āāā assets/ # Static assets (images, etc.)
ā āāā data/ # Static data files
āāā public/ # Public static files
āāā package.json
āāā tsconfig.json
āāā vite.config.ts
āāā tailwind.config.js
āāā postcss.config.js
Useful CURL commands for local testing
Health Check
curl -X GET http://localhost:3000/status
MCP Location Service
# Tools List
curl -X POST http://localhost:3000/mcp/location \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
# Location Update
curl -X POST http://localhost:3000/mcp/location \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":4,"method":"update","params":{"coords":{"latitude":35.6762,"longitude":139.6503}}}'
# Location Query
curl -X POST http://localhost:3000/mcp/location \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":5,"method":"query"}'
A2A Endpoints
# Venture TaskHandler
curl -X POST http://localhost:3000/a2a/venture \
-H 'Content-Type: application/json' \
-d '{"id":"1","method":"venture/create","params":{"name":"Test Venture","type":"startup"}}'