protogrid

Search / io.llmexpert/transcription

LLMExpert transcription

R0· no sign-in

YouTube transcription and collection Q&A over MCP; pay with an API key or x402 USDC.

v0.2.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality77new
Trust83of 100
Uptime, 30 days100%
Latency p50222 ms

Connect

8 clients · secrets stay placeholders
{
  "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.

Quality 77 / 100new

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene79 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations13 of 13 tools declare readOnlyHint or destructiveHint
  • fail
    tools.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); …
  • pass
    tools.token_costabout 3,842 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 0 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

13 tools, about 3,842 tokens to load them all · tool set 44fd3337289a · checked 2026-10-19 16:20 UTC

Tool changes

No 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.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+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.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://llmexpert.io/mcp streamable-httpnoneyes100%222 ms2025-11-252026-10-19

Tools (13)

add_sourceAdd 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_sourcesCharged 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_collectionFree. 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-onlyFetch 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-onlyFree. 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-onlyFree. 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-onlyGet 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-onlyList the channels the calling key is scoped to. Maps to GET /v1/channels. Cursor-paginated. Requires the key's `read` scope.
list_sourcesread-onlyList 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-onlyRun 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-onlyCharged: $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-onlyFree. 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.
transcribeCharged. 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.

Similar MCP servers

Official server.json
{
  "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."
}