{
  "specVersion": "1.0",
  "host": {
    "displayName": "Tweetsmash",
    "identifier": "urn:air:tweetsmash.com",
    "description": "Save, organize, search, and export your X (Twitter) bookmarks, and turn them into reading digests.",
    "url": "https://www.tweetsmash.com"
  },
  "entries": [
    {
      "identifier": "urn:air:tweetsmash.com:mcp:bookmarks",
      "displayName": "Tweetsmash X Bookmarks MCP Server",
      "type": "application/vnd.mcp+json",
      "url": "https://www.tweetsmash.com/.well-known/mcp/server-card.json",
      "description": "Search, label, export and manage saved X posts over the Model Context Protocol. Streamable HTTP transport, Bearer token auth.",
      "version": "2.1.0",
      "tags": [
        "mcp",
        "bookmarks",
        "search",
        "export"
      ],
      "capabilities": [
        "search-bookmarks",
        "organize-bookmarks",
        "export-bookmarks"
      ],
      "representativeQueries": [
        "find the thread I saved about database indexing",
        "tag everything I bookmarked from this author as research",
        "export my bookmarks from last month as CSV"
      ],
      "trustManifest": {
        "identity": "https://www.tweetsmash.com",
        "identityType": "domain",
        "attestations": [
          {
            "type": "mcp-registry",
            "uri": "https://registry.modelcontextprotocol.io/v0/servers?search=tweetsmash"
          },
          {
            "type": "npm-package",
            "uri": "https://registry.npmjs.org/@tweetsmash/mcp"
          }
        ],
        "provenance": [
          {
            "relation": "publishedBy",
            "sourceId": "urn:air:tweetsmash.com"
          }
        ]
      }
    },
    {
      "identifier": "urn:air:tweetsmash.com:a2a:bookmarks",
      "displayName": "Tweetsmash A2A agent card",
      "type": "application/a2a-agent-card+json",
      "url": "https://www.tweetsmash.com/.well-known/agent-card.json",
      "description": "Agent-to-Agent card describing the bookmark search, organize and export skills Tweetsmash exposes.",
      "version": "0.3.0",
      "tags": [
        "a2a",
        "agent-card"
      ],
      "trustManifest": {
        "identity": "https://www.tweetsmash.com",
        "identityType": "domain",
        "provenance": [
          {
            "relation": "publishedBy",
            "sourceId": "urn:air:tweetsmash.com"
          }
        ]
      }
    },
    {
      "identifier": "urn:air:tweetsmash.com:api:v1",
      "displayName": "Tweetsmash X Bookmarks REST API",
      "type": "application/vnd.oai.openapi+json",
      "url": "https://www.tweetsmash.com/openapi.json",
      "description": "OpenAPI 3.1 description of the v1 REST API returning saved X posts, labels and smart views as JSON.",
      "version": "1.0.0",
      "tags": [
        "rest",
        "openapi",
        "bookmarks"
      ],
      "trustManifest": {
        "identity": "https://www.tweetsmash.com",
        "identityType": "domain",
        "attestations": [
          {
            "type": "oauth-protected-resource",
            "uri": "https://www.tweetsmash.com/.well-known/oauth-protected-resource"
          }
        ]
      }
    },
    {
      "identifier": "urn:air:tweetsmash.com:skills:index",
      "displayName": "Tweetsmash Agent Skills index",
      "type": "application/json",
      "url": "https://www.tweetsmash.com/.well-known/agent-skills/index.json",
      "description": "Machine-readable index of the task playbooks Tweetsmash exposes to agents, each naming the tools it uses and when to reach for it.",
      "tags": [
        "skills",
        "playbooks"
      ]
    },
    {
      "identifier": "urn:air:tweetsmash.com:docs:llms",
      "displayName": "Tweetsmash llms.txt",
      "type": "text/markdown",
      "url": "https://www.tweetsmash.com/llms.txt",
      "description": "Structured index of Tweetsmash product, integration and API documentation.",
      "tags": [
        "docs"
      ]
    },
    {
      "identifier": "urn:air:tweetsmash.com:docs:agents",
      "displayName": "Tweetsmash agent guidance",
      "type": "text/markdown",
      "url": "https://www.tweetsmash.com/AGENTS.md",
      "description": "When to use Tweetsmash, when not to, and which tool to reach for first.",
      "tags": [
        "docs",
        "agents"
      ]
    },
    {
      "identifier": "urn:air:tweetsmash.com:docs:auth",
      "displayName": "Tweetsmash authentication guide",
      "type": "text/markdown",
      "url": "https://www.tweetsmash.com/auth.md",
      "description": "How an agent obtains and uses a Tweetsmash API key, what it grants, and the error shapes to branch on.",
      "tags": [
        "docs",
        "auth"
      ]
    },
    {
      "identifier": "urn:air:tweetsmash.com:docs:signup",
      "displayName": "Tweetsmash account signup guide",
      "type": "text/markdown",
      "url": "https://www.tweetsmash.com/signup.md",
      "description": "How a new user creates a Tweetsmash account (X OAuth or the Chrome extension, no password and no signup API), what happens after signup, and what an agent can do in that flow.",
      "tags": [
        "docs",
        "signup",
        "onboarding"
      ]
    },
    {
      "identifier": "urn:air:tweetsmash.com:docs:developers",
      "displayName": "Tweetsmash Developer Portal",
      "type": "text/html",
      "url": "https://www.tweetsmash.com/developers",
      "description": "Quickstart, API key setup, the no-key sandbox, MCP configuration, the full error-code table, idempotent writes, async export polling, batch label writes, plan limits and the versioning and deprecation policy.",
      "version": "1.0.0",
      "tags": [
        "documentation",
        "quickstart",
        "api",
        "mcp",
        "sandbox"
      ],
      "capabilities": [
        "developer-onboarding"
      ],
      "representativeQueries": [
        "how do I get a Tweetsmash API key",
        "how do I try the Tweetsmash API without an account",
        "what error codes does the Tweetsmash API return"
      ],
      "trustManifest": {
        "identity": "https://www.tweetsmash.com",
        "identityType": "domain",
        "attestations": [
          {
            "type": "mcp-registry",
            "uri": "https://registry.modelcontextprotocol.io/v0/servers?search=tweetsmash"
          },
          {
            "type": "npm-package",
            "uri": "https://registry.npmjs.org/@tweetsmash/mcp"
          }
        ],
        "provenance": [
          {
            "relation": "publishedBy",
            "sourceId": "urn:air:tweetsmash.com"
          }
        ]
      }
    },
    {
      "identifier": "urn:air:tweetsmash.com:api:sandbox",
      "displayName": "Tweetsmash API Sandbox",
      "type": "application/vnd.oai.openapi+json",
      "url": "https://www.tweetsmash.com/openapi.json",
      "description": "The same request and response shapes as the production REST API, served from fixture data. No API key is required and no account is read or written. Base URL https://api.tweetsmash.com/v1/sandbox. Send X-Tweetsmash-Sandbox-Error to force a specific failure.",
      "version": "1.0.0",
      "tags": [
        "sandbox",
        "testing",
        "api",
        "rest"
      ],
      "capabilities": [
        "try-before-auth"
      ],
      "representativeQueries": [
        "test the Tweetsmash API without a key",
        "see what a Tweetsmash 402 response looks like"
      ],
      "trustManifest": {
        "identity": "https://www.tweetsmash.com",
        "identityType": "domain",
        "attestations": [
          {
            "type": "mcp-registry",
            "uri": "https://registry.modelcontextprotocol.io/v0/servers?search=tweetsmash"
          },
          {
            "type": "npm-package",
            "uri": "https://registry.npmjs.org/@tweetsmash/mcp"
          }
        ],
        "provenance": [
          {
            "relation": "publishedBy",
            "sourceId": "urn:air:tweetsmash.com"
          }
        ]
      }
    }
  ],
  "trust": {
    "owner": "Tweetsmash",
    "legalName": "Gigahertz Innovations LLC",
    "contact": "mailto:hello@tweetsmash.com",
    "support": "mailto:support@tweetsmash.com",
    "about": "https://www.tweetsmash.com/about",
    "privacyPolicy": "https://www.tweetsmash.com/privacy",
    "termsOfService": "https://www.tweetsmash.com/terms"
  }
}