gemini-tts
by tungtuantran
README.md
# Gemini TTS MCP — Local Setup
This repository contains the Gemini TTS MCP server used by Claude Desktop.
This guide explains how to set it up locally on macOS.
---
## 1. Requirements
You need:
- macOS
- Claude Desktop
- Node.js
- npm
- A Google Gemini API key
---
## 2. Clone the Repository
Open Terminal and clone the repository:
```bash
git clone YOUR_REPOSITORY_URL
```
Then enter the project:
```bash
cd YOUR_REPOSITORY_NAME
```
> Replace `YOUR_REPOSITORY_URL` and `YOUR_REPOSITORY_NAME` with the actual repository information.
---
## 3. Check Node.js
Check whether Node.js is already installed:
```bash
node --version
```
Also check npm:
```bash
npm --version
```
If both commands return a version number, you can continue.
If Node.js is not installed, install it before continuing.
---
## 4. Install Dependencies
Inside the repository folder, run:
```bash
npm install
```
This installs all dependencies required by the MCP server.
---
## 5. Create the `.env` File
The MCP server needs a Gemini API key.
Inside the project folder, create a `.env` file:
```bash
touch .env
```
Open it:
```bash
nano .env
```
Add:
```env
GEMINI_API_KEY=YOUR_GEMINI_API_KEY
```
Replace `YOUR_GEMINI_API_KEY` with your actual Gemini API key.
Save the file:
```text
CTRL + O
ENTER
CTRL + X
```
### Getting a Gemini API Key
Create a Gemini API key through Google AI Studio:
[https://aistudio.google.com/apikey](https://aistudio.google.com/apikey)
Do **not** commit the `.env` file to Git.
The repository should already contain `.env` in `.gitignore`.
---
## 6. Test the MCP Server
From inside the project directory, run:
```bash
node src/server.js
```
If the server starts without an error about a missing `GEMINI_API_KEY`, the setup is working.
The server may not display a normal message and may simply keep running.
This is normal.
Stop it with:
```text
CTRL + C
```
---
# 7. Configure Claude Desktop
Claude Desktop needs to know where the MCP server is located.
The configuration file is:
```text
~/Library/Application Support/Claude/claude_desktop_config.json
```
You can open it with:
```bash
open ~/Library/Application\ Support/Claude/claude_desktop_config.json
```
If the file does not exist, create it.
---
## 8. Find Your Node.js Path
Run:
```bash
which node
```
You will get something similar to:
```text
/Users/YOUR_USERNAME/.nvm/versions/node/v24.15.0/bin/node
```
Copy the path returned by your Mac.
---
## 9. Find the MCP Project Path
Inside the repository folder, run:
```bash
pwd
```
For example:
```text
/Users/YOUR_USERNAME/mcp-servers/gemini-tts-mcp
```
Your MCP server file will therefore be:
```text
/Users/YOUR_USERNAME/mcp-servers/gemini-tts-mcp/src/server.js
```
---
## 10. Add the MCP Server to Claude Desktop
Add the following to:
```text
claude_desktop_config.json
```
Example:
```json
{
"mcpServers": {
"gemini-tts": {
"command": "/Users/YOUR_USERNAME/.nvm/versions/node/v24.15.0/bin/node",
"args": [
"/Users/YOUR_USERNAME/mcp-servers/gemini-tts-mcp/src/server.js"
]
}
}
}
```
### Important
Replace both paths with the paths from your own Mac.
You can get them with:
```bash
which node
```
and:
```bash
pwd
```
---
## 11. If You Already Have Other MCP Servers
Do **not** replace your existing configuration.
For example, if you already have:
```json
{
"mcpServers": {
"other-server": {
"command": "..."
}
}
}
```
add `gemini-tts` alongside it:
```json
{
"mcpServers": {
"other-server": {
"command": "..."
},
"gemini-tts": {
"command": "/Users/YOUR_USERNAME/.nvm/versions/node/v24.15.0/bin/node",
"args": [
"/Users/YOUR_USERNAME/mcp-servers/gemini-tts-mcp/src/server.js"
]
}
}
}
```
---
# 12. Restart Claude Desktop
Completely quit Claude Desktop:
```text
CMD + Q
```
Then open Claude Desktop again.
---
# 13. Verify the MCP Connection
In Claude Desktop, go to:
```text
Settings
→ Developer
```
You should see:
```text
gemini-tts
```
The server should show as connected.
The available tools should include:
```text
generate_speech
get_audio_files
```
---
# 14. Test Gemini TTS
Open a new Claude conversation and ask:
> Use the `gemini-tts` MCP server to generate speech.
>
> Generate a test using exactly this text:
>
> "This is a test of the Gemini text to speech setup."
>
> Save the file as:
>
> `test-voice`
Claude should use the `generate_speech` tool.
The generated audio should be saved inside the project's:
```text
audio/
```
folder.
---
# 15. Generated Audio
Generated `.wav` files are stored in:
```text
audio/
```
For example:
```text
audio/
├── test-voice.wav
├── college-vs-university.wav
└── scampi-vs-shrimps.wav
```
You can open the audio folder in Finder with:
```bash
open audio
```
---
# 16. Default TTS Settings
The MCP server is already configured with the following defaults:
* Voice: `Algenib`
* Vocal style: subtle smile
* Speaking speed: rapid-fire
* Accent: neutral English
* Style: energetic, natural and clear
* Target format: short-form content such as TikTok and Instagram
No additional configuration is required.
---
# 17. Troubleshooting
## `GEMINI_API_KEY is missing`
Make sure the `.env` file exists inside the repository:
```bash
ls -la
```
You should see:
```text
.env
```
Check it with:
```bash
cat .env
```
It should contain:
```env
GEMINI_API_KEY=YOUR_GEMINI_API_KEY
```
---
## `Server disconnected`
First test the server manually:
```bash
node src/server.js
```
If an error appears, fix that error first.
Also check:
```bash
which node
```
and:
```bash
pwd
```
Then make sure the paths in `claude_desktop_config.json` are correct.
---
## Claude does not show `gemini-tts`
Check:
1. The MCP configuration JSON is valid.
2. The Node.js path is correct.
3. The `server.js` path is correct.
4. `.env` exists.
5. `GEMINI_API_KEY` exists in `.env`.
6. Claude Desktop has been completely restarted.
---
# 18. Quick Setup Checklist
* [ ] Clone repository
* [ ] Open repository in Terminal
* [ ] Run `npm install`
* [ ] Create `.env`
* [ ] Add `GEMINI_API_KEY`
* [ ] Run `node src/server.js` successfully
* [ ] Run `which node`
* [ ] Run `pwd`
* [ ] Add `gemini-tts` to Claude Desktop's MCP configuration
* [ ] Restart Claude Desktop
* [ ] Check `Settings → Developer`
* [ ] Confirm `gemini-tts` is connected
* [ ] Generate a test voice
---
## Done
Once `gemini-tts` appears as connected in Claude Desktop, no further setup is required.
Claude can now generate Gemini TTS audio through the MCP server.
````
### One important change I'd make to your repository
Since **you're giving her the repository**, I'd actually recommend that she clones it into a simple, predictable location, e.g.:
```text
~/mcp-servers/gemini-tts-mcp
````
Then the setup becomes very easy and your Claude config can follow the same structure on both Macs.
Also, **don't put your own `.env` into the repository**. The repository should contain something like:
```text
gemini-tts-mcp/
├── src/
│ └── server.js
├── audio/
├── package.json
├── package-lock.json
├── .gitignore
└── README.md
```
and **each person creates their own `.env` locally** with their own Gemini API key.
TDQS
A4.1/5.0
Scored across 2 tools
Disambiguation5/5
The two tools are entirely distinct: one generates speech, the other lists generated files. There is no overlap or ambiguity in their purposes.
Naming Consistency5/5
Both tools follow the verb_noun pattern: generate_speech and get_audio_files. The naming is consistent, clear, and predictable.
Tool Count3/5
Two tools is on the thin side for a TTS server, but they cover the core generate and retrieve workflow. It feels slightly minimal rather than unreasonably sparse.
Completeness4/5
The server covers the essential TTS lifecycle: generating speech and listing outputs. Minor gaps exist such as no delete operation or voice selection flexibility, but agents can work around them for basic use.
Maintenance
ActivityMaintained
ResponsivenessNo issues