Skip to main content

Aethex MCP Server

Project description

Aethex MCP Server

Aethex MCP Server

Drive the Aethex voice platform from any MCP client.
Synthesize speech, transcribe audio, build voice agents and their knowledge bases,
place calls, browse conversations, and read usage, from Claude, Cursor, Codex, and more.

PyPI Python versions Tests License: MIT

Documentation  ·  Dashboard  ·  API Reference  ·  Discord  ·  Support


🎙️ Voice agents 🗣️ Text-to-speech ✍️ Transcription 📞 Calls & conversations
Build, configure, ground in knowledge Synthesize & preview to WAV Sync & async jobs Place calls, search transcripts, read usage

The Model Context Protocol (MCP) server for the Aethex voice-AI platform. It wraps the public Aethex API through the aethexai Python SDK and exposes it as MCP tools, so clients like Claude Desktop, Claude Code, Cursor, Windsurf, and Codex can run voice workflows directly. Authentication is one variable, AETHEX_API_KEY; every tool runs scoped to that key's tenant.

Install

Run it with uv; your MCP client launches it on demand, with no install step:

uvx aethexai-mcp

Or install it into an environment:

pip install aethexai-mcp

Requires Python 3.11+. Get an AETHEX_API_KEY from the developer portal.

Quickstart

Add the server to Claude Desktop under Settings > Developer > Edit Config (claude_desktop_config.json):

{
  "mcpServers": {
    "Aethex": {
      "command": "uvx",
      "args": ["aethexai-mcp"],
      "env": { "AETHEX_API_KEY": "ae_live_..." }
    }
  }
}

Restart Claude and ask it to "list my Aethex voices". On Windows, enable Help > Enable Developer Mode first.

MCP clients

Any MCP client works. Common setups:

Client Setup
Claude Desktop Add the JSON block above to claude_desktop_config.json.
Claude Code claude mcp add aethex --env AETHEX_API_KEY=ae_live_... -- uvx aethexai-mcp
Codex Add an [mcp_servers.aethex] table to ~/.codex/config.toml (below).
Cursor / Windsurf pip install aethexai-mcp, then run python -m aethexai_mcp --api-key=ae_live_... --print and paste the printed block into the client's MCP config.

Codex (~/.codex/config.toml):

[mcp_servers.aethex]
command = "uvx"
args = ["aethexai-mcp"]
env = { AETHEX_API_KEY = "ae_live_..." }

To override the API base URL, add AETHEX_BASE_URL to the env.

Core workflows

⚠️ Synthesizing speech, transcribing audio, and placing calls consume Aethex credits.

Everything is driven in natural language. A few examples:

Text to speech

"List my available voices, then read this paragraph aloud with the most neutral one."

Transcription

"Transcribe this recording and summarize what the caller asked for."

Voice agents and knowledge

"Create a voice agent that books dentist appointments, attach our FAQ as a knowledge document, then place a test call to my number."

Conversations and usage

"Search my conversations for anyone who mentioned a refund and pull the full transcript of the most recent one."

"Show me this month's usage and which model handled the most minutes."

Tools

32 tools across 7 domains. Every tool runs scoped to the tenant behind your AETHEX_API_KEY and requires that key to carry the listed scope.

Voices & text-to-speech

Tool Scope Purpose
list_voices voices:read List the tenant's available voices (global catalog + cloned), with optional language/tag filters and pagination.
synthesize_speech tts:use Synthesize text to speech with a chosen voice_id. Returns WAV audio.
preview_voice tts:use Render a short preview clip for a voice. Returns WAV audio.
list_tag_vocabulary voices:read The controlled vocabulary of voice tags (tone, texture, etc.) for filtering voices.

Transcription

Tool Scope Purpose
transcribe_audio transcribe:use Synchronously transcribe an audio file and return its text.
submit_transcription_job transcribe:use Submit an async transcription job (poll for the result; webhooks are REST-only).
get_transcription_job transcribe:use Poll an async transcription job's status and result.
cancel_transcription_job transcribe:use Cancel a pending async transcription job.

Voice agents

Tool Scope Purpose
create_agent agents:write Create a voice agent (name, system_prompt, voice_id required).
get_agent agents:read Fetch a single agent by id.
update_agent agents:write Patch an agent; only the fields you pass are changed.
list_agents agents:read List the tenant's agents with pagination.
delete_agent agents:write Delete an agent.
duplicate_agent agents:write Clone an agent along with its knowledge documents.

Agent knowledge bases

Tool Scope Purpose
upload_knowledge_doc agents:write Attach a knowledge document (text or file) to an agent.
list_knowledge_docs agents:read List an agent's knowledge documents.
query_knowledge_base agents:read Hybrid (vector + keyword) retrieval over an agent's knowledge base.
delete_knowledge_doc agents:write Remove a knowledge document from an agent.

Calls

Tool Scope Purpose
trigger_call calls:write Place a single outbound call (returns immediately with status="queued"; the dial runs off-request).
get_call calls:read Fetch a full call record.
get_call_status calls:read Lightweight telephony status for a call.
list_calls calls:read List calls with status/direction filters and pagination.
batch_calls calls:write Dispatch a batch of outbound calls (one agent, many recipients).

Conversations

Tool Scope Purpose
list_conversations conversations:read List the tenant's conversations with pagination.
get_conversation conversations:read Fetch a single conversation.
get_transcript conversations:read Fetch a conversation's turn-by-turn transcript.
search_conversations conversations:read Full-text search over conversations.
submit_feedback conversations:read Attach a rating and comment to a conversation.

Usage & models

Tool Scope Purpose
get_usage_summary usage:read Usage summary for the tenant (optionally scoped to one API key).
get_daily_usage usage:read Daily usage breakdown over a window of days.
get_monthly_usage usage:read Monthly usage breakdown.
list_models models:read List available models.

Configuration

The server is configured entirely through environment variables; only the API key is required.

Variable Default Description
AETHEX_API_KEY required Your Aethex API key; the only credential the server needs.
AETHEX_BASE_URL https://api.aethexai.com Override the API base URL. Leave unset for production.
AETHEX_MCP_OUTPUT_MODE files How audio outputs are returned: files, resources, or both.
AETHEX_MCP_BASE_PATH ~/Desktop Base directory for saved audio when writing files.

Output modes

AETHEX_MCP_OUTPUT_MODE controls how the audio-producing tools (synthesize_speech, preview_voice) return results:

  1. files (default): save the audio to disk and return the file path.
  2. resources: return the audio inline as a base64-encoded MCP resource, with no disk I/O. Handy for containerized or sandboxed clients.
  3. both: save to disk and return the resource; a saved resource can be fetched later via its aethex://<filename> URI.

Troubleshooting

Claude Desktop logs:

  • macOS: ~/Library/Logs/Claude/mcp-server-Aethex.log
  • Windows: %APPDATA%\Claude\logs\mcp-server-Aethex.log

AETHEX_API_KEY environment variable is required: the server refuses to start without a key. Set it in the env block of your client config (or your shell), using a valid key from the developer portal.

Timeouts on long-running tools: large transcriptions especially can take a while, and the MCP Inspector may report a timeout even though the tool finished. Prefer submit_transcription_job + get_transcription_job over a single synchronous call.

spawn uvx ENOENT: your client can't find uvx on its PATH. Run which uvx and use that absolute path as the command (e.g. /usr/local/bin/uvx).

Development

Run from source:

git clone https://github.com/aethexai/aethexai-mcp
cd aethexai-mcp
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
./scripts/test.sh                            # pytest (add --verbose / --fail-fast)
uv run fastmcp dev aethexai_mcp/server.py    # explore every tool in the MCP Inspector

Questions can be sent to developers@aethexai.com.

Community

License

Released under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aethexai_mcp-1.0.0.tar.gz (28.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aethexai_mcp-1.0.0-py3-none-any.whl (28.8 kB view details)

Uploaded Python 3

File details

Details for the file aethexai_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: aethexai_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 28.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for aethexai_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 fe8c2ff3b8b9901257ee29683f4657c8d98620b1928d5612e4fdd45e1f3429f4
MD5 2569eac8cf2c812940df2933c57ace54
BLAKE2b-256 f130e3c172dedbfb467f29c3b645c80dc1ad20c13ae28d9dae296ddf3da323ba

See more details on using hashes here.

File details

Details for the file aethexai_mcp-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: aethexai_mcp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 28.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for aethexai_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4ceaaa8a54f55a740b18a8b0f22109ebe73735c5d0e270e780ff40cc5a335161
MD5 68e5a47eab42d274a81f7f29a612eee6
BLAKE2b-256 8a8cabb672b7c53b2fa8a5a51f9fd0c3bed47fb4b465019d53c993e23ac17a37

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page