search_shows
Pack: tvmaze · Endpoint: https://gateway.pipeworx.io/tvmaze/mcp
No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/search_shows for the schema, then POST the same URL with its arguments for the data.
Search TV shows by name. Returns shows with id, name, premiere date, network, genres, rating, status, and TVMaze URL.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
query | string | yes | Show name (full or partial) |
Example call
Arguments
{
"query": "Breaking Bad"
}
curl
curl -X POST https://gateway.pipeworx.io/tvmaze/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_shows","arguments":{"query":"Breaking Bad"}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('search_shows', {
"query": "Breaking Bad"
});
More examples
{
"query": "The Office"
}
Response shape
Always returns: query, count, results
| Field | Type | Description |
|---|---|---|
query | string | Search query string |
count | number | Number of results returned |
results | array | Array of matching shows |
Full JSON Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search query string"
},
"count": {
"type": "number",
"description": "Number of results returned"
},
"results": {
"type": "array",
"description": "Array of matching shows",
"items": {
"type": "object",
"properties": {
"score": {
"type": [
"number",
"null"
],
"description": "Match score from search"
},
"id": {
"type": [
"number",
"null"
],
"description": "TVMaze show ID"
},
"name": {
"type": [
"string",
"null"
],
"description": "Show name"
},
"type": {
"type": [
"string",
"null"
],
"description": "Show type (e.g., Scripted, Reality)"
},
"language": {
"type": [
"string",
"null"
],
"description": "Primary language"
},
"genres": {
"type": "array",
"description": "Genre tags",
"items": {
"type": "string"
}
},
"status": {
"type": [
"string",
"null"
],
"description": "Show status (Running, Ended)"
},
"runtime_min": {
"type": [
"number",
"null"
],
"description": "Episode runtime in minutes"
},
"premiered": {
"type": [
"string",
"null"
],
"description": "Premiere date (YYYY-MM-DD)"
},
"ended": {
"type": [
"string",
"null"
],
"description": "End date (YYYY-MM-DD) or null"
},
"official_site": {
"type": [
"string",
"null"
],
"description": "Official website URL"
},
"rating": {
"type": [
"number",
"null"
],
"description": "Average rating (0-10)"
},
"network": {
"type": [
"string",
"null"
],
"description": "Network or web channel name"
},
"network_country": {
"type": [
"string",
"null"
],
"description": "2-letter country code"
},
"imdb_id": {
"type": [
"string",
"null"
],
"description": "IMDb ID"
},
"tvdb_id": {
"type": [
"number",
"null"
],
"description": "TheTVDB ID"
},
"image": {
"type": [
"string",
"null"
],
"description": "Show poster image URL"
},
"summary": {
"type": [
"string",
"null"
],
"description": "HTML-stripped show summary"
},
"tvmaze_url": {
"type": [
"string",
"null"
],
"description": "TVMaze show page URL"
}
}
}
}
},
"required": [
"query",
"count",
"results"
]
}
Connect
Add this to your MCP client config, or use one-click install buttons:
{
"mcpServers": {
"tvmaze": {
"url": "https://gateway.pipeworx.io/tvmaze/mcp"
}
}
}
See Getting Started for client-specific install steps.