LLMExpert: cited Q&A over YouTube videos
REMOTE · LLMEXPERT.IO
Ask cited questions across sets of YouTube videos, and get their transcripts. API key or x402 USDC.
Available components
Last scanned (10 hours ago)
Scores higher than 56% of remote servers
Reachable. Last reached 24 Oct 2026.
Category Entertainment and Games
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 4 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability61
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3383 tokens (~241/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management17
- Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 24 Oct 26 +1
- The server rewrote its instructions, which are the text every model session reads security
- Schema quality: 2949 → 3383 ▼ functional
- Schema quality: good → excellent functional
- Server version: 0.2.4 → 0.3.0 functional
- New tool “search_talks” functional
- 23 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “add_source” rewrote its description, which is the text the model reads security
- Server version: 0.2.3 → 0.2.4 functional
- 22 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “get_usage” rewrote its description, which is the text the model reads security
- Tool “add_sources” rewrote its description, which is the text the model reads security
- Tool “query_channel” rewrote its description, which is the text the model reads security
- Tool “query_collection” rewrote its description, which is the text the model reads security
- Tool “quote” rewrote its description, which is the text the model reads security
- Tool “transcribe” rewrote its description, which is the text the model reads security
- Schema quality: good → excellent functional
- Server version: 0.2.2 → 0.2.3 functional
- Server version: 0.2.0 → 0.2.2 functional
- “add_sources” added an optional parameter “exclude_shorts” cosmetic
- “add_sources” added an optional parameter “min_duration_seconds” cosmetic
- “quote” added an optional parameter “exclude_shorts” cosmetic
- “quote” added an optional parameter “min_duration_seconds” cosmetic
- “transcribe” added an optional parameter “exclude_shorts” cosmetic
- “transcribe” added an optional parameter “min_duration_seconds” cosmetic
- “add_sources” reworded the description of “max_videos_per_channel” cosmetic
- “quote” reworded the description of “max_videos_per_channel” cosmetic
- “transcribe” reworded the description of “max_videos_per_channel” cosmetic
- 21 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 20 Oct 26 0
- Stability: unverified → 0.03 ▲ functional
- 19 Oct 26 65
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 24 Oct 2026 · Probed https://llmexpert.io/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_256_GCM_SHA384 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=llmexpert.io | CN=YR1,O=Let's Encrypt,C=US | 4 Oct 2026 | 2 Jan 2027 | RSA 2048 | SHA256-RSA | 6e08d6e977a7184cbbdf67995fe2b03f620 |
| SANs: llmexpert.io | ||||||
| CN=YR1,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | a20253f15f2691c05dc1ce13b9bcca4e |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of llmexpert.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 38690, 57355 | 8, 8 | Verified |
| llmexpert.io. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://llmexpert.io/mcp | Verified | 200 | |
| http (plaintext) | http://llmexpert.io/mcp | HTTPS enforced | 308 | https://llmexpert.io/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_source Add a source to a channel ~163
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. Charged from the key owner's prepaid balance at the ingest rate: $0.01/min standard, $0.03/min whisper by default, 1-minute minimum per video. A short balance returns a 402 error. Requires the key's `write` scope.
| Name | Type | Req | Description |
|---|---|---|---|
| channel_id | string | yes | Channel to add the source to. |
| idempotency_key | string | – | Idempotency-Key for safe retries. |
| source | – | yes | The source to add (discriminated on `type`). |
No output schema declared.
No examples provided.
add_sources Add YouTube sources to a collection ~423
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.01/min standard, $0.03/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.
| Name | Type | Req | Description |
|---|---|---|---|
| channel_url | string | – | `https://www.youtube.com/@handle`, `/channel/UC…`, or a playlist URL. |
| channel_urls | array | – | Several channel or playlist URLs. |
| collection_id | string | yes | Collection to add the sources to. |
| exclude_shorts | boolean | – | Skip videos of 3 minutes or less when expanding a channel or playlist (default true); explicit video URLs are never skipped. |
| idempotency_key | string | – | Idempotency-Key for safe retries. |
| language | string | – | Optional BCP-47 hint for transcription, e.g. en. |
| max_videos_per_channel | integer | – | Newest-first cap on eligible videos per channel or playlist (default 25); Shorts and videos below min_duration_seconds are skipped before the cap. |
| min_duration_seconds | integer | – | Skip expanded videos shorter than this many seconds. |
| quality | string | – | Transcription quality (default standard). |
| quote_id | string | – | A `quote_id` from `quote`: charges exactly the quoted price (400 if unknown or expired). |
| url | string | – | One YouTube URL (video, @handle, /channel/UC…, or playlist). |
| urls | array | – | Several YouTube URLs. |
No output schema declared.
No examples provided.
create_collection Create an empty collection ~116
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.
| Name | Type | Req | Description |
|---|---|---|---|
| idempotency_key | string | – | Idempotency-Key for safe retries. |
| title | string | yes | Display name for the collection. |
No output schema declared.
No examples provided.
get_source Get a source ~64
Fetch a single source and its processing status (type-specific provenance included). Maps to GET /v1/sources/{sourceId}. Requires the key's `read` scope.
| Name | Type | Req | Description |
|---|---|---|---|
| source_id | string | yes | Source identifier, e.g. src_71b0e4. |
No output schema declared.
No examples provided.
get_status Get an ingest job ~159
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.
| Name | Type | Req | Description |
|---|---|---|---|
| job_id | string | yes | The `job_id` from `transcribe` or `add_sources`. |
No output schema declared.
No examples provided.
get_transcript Get a video's transcript ~199
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.
| Name | Type | Req | Description |
|---|---|---|---|
| collection_id | string | – | Collection the video is completed in (required with an API key). |
| format | string | – | json (default) or text. |
| youtube_id | string | yes | The 11-character YouTube video id, e.g. dQw4w9WgXcQ. |
No output schema declared.
No examples provided.
get_usage Get usage and spend ~74
Get usage and spend in dollars for the calling key: the account balance (wallet_usd), this period's spend (consumed_usd), query count, and budget remaining. Maps to GET /v1/usage. Requires the key's `read` scope.
| Name | Type | Req | Description |
|---|---|---|---|
| period | string | – | Billing period (default current). |
No output schema declared.
No examples provided.
list_channels List channels ~69
List the channels the calling key is scoped to. Maps to GET /v1/channels. Cursor-paginated. Requires the key's `read` scope.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Opaque pagination cursor from a prior response. |
| limit | integer | – | Max items (default 25). |
No output schema declared.
No examples provided.
list_sources List sources in a channel ~115
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.
| Name | Type | Req | Description |
|---|---|---|---|
| channel_id | string | yes | Channel whose sources to list. |
| cursor | string | – | Opaque pagination cursor. |
| limit | integer | – | Max items (default 25). |
| status | string | – | Filter by processing status. |
| type | string | – | Filter by source type. |
No output schema declared.
No examples provided.
query_channel Query a channel ~171
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. Charged: $0.02 flat per call by default. Prices are the service defaults; `quote` returns the exact price.
| Name | Type | Req | Description |
|---|---|---|---|
| channel_id | string | yes | Channel to query. The key must be scoped to it. |
| idempotency_key | string | – | Idempotency-Key for safe retries. |
| query | string | yes | The natural-language question. |
| session_id | string | – | Optional session for multi-turn continuity. |
| source_types | array | – | Restrict retrieval to these source types. |
| top_k | integer | – | Chunks to retrieve (default 5). |
No output schema declared.
No examples provided.
query_collection Query a collection ~256
Charged: $0.02 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.
| Name | Type | Req | Description |
|---|---|---|---|
| collection_id | string | yes | Collection to query. |
| idempotency_key | string | – | Idempotency-Key for safe retries. |
| query | string | yes | The natural-language question. |
| session_id | string | – | Optional session for multi-turn continuity. |
No output schema declared.
No examples provided.
quote Quote an ingest ~369
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.01/min standard, $0.03/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.
| Name | Type | Req | Description |
|---|---|---|---|
| channel_url | string | – | `https://www.youtube.com/@handle`, `/channel/UC…`, or a playlist URL. |
| channel_urls | array | – | Several channel or playlist URLs. |
| collection_id | string | – | Price against this collection (videos already in it are free). |
| exclude_shorts | boolean | – | Skip videos of 3 minutes or less when expanding a channel or playlist (default true); explicit video URLs are never skipped. |
| language | string | – | Optional BCP-47 hint for transcription, e.g. en. |
| max_videos_per_channel | integer | – | Newest-first cap on eligible videos per channel or playlist (default 25); Shorts and videos below min_duration_seconds are skipped before the cap. |
| min_duration_seconds | integer | – | Skip expanded videos shorter than this many seconds. |
| quality | string | – | Transcription quality (default standard). |
| url | string | – | One YouTube URL (video, @handle, /channel/UC…, or playlist). |
| urls | array | – | Several YouTube URLs. |
No output schema declared.
No examples provided.
search_talks Search 2026 conference talks ~422
Ask a question across about 490 curated 2026 conference talks and get a generated answer whose citations give each talk's video URL (with t=) and start_seconds, plus its conference, year and speakers. Optional filters: conference (one of ai-engineer-worlds-fair, ai-engineer-europe, kubecon-eu, google-cloud-next, microsoft-build, pycon-us, google-io, code-with-claude, openai-devday), year, and speaker (part of a name, case-insensitive; speakers are known for about half the talks, so a speaker filter misses the rest). A filter that matches no talk answers `answer: null` and costs nothing. Maps to POST /v1/search/talks. Charged: $0.02 flat per call by default, or free within the daily free allowance. 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. Prices are the service defaults; `quote` returns the exact price.
| Name | Type | Req | Description |
|---|---|---|---|
| conference | string | – | Conference slug: ai-engineer-worlds-fair, ai-engineer-europe, kubecon-eu, google-cloud-next, microsoft-build, pycon-us, google-io, code-with-claude, openai-devday. |
| idempotency_key | string | – | Idempotency-Key for safe retries. |
| question | string | yes | The natural-language question. |
| speaker | string | – | Part of a speaker name, case-insensitive. |
| year | integer | – | Conference year, e.g. 2026. |
No output schema declared.
No examples provided.
transcribe Transcribe into a new collection ~554
Charged. Create a collection and start an ingest job for the given YouTube URLs in one call. Maps to POST /v1/transcribe. $0.01/min standard, $0.03/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.
| Name | Type | Req | Description |
|---|---|---|---|
| channel_url | string | – | `https://www.youtube.com/@handle`, `/channel/UC…`, or a playlist URL. |
| channel_urls | array | – | Several channel or playlist URLs. |
| exclude_shorts | boolean | – | Skip videos of 3 minutes or less when expanding a channel or playlist (default true); explicit video URLs are never skipped. |
| idempotency_key | string | – | Idempotency-Key for safe retries. |
| language | string | – | Optional BCP-47 hint for transcription, e.g. en. |
| max_videos_per_channel | integer | – | Newest-first cap on eligible videos per channel or playlist (default 25); Shorts and videos below min_duration_seconds are skipped before the cap. |
| min_duration_seconds | integer | – | Skip expanded videos shorter than this many seconds. |
| quality | string | – | Transcription quality (default standard). |
| quote_id | string | – | A `quote_id` from `quote`: charges exactly the quoted price (400 if unknown or expired). |
| title | string | – | Title for the new collection (default: generated). |
| url | string | – | One YouTube URL (video, @handle, /channel/UC…, or playlist). |
| urls | array | – | Several YouTube URLs. |
No output schema declared.
No examples provided.
How do I install the LLMExpert: cited Q&A over YouTube videos MCP server?
LLMExpert: cited Q&A over YouTube videos is a hosted endpoint at https://llmexpert.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · llmexpert.io
claude mcp add --transport http io-llmexpert-transcription 'https://llmexpert.io/mcp'
What is the LLMExpert: cited Q&A over YouTube videos MCP server?
LLMExpert: cited Q&A over YouTube videos is an MCP server listed in the public MCP registry as io.llmexpert/transcription. Ask cited questions across sets of YouTube videos, and get their transcripts. API key or x402 USDC. This page covers its hosted endpoint (https://llmexpert.io/mcp).
Is the LLMExpert: cited Q&A over YouTube videos MCP server safe to use?
LLMExpert: cited Q&A over YouTube videos scores 67 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the LLMExpert: cited Q&A over YouTube videos MCP server expose?
LLMExpert: cited Q&A over YouTube videos exposes 14 tools: query_channel, list_channels, list_sources, get_source, add_source, and 9 more. Their descriptions and schemas cost roughly 3,154 tokens of context every time the server is loaded.
Does the LLMExpert: cited Q&A over YouTube videos MCP server require authentication?
No. We connected to LLMExpert: cited Q&A over YouTube videos without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the LLMExpert: cited Q&A over YouTube videos MCP server still maintained?
LLMExpert: cited Q&A over YouTube videos is still listed as active in the MCP registry. We last reached this channel on 24 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.