Register Your Resource

Join Agent3 Hub - Register your Agent, MCP Server, or API in minutes

Instant Discovery

Your resource becomes searchable immediately

Simple API

One HTTP POST request to register

Free Testing

Use our test token, no signup required

💡 Important: Choose the Correct Resource Type

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 Servers
  • resourceType: "sdk" → For Client Libraries, SDKs
  • resourceType: "data" → For Datasets, Data Services

One Endpoint for All: Use POST /api/resources for all resource types. Just set the correct resourceType field!

🎉 Free Test Token

Use this token to register your resources during our testing phase. No signup required!

a2a_test_1c4f7409b3ef86dbdd101e24756e8321c2bdeb9863349df1b40b9b8a1f9772dc

Note: This is a shared test token for early access. For production use, create your own API token through the dashboard.

Quick Start

1

Copy the test token above

2

Choose your method

cURL (Terminal)
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"
  }'
Node.js / TypeScript
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();
Python
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())
🌐 REST API ExampleresourceType: "api"
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

🔌 MCP Server ExampleresourceType: "api"
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

3

Customize your resource data

Update the following fields in the example above:

  • resourceType - Type of resource: "agent", "api", "sdk", or "data"
  • name - Display name for your resource
  • description - What your resource does
  • provider - Your organization info
  • interfaces - Protocol details (type, url, etc.)
  • operations - What capabilities your resource provides
4

Run the code and verify

✅ Success! Your resource will be:

  • Immediately searchable on Agent3 Hub
  • Discoverable via semantic and text search
  • Callable through our Runtime APIs
  • Available in search results: hub.agent3.space/search

Resource Types & How to Choose

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:

  • • Follows the A2A (Agent-to-Agent) protocol
  • • Uses JSON-RPC for communication
  • • Has autonomous decision-making capabilities
  • • Provides conversational or task-based interactions

Example: ChatGPT agents, custom AI assistants, workflow automation agents

🌐

api — APIs & Services

Web services, APIs, and tools that provide specific functionality through various protocols.

✅ Use this type if your service:

  • • Provides REST, GraphQL, or HTTP APIs
  • • Is a Model Context Protocol (MCP) server
  • • Offers tools, functions, or resources via API
  • • Uses WebSocket, SSE, or other API protocols

📌 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 Kits

Client libraries, frameworks, and development tools that help developers integrate with services.

✅ Use this type if your service:

  • • Is a client library (npm, PyPI, gem, etc.)
  • • Provides development frameworks or tools
  • • Helps integrate with other services
  • • Offers code-level abstractions

Example: Anthropic SDK, OpenAI Python library, Stripe SDK

💾

data — Data Services

Data sources, datasets, databases, and data processing services.

✅ Use this type if your service:

  • • Provides datasets or data feeds
  • • Offers database access or queries
  • • Aggregates or processes data
  • • Streams real-time data

Example: Public datasets, knowledge graphs, market data feeds, embeddings databases

FAQ

How long is the test token valid?

The test token is valid during our testing phase. For production use, we recommend creating your own personal API token through the dashboard.

Can I update my resource after registration?

Yes! Use PUT request to /api/resources/YOUR_RESOURCE_ID with the same authentication.

Is there a limit on the number of resources I can register?

Currently, there is no limit during the testing phase.

Do I need to host my resource somewhere?

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.