Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"io-github-team-telnyx-telnyx": {
"args": [
"-y",
"telnyx"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
This library provides convenient access to the Telnyx REST API from server-side TypeScript or JavaScript.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y 'telnyx' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked telnyx against OSV.dev.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in communication
Asynchronous coordination layer for AI coding agents: identities, inboxes, searchable threads, and advisory file leases over FastMCP + Git + SQLite
A Model Context Protocol (MCP) server for interacting with Microsoft 365 and Office services through the Graph API
PubNub Model Context Protocol MCP Server for Cursor and Claude
MCP Security Weekly
Get CVE alerts and security updates for io.github.team-telnyx/telnyx and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
This library provides convenient access to the Telnyx REST API from server-side TypeScript or JavaScript.
The full API of this library can be found in api.md.
It is generated with Stainless.
npm install telnyx
The full API of this library can be found in api.md.
import Telnyx from 'telnyx';
const client = new Telnyx({
apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});
const response = await client.calls.dial({
connection_id: 'conn12345',
from: '+15557654321',
to: '+15551234567',
webhook_url: 'https://your-webhook.url/events',
});
console.log(response.data);
This library includes TypeScript definitions for all request params and response fields. You may import and use them like so:
import Telnyx from 'telnyx';
const client = new Telnyx({
apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});
const params: Telnyx.NumberOrderCreateParams = {
phone_numbers: [{ phone_number: '+15558675309' }],
};
const numberOrder: Telnyx.NumberOrderCreateResponse = await client.numberOrders.create(params);
Documentation for each method, request param, and response field are available in docstrings and will appear on hover in most modern editors.
Request parameters that correspond to file uploads can be passed in many different forms:
File (or an object with the same structure)fetch Response (or an object with the same structure)fs.ReadStreamtoFile helperimport fs from 'fs';
import Telnyx, { toFile } from 'telnyx';
const client = new Telnyx();
// If you have access to Node `fs` we recommend using `fs.createReadStream()`:
await client.ai.audio.transcribe({
model: 'distil-whisper/distil-large-v2',
file: fs.createReadStream('/path/to/file'),
});
// Or if you have the web `File` API you can pass a `File` instance:
await client.ai.audio.transcribe({
model: 'distil-whisper/distil-large-v2',
file: new File(['my bytes'], 'file'),
});
// You can also pass a `fetch` `Response`:
await client.ai.audio.transcribe({
model: 'distil-whisper/distil-large-v2',
file: await fetch('https://somesite/file'),
});
// Finally, if none of the above are convenient, you can use our `toFile` helper:
await client.ai.audio.transcribe({
model: 'distil-whisper/distil-large-v2',
file: await toFile(Buffer.from('my bytes'), 'file'),
});
await client.ai.audio.transcribe({
model: 'distil-whisper/distil-large-v2',
file: await toFile(new Uint8Array([0, 1, 2]), 'file'),
});
When the library is unable to connect to the API,
or if the API returns a non-success status code (i.e., 4xx or 5xx response),
a subclass of APIError will be thrown:
const numberOrder = await client.numberOrders
.create({ phone_numbers: [{ phone_number: '+15558675309' }] })
.catch(async (err) => {
if (err instanceof Telnyx.APIError) {
console.log(err.status); // 400
console.log(err.name); // BadRequestError
console.log(err.headers); // {server: 'nginx', ...}
} else {
throw err;
}
});
Error codes are as follows:
| Status Code | Error Type |
|---|---|
| 400 | BadRequestError |
| 401 | AuthenticationError |
| 403 | PermissionDeniedError |
| 404 | NotFoundError |
| 422 | UnprocessableEntityError |
| 429 | RateLimitError |
| >=500 | InternalServerError |
| N/A | `AP |