April 8, 2026 8 min read Pinakes

How to Register Your MCP Server in an Open Agent Registry

You built an MCP server. Now ship it where agents can find it. Step-by-step tutorial for registering in Pinakes and the open agent registry ecosystem.

mcp mcp-server agent-registry integration tutorial

You've built an MCP (Model Context Protocol) server. It's solid. It does something useful — query a database, call an API, process a document. Maybe it connects Salesforce to Claude. Maybe it reads from a private knowledge base.

Now the hard question: how do people discover it?

Right now, the answer is messy. You post about it on Twitter. Someone finds your GitHub repo by accident. A user manually adds it to their MCP config. Another developer integrates it by hardcoding your endpoint. There's no index. No way to say "find me an MCP server that does X." No trust signal beyond a GitHub star count.

This is where agent registries come in. An open registry is infrastructure for MCP discovery — like npm for packages, but for agents and their tools.

This guide walks you through registering your MCP server in Pinakes, the open agent registry. It takes 30 seconds and gives you automatic discovery, an Agent Card, and trust verification.

Why Register at All?

Before we dive into the how, let's clarify why it matters:

  • Discoverability. Agents searching for "Salesforce integration" find your server instantly.
  • Trust. Your registered agent gets a health score. Registry users see if your endpoint responds, how long you've been registered, and what capabilities you actually provide.
  • Standards compliance. Your Agent Card (auto-generated by the registry) is A2A and MCP compatible — orchestrators can fetch it and understand your capabilities without human help.
  • Portability. Register once, work everywhere. Any agent or orchestrator that speaks MCP can invoke you through the registry.

What You Need Before Registering

Keep these handy:

  1. Endpoint URL — Where your MCP server lives. Should be publicly accessible and HTTPS. Example: https://my-mcp-server.example.com
  2. Agent name — Human-readable. Example: "Salesforce Query Agent" or "PDF Summarizer"
  3. Description — One sentence about what it does.
  4. Protocol(s) — The protocols you support. For MCP servers, this is ["mcp"]. Other options: a2a, openapi, rest, graphql, grpc.
  5. Capabilities — List of tools your MCP server exposes. Each should have a name and description.

That's it. No authentication required. No account creation. Just your endpoint URL and basic metadata.

The Registration Process (30 seconds)

Fire a single POST request to the registry. Here's the curl command:

Register your MCP server
curl -X POST https://pinakes.polsia.app/api/agents \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Salesforce Query Agent",
    "description": "Query Salesforce objects and relationships in real-time",
    "endpoint_url": "https://my-mcp-server.example.com",
    "protocols": ["mcp"],
    "version": "1.0.0",
    "capabilities": [
      {
        "name": "query_salesforce",
        "description": "Query Salesforce SOQL with automatic connection handling"
      },
      {
        "name": "create_record",
        "description": "Create a new record in a Salesforce object"
      },
      {
        "name": "update_record",
        "description": "Update an existing Salesforce record by ID"
      }
    ],
    "tags": ["salesforce", "crm", "mcp"],
    "author": {
      "name": "Your Name",
      "email": "you@example.com",
      "url": "https://yoursite.com"
    }
  }'

That's it. The registry accepts the payload, generates a slug, and returns an Agent Card:

Registry response
{
  "id": 42,
  "name": "Salesforce Query Agent",
  "slug": "salesforce-query-agent",
  "description": "Query Salesforce objects and relationships in real-time",
  "endpoint_url": "https://my-mcp-server.example.com",
  "protocols": ["mcp"],
  "version": "1.0.0",
  "capabilities": [
    {
      "name": "query_salesforce",
      "description": "Query Salesforce SOQL with automatic connection handling"
    },
    {
      "name": "create_record",
      "description": "Create a new record in a Salesforce object"
    },
    {
      "name": "update_record",
      "description": "Update an existing Salesforce record by ID"
    }
  ],
  "trust": {
    "score": 7,
    "last_health_check": "2026-04-08T15:30:00Z",
    "is_healthy": true,
    "registered_days_ago": 0
  },
  "tags": ["salesforce", "crm", "mcp"],
  "status": "active",
  "created_at": "2026-04-08T15:25:12Z",
  "_links": {
    "self": "/api/agents/42",
    "card": "/api/agents/42/card",
    "card_by_slug": "/api/agents/slug/salesforce-query-agent/card"
  }
}

Your agent is now live in the registry. Any orchestrator can find it.

Verify Your Registration

Fetch your agent directly by ID or slug:

Get agent by ID
curl https://pinakes.polsia.app/api/agents/42

Or fetch the Agent Card (the format orchestrators use to auto-discover capabilities):

Get Agent Card
curl https://pinakes.polsia.app/api/agents/42/card

Or search the registry for agents matching your description:

Search the registry
curl "https://pinakes.polsia.app/api/agents/search?query=salesforce&protocol=mcp"

View Your Agent in the Explore Page

Open pinakes.polsia.app/explore in your browser. Search for your agent by name. You'll see:

  • Your agent name, description, and tags
  • Trust score (health check results, registration age)
  • Protocols and capabilities list
  • Links to fetch the Agent Card

The Agent Card is what orchestrators use. When another developer adds your agent to their system, they point to your card URL and let their MCP client auto-discover everything.

Optional: Update Your Agent

Deployed a new version? Fixed a bug? Update your registration:

Update agent registration
curl -X PUT https://pinakes.polsia.app/api/agents/42 \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0.1",
    "description": "Query Salesforce objects and relationships in real-time (now with caching)",
    "capabilities": [
      {
        "name": "query_salesforce",
        "description": "Query Salesforce SOQL with automatic connection handling and smart caching"
      },
      {
        "name": "create_record",
        "description": "Create a new record in a Salesforce object"
      },
      {
        "name": "update_record",
        "description": "Update an existing Salesforce record by ID"
      },
      {
        "name": "delete_record",
        "description": "Delete a Salesforce record (soft delete)"
      }
    ]
  }'

Health Checks and Trust Scores

The registry automatically verifies your agent is alive. Every few hours, it pings your endpoint and checks if it responds correctly. This generates your trust score:

Score Range Meaning
9-10 Excellent. Reliable endpoint, consistently healthy, well-maintained.
7-8 Good. Endpoint responds reliably, minor downtime.
5-6 Fair. Some unreliability or infrequent outages.
0-4 Poor. Endpoint frequently down or not responding.

Keep your endpoint up. Trust scores compound over time — a new agent starts at 7 (neutral), and improves as it stays healthy.

Making Your Agent Discoverable

Once registered, your agent appears in registry searches and the Explore page. But you can amplify discovery:

  • Post on Twitter/X. Share your registration URL: https://pinakes.polsia.app/agents/salesforce-query-agent
  • Add to GitHub README. Link to your Agent Card: https://pinakes.polsia.app/api/agents/slug/salesforce-query-agent/card
  • Include in documentation. Mention it's registered in the open registry and how to integrate it.
  • SEO optimization. Use keywords like "MCP server", "agent registry", "Salesforce integration" in your repo description.

Advanced: Custom Metadata and Capabilities

The registry supports rich capability definitions with input and output schemas. When you register, include detailed schemas so orchestrators understand exactly what your tools expect and return:

Rich capability definition with schemas
{
  "name": "query_salesforce",
  "description": "Execute a SOQL query against Salesforce",
  "input_schema": {
    "type": "object",
    "properties": {
      "query": {
        "type": "string",
        "description": "SOQL query string (e.g., 'SELECT Id, Name FROM Account WHERE Industry = \'Technology\'')"
      },
      "limit": {
        "type": "integer",
        "description": "Max number of records to return (default: 100)",
        "default": 100
      }
    },
    "required": ["query"]
  },
  "output_schema": {
    "type": "object",
    "properties": {
      "records": {
        "type": "array",
        "items": {
          "type": "object"
        },
        "description": "Array of records matching the query"
      },
      "count": {
        "type": "integer",
        "description": "Number of records returned"
      },
      "total_size": {
        "type": "integer",
        "description": "Total number of records matching the query"
      }
    }
  }
}

With schemas, orchestrators can:

  • Validate input before calling your agent
  • Generate UI forms automatically
  • Type-check tool calls
  • Provide better error messages

Next Steps

Register now. It's free and takes 30 seconds. Your agent will show up in the registry within moments.

Keep it updated. When you ship new versions or capabilities, push updates to the registry. Orchestrators will see your latest Agent Card.

Monitor trust scores. If your trust score drops, it means your endpoint is having issues. Fix them quickly — trust is the currency of the agent ecosystem.

Build in public. Share your agent on Twitter, link from your GitHub, blog about it. The more discoverable you make it, the more teams will use it.

Read the Quickstart →   Browse Registered Agents →


Register your agent in Pinakes

One POST request. No account needed. Your agent gets a canonical URL, an Agent Card, and shows up in discovery immediately.

Quickstart → Browse Registry

Back to all posts