{
  "$schema": "https://raw.githubusercontent.com/modelcontextprotocol/modelcontextprotocol/refs/heads/main/schema/2025-06-18/server-card.schema.json",
  "serverInfo": {
    "name": "Erftstadt.Today MCP Server",
    "version": "1.0.0",
    "description": "Local news, events, businesses, and clubs API for Erftstadt and surrounding regions"
  },
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://erftstadt.today/mcp"
  },
  "capabilities": {
    "tools": true,
    "resources": true,
    "prompts": false,
    "logging": true
  },
  "resources": [
    {
      "name": "news",
      "description": "Local news articles",
      "uri": "news://{city}"
    },
    {
      "name": "businesses",
      "description": "Local business listings",
      "uri": "businesses://{city}"
    },
    {
      "name": "vereine",
      "description": "Local clubs and associations",
      "uri": "vereine://{city}"
    },
    {
      "name": "events",
      "description": "Local events and gatherings",
      "uri": "events://{city}"
    }
  ],
  "tools": [
    {
      "name": "getMarkdownForAgents",
      "description": "Fetch structured markdown data optimized for AI agents",
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": ["news", "businesses", "vereine", "events"],
            "description": "Type of data to fetch"
          },
          "limit": {
            "type": "number",
            "default": 20,
            "description": "Maximum items to return"
          },
          "stadt": {
            "type": "string",
            "default": "Erftstadt",
            "description": "City filter"
          }
        },
        "required": ["type"]
      }
    },
    {
      "name": "getPublicNews",
      "description": "Fetch public news articles in JSON format",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "number",
            "default": 20
          },
          "stadt": {
            "type": "string",
            "default": "Erftstadt"
          },
          "category": {
            "type": "string",
            "description": "Filter by category"
          }
        }
      }
    }
  ],
  "authentication": {
    "type": "oauth2",
    "authorizationServer": "https://erftstadt.today/.well-known/oauth-authorization-server",
    "scopes": ["read", "write", "admin"]
  },
  "documentation": "https://erftstadt.today/auth.md",
  "contact": {
    "email": "redaktion@erftstadt.today"
  },
  "rateLimits": {
    "public": {
      "requests_per_minute": 10,
      "requests_per_day": 100
    },
    "authenticated": {
      "requests_per_minute": 120,
      "requests_per_day": 10000
    }
  }
}
