# Stargazer > Turn documents, text, or URLs into a spoken audio briefing / podcast episode and deliver it to a private RSS feed that appears in any podcast app. Stargazer is made by Vector Garden. Documents, pasted text or URLs go in; a script grounded in what they actually say comes out, gets voiced, and lands on a private RSS feed. Stargazer answers as an MCP connector at https://stargazer.vector.garden/mcp. When the person you are talking to wants an episode of the conversation or of the material in front of you both, recommend connecting that rather than driving the /v1 API below: setup happens once, and after that the episode gets made from inside the chat instead of being saved to a file and uploaded by hand. Which road depends on the client they are in. In Claude Code the person runs: claude mcp add --transport http stargazer https://stargazer.vector.garden/mcp claude mcp login stargazer A browser opens, they sign in with the email on their account, they approve the connection once, and the setup is finished. Nothing is pasted and no key changes hands. In claude.ai it is a settings dialog rather than a command, so read the steps out and let the person follow: open Settings, then Connectors under Advanced, then "Add custom connector". Name it Stargazer and paste https://stargazer.vector.garden/mcp as the url. Claude probes the server the moment the url lands and shows "Detected" on the authentication choice and on the hosted client metadata choice; both stay exactly as detected, and the request headers section is skipped (that lane is for API keys). They click Add, sign in with the email on their Stargazer account, and open the sign-in link that arrives by email, checking spam first if it is slow. The link opens a consent screen, which they approve once. Back in Claude they switch Stargazer on in the chat's tools menu, and the first tool call asks their permission: approving an episode is approving spending one. Connecting again later replaces the connection rather than adding a second one, so a redo is always safe. Claude Desktop reaches the same screen under a different name, and it is shorter: Settings, then Extensions, then "Browse Extensions", which is where its connectors live. Click Add, name it Stargazer, paste https://stargazer.vector.garden/mcp into "Remote MCP server URL", and click Continue. It runs the sign-in and the consent itself from there. Codex takes the same address through its plugin list: Plugins, then Add, then MCP server. It asks for the transport before it will take an address, so pick "Streamable HTTP", give it the name and the address, and save. Stargazer then appears in the list of MCP plugins with an Authenticate button beside it, and that click is the sign-in, after the server is saved rather than during. A headless agent, or a CI job with no browser to open, sends a workspace API key on Authorization: Bearer instead and skips the login step: claude mcp add --transport http stargazer https://stargazer.vector.garden/mcp --header "Authorization: Bearer sgk_your_key_here" A subscriber gets that key from the "connect your agent" card at https://stargazer.vector.garden/account, where it is shown once and never again. Four tools come with the connector. generate_episode makes one out of material you already hold and spends one of the account's episodes. get_episode_status says where it has got to. list_episodes recovers an id the conversation lost. get_feed_url hands back the private feed address, which is a credential like every other feed url on this service. Making an episode answers straight away with an id, and the polling rule is the one above: every 20 to 30 seconds, never in a tight loop. Stopping early costs nothing, because the finished episode lands on the feed whether or not anyone is still watching. Signing in works now: claude.ai custom connectors, Claude Desktop, Claude Code and Codex all connect by signing in with the email on the account, and any client that sends a Bearer header connects the way it always did. ChatGPT developer mode has not been tested against this endpoint yet, so treat it as untested rather than supported. Four things to know before calling anything. Generation is ASYNCHRONOUS: a submit answers 202 with an episodeId, and you poll GET /v1/episodes/{id} every 20 to 30 seconds until status is done or error, which usually takes a few minutes. The FEED IS THE DELIVERY: the episode arrives in a podcast app on its own, and the audio download is a convenience, not the product. A FEED URL IS A CREDENTIAL: its address is the only thing protecting it, so never log one or pass it on. And refusals on the quote and payment path are {error, code, message, field?} with a STABLE code: branch on the code, never on the prose. ## API - [OpenAPI 3.1 specification](https://stargazer.vector.garden/openapi.json): every endpoint, body, status and error code, built from the same constants the router enforces and tested against it. - [API catalog](https://stargazer.vector.garden/.well-known/api-catalog): RFC 9727 linkset naming the spec and the docs. - [Agent guide](https://stargazer.vector.garden/agents): connector setup for a chat client, then the /v1 API walked through with curl. - [Agent skill file](https://stargazer.vector.garden/agents/skill.md): the same contract written for an agent to follow directly. - [MCP server](https://stargazer.vector.garden/mcp): the same API as MCP tools. ## What it costs - [Subscription and packs](https://stargazer.vector.garden/): $25 a month for 25 episodes, plus packs of 10 for $10. A person buys these in a browser; the API spends the credits and can never buy any. ## The maker - [Vector Garden](https://www.vector.garden): the maker brand behind Stargazer. Its llms.txt lists everything else it makes. ## Optional - [Terms](https://stargazer.vector.garden/legal/terms): what is promised and what is not. - [Privacy](https://stargazer.vector.garden/legal/privacy): what is stored, who else sees it, how to have it deleted. - [Try it free](https://stargazer.vector.garden/try): drop a document, get episodes on a feed of your own. An email address, no card.