Antigravity Voice MCP
by sirbramantyo
README.md
# 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.
## 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:
```powershell
node -v
npm -v
```
## Installation
Clone repository:
```powershell
git clone https://github.com/sirbramantyo/antigravity-voice-mcp.git
```
Masuk ke folder project:
```powershell
cd antigravity-voice-mcp
```
Install dependency:
```powershell
npm install
```
## Project Structure
```text
antigravity-voice-mcp
├── src
│ ├── index.js
│ ├── test-client.js
│ └── test-tts.js
├── .gitignore
├── package.json
├── package-lock.json
└── README.md
```
## Test Windows Text-to-Speech
Untuk memastikan Node.js dapat menjalankan Windows TTS:
```powershell
node src/test-tts.js
```
Jika berhasil, speaker akan membacakan kalimat test.
## Test MCP Server
Jalankan:
```powershell
node src/test-client.js
```
Expected result:
```text
Available MCP tools:
- speak
- list_voices
```
Tool `list_voices` akan menampilkan voice Windows yang terpasang, lalu tool `speak` akan menjalankan Text-to-Speech.
Contoh voice yang pernah terdeteksi:
```text
Microsoft Hazel Desktop
Microsoft Zira Desktop
```
## Antigravity MCP Configuration
Antigravity membaca custom MCP server melalui file:
```text
~/.gemini/config/mcp_config.json
```
Pada Windows, lokasi tersebut biasanya berada di folder user.
Tambahkan konfigurasi berikut ke object `mcpServers`:
```json
{
"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:
```text
D:\PATH\TO\antigravity-voice-mcp
```
dengan lokasi repository pada device Anda.
Contoh:
```text
E:\Documents\Web_Development\Tools\antigravity-voice-mcp
```
Penting: absolute path berbeda pada setiap device. Jangan menyalin path dari laptop lain tanpa menyesuaikannya.
## Node.js Path
Untuk mengetahui path Node.js pada Windows:
```powershell
where.exe node
```
Contoh hasil:
```text
C:\Program Files\nodejs\node.exe
```
Gunakan path tersebut pada field `command` di `mcp_config.json`.
## Enable MCP di Antigravity
Di Antigravity IDE:
1. Buka Agent panel.
2. Buka menu MCP Servers.
3. Pilih Manage MCP Servers.
4. Pastikan `antigravity-voice` muncul.
5. Enable atau refresh server setelah mengubah `index.js` atau konfigurasi MCP.
## Tool: speak
Tool `speak` menerima parameter:
```text
text
voice
rate
volume
```
Default configuration:
```text
voice = Microsoft Zira Desktop
rate = 2
volume = 100
```
Range:
```text
rate = -10 sampai 10
volume = 0 sampai 100
```
Contoh pemanggilan:
```javascript
{
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:
```text
node_modules/
```
Repository sudah menggunakan `.gitignore`.
File global Antigravity:
```text
~/.gemini/config/mcp_config.json
```
juga tidak perlu dimasukkan ke repository karena berisi absolute path yang spesifik untuk masing-masing device.
## Updating the Project
Setelah melakukan perubahan source code:
```powershell
git add .
git commit -m "Describe your change"
git push
```
Pada device lain, update repository dengan:
```powershell
git pull
npm install
```
`npm install` diperlukan jika dependency pada `package.json` berubah.
## Troubleshooting
### MCP server tidak muncul di Antigravity
Periksa:
- path Node.js pada `command`
- path `src/index.js`
- nilai `cwd`
- JSON syntax pada `mcp_config.json`
Setelah memperbaiki konfigurasi, refresh MCP server.
### MCP terhubung tetapi suara tidak terdengar
Test langsung:
```powershell
node src/test-tts.js
```
Jika direct TTS gagal, masalah berada pada Windows TTS atau PowerShell, bukan MCP.
Jika direct TTS berhasil tetapi MCP gagal, jalankan:
```powershell
node src/test-client.js
```
untuk 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:
```text
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.
TDQS
B3.4/5.0
Scored across 2 tools
Disambiguation5/5
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.
Naming Consistency5/5
Both names follow a clean verb_noun convention (speak, list_voices) with consistent snake_case where multi-word. No mixing of styles.
Tool Count4/5
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.
Completeness3/5
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
ActivityMaintained
ResponsivenessNo issues