{
  "markdown": "<!-- mcp-name: io.github.fgasparetto/voice-transcriber-mcp -->\n\n# Voice Transcriber MCP Server\n\nMCP server that **automatically transcribes Google Chat voice messages** using [Groq Whisper API](https://console.groq.com/) (whisper-large-v3). No local GPU needed.\n\nWhen Claude Code encounters an audio attachment in a Google Chat message, this server transcribes it immediately without asking for confirmation.\n\n## Features\n\n- Transcribe Google Chat voice messages by URL (automatic)\n- Transcribe local audio files (mp3, m4a, wav, ogg, flac, webm, aac)\n- Uses Groq Whisper API (free tier, fast, cloud-based)\n- Reuses Google Chat OAuth2 credentials (no separate Google auth needed)\n\n## Prerequisites\n\n### 1. Groq API Key (free)\n\n1. Go to [console.groq.com/keys](https://console.groq.com/keys)\n2. Create a free account\n3. Generate an API key\n4. You'll set this as `GROQ_API_KEY` in your MCP config (see below)\n\n### 2. Google Chat OAuth2 Token\n\nThis server needs a valid Google Chat OAuth2 token (`token.json`) to fetch messages and download audio attachments.\n\n**If you already use a Google Chat MCP server** (e.g. [multi-chat-mcp-server](https://github.com/nicholasgasior/multi-chat-mcp-server)), the token is already available. Default path:\n\n```\n~/tools/multi-chat-mcp-server/src/providers/google_chat/token.json\n```\n\nIf your token is in a different location, set the `GCHAT_TOKEN_PATH` environment variable.\n\n**If you don't have a Google Chat token yet**, you need to:\n1. Create a Google Cloud project with Chat API enabled\n2. Create OAuth2 credentials (Desktop app)\n3. Run the OAuth flow to generate `token.json` with scopes:\n   - `https://www.googleapis.com/auth/chat.messages.readonly`\n   - `https://www.googleapis.com/auth/chat.spaces.readonly`\n\n### 3. uv (Python package manager)\n\n| OS | Command |\n|----|----|\n| **Linux / macOS / WSL** | `curl -LsSf https://astral.sh/uv/install.sh \\| sh` |\n| **Windows** | `powershell -c \"irm https://astral.sh/uv/install.ps1 \\| iex\"` |\n\nVerify: `uv --version`\n\n## Installation\n\n```bash\ngit clone https://github.com/fgasparetto/voice-transcriber-mcp.git\ncd voice-transcriber-mcp\nuv sync\n```\n\n## Configuration\n\nAdd to your Claude Code MCP config (`.mcp.json` or `~/.claude.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"voice-transcriber\": {\n      \"type\": \"stdio\",\n      \"command\": \"uv\",\n      \"args\": [\n        \"--directory\", \"/path/to/voice-transcriber-mcp\",\n        \"run\", \"python\", \"server.py\"\n      ],\n      \"env\": {\n        \"GROQ_API_KEY\": \"gsk_your_groq_api_key_here\"\n      }\n    }\n  }\n}\n```\n\nReplace:\n- `/path/to/voice-transcriber-mcp` with the actual clone directory\n- `gsk_your_groq_api_key_here` with your Groq API key\n\n### Environment Variables\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `GROQ_API_KEY` | Yes | — | Groq API key ([get one free](https://console.groq.com/keys)) |\n| `GCHAT_TOKEN_PATH` | No | `~/tools/multi-chat-mcp-server/src/providers/google_chat/token.json` | Path to Google Chat OAuth2 token |\n\n## Tools\n\n### `transcribe_voice_message`\n\nTranscribe a voice message from Google Chat. **Called automatically** by Claude when it encounters an audio attachment.\n\n```\ntranscribe_voice_message(\n  message_url=\"https://chat.google.com/dm/SPACE/THREAD/MSG\",\n  language=\"it\"\n)\n```\n\n### `transcribe_audio_file`\n\nTranscribe a local audio file.\n\n```\ntranscribe_audio_file(\n  file_path=\"/tmp/recording.m4a\",\n  language=\"it\"\n)\n```\n\n## Platform Notes\n\n### Linux\nNo additional steps. Ensure `uv` is in your PATH.\n\n### macOS\n- If `uv` not found after install: `export PATH=\"$HOME/.local/bin:$PATH\"`\n\n### Windows (WSL)\nClaude Code runs inside WSL. All paths must be Linux-style:\n- Token path: `/home/USER/tools/...` (NOT `/mnt/c/...`)\n- If `uv` not found: `source ~/.bashrc` or add `~/.local/bin` to PATH\n\n## Troubleshooting\n\n| Problem | Solution |\n|---------|----------|\n| `GROQ_API_KEY not set` | Add it to the `env` section in your MCP config |\n| `Google Chat token not found` | Set `GCHAT_TOKEN_PATH` or authenticate your Google Chat MCP |\n| `Groq API error 413` | Audio file too large (Groq limit: 25MB) |\n| `uv: command not found` | Install uv (see Prerequisites) |\n\n## How It Works\n\n```\nClaude Code → MCP tool call → server.py\n  1. Parse Google Chat URL\n  2. Fetch message via Google Chat API (OAuth2 token)\n  3. Download audio attachment via media API\n  4. Send to Groq Whisper API (whisper-large-v3)\n  5. Return transcribed text\n```\n\n## License\n\nMIT\n",
  "bytes": 4459,
  "sha": "c5d36ac88222b107eb071f376ed0d27f1fba0f4363bfa19b4037b90e32c451e4",
  "repo_slug": "fgasparetto/voice-transcriber-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_fgasparetto_voice_transcriber__e058d642/readme"
}