-
Notifications
You must be signed in to change notification settings - Fork 19
Document the product MCP server, drop the docs-MCP hooks #105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,98 @@ | ||||||||||||||||||||||||||
| --- | ||||||||||||||||||||||||||
| title: "MCP Server" | ||||||||||||||||||||||||||
| description: "Connect Claude, Cursor, or any MCP client to your Fish Audio account — search voices, generate speech, and transcribe audio" | ||||||||||||||||||||||||||
| icon: "plug" | ||||||||||||||||||||||||||
| --- | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| The Fish Audio MCP server gives AI agents direct access to your Fish Audio account: they can browse the voice library, generate speech, and transcribe audio for you. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| - **Endpoint**: `https://api.fish.audio/mcp` (streamable HTTP) | ||||||||||||||||||||||||||
| - **Authentication**: OAuth. Your MCP client opens a browser window and you sign in with your Fish Audio account — no API key required. | ||||||||||||||||||||||||||
| - **Billing**: usage draws from your plan's package credits, exactly like the [web app](https://fish.audio/app). It does not consume developer API credits. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ## Connect | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| <Tabs> | ||||||||||||||||||||||||||
|
Comment on lines
+13
to
+15
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win Add prerequisites before the connection tabs. This procedural section should first state requirements such as a Fish Audio account, an MCP client supporting streamable HTTP/OAuth, and browser access for sign-in. Suggested addition+Before you begin:
+
+- Make sure you have a Fish Audio account.
+- Use an MCP client that supports streamable HTTP and OAuth.
+- Make sure the client can open a browser for sign-in.
+
## ConnectAs per coding guidelines: “Include prerequisites at the start of procedural content.” 📝 Committable suggestion
Suggested change
🤖 Prompt for AI AgentsSource: Coding guidelines |
||||||||||||||||||||||||||
| <Tab title="Claude Code"> | ||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||
| claude mcp add --transport http fish-audio https://api.fish.audio/mcp | ||||||||||||||||||||||||||
|
Check warning on line 18 in overview/mcp.mdx
|
||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| Run `/mcp` inside Claude Code to sign in, then ask "Generate a short greeting with a warm English voice." | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| </Tab> | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| <Tab title="Claude.ai"> | ||||||||||||||||||||||||||
| Go to **Settings → Connectors → Add custom connector** and enter | ||||||||||||||||||||||||||
| `https://api.fish.audio/mcp`. Claude walks you through the sign-in. | ||||||||||||||||||||||||||
| </Tab> | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| <Tab title="Cursor"> | ||||||||||||||||||||||||||
| Open the command palette (`Cmd/Ctrl+Shift+P`) → "Open MCP settings" → "Add custom MCP", and add: | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ```json | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| "mcpServers": { | ||||||||||||||||||||||||||
| "fish-audio": { "url": "https://api.fish.audio/mcp" } | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| Cursor prompts you to sign in on first use. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| </Tab> | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| <Tab title="Codex CLI"> | ||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||
| codex mcp add fish-audio https://api.fish.audio/mcp | ||||||||||||||||||||||||||
| codex mcp login fish-audio | ||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| `codex mcp login` opens the browser sign-in. Verify with `codex mcp list`. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| </Tab> | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| <Tab title="Windsurf"> | ||||||||||||||||||||||||||
| Go to `Settings → Cascade → MCP Servers → View raw config` (`~/.codeium/windsurf/mcp_config.json`) and add: | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ```json | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| "mcpServers": { | ||||||||||||||||||||||||||
| "fish-audio": { "url": "https://api.fish.audio/mcp" } | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| </Tab> | ||||||||||||||||||||||||||
| </Tabs> | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ## Try it | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| Once connected, ask in plain language — the agent picks the right tools: | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| <CardGroup cols={2}> | ||||||||||||||||||||||||||
| <Card title="Narrate a script" icon="microphone"> | ||||||||||||||||||||||||||
| "Find a calm English narration voice and read intro.md aloud — give me the audio link." | ||||||||||||||||||||||||||
| </Card> | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| <Card title="Voice casting" icon="magnifying-glass"> | ||||||||||||||||||||||||||
| "Show me the three most popular Japanese voices and play their samples." | ||||||||||||||||||||||||||
| </Card> | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| <Card title="Transcribe a recording" icon="waveform"> | ||||||||||||||||||||||||||
| "Transcribe meeting.mp3 and summarize the action items." (the agent uploads the file, then transcribes it) | ||||||||||||||||||||||||||
| </Card> | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| <Card title="Check spend" icon="wallet"> | ||||||||||||||||||||||||||
| "How many Fish Audio credits do I have left?" | ||||||||||||||||||||||||||
| </Card> | ||||||||||||||||||||||||||
| </CardGroup> | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| In coding agents like Claude Code and Codex, tools compose with the shell: the agent can download the generated audio URL with `curl`, upload local recordings for transcription, or batch-generate a directory of scripts. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ## Good to know | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| - Add audio tags in square brackets inside the text to control delivery — `[whispering]`, `[excited]`, `[laughing]`. Tags are performed, never spoken. | ||||||||||||||||||||||||||
| - If no voice is specified, a curated default voice for the requested language is used. | ||||||||||||||||||||||||||
| - Generated audio is returned as a permanent URL; failed generations are refunded. | ||||||||||||||||||||||||||
| - Local files can be transcribed too — the agent uploads them to a temporary slot that is deleted automatically after 7 days. | ||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Use relative paths for the internal documentation links.
These links point to the same docs site, so replace the absolute URLs with root-relative paths.
Suggested fix
As per coding guidelines: “Use relative paths for internal links” and “Do not use absolute URLs for internal links.”
📝 Committable suggestion
🤖 Prompt for AI Agents
Source: Coding guidelines