narrador

io.narradorPublished by narrador.ioOfficial publisherv1.0.3Updated Oct 26, 2026

Turn PDFs, Word, EPUB and X posts into narrated audio with word-level timestamps.

VerifiedStreamable HTTPWeb executableFiles & StorageMedia & Design

Overview

AI-generated overview

Remote narrador server that turns PDFs, Word, EPUB, text and X posts into narrated audio with word-level timestamps.

What you can do
  • Check account identity, product scope and credit balances
  • List available voices for the files or X product, with tier and sample links
  • Start document-to-audio jobs from plain text or an uploaded file, with optional voice and accent
  • Poll job status and progress, then fetch audio URL, duration and word timings
  • Generate audio from an X post by id or URL and retrieve earlier generations
When to use it
Useful when you want an assistant to convert documents or X posts into narrated audio and return synced word timings, for example for listening versions of reports, articles or threads, or for caption and timing data.
Requirements
A remote Streamable HTTP endpoint; nothing to install locally. Authentication is required: OAuth 2.1 sign-in at narrador.io (recommended) or a product-scoped API key sent in the Authorization header. Network access to the narrador API is needed.
Before you install
Conversion jobs and X generations consume narrador credits, so usage has a cost. The API key is a secret sent in the Authorization header and is scoped per product. Uploaded documents and post content are sent to narrador's hosted service for processing.

Installation

In SourceWeft

  1. Open narrador in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.narrador%2Fnarrador/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "narrador": {
      "type": "http",
      "url": "https://api.narrador.io/mcp"
    }
  }
}

README

narrador MCP server

[smithery badge]

narrador turns documents and X (Twitter) posts into natural narrated audio with word-level timestamps. Upload PDFs, Word, EPUBs or text, pick a voice (or let narrador files choose one from the document language), start conversion jobs, check status and download audio with synced timings. narrador X turns posts into audio the same way. Sign in with OAuth at narrador.io, or use a product API key.

Remote Model Context Protocol server for narrador. It lets AI agents (Claude, Cursor, VS Code, Windsurf, ChatGPT and any MCP client) use narrador files and narrador X.

  • narrador files: PDF, Word, EPUB and other documents → audio with word-level timings.
  • narrador X: X/Twitter posts → audio.
Endpointhttps://api.narrador.io/mcp (Streamable HTTP)
AuthOAuth 2.1 (recommended) or API key
REST API docshttps://api.narrador.io/docs
OpenAPIhttps://api.narrador.io/openapi.json
Websitehttps://narrador.io

Repository: https://github.com/narrador-io/narrador-mcp

This repository only holds the public listing (server.json), registry metadata (glama.json) and documentation. The server is hosted by narrador; there is nothing to install locally.

Credits

Usage is metered in narrador credits (see get_account). Jobs and generations consume credits when they run. There are no subscriptions—buy credits in the narrador web app and check balance before calling tools that spend credits.

Tools (7)

ToolProductWhat it does
get_accountbothIdentity, product scope, and narrador credit balances (read-only)
list_voicesbothVoices for narrador files or narrador X
create_files_jobnarrador filesStart a document → audio job
get_files_jobnarrador filesPoll job status and progress
get_files_resultnarrador filesDownload audio and word timings for a completed job
generate_x_audionarrador XGenerate audio for an X post
get_x_generationnarrador XFetch a generation you created earlier

get_account

No parameters. Returns user, app (API key product or null for OAuth), products (files and/or x), and credits (totalAvailable and per-bucket balances). Does not consume credits.

list_voices

ParameterRequiredDescription
productNofiles or x—which catalog to list. Defaults to the API key’s product, or files when an OAuth token has both products.

Each voice includes id, name, tier (standard or cheaper), defaultAccent, isPublic, description, and sampleUrl (https://api.narrador.io/v1/voices/{id}/sample, a neutral sample redirect that does not require an API key). A legacy provider field may mirror tier and is deprecated—use tier.

create_files_job

Provide either text or fileId, not both.

ParameterRequiredDescription
textOne of text/fileIdPlain text (1–500,000 characters). fileName optional (defaults to document.txt).
fileIdOne of text/fileIdUUID of an uploaded file. fileName required.
fileNameIf fileIdJob file name (1–200 characters).
voiceIdNoVoice UUID from list_voices. Must be set together with accent, or omit both.
accentNoAccent code (e.g. en-us, es-es, pt-br). Must be set together with voiceId, or omit both.

When voiceId and accent are omitted, narrador detects language from the document (en-us, es-es, pt-br). Very short or undetectable text falls back to en-us. It then picks a standard tier voice for that language, or a cheaper tier voice if none—deterministic catalog order. If the detected language has no supported voice, the job ends with failed_file_processing; pass voiceId and accent explicitly.

Returns jobId. Poll with get_files_job, then call get_files_result when status is completed. Consumes credits.

get_files_job

ParameterRequiredDescription
jobIdYesUUID from create_files_job.

Returns status (e.g. processing, completed, failed), progressPercentage, and audioId when ready.

get_files_result

ParameterRequiredDescription
jobIdYesCompleted job UUID.

Returns audioUrl, audioId, duration, and wordTimings (word, startTime, endTime).

generate_x_audio

ParameterRequiredDescription
voiceIdYesVoice UUID from list_voices (product: x).
accentNoAccent code; defaults to en-us.
postIdOne of postId/postUrlNumeric X post id.
postUrlOne of postId/postUrlFull X post URL.

Returns generationId, audioUrl, duration, and wordTimings when ready (often immediately). Poll get_x_generation if needed. Consumes credits.

get_x_generation

ParameterRequiredDescription
generationIdYesUUID from generate_x_audio.

Returns the same audio metadata as a successful generate_x_audio call. Only generations linked to your account are returned; other ids respond with generation not found.

Authentication

OAuth (recommended). Add the URL https://api.narrador.io/mcp to your client. The client discovers the authorization server (https://narrador.io/api/auth); sign in on narrador.io and approve access. Scopes: narrador:files, narrador:x.

API key. Create a key in the narrador web app and send it as Authorization: Bearer <key> or x-api-key: <key>. Keys are scoped per product:

ProductPrefix
narrador filesnrd_files_
narrador Xnrd_x_

Connect

Claude Desktop

Settings → Connectors → Add custom connector → URL https://api.narrador.io/mcp → Connect, then complete OAuth on narrador.io.

Cursor

Project (.cursor/mcp.json) or user (~/.cursor/mcp.json):

json
{  "mcpServers": {    "narrador": { "url": "https://api.narrador.io/mcp" }  }}

With an API key:

json
{  "mcpServers": {    "narrador": {      "url": "https://api.narrador.io/mcp",      "headers": { "Authorization": "Bearer nrd_files_..." }    }  }}

VS Code

.vscode/mcp.json:

json
{  "servers": {    "narrador": { "type": "http", "url": "https://api.narrador.io/mcp" }  }}

Claude (claude.ai)

Same as Claude Desktop: Add custom connector with https://api.narrador.io/mcp.

Claude Code

bash
claude mcp add --transport http narrador https://api.narrador.io/mcp

Windsurf (~/.codeium/windsurf/mcp_config.json)

json
{  "mcpServers": {    "narrador": { "serverUrl": "https://api.narrador.io/mcp" }  }}

Any other client

Point it at https://api.narrador.io/mcp (Streamable HTTP). If the client has no OAuth support, send an API key in the Authorization header.

Example prompts

  • "Check my narrador credits, then convert this PDF to audio with narrador files."
  • "List standard-tier voices for narrador files in Spanish, then create a job for this text."
  • "Turn this X post into audio with narrador X: https://x.com/…/status/…"

License

MIT. See LICENSE.

Source: README.md at commit 0071fdf

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

3
  1. v1.0.3LatestOct 19, 2026
  2. v1.0.2Oct 15, 2026
  3. v1.0.0Oct 15, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts