voice-mcp-server 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,6 +5,7 @@
5
5
  **Give your AI agents a voice, real ears, and the ability to handle interruptions in real-time.**
6
6
 
7
7
  [![npm version](https://img.shields.io/npm/v/voice-mcp-server.svg?color=red&style=flat-square&logo=npm)](https://www.npmjs.com/package/voice-mcp-server)
8
+ [![Publish to NPM](https://img.shields.io/github/actions/workflow/status/erickvs/voice-mcp-server/publish.yml?style=flat-square&logo=github)](https://github.com/erickvs/voice-mcp-server/actions)
8
9
  [![Platform: macOS Apple Silicon](https://img.shields.io/badge/Platform-macOS%20%7C%20Apple%20Silicon-lightgrey?style=flat-square&logo=apple)](#-target-environment)
9
10
  [![Python](https://img.shields.io/badge/Python-3.10%2B-blue?logo=python&style=flat-square)](https://python.org)
10
11
  [![MCP Compatible](https://img.shields.io/badge/MCP-Compatible-success?style=flat-square)](https://modelcontextprotocol.io/)
@@ -149,7 +150,34 @@ Simply use `voice-mcp-server` as the command in your configuration.
149
150
  > [!NOTE]
150
151
  > **First Run Performance:** The very first time you invoke the voice tool, it will take a few minutes to initialize the Python environment and download the heavy ML weights (~4GB). **The tools will not be available until this background setup completes.** You can monitor progress in your terminal logs. *Depending on your AI client, you may need to restart the application/CLI for the tools to appear after setup.*
151
152
 
152
- ### 4. Uninstalling
153
+ ### 4. Customizing the Voice (ElevenLabs)
154
+
155
+ If you prefer to use **ElevenLabs** for ultra-realistic cloud TTS instead of the default local Kokoro engine, you can easily configure it using Environment Variables!
156
+
157
+ > [!WARNING]
158
+ > **Privacy Notice:** By configuring and using ElevenLabs, the text generated by your LLM will be transmitted over the internet to ElevenLabs' servers for audio rendering. This data is subject to ElevenLabs' own privacy policies and terms of service. If you require absolute privacy and air-gapped security, do not configure this key and continue using the default local MLX engine.
159
+
160
+ When adding the server to your MCP Client (like `claude_desktop_config.json`), simply provide your API key and your preferred Voice ID in the `env` object:
161
+
162
+ ```json
163
+ {
164
+ "mcpServers": {
165
+ "voice-mcp-server": {
166
+ "command": "voice-mcp-server",
167
+ "args": [],
168
+ "env": {
169
+ "ELEVENLABS_API_KEY": "sk_your_api_key_here",
170
+ "ELEVENLABS_VOICE_ID": "aEO01A4wXwd1O8GPgGlF"
171
+ }
172
+ }
173
+ }
174
+ }
175
+ ```
176
+ *(If you are using Gemini CLI or Claude Code, you can simply `export` these variables in your terminal profile like `.zshrc`!)*
177
+
178
+ Once configured, simply tell your AI: *"Switch your audio engine to use the elevenlabs_speaker adapter."*
179
+
180
+ ### 5. Uninstalling
153
181
 
154
182
  If you wish to completely remove the server and its downloaded ML models from your system to free up space:
155
183
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "voice-mcp-server",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "An MCP server to allow LLMs to speak and listen via bidirectional voice loops",
5
5
  "main": "build/index.js",
6
6
  "type": "module",
@@ -30,6 +30,10 @@
30
30
  ],
31
31
  "author": "Erick Vazquez Santillan",
32
32
  "license": "MIT",
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/erickvs/voice-mcp-server.git"
36
+ },
33
37
  "dependencies": {
34
38
  "@modelcontextprotocol/sdk": "^1.5.0"
35
39
  },
@@ -16,7 +16,7 @@ class ElevenLabsSpeaker(ISpeaker):
16
16
  self.words = []
17
17
  self.process = None
18
18
  self.start_time = 0
19
- self.voice_id = voice_id
19
+ self.voice_id = os.getenv("ELEVENLABS_VOICE_ID", voice_id)
20
20
  self.api_key = os.getenv("ELEVENLABS_API_KEY")
21
21
  self.temp_file = "/tmp/elevenlabs_output.mp3"
22
22
 
Binary file