Entity Card

An Entity Card is a JSON file that declares which MCP providers can interact with your business. Version 0.2.0 introduces multi-entity support, allowing a single domain to define multiple entities.

File Location

Host your Entity Card at the well-known path:

https://example-restaurant.com/.well-known/entity-card.json

Schema

{
  "schema_version": "0.2.0",
  "domain": "example-restaurant.com",
  "entities": [
    {
      "name": "Acme Bistro",
      "path": "/",
      "location": {
        "city": "Paris",
        "country": "FR"
      },
      "mcps": [
        {
          "provider": "booking-provider",
          "endpoint": "https://mcp.booking-provider.com",
          "entity_id": "rest-123",
          "capabilities": ["reservations", "availability"],
          "priority": 10
        }
      ]
    }
  ]
}

Fields

Root Fields

FieldTypeRequiredDescription
schema_versionstringYesMust be "0.2.0"
domainstringYesYour domain (must match where file is hosted)
entitiesarrayYesList of entities at this domain

Entity Object Fields

FieldTypeRequiredDescription
namestringYesDisplay name of the entity
pathstringNoURL path for this entity (e.g., "/locations/downtown")
locationobjectNoPhysical location (city, country, coordinates)
mcpsarrayYesList of MCP providers for this entity

MCP Object Fields

FieldTypeRequiredDescription
providerstringYesProvider identifier
endpointstringYesMCP server URL
entity_idstringNoYour ID at the provider
capabilitiesstring[]NoWhat the MCP can do (e.g., reservations)
prioritynumberNoOrdering hint (higher = preferred)

Multi-Entity Support

Version 0.2.0 allows you to define multiple entities under a single domain. This is useful for restaurant groups, hotel chains, or any business with multiple locations.

{
  "schema_version": "0.2.0",
  "domain": "acme-bistro-group.com",
  "entities": [
    {
      "name": "Acme Bistro Downtown",
      "path": "/locations/downtown",
      "location": {
        "city": "New York",
        "country": "US"
      },
      "mcps": [
        {
          "provider": "booking-provider",
          "endpoint": "https://mcp.booking-provider.com",
          "entity_id": "downtown-123",
          "capabilities": ["reservations"],
          "priority": 10
        }
      ]
    },
    {
      "name": "Acme Bistro Uptown",
      "path": "/locations/uptown",
      "location": {
        "city": "New York",
        "country": "US"
      },
      "mcps": [
        {
          "provider": "booking-provider",
          "endpoint": "https://mcp.booking-provider.com",
          "entity_id": "uptown-456",
          "capabilities": ["reservations"],
          "priority": 10
        }
      ]
    }
  ]
}

Each entity can have its own path to differentiate between locations, and its own set of MCP providers with unique entity_id values.

Verification

When your Entity Card is submitted to Dock AI, we verify that the domain field matches the domain where the file is hosted. This ensures you control the domain.

If an MCP provider has also registered your entity with a matching endpoint, your verification level is upgraded to Level 2 (dual attestation).

Priority Field

If you work with multiple MCP providers, use the priority field to indicate your preferred provider. Higher values indicate higher priority.

{
  "schema_version": "0.2.0",
  "domain": "example-restaurant.com",
  "entities": [
    {
      "name": "Example Restaurant",
      "path": "/",
      "mcps": [
        {
          "provider": "preferred-provider",
          "endpoint": "https://mcp.preferred-provider.com",
          "priority": 10
        },
        {
          "provider": "backup-provider",
          "endpoint": "https://mcp.backup-provider.com",
          "priority": 5
        }
      ]
    }
  ]
}

Note: Only entities can set priority. MCP providers cannot override this value during registration.

Next Steps

Once your Entity Card is hosted, submit your domain to index it in the registry.