Join Agent3 Hub - Register your Agent, MCP Server, or API in minutes
Your resource becomes searchable immediately
One HTTP POST request to register
Use our test token, no signup required
All resources use the same endpoint, but you must set the correct resourceType:
resourceType: "agent" → For AI Agents (A2A protocol)resourceType: "api" → For REST APIs, MCP ServersresourceType: "sdk" → For Client Libraries, SDKsresourceType: "data" → For Datasets, Data ServicesOne Endpoint for All: Use POST /api/resources for all resource types. Just set the correct resourceType field!
Use this token to register your resources during our testing phase. No signup required!
a2a_test_1c4f7409b3ef86dbdd101e24756e8321c2bdeb9863349df1b40b9b8a1f9772dcNote: This is a shared test token for early access. For production use, create your own API token through the dashboard.
curl -X POST https://hub.agent3.space/api/resources \
-H "Content-Type: application/json" \
-H "Authorization: Bearer a2a_test_1c4f7409b3ef86dbdd101e24756e8321c2bdeb9863349df1b40b9b8a1f9772dc" \
-d '{
"name": "My Awesome Agent",
"description": "A helpful AI agent",
"resourceType": "agent",
"provider": {
"organization": "Your Org",
"name": "Your Name",
"email": "you@example.com",
"url": "https://yoursite.com"
},
"interfaces": [{
"type": "agent",
"protocol": "https",
"url": "https://api.yourservice.com/v1",
"version": "1.0.0"
}],
"operations": [{
"id": "main-operation",
"name": "Main Operation",
"description": "What this agent does",
"inputSchema": {
"type": "object",
"properties": {
"input": { "type": "string" }
},
"required": ["input"]
},
"bindings": {
"a2a": { "skillName": "mainOperation" }
},
"tags": ["ai", "assistant"]
}],
"tags": ["ai", "agent"],
"visibility": "public"
}'const fetch = require('node-fetch');
const token = 'a2a_test_1c4f7409b3ef86dbdd101e24756e8321c2bdeb9863349df1b40b9b8a1f9772dc';
const resource = {
name: 'My Awesome Agent',
description: 'A helpful AI agent',
resourceType: 'agent',
provider: {
organization: 'Your Org',
name: 'Your Name',
email: 'you@example.com',
url: 'https://yoursite.com'
},
interfaces: [{
type: 'agent',
protocol: 'https',
url: 'https://api.yourservice.com/v1',
version: '1.0.0'
}],
operations: [{
id: 'main-operation',
name: 'Main Operation',
description: 'What this agent does',
inputSchema: {
type: 'object',
properties: {
input: { type: 'string' }
},
required: ['input']
},
bindings: {
a2a: { skillName: 'mainOperation' }
},
tags: ['ai', 'assistant']
}],
tags: ['ai', 'agent'],
visibility: 'public'
};
async function registerResource() {
const response = await fetch('https://hub.agent3.space/api/resources', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
body: JSON.stringify(resource)
});
const result = await response.json();
console.log('Registered:', result);
}
registerResource();import requests
token = 'a2a_test_1c4f7409b3ef86dbdd101e24756e8321c2bdeb9863349df1b40b9b8a1f9772dc'
resource = {
'name': 'My Awesome Agent',
'description': 'A helpful AI agent',
'resourceType': 'agent',
'provider': {
'organization': 'Your Org',
'name': 'Your Name',
'email': 'you@example.com',
'url': 'https://yoursite.com'
},
'interfaces': [{
'type': 'agent',
'protocol': 'https',
'url': 'https://api.yourservice.com/v1',
'version': '1.0.0'
}],
'operations': [{
'id': 'main-operation',
'name': 'Main Operation',
'description': 'What this agent does',
'inputSchema': {
'type': 'object',
'properties': {
'input': { 'type': 'string' }
},
'required': ['input']
},
'bindings': {
'a2a': { 'skillName': 'mainOperation' }
},
'tags': ['ai', 'assistant']
}],
'tags': ['ai', 'agent'],
'visibility': 'public'
}
response = requests.post(
'https://hub.agent3.space/api/resources',
headers={
'Content-Type': 'application/json',
'Authorization': f'Bearer {token}'
},
json=resource
)
print('Registered:', response.json())curl -X POST https://hub.agent3.space/api/resources \
-H "Content-Type: application/json" \
-H "Authorization: Bearer a2a_test_1c4f7409b3ef86dbdd101e24756e8321c2bdeb9863349df1b40b9b8a1f9772dc" \
-d '{
"name": "My Weather API",
"description": "Get current weather and forecasts",
"resourceType": "api",
"provider": {
"name": "Your Name",
"email": "you@example.com",
"url": "https://yoursite.com"
},
"interfaces": [{
"type": "rest",
"protocol": "https",
"url": "https://api.yourweatherservice.com/v1"
}],
"operations": [{
"id": "get-weather",
"name": "Get Current Weather",
"description": "Get current weather for a location",
"tags": ["weather", "forecast"],
"bindings": {
"http": {
"method": "GET",
"path": "/weather",
"queryParams": ["city", "units"]
}
}
}],
"tags": ["api", "weather", "rest"],
"visibility": "public"
}'Key Point: Set resourceType: "api" for REST APIs and web services
curl -X POST https://hub.agent3.space/api/resources \
-H "Content-Type: application/json" \
-H "Authorization: Bearer a2a_test_1c4f7409b3ef86dbdd101e24756e8321c2bdeb9863349df1b40b9b8a1f9772dc" \
-d '{
"name": "My MCP Filesystem Server",
"description": "MCP server providing filesystem access tools",
"resourceType": "api",
"provider": {
"name": "Your Name",
"email": "you@example.com",
"url": "https://yoursite.com"
},
"interfaces": [{
"type": "mcp",
"protocol": "stdio",
"url": "npx -y @modelcontextprotocol/server-filesystem /tmp",
"transport": "stdio"
}],
"operations": [{
"id": "list_directory",
"name": "List Directory",
"description": "List files in a directory",
"tags": ["filesystem", "mcp"],
"bindings": {
"mcp": { "toolName": "list_directory" }
}
}],
"tags": ["mcp", "filesystem", "tools"],
"visibility": "public"
}'Key Point: MCP servers use resourceType: "api" with interfaces[0].type: "mcp" to specify the protocol
Update the following fields in the example above:
resourceType - Type of resource: "agent", "api", "sdk", or "data"name - Display name for your resourcedescription - What your resource doesprovider - Your organization infointerfaces - Protocol details (type, url, etc.)operations - What capabilities your resource provides✅ Success! Your resource will be:
Choose the right resource type based on what your service provides:
agent — AI Agents (A2A Protocol)Autonomous AI agents that can perform tasks, make decisions, and interact with users using natural language.
✅ Use this type if your service:
Example: ChatGPT agents, custom AI assistants, workflow automation agents
api — APIs & ServicesWeb services, APIs, and tools that provide specific functionality through various protocols.
✅ Use this type if your service:
📌 Important: MCP is a protocol, not a type
MCP servers should use resourceType: "api" with protocol specified in interfaces
Example: Weather APIs, MCP filesystem servers, Twitter APIs, database connectors
sdk — Software Development KitsClient libraries, frameworks, and development tools that help developers integrate with services.
✅ Use this type if your service:
Example: Anthropic SDK, OpenAI Python library, Stripe SDK
data — Data ServicesData sources, datasets, databases, and data processing services.
✅ Use this type if your service:
Example: Public datasets, knowledge graphs, market data feeds, embeddings databases
The test token is valid during our testing phase. For production use, we recommend creating your own personal API token through the dashboard.
Yes! Use PUT request to /api/resources/YOUR_RESOURCE_ID with the same authentication.
Currently, there is no limit during the testing phase.
Yes, your resource needs to be hosted and accessible via the URL you provide in theinterfaces field. Agent3 Hub is a discovery platform, not a hosting service.