tvmaze-mcp-server
Server Details
Search TVmaze shows, next episodes in your timezone, episode guides, daily TV schedules, and cast.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- cyanheads/tvmaze-mcp-server
- GitHub Stars
- 0
- Server Listing
- tvmaze-mcp-server
TDQS
Scored across 7 tools
Each tool targets a distinct resource-action pair: search, lookup by external ID, show profile, episodes, cast, next episode, and schedule. Any potential overlap, such as get_show also exposing previous/next episode, is explicitly clarified in the descriptions with guidance on which tool to use.
All tool names follow the same tvmaze_ + verb + noun pattern, mostly using get_ for retrieval and lookup_/search_ for resolution. The naming is predictable and makes the tool set easy to navigate.
Seven tools is a well-scoped size for a read-only TV metadata server. Each tool covers a meaningful portion of the TVmaze API without excessive fragmentation or unnecessary duplication.
The core workflows are well covered: search, external ID lookup, show details, episodes, cast, and schedules. Minor gaps remain, such as no dedicated previous-episode lookup and no way to page through search results, but these can be worked around with existing tools.
Available Tools
7 toolstvmaze_get_castTvmaze Get CastARead-onlyIdempotentInspect
List the credited cast of a show with the characters they play, optionally with crew; or list the guest cast of one episode. The source records no recurring-versus-guest distinction on a show’s cast list, so a name’s absence from it does not mean the performer never appeared — check an episode’s guest cast for that.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| cast | No | Cast credits — for scope "show", the main cast; for scope "episode", that episode’s guest cast. |
| crew | No | Crew credits. Present only when include_crew was set on a show query. |
| error | No | Present when the call failed. Absent on success. |
| scope | No | Which credit list was returned. |
| notice | No | Guidance when no credits are recorded. Absent otherwise. |
| subject_id | No | TVmaze id the credits belong to — a show id or an episode id, matching scope. |
| totalCount | No | Credits returned, cast plus crew. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint, openWorldHint, and idempotentHint. The description adds useful behavioral context beyond that: the source records no recurring-versus-guest distinction and the implication for interpreting absence, which is a non-obvious limitation an agent needs to know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences, front-loading the core operation in the first sentence and then adding the crucial open-world caveat in the second. Every clause earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema descriptions, output schema, and annotations, the description still fills the remaining semantic gap by explaining the show-versus-episode distinction and why checking the episode guest cast for possible appearances. Nothing the agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter, including include_crew and its default and the sources for show_id and episode_id. The description adds only the 'optionally with crew' notion, lightly reinforcing the schema but not going beyond the schema's already-rich parameter text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'List the credited cast of a show with the characters they play' and explicitly distinguishes the show-level and episode-scope modes. This clearly separates it from sibling tools like tvmaze_get_episodes and tvmaze_get_show, whose purposes are different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description is clear about when to use episode guest cast versus show cast, including the caveat that absence from the show cast list does not prove non-appearance and pointing the agent to 'check an episode’s guest cast for that.' It does not explicitly name sibling tools, but the tool itself already covers the cast-retrieval niche.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tvmaze_get_episodesTvmaze Get EpisodesARead-onlyIdempotentInspect
List a show’s episodes with air times, runtimes, and synopses. Pass a season number to list one season, which is the cheaper path and the usual one; omit it to walk the whole run, which is paged because a long-running series returns hundreds of episodes. Specials are excluded unless include_specials is set.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum episodes to return in one call. Raise it for a short series; the default keeps a long run inside a reasonable response size. | |
| cursor | No | Continuation token from a previous call’s next_cursor. Omit for the first page. | |
| season | No | Season number to list, as numbered in the season list from tvmaze_get_show. Omit to list every episode of the series. Daily shows number seasons by calendar year. | |
| show_id | Yes | TVmaze show id, from tvmaze_search_shows, tvmaze_lookup_show, or tvmaze_get_schedule. | |
| timezone | No | IANA timezone name for the air times, e.g. "America/Los_Angeles". Defaults to the server-configured timezone. | |
| include_specials | No | Include specials alongside regular episodes. Off by default because specials roughly double the result count on a series that has many. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The page limit that was applied. |
| show | No | The show the episodes belong to. |
| error | No | Present when the call failed. Absent on success. |
| shown | No | Number of episodes returned on this page. |
| notice | No | Guidance when nothing was recorded, or when specials were filtered out of a season listing. Absent otherwise. |
| season | No | Season number listed. Absent when the whole run was listed. |
| episodes | No | Episodes in airing order. |
| has_more | No | True when more episodes remain beyond this page. |
| timezone | No | IANA timezone the air times were rendered in. |
| truncated | No | True when the page limit was reached. |
| totalCount | No | Episodes matching before the page limit was applied. |
| next_cursor | No | Pass as cursor to fetch the next page. Absent on the last page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and open-world behavior. The description adds meaningful non-obvious behavior: specials are excluded by default, the whole-run path is paged, and a season-scoped call is cheaper. This goes beyond the annotations and helps the agent predict response cost and filtering behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the main purpose, the season-vs-full-run decision with cost/paging context, and the specials default. The most important usage guidance is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich output schema and well-covered parameters, the description covers the key behavioral decisions an agent needs: season scoping, paging, and specials handling. No critical operational detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so a baseline of 3 is appropriate. The description adds extra value by highlighting the season parameter as the cheaper/usual path, explaining that omitting it triggers a paged walk, and noting the specials-exclusion default tied to include_specials. These nuances are not fully captured in the parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (List) and resource (a show's episodes) and names the returned content (air times, runtimes, synopses). It clearly distinguishes this from sibling tools like tvmaze_get_next_episode, tvmaze_get_schedule, and tvmaze_get_cast by focusing on episode listing with season/paging behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear direction on the common path (pass a season number) and the alternative (omit it to walk the whole run), including the cost tradeoff and paging implication. It does not explicitly name sibling alternatives, but the guidance is sufficiently actionable for an agent to decide how to call the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tvmaze_get_next_episodeTvmaze Get Next EpisodeARead-onlyIdempotentInspect
Report when a show’s next episode airs, converted to a viewer timezone. Accepts a TVmaze id or a show title — a title is resolved with a stricter single-match search than tvmaze_search_shows uses. A show with no scheduled next episode is reported as a miss carrying its most recent episode, which is the normal state for a series between seasons.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| show | No | The show the answer is about. Absent when the show itself could not be resolved. |
| error | No | Present when the call failed. Absent on success. |
| found | No | True when a next episode is scheduled. |
| guidance | No | What to do next when no next episode was returned. Absent on a hit. |
| timezone | No | IANA timezone the air times were rendered in. |
| miss_reason | No | Why no next episode was returned. "show_not_found" means the title or id resolved to nothing; "no_scheduled_episode" means the show exists but has nothing on the schedule. |
| next_episode | No | The next scheduled episode. Absent on a miss. |
| previous_episode | No | The most recently aired episode. Returned on a hit and on a "no_scheduled_episode" miss, so a between-seasons answer still says where the show left off. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds meaningful behavior beyond that: the stricter title matching and the miss-with-most-recent-episode behavior. It does not cover potential errors (e.g., show not found) but that is minor given the annotations and the tool's read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the core purpose, and includes only essential details. No fluff or redundancy—every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool with an output schema and annotations covering safety and idempotency, the description covers the key aspects: what it returns, how to specify the show (id or title), timezone conversion, and the miss behavior. It doesn't mention error cases, but that is not critical given the output schema exists and the tool is read-only. The description is adequate for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds extra value by clarifying that title resolution uses a stricter single-match search than tvmaze_search_shows, which is not fully captured in the schema. It also ties the timezone parameter to the viewer timezone conversion. This goes beyond schema details, hence a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb-resource pair ('Report when a show's next episode airs') and explicitly notes it accepts either an id or title, distinguishing it from siblings like tvmaze_get_episodes (which lists episodes) and tvmaze_search_shows (which is a broader search). The purpose is unambiguous and differentiates itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: it mentions the stricter single-match search relative to tvmaze_search_shows, implying when to use this tool for title resolution, and explains the miss behavior for off-season shows. However, it does not explicitly state 'use this when you need the next air date' or contrast with all alternative tools, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tvmaze_get_scheduleTvmaze Get ScheduleARead-onlyIdempotentInspect
List television episodes airing on a given date. Scope "linear" covers broadcast and cable networks in one country; "streaming" covers streaming services — global services such as Netflix and Prime Video when no country is given, or that country’s local streaming services when one is. Scope "all" merges both. The source caches schedule data for up to an hour, so a same-day listing can lag a late change.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date to list, ISO 8601 (YYYY-MM-DD). Defaults to today in the requested timezone. | |
| limit | No | Maximum entries to return in one call. A full day in one country runs to roughly 50 broadcast entries and over 120 global streaming entries. | |
| scope | No | Which feed to read. "linear" is broadcast and cable networks; "streaming" is streaming services; "all" merges both and costs three upstream requests. | linear |
| cursor | No | Continuation token from a previous call’s next_cursor. Omit for the first page. | |
| country | No | ISO 3166-1 alpha-2 country code, e.g. "US", "GB", "JP". The United Kingdom is "GB". Required in effect for scopes "linear" and "all" — omitted, it falls back to the server-configured country. For scope "streaming", omitting it selects global streaming services rather than one country’s local ones. | |
| timezone | No | IANA timezone name for the air times, e.g. "America/Los_Angeles". Defaults to the server-configured timezone. Also decides what "today" means when date is omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The page limit that was applied. |
| date | No | Date listed, ISO 8601 (YYYY-MM-DD). |
| error | No | Present when the call failed. Absent on success. |
| shown | No | Number of entries returned on this page. |
| notice | No | Guidance when nothing is listed, or when one feed of a merged query did not respond. Absent otherwise. |
| entries | No | Episodes airing on the date, earliest first. |
| has_more | No | True when more entries remain beyond this page. |
| timezone | No | IANA timezone the air times were rendered in. |
| truncated | No | True when the page limit was reached. |
| totalCount | No | Merged entry count before the page limit was applied. |
| next_cursor | No | Pass as cursor to fetch the next page. Absent on the last page. |
| applied_feeds | No | Exactly which upstream feeds the results cover, e.g. ["linear:US"], ["web:global"], ["linear:GB","web:GB","web:global"]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/openWorld annotations, the description discloses meaningful behavioral details: schedule data is cached for up to an hour and may lag late changes, and the "all" scope costs three upstream requests. This helps an agent anticipate staleness and cost without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the core action, and each sentence earns its place. The scope definitions are compact, and the caching caveat is a single clear warning. No filler or redundant restating of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for this tool: it addresses the main decision axes (scope, country, timezone), discloses the cache and request-cost behavior, and relies on the output schema and detailed parameter schema for paging and return values. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers all six parameters with 100% coverage, so the baseline is 3. The description adds value by integrating parameter meanings into scenarios: how scope and country interact for streaming services, what "all" costs, and how timezone affects the default date. This is useful beyond the isolated schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: "List television episodes airing on a given date." It then clarifies the three scope variants, which clearly differentiates this from show/cast/episode lookup siblings. An agent can immediately know what this tool does and how it differs from related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for choosing between linear, streaming, and all scopes, and explains how country affects global vs local streaming. It does not explicitly name sibling alternatives or say when not to use this tool, but the schedule-specific purpose and scope guidance are sufficient for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tvmaze_get_showTvmaze Get ShowARead-onlyIdempotentInspect
Fetch a television show by its TVmaze id: full profile, weekly broadcast slot, season list, and the previous and next episode when the source has them. This is the entry point for an id returned by tvmaze_search_shows or tvmaze_lookup_show. For the episode list itself use tvmaze_get_episodes, and for credits use tvmaze_get_cast.
| Name | Required | Description | Default |
|---|---|---|---|
| show_id | Yes | TVmaze show id, from tvmaze_search_shows, tvmaze_lookup_show, or tvmaze_get_schedule. | |
| timezone | No | IANA timezone name for rendering the previous and next episode air times, e.g. "America/Los_Angeles" or "Europe/London". Defaults to the server-configured timezone. |
Output Schema
| Name | Required | Description |
|---|---|---|
| show | No | Full show profile. |
| error | No | Present when the call failed. Absent on success. |
| notice | No | Guidance when a Running show has no scheduled next episode. Absent otherwise. |
| seasons | No | Every season TVmaze records, in order. Pass a season number to tvmaze_get_episodes. |
| timezone | No | IANA timezone the episode times were rendered in. |
| next_episode | No | The next episode scheduled to air. Absent when none is scheduled — a Running show between seasons has no next episode. |
| previous_episode | No | The most recently aired episode. Absent for a show that has not premiered. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and idempotentHint=true, so the safety profile is covered. The description adds useful behavioral context: it discloses that previous/next episode are included only 'when the source has them', and that the timezone parameter affects rendering of those air times. It doesn't describe pagination or rate limits, but for a read-only fetch with an output schema, the added context is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the first states the resource and contents, the second gives provenance, the third routes to siblings. The key scoping information is front-loaded, and there is no repetition of schema or annotation content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only fetch tool with an output schema, the description is complete. It covers what the tool returns, where the id comes from, how the timezone parameter behaves, and which siblings to use for other data. The annotations cover safety, and the output schema covers return structure, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters well. The description adds value by explaining the provenance of show_id (from search/lookup/schedule) and by clarifying that timezone is for rendering episode air times, which reinforces the schema's description. This goes slightly beyond the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Fetch') and resource ('a television show by its TVmaze id'), and enumerates exactly what is included: full profile, weekly broadcast slot, season list, and previous/next episode when available. It also distinguishes itself from sibling tools by naming tvmaze_search_shows, tvmaze_lookup_show, tvmaze_get_episodes, and tvmaze_get_cast, so an agent can clearly tell it apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says this is the entry point for an id returned by tvmaze_search_shows or tvmaze_lookup_show, and explicitly routes the agent to tvmaze_get_episodes for the episode list and tvmaze_get_cast for credits. This is clear when-to-use and when-not-to-use guidance with named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tvmaze_lookup_showTvmaze Lookup ShowARead-onlyIdempotentInspect
Resolve a television show from its id in another catalog — IMDb, TheTVDB, or TVRage — and return the matching TVmaze profile. Use this to cross a show id from another source into TVmaze. A show absent from TVmaze is reported as a miss with guidance, not an error.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| show | No | The resolved show. Absent on a miss. |
| error | No | Present when the call failed. Absent on success. |
| found | No | True when the external id resolved to a TVmaze show. |
| source | No | Catalog the lookup was made against. |
| guidance | No | What to do next when the lookup missed. Absent on a hit. |
| external_id | No | Id that was looked up, as submitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, and idempotent hints. The description adds valuable non-obvious behavior: when a show is absent from TVmaze, the tool reports a miss with guidance rather than raising an error. This edge-case disclosure goes beyond what the annotations and schema provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The core action and use case come first, and the miss-handling behavior is a distinct, valuable second sentence. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, the annotations cover safety and idempotency, the output schema documents the return value, and the description covers the failure mode. No necessary information is missing for an agent to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, with each source variant and external_id pattern fully documented. The description adds no new parameter-level meaning beyond restating the three catalogs, so the schema carries the semantic weight. This matches the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a precise verb and resource: resolve an external catalog id (IMDb, TheTVDB, TVRage) into a TVmaze profile. It also conveys the distinguishing scope — this is a cross-reference lookup, not a search or a direct TVmaze-id fetch — which separates it from siblings like tvmaze_get_show and tvmaze_search_shows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it: 'Use this to cross a show id from another source into TVmaze.' This is clear contextual guidance. It does not explicitly name sibling alternatives or exclusion conditions, but the use case is unambiguous enough that an agent can route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tvmaze_search_showsTvmaze Search ShowsARead-onlyIdempotentInspect
Search television shows by title and return up to 10 matches, each with its network or streaming service, production status, genres, rating, and ids in other catalogs. Matching is fuzzy, so small typos still resolve. The result set is hard-capped at 10 by the source and cannot be paged — narrow the title to reach an eleventh match. To go the other way, from an IMDb or TheTVDB id to a show, use tvmaze_lookup_show.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Show title or title fragment. Matched fuzzily against every show title in the database, so minor misspellings still resolve. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The result ceiling the source applied. |
| error | No | Present when the call failed. Absent on success. |
| shown | No | Number of shows returned. |
| shows | No | Matching shows, best match first. At most 10. |
| notice | No | Guidance when nothing matched or when the ten-result ceiling was reached. Absent otherwise. |
| truncated | No | True when the source's fixed ten-result ceiling was reached. |
| effectiveQuery | No | The query as submitted upstream. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, and the description adds valuable behavioral context on top: fuzzy matching behavior, the hard-capped result set, the lack of pagination, and the exact data fields returned. This goes well beyond what annotations alone provide and contradicts nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three purposeful sentences: the first defines the operation and return value, the second covers matching and limits, and the third routes to the correct alternative. No filler, no repetition, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only search tool, this description is fully self-sufficient. It tells the agent what the tool does, what data it returns, its fuzzy behavior, its pagination limitations, and how to choose a sibling tool. The presence of an output schema means return-value details don't need to be restated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds an extra layer of guidance beyond the schema by explaining that narrowing the query is required to reach results beyond the hard cap, which gives the agent a strategy for using the query parameter effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search television shows by title', then enumerates exactly what each match returns. It also distinguishes itself from the sibling tvmaze_lookup_show by explicitly stating it handles the reverse direction, making tool selection unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it tells the agent this is the right tool for title-based fuzzy search and explicitly says to use tvmaze_lookup_show when starting from an IMDb or TheTVDB id. It also documents the practical constraint of the 10-result cap and the strategy of narrowing the title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
- First observed
tvmaze_get_cast - First observed
tvmaze_get_episodes - First observed
tvmaze_get_next_episode - First observed
tvmaze_get_schedule - First observed
tvmaze_get_show - First observed
tvmaze_lookup_show - First observed
tvmaze_search_shows
Related MCP Connectors
TVMaze MCP — TV show metadata, episodes, schedules (no auth)
Unlock a world of television with the TV Maze MCP server. Effortlessly search for shows by name or
Movies and TV show data — search, details, ratings, and cast from iTunes and TVmaze APIs
Search MusicBrainz artists, releases, works, labels; resolve ISRC/ISWC/barcode; fetch cover art.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables searching TV show metadata, episodes, and schedules via the TVMaze API with no authentication required.1 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables searching for movies and TV shows, retrieving detailed show information, and checking TV broadcast schedules through natural language or direct tool calls.2 npmMIT
- FlicenseAqualityDmaintenanceEnables querying TV programming data from Tunarr XMLTV feeds, including viewing channel listings, current and upcoming schedules, and searching for programmes by title or description.5-
- AlicenseNot gradedqualityDmaintenanceEnables querying The Movie Database (TMDB) v3 API for movie and TV show information, including search, episode details, and trending content.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.