MCP server
LyricWinter MCP server: connect Claude, ChatGPT, Cursor, and other agents
Connect any MCP client to the remote LyricWinter Studio MCP server at https://lyricwinter.com/mcp using Streamable HTTP with OAuth 2.1 or a scoped API key.
BetaUpdated
The LyricWinter MCP server lets AI agents work in LyricWinter Studio on your behalf. Connect any Model Context Protocol client to https://lyricwinter.com/mcp and the agent can list your projects, read story documents, create stories, generate multi-voice audio, and follow workflow progress. The server uses the Streamable HTTP transport and authenticates with OAuth 2.1 or a Studio-scoped API key.
| Property | Value |
|---|---|
| Server URL | https://lyricwinter.com/mcp |
| Transport | Streamable HTTP |
| Authentication | OAuth 2.1 with PKCE, or Authorization: Bearer lw_... |
| Scopes | studio:read (required), studio:write (to create stories and audio) |
| Tools | 13 Studio tools |
| Status | Beta |
Connect Claude#
Claude on the web and Claude Desktop. Open Settings → Connectors, choose Add custom connector, and enter https://lyricwinter.com/mcp. Claude opens LyricWinter so you can sign in and approve access.
Claude Code. Add the server, then run /mcp inside Claude Code and choose Authenticate:
claude mcp add --transport http lyricwinter https://lyricwinter.com/mcpConnect ChatGPT#
In ChatGPT, turn on developer mode for apps and connectors, then create a connector with the URL https://lyricwinter.com/mcp and OAuth authentication. ChatGPT sends you to LyricWinter to sign in and approve access. Refresh the connector after LyricWinter adds new tools.
Connect VS Code#
Add the server to .vscode/mcp.json in your workspace, or to your user MCP configuration. VS Code prompts you to sign in when the server starts.
{
"servers": {
"lyricwinter": {
"type": "http",
"url": "https://lyricwinter.com/mcp"
}
}
}Connect Cursor#
Add the server to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project). Use a Studio-scoped API key in the Authorization header:
{
"mcpServers": {
"lyricwinter": {
"url": "https://lyricwinter.com/mcp",
"headers": {
"Authorization": "Bearer lw_..."
}
}
}
}Connect Codex#
Add the server to ~/.codex/config.toml, then sign in:
[mcp_servers.lyricwinter]
url = "https://lyricwinter.com/mcp"codex mcp login lyricwinterConnect other MCP clients#
Any client that supports remote MCP servers over Streamable HTTP can connect:
- Point the client at
https://lyricwinter.com/mcp. - If the client supports MCP authorization, it discovers LyricWinter's OAuth server from the
WWW-Authenticatechallenge and the protected-resource metadata athttps://lyricwinter.com/.well-known/oauth-protected-resource/mcp, registers itself, and opens the LyricWinter sign-in page. - Otherwise, send a Studio-scoped API key as
Authorization: Bearer lw_....
To test the server by hand, run the MCP Inspector and connect it to the same URL:
npx @modelcontextprotocol/inspectorHow does MCP authentication work?#
LyricWinter hosts its own OAuth 2.1 authorization server for the MCP server:
- An unauthenticated request returns
401with aWWW-Authenticateheader that points to the protected-resource metadata. - The client registers through dynamic client registration (
/oauth/register) and starts the authorization code flow with PKCE (S256). - You sign in to LyricWinter and approve
studio:readand, if the client asks for it,studio:write. - LyricWinter issues a one-hour access token and a 30-day refresh token that rotates on every use.
Each token only reaches the account that approved it. To disconnect a client, revoke its key in the Developers panel of your dashboard. See Authentication for endpoints and supported parameters.
Clients that cannot complete OAuth can send a LyricWinter API key with the studio:read and studio:write scopes instead.
What can I ask an agent to do?#
Once connected, ask in plain language. For example:
- "Show my LyricWinter Studio projects."
- "Create a Studio story called The Lighthouse from this text and prepare it for audio."
- "Add this chapter to my Winter Road project."
- "Generate audio for chapters 1 through 3 and tell me when it's done."
- "Which characters speak in this project, and how often?"
The agent picks the right tools and polls workflows until they finish. The tool descriptions tell agents to confirm with you before starting paid audio generation.
Does the MCP server cost anything?#
Connecting and reading are free. start_audio_workflow runs Create Audio, which consumes words from your LyricWinter balance exactly as it does in the Studio app. The tool is marked as having side effects so that clients ask for confirmation, and its description tells agents to confirm scope and cost with you first.
What the MCP server does not do yet#
The beta MCP server covers the core story-to-audio loop. These tasks are available in the REST API and the Studio app but not yet as MCP tools:
- Editing document blocks and recasting speakers
- Exports to MP3, WAV, M4B, EPUB, or SRT
- Public share links
- Uploading sounds or custom voices
Troubleshooting#
| Symptom | Fix |
|---|---|
| The client says authorization is required or expired | Reconnect or re-authenticate the server in your client. Access tokens last one hour and refresh automatically when the client supports it. |
| A tool returns "lacks Studio access" | The token or API key is missing studio:read or studio:write. Reconnect and approve both, or use a key with both scopes. |
403 Origin is not allowed | Browser-based clients must connect from lyricwinter.com or chatgpt.com. Use a desktop, CLI, or server-side client instead. |
| A write tool timed out | The result includes a mutation_id. Call the tool again with the same mutation_id to retry safely without creating a duplicate or a second paid run. |