⚠️ 已弃用:此基于Python的MCP服务器已弃用。请迁移到官方TypeScript版本:
新仓库:https://github.com/team-telnyx/telnyx-node/tree/master/packages/mcp-server
官方Telnyx本地模型上下文协议(MCP)服务器,支持与强大的电话、消息和AI助手API进行交互。此服务器允许MCP客户端如Claude Desktop、Cursor、Windsurf、OpenAI代理等管理电话号码、发送消息、拨打电话并创建AI助手。
uvx(Python包管理器),使用curl -LsSf https://astral.sh/uv/install.sh | sh,brew install uv或参见uv仓库以了解其他安装方法。{
"mcpServers": {
"Telnyx": {
"command": "uvx",
"args": ["--from", "git+https://github.com/team-telnyx/telnyx-mcp-server.git", "telnyx-mcp-server"],
"env": {
"TELNYX_API_KEY": "<在此插入您的API密钥>"
}
}
}
}
如果您使用的是Windows,您需要在Claude Desktop中启用“开发者模式”。点击左上角汉堡菜单中的“帮助”,然后选择“启用开发者模式”。
uvx(Python包管理器),使用curl -LsSf https://astral.sh/uv/install.sh | sh,brew install uv或参见uv仓库以了解其他安装方法。git clone https://github.com/team-telnyx/telnyx-mcp-server.git
cd telnyx-mcp-server
--from参数引用本地文件夹。例如:
{
"mcpServers": {
"Telnyx": {
"command": "uvx",
"args": ["--from", "/path/to/telnyx-mcp-server", "telnyx-mcp-server"],
"env": {
"TELNYX_API_KEY": "<在此插入您的API密钥>"
}
}
}
}
resource://sms/conversations)您可以选择性地启用或禁用特定工具。当您只需要可用功能的一部分时,这非常有用。
要查看所有可用工具:
uvx --from /path/to/telnyx-mcp-server telnyx-mcp-server --list-tools
您可以仅启用特定工具,使用以下任一方式:
uvx --from /path/to/telnyx-mcp-server telnyx-mcp-server --tools "send_message,get_message,list_phone_numbers"
{
"mcpServers": {
"Telnyx": {
"command": "uvx",
"args": ["--from", "/path/to/telnyx-mcp-server", "telnyx-mcp-server"],
"env": {
"TELNYX_API_KEY": "<在此插入您的API密钥>",
"TELNYX_MCP_TOOLS": "send_message,get_message,list_phone_numbers"
}
}
}
}
您可以排除特定工具,同时启用所有其他工具:
uvx --from /path/to/telnyx-mcp-server telnyx-mcp-server --exclude-tools "make_call,send_dtmf"
{
"mcpServers": {
"Telnyx": {
"command": "uvx",
"args": ["--from", "/path/to/telnyx-mcp-server", "telnyx-m-mp-server"],
"env": {
"TELNYX_API_KEY": "<在此插入您的API密钥>",
"TELNYX_MCP_EXCLUDE_TOOLS": "make_call,send_dtmf"
}
}
}
}
尝试询问Claude:
MCP服务器包括一个网络钩子接收器,可以直接通过ngrok处理Telnyx网络钩子。这对于接收来自Telnyx的呼叫事件和其他通知非常有用。
要启用网络钩子接收器,您可以使用--webhook-enabled命令行标志或设置WEBHOOK_ENABLED=true环境变量。如果还提供了NGROK_AUTHTOKEN(参见下文的“ngrok集成”),则在服务器启动时会自动尝试建立ngrok隧道。如果两者都设置了,则命令行标志优先。
使用命令行标志:
telnyx-mcp-server --webhook-enabled --ngrok-enabled
使用环境变量:
或者设置WEBHOOK_ENABLED=true环境变量。这通常在通过MCP客户端设置(参见下文的“Claude Desktop中的网络钩子配置”)或.env文件配置时很方便。
# 用于您的shell示例
export WEBHOOK_ENABLED=true
export NGROK_AUTHTOKEN=your_ngrok_token # ngrok也需要这个
telnyx-mcp-server
要启用ngrok隧道:
NGROK_AUTHTOKEN环境变量或使用--ngrok-authtoken标志:# 使用NGROK_AUTHTOKEN环境变量(推荐)
export NGROK_AUTHTOKEN=your_ngrok_token
telnyx-mcp-server --webhook-enabled # 或使用WEBHOOK_ENABLED=true环境变量
# 或使用--ngrok-authtoken命令行标志
telnyx-mcp-server --webhook-enabled --ngrok-authtoken your_ngrok_token
如果设置了NGROK_AUTHTOKEN,则在启用网络钩子时通常不需要--ngrok-enabled标志。
启用ngrok时,服务器将打印可用于在Telnyx门户中配置网络钩子的公共URL。
重要提示:如果ngrok初始化失败(例如,由于无效的authtoken、网络问题或与其他ngrok进程冲突),MCP服务器将在启动时退出。请检查服务器日志以获取详细信息(参见故障排除部分)。
MCP服务器监控父进程(Claude Desktop),并在父进程消失时自动退出。这确保了即使Claude Desktop意外关闭,资源也能得到妥善清理。
resource://webhook/info资源来检查当前网络钩子和ngrok状态。get_webhook_events工具。要在Claude Desktop中启用网络钩子,请更新您的配置:
{
"mcpServers": {
"Telnyx": {
"command": "uvx",
"args": ["--from", "git+https://github.com/team-telnyx/telnyx-mcp-server.git", "telnyx-mcp-server"],
"env": {
"TELNYX_API_KEY": "<在此插入您的API密钥>",
"NGROK_AUTHTOKEN": "<在此插入您的ngrok令牌>",
"WEBHOOK_ENABLED": "true", // 通过环境变量启用网络钩子
// 或者,您可以在"args"中使用命令行标志而不是在env中使用WEBHOOK_ENABLED:
// 例如,"args": ["--from", "git+https://github.com/team-telnyx/telnyx-mcp-server.git", "telnyx-mcp-server", "--webhook-enabled"],
}
}
}
}
<img width="704" alt="截图网络钩子" src="https://github.com/user-attachments/assets/2e1f4a47-df24-4e35-acdf-765ef4a71578" />
Telnyx现在提供基于最新MCP规范的远程MCP实现。这允许您通过远程托管的MCP服务器访问Telnyx的强大通信API。无需在本地运行服务器。更多详情请参阅官方文档。
如果您想贡献或从源码运行:
git clone https://github.com/team-telnyx/telnyx-mcp-server.git
cd telnyx-mcp-server
uv venv
source .venv/bin/activate
uv pip install -e ".[dev]" # 包括开发依赖项如ruff
.env文件并添加您的Telnyx API密钥:echo "TELNYX_API_KEY=YOUR_API_KEY" > .env
pytest
mcp install src/telnyx_mcp_server/server.pymcp dev src/telnyx_mcp_server/server.py本项目使用Ruff进行Python代码的检查和格式化。Ruff是一个用Rust编写的快速Python检查器和格式化器,旨在用单一统一工具替代多个Python代码质量工具。
Ruff包含在开发依赖项中。使用以下命令安装它:
uv pip install -e ".[dev]"
要检查您的代码是否存在问题:
ruff check .
要自动修复可能的问题:
ruff check --fix .
要格式化您的代码:
ruff format .
为了获得最佳开发体验,在提交更改之前运行这些命令:
# 格式化代码
ruff format .
# 修复检查问题
ruff check --fix .
# 运行测试
pytest
Ruff在pyproject.toml文件中配置。配置包括:
请参阅pyproject.toml中的[tool.ruff]部分以获取完整的配置。
在使用Claude Desktop运行时的日志可以在以下位置找到:
如果您遇到错误"MCP Telnyx: spawn uvx ENOENT",请通过运行以下命令在终端中确认其绝对路径:
which uvx
一旦您获得了绝对路径(例如,/usr/local/bin/uvx),请更新您的配置以使用该路径(例如,"command": "/usr/local/bin/uvx")。这确保了正确的可执行文件被引用。
如果MCP服务器无法启动,特别是启用网络钩子时,可能是由于ngrok初始化问题。 常见原因是后台存在ngrok进程,可能是从前一个未干净关闭的服务器实例遗留下来的。
ps aux | grep telnyx-mcp-server(Linux/macOS)或检查任务管理器(Windows)查找任何残留的telnyx-mcp-server进程。由于ngrok由服务器内部管理,通常不会看到单独的'ngrok'进程。