{
  "specVersion": "1.0",
  "host": {
    "displayName": "TriRank",
    "identifier": "did:web:trirankai.com",
    "documentationUrl": "https://trirankai.com/SKILL.md"
  },
  "entries": [
    {
      "identifier": "urn:air:trirankai.com:server:mcp-server-card",
      "displayName": "TriRank MCP server card",
      "type": "application/json",
      "url": "https://trirankai.com/.well-known/mcp/server-card.json",
      "description": "SEP-1649 server card: the name, version, transport and endpoint of the TriRank MCP server. The server runs on a different host than this site and its tools require an account.",
      "representativeQueries": [
        "What MCP server does TriRank run, and what URL do I connect to?",
        "Which transport does the TriRank MCP server speak?"
      ]
    },
    {
      "identifier": "urn:air:trirankai.com:metadata:agent-skills-index",
      "displayName": "Agent Skills discovery index",
      "type": "application/json",
      "url": "https://trirankai.com/.well-known/agent-skills/index.json",
      "description": "The Agent Skills v0.2.0 index. It lists one skill today, with its URL and the SHA-256 digest of the document, so a client can verify what it fetched.",
      "representativeQueries": [
        "Which agent skill documents does TriRank publish?",
        "What is the checksum of the TriRank skill document?"
      ]
    },
    {
      "identifier": "urn:air:trirankai.com:api:api-catalog",
      "displayName": "HTTP API catalog",
      "type": "application/linkset+json",
      "url": "https://trirankai.com/.well-known/api-catalog",
      "description": "RFC 9727 linkset naming the HTTP APIs this site publishes and where each is documented. It carries `service-doc` only — there is no OpenAPI description of these APIs, so no `service-desc`.",
      "representativeQueries": [
        "Which HTTP APIs does TriRank expose?",
        "Where is the documentation for the TriRank signals API?"
      ]
    },
    {
      "identifier": "urn:air:trirankai.com:metadata:oauth-protected-resource",
      "displayName": "OAuth protected resource metadata",
      "type": "application/json",
      "url": "https://trirankai.com/.well-known/oauth-protected-resource",
      "description": "RFC 9728 metadata for the MCP resource. It names mcp.trirankai.com — not this origin — as the protected resource, because this origin does not verify OAuth tokens.",
      "representativeQueries": [
        "Which authorization server protects the TriRank MCP resource?",
        "What OAuth scopes does the TriRank MCP server accept?"
      ]
    },
    {
      "identifier": "urn:air:trirankai.com:metadata:oauth-authorization-server",
      "displayName": "OAuth authorization server metadata (apex mirror)",
      "type": "application/json",
      "url": "https://trirankai.com/.well-known/oauth-authorization-server",
      "description": "RFC 8414 metadata, served from this apex as a convenience mirror. RFC 8414 expects this document from the issuer itself, and the issuer is mcp.trirankai.com — the next entry is the authoritative copy, and it carries one field this mirror does not.",
      "representativeQueries": [
        "Which authorization server issues tokens for TriRank?",
        "Which OAuth grant types and PKCE methods does TriRank support?"
      ]
    },
    {
      "identifier": "urn:air:trirankai.com:metadata:mcp-authorization-server",
      "displayName": "OAuth authorization server metadata (authoritative)",
      "type": "application/json",
      "url": "https://mcp.trirankai.com/.well-known/oauth-authorization-server",
      "description": "The same RFC 8414 document served by the issuer itself. Prefer this one over the apex mirror: it is the copy the issuer signs off on, and it additionally carries the `agent_auth` block describing how a non-interactive agent obtains a credential.",
      "representativeQueries": [
        "What is the token endpoint for the TriRank MCP server?",
        "Does TriRank support dynamic client registration?",
        "How does an autonomous agent authenticate to TriRank?"
      ]
    },
    {
      "identifier": "urn:air:trirankai.com:docs:auth",
      "displayName": "How an agent gets credentials",
      "type": "text/markdown",
      "url": "https://trirankai.com/auth.md",
      "description": "Prose walkthrough of the credential paths, with the agent_auth block reproduced inline. It states plainly which parts of TriRank need an account and which do not.",
      "representativeQueries": [
        "How does an agent get credentials for TriRank?",
        "Do I need an account to call the TriRank API?"
      ]
    },
    {
      "identifier": "urn:air:trirankai.com:docs:skill",
      "displayName": "TriRank skill document",
      "type": "text/markdown",
      "url": "https://trirankai.com/SKILL.md",
      "description": "The single document that tells an AI coding agent how to drive TriRank: what the MCP tools do, what they cost, and what they refuse to answer.",
      "representativeQueries": [
        "How do I drive TriRank from an AI coding agent?",
        "What can the TriRank MCP tools do?"
      ]
    },
    {
      "identifier": "urn:air:trirankai.com:docs:llms",
      "displayName": "Site overview for language models",
      "type": "text/plain",
      "url": "https://trirankai.com/llms.txt",
      "description": "The llms.txt overview: what TriRank is, what it measures, and an annotated index of the pages worth reading. Prose, not an API.",
      "representativeQueries": [
        "What does TriRank do?",
        "Which pages on trirankai.com should I read first?"
      ]
    },
    {
      "identifier": "urn:air:trirankai.com:metadata:sitemap",
      "displayName": "XML sitemap",
      "type": "application/xml",
      "url": "https://trirankai.com/sitemap.xml",
      "description": "Every page this site publishes, with last-modified dates. It is a crawl index, not a capability description.",
      "representativeQueries": [
        "What pages does trirankai.com publish?",
        "When was a given TriRank page last updated?"
      ]
    }
  ]
}