{
  "serverInfo": {
    "name": "rrule.net MCP Server",
    "version": "1.2.0",
    "description": "Public schedule exploration plus scoped hosted-schedule lifecycle tools for AI agents."
  },
  "transport": {
    "type": "streamable-http",
    "url": "https://mcp.rrule.net"
  },
  "protocol": {
    "name": "model-context-protocol",
    "version": "2025-11-25",
    "supportedVersions": [
      "2025-11-25",
      "2025-06-18",
      "2025-03-26"
    ]
  },
  "capabilities": {
    "tools": true,
    "extensions": ["io.modelcontextprotocol/oauth-client-credentials"]
  },
  "authorization": {
    "type": "oauth2",
    "grantTypes": ["client_credentials"],
    "authorizationServer": "https://rrule.net",
    "protectedResourceMetadata": "https://mcp.rrule.net/.well-known/oauth-protected-resource",
    "onboarding": "https://rrule.net/auth.md",
    "scopes": ["schedules:read", "schedules:write"]
  },
  "documentation": "https://rrule.net/docs/mcp",
  "rateLimits": {
    "anonymous": "100 requests per 24 hours per IP"
  },
  "tools": [
    {
      "name": "validate_schedule",
      "description": "Validate and normalize natural-language, cron, RRule, recurrence JSON, or event schedules, including target-aware intent."
    },
    {
      "name": "simulate_schedule",
      "description": "Compute future occurrences with explicit timezone, DST, event-schedule, and target semantics."
    },
    {
      "name": "describe_schedule",
      "description": "Generate a human-readable explanation and structured result for a schedule."
    },
    {
      "name": "list_schedules",
      "description": "List hosted schedules with schedules:read."
    },
    {
      "name": "get_schedule",
      "description": "Read one hosted schedule with schedules:read."
    },
    {
      "name": "list_schedule_executions",
      "description": "Inspect execution history with schedules:read."
    },
    {
      "name": "create_schedule",
      "description": "Create a persistent webhook schedule with schedules:write."
    },
    {
      "name": "update_schedule",
      "description": "Update a schedule name or webhook with schedules:write."
    },
    {
      "name": "update_schedule_target",
      "description": "Update target context with schedules:write."
    },
    {
      "name": "pause_schedule",
      "description": "Pause webhook execution with schedules:write."
    },
    {
      "name": "resume_schedule",
      "description": "Resume webhook execution with schedules:write."
    },
    {
      "name": "delete_schedule",
      "description": "Permanently delete a confirmed schedule with schedules:write."
    }
  ]
}
