{
  "$schema": "https://raw.githubusercontent.com/a2aproject/A2A/main/specification/json/a2a.json",
  "protocolVersion": "1.0",
  "name": "Corduroy Labs",
  "description": "Public MCP surface for Corduroy Labs \u2014 a small AI-native studio in Truckee, CA. Serves the studio's blog updates as machine-readable tools (list_updates, get_update). No auth. Rate-limited at 60 requests/hour per IP. Data source is the studio's own JSON Feed at https://corduroy-labs.ai/feed.json.",
  "url": "https://corduroy-labs.ai",
  "provider": {
    "organization": "Corduroy Labs",
    "url": "https://corduroy-labs.ai"
  },
  "documentationUrl": "https://corduroy-labs.ai/updates/",
  "iconUrl": "https://corduroy-labs.ai/apple-touch-icon.png",
  "version": "1.0.0",
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "stateTransitionHistory": false,
    "extendedAgentCard": false
  },
  "supportedInterfaces": [
    {
      "url": "https://corduroy-labs.ai/mcp",
      "protocolBinding": "MCP",
      "transport": "streamable-http"
    }
  ],
  "defaultInputModes": ["text/plain", "application/json"],
  "defaultOutputModes": ["application/json"],
  "skills": [
    {
      "id": "list_updates",
      "name": "List Corduroy Labs blog updates",
      "description": "Return the studio's blog updates newest first. Each item has slug, title, url, date_published, summary, and optionally tags, location, image.",
      "tags": ["blog", "updates", "list"],
      "inputModes": ["text/plain", "application/json"],
      "outputModes": ["application/json"]
    },
    {
      "id": "get_update",
      "name": "Fetch one Corduroy Labs update",
      "description": "Fetch the full content of one update by its slug (obtain slugs from list_updates). Returns the full content_html plus summary metadata.",
      "tags": ["blog", "updates", "fetch"],
      "inputModes": ["text/plain", "application/json"],
      "outputModes": ["application/json"]
    }
  ],
  "securitySchemes": {},
  "security": [],
  "supportsAuthenticatedExtendedCard": false
}
