Antigravity Voice MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Antigravity Voice MCPread this out loud: build finished successfully"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Antigravity Voice MCP
Local MCP (Model Context Protocol) server untuk menghubungkan Google Antigravity IDE dengan Windows Text-to-Speech.
Project ini menyediakan tool suara yang bisa dipanggil melalui MCP, sehingga Antigravity dapat membacakan teks, ringkasan, atau status pekerjaan melalui speaker Windows.
Status
Version: 1.1.0
Fitur saat ini:
speak— membacakan teks menggunakan Windows Text-to-Speech.list_voices— menampilkan voice Windows yang tersedia.Dukungan pengaturan:
voice
rate
volume
MCP transport melalui stdio.
Windows PowerShell +
System.Speech.Sudah diuji pada Windows 11 dengan Node.js 24.
Related MCP server: mac-say-mcp
Requirements
Pastikan device memiliki:
Windows 10 atau Windows 11
Node.js
npm
Google Antigravity IDE
Windows Text-to-Speech voice yang aktif
Cek Node.js dan npm:
node -v
npm -vInstallation
Clone repository:
git clone https://github.com/sirbramantyo/antigravity-voice-mcp.gitMasuk ke folder project:
cd antigravity-voice-mcpInstall dependency:
npm installProject Structure
antigravity-voice-mcp
├── src
│ ├── index.js
│ ├── test-client.js
│ └── test-tts.js
├── .gitignore
├── package.json
├── package-lock.json
└── README.mdTest Windows Text-to-Speech
Untuk memastikan Node.js dapat menjalankan Windows TTS:
node src/test-tts.jsJika berhasil, speaker akan membacakan kalimat test.
Test MCP Server
Jalankan:
node src/test-client.jsExpected result:
Available MCP tools:
- speak
- list_voicesTool list_voices akan menampilkan voice Windows yang terpasang, lalu tool speak akan menjalankan Text-to-Speech.
Contoh voice yang pernah terdeteksi:
Microsoft Hazel Desktop
Microsoft Zira DesktopAntigravity MCP Configuration
Antigravity membaca custom MCP server melalui file:
~/.gemini/config/mcp_config.jsonPada Windows, lokasi tersebut biasanya berada di folder user.
Tambahkan konfigurasi berikut ke object mcpServers:
{
"mcpServers": {
"antigravity-voice": {
"command": "C:\\Program Files\\nodejs\\node.exe",
"args": [
"D:\\PATH\\TO\\antigravity-voice-mcp\\src\\index.js"
],
"cwd": "D:\\PATH\\TO\\antigravity-voice-mcp"
}
}
}Ganti:
D:\PATH\TO\antigravity-voice-mcpdengan lokasi repository pada device Anda.
Contoh:
E:\Documents\Web_Development\Tools\antigravity-voice-mcpPenting: absolute path berbeda pada setiap device. Jangan menyalin path dari laptop lain tanpa menyesuaikannya.
Node.js Path
Untuk mengetahui path Node.js pada Windows:
where.exe nodeContoh hasil:
C:\Program Files\nodejs\node.exeGunakan path tersebut pada field command di mcp_config.json.
Enable MCP di Antigravity
Di Antigravity IDE:
Buka Agent panel.
Buka menu MCP Servers.
Pilih Manage MCP Servers.
Pastikan
antigravity-voicemuncul.Enable atau refresh server setelah mengubah
index.jsatau konfigurasi MCP.
Tool: speak
Tool speak menerima parameter:
text
voice
rate
volumeDefault configuration:
voice = Microsoft Zira Desktop
rate = 2
volume = 100Range:
rate = -10 sampai 10
volume = 0 sampai 100Contoh pemanggilan:
{
text: "Build completed successfully.",
voice: "Microsoft Zira Desktop",
rate: 2,
volume: 100
}Jika voice, rate, dan volume tidak dikirim, server menggunakan nilai default.
Tool: list_voices
Tool ini membaca voice yang tersedia melalui Windows System.Speech.
Gunakan tool ini sebelum memilih voice custom pada device baru, karena daftar voice dapat berbeda antar komputer.
Important Notes
Jangan commit folder berikut:
node_modules/Repository sudah menggunakan .gitignore.
File global Antigravity:
~/.gemini/config/mcp_config.jsonjuga tidak perlu dimasukkan ke repository karena berisi absolute path yang spesifik untuk masing-masing device.
Updating the Project
Setelah melakukan perubahan source code:
git add .
git commit -m "Describe your change"
git pushPada device lain, update repository dengan:
git pull
npm installnpm install diperlukan jika dependency pada package.json berubah.
Troubleshooting
MCP server tidak muncul di Antigravity
Periksa:
path Node.js pada
commandpath
src/index.jsnilai
cwdJSON syntax pada
mcp_config.json
Setelah memperbaiki konfigurasi, refresh MCP server.
MCP terhubung tetapi suara tidak terdengar
Test langsung:
node src/test-tts.jsJika direct TTS gagal, masalah berada pada Windows TTS atau PowerShell, bukan MCP.
Jika direct TTS berhasil tetapi MCP gagal, jalankan:
node src/test-client.jsuntuk mengisolasi masalah antara MCP client dan server.
Voice tidak ditemukan
Jalankan list_voices atau test client untuk melihat nama voice yang benar-benar tersedia pada device tersebut.
Nama voice harus sama persis dengan nama yang dilaporkan Windows.
Recommended Workflow
Gunakan voice terutama untuk notifikasi singkat seperti:
Build completed successfully.
Tests passed.
Three tests failed.
Deployment finished.Membacakan seluruh response coding yang panjang biasanya kurang efisien.
License
Private/internal utility project unless changed by repository owner.
Available Tools
2 toolslist_voicesList VoicesA
List installed Windows Text-to-Speech voices.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and 'List installed' reasonably implies a non-destructive, side-effect-free read. However, it says nothing explicit about read-only behavior, cost, or whether the call has any effect on system state, leaving the safety profile to inference.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. Nothing is repeated from the title beyond the necessary resource name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should ideally say what is returned (e.g., voice names/identifiers usable with 'speak'), but it does not. For a trivial zero-param list tool this is a minor but real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify; the baseline for a parameterless tool applies. No parameter semantics are needed or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (List) and resource (installed Windows Text-to-Speech voices), scoping it to Windows TTS. It is clearly distinct from the only sibling 'speak', which performs synthesis rather than enumeration, though it never explicitly names or contrasts with that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent would infer this is the discovery step before calling 'speak', but the description never states when to call it or how it relates to the sibling. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
speakSpeakC
Speak text aloud using Windows Text-to-Speech.
| Name | Required | Description | Default |
|---|---|---|---|
| rate | No | ||
| text | Yes | ||
| voice | No | Installed Windows voice name | Microsoft Zira Desktop |
| volume | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the TTS backend but not whether the call blocks until speech finishes, whether audio is played locally versus returned, whether long text is truncated, or what happens if the named voice is not installed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; it states mechanism and effect immediately. It is efficient, though arguably too terse for a 4-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Four parameters, no annotations, no output schema, and 25% schema coverage demand more than one sentence. Nothing is said about side effects, timing, error behavior, or the undocumented rate/volume parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% – just 'voice' is documented ('Installed Windows voice name'). The description adds nothing about rate, volume, or text semantics (rate range is -10 to 10 with default 2, which is non-obvious and unexplained). It fails to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (speak) and resource (text, aloud) plus the underlying mechanism (Windows Text-to-Speech). It is clearly distinct in intent from the sibling list_voices, though it never explicitly says so.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of the sibling list_voices even though discovering valid voice names requires it. Usage is only implied by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v1.0.0- First observed
list_voices - First observed
speak
TDQS
Scored across 2 tools
speak and list_voices target entirely distinct actions (produce audio vs. enumerate available voices), with no overlap in purpose. An agent can trivially pick the right tool.
Both names follow a clean verb_noun convention (speak, list_voices) with consistent snake_case where multi-word. No mixing of styles.
Two tools is on the thin side, but for a narrow text-to-speech server each tool clearly earns its place. It borders on under-scoped rather than bloated.
Core capability (speaking) is present, but list_voices is a partial dead end since there is no way to select a voice, stop/pause playback, or adjust rate/pitch. These are notable gaps for a TTS surface.
Maintenance
Related MCP Connectors
MCP server for Text-to-Speech
MCP server exposing the AceDataCloud Fish Audio API (text-to-speech with voice conditioning)
MCP server for Speech-to-Text
AI voice generation: text-to-speech and voice cloning from any MCP client.
Related MCP Servers
- AlicenseBqualityCmaintenanceProvides VOICEVOX text-to-speech as an MCP tool. Requires a running VOICEVOX engine on localhost.118072Apache 2.0
- AlicenseAqualityCmaintenanceMCP server for text-to-speech using macOS say command, enabling speech synthesis, audio file generation, and voice management.561MIT
- AlicenseNot gradedqualityDmaintenanceProvides Text-to-Speech (TTS) functionality using Google TTS API, enabling audio generation, voice listing, and style templates via MCP.331MIT
- AlicenseAqualityAmaintenanceText-to-speech MCP server that enables AI assistants to read text aloud on the user's computer using Windows SAPI, with no API key or cloud service required.11MIT