Search / io.llmexpert/transcription
LLMExpert transcription
R0· no sign-inYouTube transcription and collection Q&A over MCP; pay with an API key or x402 USDC.
v0.2.0 · active · website · descriptor JSON · versions
Search / io.llmexpert/transcription
R0· no sign-inYouTube transcription and collection Q&A over MCP; pay with an API key or x402 USDC.
v0.2.0 · active · website · descriptor JSON · versions
{
"mcpServers": {
"transcription": {
"type": "http",
"url": "https://llmexpert.io/mcp",
"headers": {
"Authorization": "Bearer ${TRANSCRIPTION_TOKEN}"
}
}
}
}claude mcp add --transport http transcription https://llmexpert.io/mcp --header "Authorization: Bearer ${TRANSCRIPTION_TOKEN}"[mcp_servers.transcription]
url = "https://llmexpert.io/mcp"
bearer_token_env_var = "TRANSCRIPTION_TOKEN"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"transcription": {
"type": "remote",
"url": "https://llmexpert.io/mcp",
"enabled": true,
"headers": {
"Authorization": "Bearer {env:TRANSCRIPTION_TOKEN}"
}
}
}
}{
"mcpServers": {
"transcription": {
"type": "http",
"url": "https://llmexpert.io/mcp",
"headers": {
"Authorization": "Bearer ${TRANSCRIPTION_TOKEN}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=transcription&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbGxtZXhwZXJ0LmlvL21jcCIsImhlYWRlcnMiOnsiQXV0aG9yaXphdGlvbiI6IkJlYXJlciAke1RSQU5TQ1JJUFRJT05fVE9LRU59In19"
}{
"servers": {
"transcription": {
"type": "http",
"url": "https://llmexpert.io/mcp",
"headers": {
"Authorization": "Bearer ${TRANSCRIPTION_TOKEN}"
}
}
}
}{
"mcpServers": {
"transcription": {
"httpUrl": "https://llmexpert.io/mcp",
"headers": {
"Authorization": "Bearer ${TRANSCRIPTION_TOKEN}"
}
}
}
}extensions:
"transcription":
enabled: true
name: "transcription"
type: streamable_http
uri: "https://llmexpert.io/mcp"
headers:
"Authorization": "Bearer ${TRANSCRIPTION_TOKEN}"
timeout: 300
Placeholders to fill from your own secret store: ${TRANSCRIPTION_TOKEN}. The registry never accepts secret values.
protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_length1 tools have descriptions over 1,024 characters, which crowds the contexttools.schemasevery tool has an object input schematools.annotations13 of 13 tools declare readOnlyHint or destructiveHinttools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_transcript (destructiveHint, idempotentHint); list_channels (destructiveHint, idempotentHint); get_usage (destructiveHint, idempotentHint); …tools.token_costabout 3,842 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes, stability.rug_pulltool history recorded for 0 of the 7 days neededdeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +website +reachable +uptime-100% +updated-1d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://llmexpert.io/mcp streamable-http | none | yes | 100% | 222 ms | 2025-11-25 | 2026-10-19 |
add_source | Add a source to a channel and begin background ingestion. Maps to POST /v1/channels/{channelId}/sources. Only `type: video` is processed today; `document` and `website` are reserved and return a 501 error until released. Requires the key's `write` scope. |
add_sources | Charged like `transcribe`. Expand the given YouTube URLs, charge for the new work and start an ingest job in an existing collection. Maps to POST /v1/collections/{collectionId}/sources. $0.10/min standard, $0.25/min whisper by default, 1-minute minimum per video. Videos already in the collection are free. Pass a `quote_id` from `quote` to be charged exactly that price. Poll `get_status` every 10–30 s until `status` is completed, partial or failed; `completed` means every accepted video is transcribed and indexed, so the collection is queryable. API key required (the key's `write` scope). Prices are the service defaults; `quote` returns the exact price. |
create_collection | Free. Create an empty collection to add sources to later with `add_sources`. Maps to POST /v1/collections. Returns the collection and its `collection_token` (`ct_…`, shown once: store it; absent on an idempotent replay). API key required (the key's `write` scope). Prices are the service defaults; `quote` returns the exact price. |
get_sourceread-only | Fetch a single source and its processing status (type-specific provenance included). Maps to GET /v1/sources/{sourceId}. Requires the key's `read` scope. |
get_statusread-only | Free. Get an ingest job started by `transcribe` or `add_sources`. Maps to GET /v1/jobs/{jobId}. Poll every 10–30 s until `status` is completed, partial or failed (terminal). `completed` means every accepted video is transcribed and indexed, so the collection is queryable; `partial` means some videos failed and were credited back (`credited_usd`); `videos.completed` / `videos.failed` count progress. Works with an API key or the collection's `ct_` token as the bearer. Prices are the service defaults; `quote` returns the exact price. |
get_transcriptread-only | Free. Get the transcript of a video that is completed in one of your collections. Maps to GET /v1/videos/{youtubeId}/transcript. `collection_id` is required with an API key; with the collection's `ct_` token as the bearer it defaults to the token's collection. `format` is json (segments with timestamps, default) or text (one `[H:MM:SS] text` line per segment). 404 when the video is not completed in that collection, or the transcript predates the transcript cache. Prices are the service defaults; `quote` returns the exact price. |
get_usageread-only | Get usage, quota, and spend for the calling key (queries, tokens, cost, budget remaining). Maps to GET /v1/usage. Requires the key's `read` scope. |
list_channelsread-only | List the channels the calling key is scoped to. Maps to GET /v1/channels. Cursor-paginated. Requires the key's `read` scope. |
list_sourcesread-only | List the sources (video/document/website) in a channel, optionally filtered by type or status. Maps to GET /v1/channels/{channelId}/sources. Cursor-paginated. Requires the key's `read` scope. |
query_channelread-only | Run a retrieval-augmented query against a channel's indexed knowledge base and return a generated answer with citations. Maps to POST /v1/query. Requires the key's `query` scope and access to the channel. |
query_collectionread-only | Charged: $0.05 flat per call by default, no token multiplier. Ask a question of a collection and get a generated answer with citations. Maps to POST /v1/collections/{collectionId}/query. Query a collection once `get_status` says completed. With an API key it needs the key's `query` scope. Without an API key this tool is payable in USDC via x402: the first call returns a payment-required result (`isError` with the payment requirements in `structuredContent`); an x402-aware MCP client signs and retries the same call with `_meta['x402/payment']`, and the receipt returns in the result's `_meta['x402/payment-response']`. Never pay again after a 409 (already presented) or 502 (settlement unknown) result. Keyless, only the address that paid for the collection may query it. Prices are the service defaults; `quote` returns the exact price. |
quoteread-only | Free. Expand YouTube URLs exactly as an ingest would and return the price, the per-video lines and the per-source rejections. Maps to POST /v1/quote. $0.10/min standard, $0.25/min whisper by default, 1-minute minimum per video. The `quote_id` is valid for 15 minutes; pass it to `transcribe` or `add_sources` to be charged exactly this price. Pass `collection_id` to price against an existing collection (videos already in it are free). At least one of url, urls, channel_url, channel_urls. Requires the key's `read` scope. Prices are the service defaults; `quote` returns the exact price. |
transcribe | Charged. Create a collection and start an ingest job for the given YouTube URLs in one call. Maps to POST /v1/transcribe. $0.10/min standard, $0.25/min whisper by default, 1-minute minimum per video. Pass a `quote_id` from `quote` to be charged exactly that price. Returns `job_id`, `collection_id` and `collection_token` (`ct_…`, shown once: store it; it reads this collection without an API key). Poll `get_status` every 10–30 s until `status` is completed, partial or failed; `completed` means every accepted video is transcribed and indexed, so the collection is queryable. With an API key it needs the key's `write` scope. Without an API key this tool is payable in USDC via x402: the first call returns a payment-required result (`isError` with the payment requirements in `structuredContent`); an x402-aware MCP client signs and retries the same call with `_meta['x402/payment']`, and the receipt returns in the result's `_meta['x402/payment-response']`. Never pay again after a 409 (already presented) or 502 (settlement unknown) result. Keyless `transcribe` takes one channel-like source and at most 3 videos. Prices are the service defaults; `quote` returns the exact price. |
Schemas: list_tools.
{
"name": "io.llmexpert/transcription",
"title": "LLMExpert transcription",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://llmexpert.io/mcp",
"type": "streamable-http",
"headers": [
{
"name": "Authorization",
"isSecret": true,
"description": "Bearer <llmexpert /v1 API key> or a ct_ collection token. Optional: transcribe and query_collection accept x402 USDC payments without a key."
}
]
}
],
"version": "0.2.0",
"websiteUrl": "https://llmexpert.io",
"description": "YouTube transcription and collection Q&A over MCP; pay with an API key or x402 USDC."
}