MCP server for the SpeakGlobal Developer API (/v1).
Project description
speak-global-mcp
Connect desktop AI apps and editors that support the Model Context Protocol (MCP) to SpeakGlobal: voice-style TTS, recordings, transcription, and audio processing via the same Developer API (/v1) as your dashboard key (Account → Developer).
| Install | PyPI: speak-global-mcp — pip install / pipx install |
| Source & issues | github.com/Design-Aura/speak-global-MCP |
Limits: Export billing APIs are not exposed as MCP tools (/v1/tts/export, export-status, /v1/recordings/export).
Requirements
- Python 3.10+
- A SpeakGlobal Developer API key (
sg_live_…) from the dashboard
Install
From PyPI (recommended)
pipx (keeps dependencies separate — good for CLI-style tools):
pipx install speak-global-mcp
pipx ensurepath
Open a new terminal so speakglobal-mcp is on your PATH.
Pin a version if you want (see PyPI versions):
pipx install "speak-global-mcp==X.Y.Z"
venv + pip:
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # macOS / Linux
pip install speak-global-mcp
Connect an MCP client
This server speaks MCP over stdio: your app starts speakglobal-mcp (or python -m speak_global_mcp.server) locally. Put the API key only in that app’s config — never commit it.
Most clients use the same shape: a top-level mcpServers object with one entry per server: command, optional args, and env for SPEAKGLOBAL_*.
Use SPEAKGLOBAL_ENVIRONMENT=production with the live API (HTTPS + non-empty key). Restart or reload MCP in the app after editing config.
Example: speakglobal-mcp on PATH (after pipx)
{
"mcpServers": {
"speakglobal": {
"command": "speakglobal-mcp",
"env": {
"SPEAKGLOBAL_ENVIRONMENT": "production",
"SPEAKGLOBAL_API_BASE": "https://api.speakglobal.ai",
"SPEAKGLOBAL_API_KEY": "sg_live_REPLACE_ME"
}
}
}
}
Example: Python from a venv (command not on PATH)
Use your real interpreter path. On Windows, escape backslashes in JSON or use forward slashes.
{
"mcpServers": {
"speakglobal": {
"command": "C:/path/to/.venv/Scripts/python.exe",
"args": ["-m", "speak_global_mcp.server"],
"env": {
"SPEAKGLOBAL_ENVIRONMENT": "production",
"SPEAKGLOBAL_API_BASE": "https://api.speakglobal.ai",
"SPEAKGLOBAL_API_KEY": "sg_live_REPLACE_ME"
}
}
}
}
Where to paste it (by app)
| App | Config file (typical location) |
|---|---|
| Cursor | Windows: %USERPROFILE%\.cursor\mcp.json — macOS/Linux: ~/.cursor/mcp.json |
| Claude Desktop | Windows: %APPDATA%\Claude\claude_desktop_config.json — macOS: ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windsurf | MCP settings in the editor (often under AI / MCP); same mcpServers JSON — see Windsurf docs for the exact file or UI path. |
| VS Code (MCP extension) | Use the extension’s MCP configuration (command + env); format matches the examples above where the extension expects stdio servers. |
| Other MCP hosts | Any product that supports stdio MCP servers: use the same command / args / env pattern and follow that product’s documentation for where config lives. |
Remote MCP over HTTP (sse / streamable-http) is optional for self-hosting; see CONTRIBUTING.md. Many desktop apps only support local stdio.
Voice clone & TTS
The server does not create voice profiles. Create or clone a voice in the web app first, for example:
https://speakglobal.ai/dashboard/tts/create-profile
Then use MCP tools such as list_voice_profiles and generate_tts with the profile’s session_id (or your account default when set).
What the tools do
| Tool | What it’s for |
|---|---|
account_summary |
Account, credits, default voice session |
list_voice_profiles / get_voice_profile |
Voice profiles for TTS |
list_recordings / get_recording |
Library & detail |
generate_tts |
Text → speech (voice clone) |
presign_audio_upload |
Upload new audio (then PUT file, register URL) |
register_recording_from_url |
Register recording from a URL |
start_transcription |
Transcribe |
start_enhance / edit_transcript / start_re_enhance |
Processing pipeline |
get_job_status / list_jobs_for_session |
Job tracking |
API scopes apply to your key — use a key with only the scopes you need.
Optional: Docker (self-hosted MCP over HTTP)
For SSE / streamable-http behind your own TLS, you can run the container (see CONTRIBUTING.md for defaults and env vars). Do not expose it publicly without TLS and access control.
Security
- Treat
SPEAKGLOBAL_API_KEYlike a password; rotate it if leaked. - One running server typically uses one key (one SpeakGlobal account).
Contributing & development
Clone, tests, release process, full env reference, Docker, and CI: CONTRIBUTING.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file speak_global_mcp-0.1.2.tar.gz.
File metadata
- Download URL: speak_global_mcp-0.1.2.tar.gz
- Upload date:
- Size: 16.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89cd864fc596131f02aa3cea6511bb1915a8a3672b4ce3bb893b3011a4b4b041
|
|
| MD5 |
96c1e69cfc5efb136d372623e3ded764
|
|
| BLAKE2b-256 |
df7e38de7e57cf13da612422d4104593aaf59b263f74d23efee947e30f19f57d
|
Provenance
The following attestation bundles were made for speak_global_mcp-0.1.2.tar.gz:
Publisher:
publish-pypi.yml on Design-Aura/speak-global-MCP
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
speak_global_mcp-0.1.2.tar.gz -
Subject digest:
89cd864fc596131f02aa3cea6511bb1915a8a3672b4ce3bb893b3011a4b4b041 - Sigstore transparency entry: 1364218136
- Sigstore integration time:
-
Permalink:
Design-Aura/speak-global-MCP@64b43a1ab77b7f9391dd49229469c759c3582318 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/Design-Aura
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@64b43a1ab77b7f9391dd49229469c759c3582318 -
Trigger Event:
release
-
Statement type:
File details
Details for the file speak_global_mcp-0.1.2-py3-none-any.whl.
File metadata
- Download URL: speak_global_mcp-0.1.2-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83120615e5fcd514d308fbdc692d6de7e81ee5a6de0126bcd7c8f609f222aa95
|
|
| MD5 |
3f8de650b4a5df7088a38810cf250a3a
|
|
| BLAKE2b-256 |
689135620460a97a891dd68785cceae7ea587120ed1c59b85341a67f1d5dfe4a
|
Provenance
The following attestation bundles were made for speak_global_mcp-0.1.2-py3-none-any.whl:
Publisher:
publish-pypi.yml on Design-Aura/speak-global-MCP
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
speak_global_mcp-0.1.2-py3-none-any.whl -
Subject digest:
83120615e5fcd514d308fbdc692d6de7e81ee5a6de0126bcd7c8f609f222aa95 - Sigstore transparency entry: 1364218282
- Sigstore integration time:
-
Permalink:
Design-Aura/speak-global-MCP@64b43a1ab77b7f9391dd49229469c759c3582318 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/Design-Aura
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@64b43a1ab77b7f9391dd49229469c759c3582318 -
Trigger Event:
release
-
Statement type: