# Announcr > Announcr turns short text into spoken audio on the owner's devices, or publishes it to a native channel the owner's webhook is allowed to post to. AI agents connect over a hosted MCP server with OAuth 2.1. No plugin. No webhook secret in chat. Hosted MCP server: https://announcr.fm/api/mcp (Streamable HTTP). Auth is OAuth 2.1 with one bundled consent: announce, queue, reminders. Webhook-secret and ?secret= connections still work but are announce-only. The durable noun is queue, not inbox. ## Connect an agent - [Grok Bot connect page](https://announcr.fm/grok-bot.html): plain HTML, readable without JavaScript. Step-by-step connect flow for an agent, plus the hub bot template and the sibling bot rule as copy-pasteable text. - [AI agents](https://announcr.fm/docs/ai-agents): Cursor, Claude, ChatGPT, Grok, Grok Bot, and the npx CLI. - [Grok and Grok Bot](https://announcr.fm/docs/grok): grok.com/connectors steps and custom instructions. - [Webhooks reference](https://announcr.fm/docs/webhooks): request shape, bearer mode, HMAC signing, Publish to my channels. Connect sentence for Grok Bot (say it in the hub bot chat, say "custom server" so it does not install a catalog plugin): Add a custom MCP server called announcr at https://announcr.fm/api/mcp ## Tools after OAuth - announce: send_announcement, send_to_notes - queue: list_queue, claim_item, ack_item - reminders: create_reminder, create_reminder_series, list_reminders, update_reminder, cancel_reminder The MCP server also returns usage instructions in its initialize response. Verify a fresh connection with a silent tool (list_reminders or list_queue). Speak "Announcr is connected." only when the owner asked to test audio. If a tool is missing, say Announcr is not connected; do not reconstruct a webhook request or ask for a secret. ## Machine-readable - [OAuth protected resource metadata](https://announcr.fm/.well-known/oauth-protected-resource/api/mcp): RFC 9728 - [OAuth authorization server metadata](https://announcr.fm/.well-known/oauth-authorization-server): RFC 8414, PKCE S256, dynamic client registration - [Docs index as JSON](https://announcr.fm/api/pages): every docs page slug and title - [One docs page as JSON](https://announcr.fm/api/pages/grok): replace the slug; body is markdown - [Docs sitemap](https://announcr.fm/docs/sitemap.xml) ## Docs - [Overview](https://announcr.fm/docs/overview) - [Getting started](https://announcr.fm/docs/getting-started) - [Spoken alerts](https://announcr.fm/docs/ambient-audio) - [Personal reminders](https://announcr.fm/docs/personal-reminders) - [Channels](https://announcr.fm/docs/channels) - [Groups](https://announcr.fm/docs/groups) - [Limits](https://announcr.fm/docs/limits) - [Settings and billing](https://announcr.fm/docs/settings-and-billing) ## Optional - [Download the desktop app](https://announcr.fm/download) - [Terms](https://announcr.fm/terms) - [Privacy](https://announcr.fm/privacy)