{
    "$schema": "https://modelcontextprotocol.io/schema/v1/server.json",
    "schema_version": "v1",
    "name": "Useful AI News MCP Server",
    "description": "Model Context Protocol (MCP) server for Useful AI News, providing programmatic search, full-text Markdown retrieval, and canonical frontier model benchmark data to Claude, Cursor, and autonomous agent frameworks.",
    "version": "1.0.0",
    "publisher": {
        "name": "Useful AI News",
        "url": "https://www.usefulainews.com",
        "contact": "editorial@usefulainews.com"
    },
    "website_url": "https://www.usefulainews.com",
    "documentation_url": "https://www.usefulainews.com/developers/",
    "capabilities": {
        "resources": true,
        "tools": true,
        "prompts": false
    },
    "endpoints": {
        "rest_api": "https://www.usefulainews.com/wp-json/wp/v2",
        "markdown_negotiation": "https://www.usefulainews.com/ (Header: Accept: text/markdown)",
        "llms_txt": "https://www.usefulainews.com/llms.txt",
        "llms_full_txt": "https://www.usefulainews.com/llms-full.txt",
        "openapi_spec": "https://www.usefulainews.com/openapi.json",
        "sitemap_index": "https://www.usefulainews.com/sitemap_index.xml"
    },
    "tools": [
        {
            "name": "search_useful_ai_news",
            "description": "Search across Useful AI News empirical benchmarks, architectural audits, and industry reporting.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "query": {
                        "type": "string",
                        "description": "Keywords, model names, or topics (e.g., \"Claude Fable\", \"GPT-6 Astra\", \"Agentforce\")"
                    },
                    "limit": {
                        "type": "integer",
                        "default": 10,
                        "description": "Maximum number of articles to return (1-20)"
                    }
                },
                "required": [
                    "query"
                ]
            }
        },
        {
            "name": "get_article_markdown",
            "description": "Fetch clean, unstyled Markdown for an article by its slug or canonical URL via AcceptMarkdown.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "slug": {
                        "type": "string",
                        "description": "The article slug or complete URL (e.g., \"claude-fable-51-beats-opus-46-coding-agentic\")"
                    }
                },
                "required": [
                    "slug"
                ]
            }
        },
        {
            "name": "get_frontier_leaderboard",
            "description": "Retrieve latest canonical benchmark scores for frontier models (SWE-bench, ARC-AGI 3, token pricing).",
            "inputSchema": {
                "type": "object",
                "properties": []
            }
        },
        {
            "name": "get_llms_manifest",
            "description": "Retrieve the complete llms.txt discovery manifest and research directory.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "full": {
                        "type": "boolean",
                        "default": false,
                        "description": "Set true to fetch extended llms-full.txt instead of concise llms.txt"
                    }
                }
            }
        }
    ]
}