{
  "protocolVersions": ["0.3"],
  "name": "Cameron Rohn's Blog",
  "description": "Tech blog focusing on AI, multi-agent systems, knowledge management, and software development with A2A Protocol support. Includes MCP server registry and documentation at mcp-servers.cameronrohn.com",
  "version": "1.0.0",
  "url": "https://cameronrohn.com/api/a2a",
  "preferredTransport": "JSONRPC",
  "supportedInterfaces": [
    {
      "url": "https://cameronrohn.com/api/a2a",
      "transport": "JSONRPC"
    }
  ],
  "defaultInputModes": ["text/plain", "application/json"],
  "defaultOutputModes": ["application/json"],
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "skills": [
    {
      "id": "blog-list-posts",
      "name": "List Blog Posts",
      "description": "List blog posts with pagination support",
      "tags": ["blog", "content", "list"],
      "examples": ["List the 5 most recent blog posts", "Get all posts about AI"],
      "inputModes": ["application/json"],
      "outputModes": ["application/json"]
    },
    {
      "id": "blog-get-post",
      "name": "Get Blog Post",
      "description": "Get a specific blog post by ID or slug",
      "tags": ["blog", "content", "read"],
      "examples": ["Get the post about multi-agent systems"]
    },
    {
      "id": "blog-search-posts",
      "name": "Search Blog Posts",
      "description": "Search blog posts by query",
      "tags": ["blog", "search", "content"],
      "examples": ["Search for posts about LangChain", "Find articles mentioning Claude"]
    },
    {
      "id": "blog-metadata",
      "name": "Get Blog Metadata",
      "description": "Get blog metadata and statistics including post count, tags, and authors",
      "tags": ["blog", "metadata", "statistics"]
    },
    {
      "id": "blog-author-info",
      "name": "Get Author Info",
      "description": "Get information about the blog author",
      "tags": ["blog", "author", "about"]
    },
    {
      "id": "mcp-list-servers",
      "name": "List MCP Servers",
      "description": "List available MCP servers from the registry",
      "tags": ["mcp", "servers", "list", "registry"],
      "examples": ["List all MCP servers", "Get available MCP server options"]
    },
    {
      "id": "mcp-get-server",
      "name": "Get MCP Server Details",
      "description": "Get details about a specific MCP server",
      "tags": ["mcp", "servers", "details", "registry"],
      "examples": ["Get details about the filesystem MCP server"]
    }
  ],
  "authentication": {
    "schemes": [
      {
        "type": "oauth2",
        "description": "Cloudflare Access OIDC. See /.well-known/oauth-protected-resource for resource metadata and /.well-known/openid-configuration for discovery.",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://cb10001110101.cloudflareaccess.com/cdn-cgi/access/login",
            "tokenUrl": "https://cb10001110101.cloudflareaccess.com/cdn-cgi/access/token",
            "scopes": {
              "openid": "OpenID Connect authentication",
              "email": "Email claim",
              "profile": "Basic profile claims",
              "groups": "Access groups membership"
            }
          }
        }
      },
      {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Bearer JWT issued by Cloudflare Access (Cf-Access-Jwt-Assertion)."
      },
      {
        "type": "apiKey",
        "in": "header",
        "name": "CF-Access-Client-Id",
        "description": "Cloudflare Access Service Token client ID. Paired with CF-Access-Client-Secret for machine-to-machine access."
      }
    ]
  },
  "extensions": {
    "rateLimit": {
      "requestsPerMinute": 60,
      "requestsPerHour": 1000
    },
    "serviceEndpoints": {
      "blog.list_posts": "/api/a2a/blog/list",
      "blog.get_post": "/api/a2a/blog/get",
      "blog.search_posts": "/api/a2a/blog/search",
      "blog.get_metadata": "/api/a2a/blog/metadata",
      "blog.get_author_info": "/api/a2a/blog/author",
      "mcp.list_servers": "https://mcp-servers.cameronrohn.com/api/servers",
      "mcp.get_server": "https://mcp-servers.cameronrohn.com/api/server"
    },
    "metadata": {
      "author": {
        "name": "Cameron Rohn",
        "email": "github@cameronrohn.com",
        "url": "https://cameronrohn.com"
      },
      "additionalUrls": [
        "https://mcp-servers.cameronrohn.com"
      ],
      "license": {
        "type": "CC BY 4.0",
        "url": "https://creativecommons.org/licenses/by/4.0/"
      },
      "repository": "https://github.com/Cam10001110101/website-docusaurus01"
    }
  }
}
