{
  "schemaVersion": "2025-06-18",
  "name": "ai-automation-chronicle",
  "title": "AI & Automation Chronicle MCP server",
  "description": "Read-only access to the 44 long-form AI research and automation posts published by AI & Automation Chronicle.",
  "version": "1.0.0",
  "vendor": {
    "name": "AI & Automation Chronicle",
    "url": "https://chronicle.kcsatish.com/",
    "contact": "satishkc19@gmail.com"
  },
  "documentation": "https://chronicle.kcsatish.com/developers",
  "transport": {
    "type": "streamable-http",
    "url": "https://chronicle.kcsatish.com/mcp",
    "methods": [
      "POST"
    ],
    "authentication": "none"
  },
  "endpoints": [
    {
      "transport": "streamable-http",
      "url": "https://chronicle.kcsatish.com/mcp"
    }
  ],
  "capabilities": {
    "tools": {
      "listChanged": false
    }
  },
  "tools": [
    {
      "name": "list_chronicle_posts",
      "title": "List Chronicle posts",
      "description": "List AI & Automation Chronicle posts, newest first. Use this to find which research paper breakdown or automation article covers a topic before fetching it.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "research",
              "practice"
            ],
            "description": "Restrict to research paper breakdowns or to practical automation articles."
          },
          "tag": {
            "type": "string",
            "description": "Restrict to posts carrying this topic tag, for example \"LLMs\"."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "default": 20,
            "description": "Maximum posts to return."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "get_chronicle_post",
      "title": "Get a Chronicle post",
      "description": "Fetch one Chronicle post in full as markdown, including its benchmark tables and named sources. Use after list_chronicle_posts or search_chronicle_posts identifies the post.",
      "inputSchema": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^week-\\d{2}$",
            "description": "Post identifier, for example \"week-44\"."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "search_chronicle_posts",
      "title": "Search Chronicle posts",
      "description": "Full-text search across every Chronicle post title, summary, tags and body. Returns matching posts with the surrounding sentence for each hit.",
      "inputSchema": {
        "type": "object",
        "required": [
          "query"
        ],
        "properties": {
          "query": {
            "type": "string",
            "minLength": 2,
            "description": "Words or a phrase to search for."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "default": 10,
            "description": "Maximum posts to return."
          }
        },
        "additionalProperties": false
      }
    }
  ]
}
