Skip to main content
Glama
rollecode

Rollekino MCP server

Official
by rollecode

Rollekino MCP server

Read and write the film archive at rollekino.fi: about 3400 reviewed films, each with a personal 1-10 rating alongside IMDb and Metascore.

Runs on the same host as the site, served at https://www.rollekino.fi/mcp by nginx in front of the Python server on 8600 and its OAuth login on 8602. It is not WordPress and exposes only film tools.

Tools

Reading: search_films, get_film, list_films, get_stats, list_terms, list_queue, get_connection_status.

Writing: set_rating, write_review, create_film, trash_film, lookup_tmdb.

list_films filters by year, genre, director, actor and rating range, orders by rating, title or date, and paginates.

Related MCP server: TMDB MCP Server

The site side

The film data comes from rollekino/v1, added to the theme in inc/hooks/movies-api.php. Writes go through that namespace rather than /wp/v2/movie, because the theme registers a REST field named meta for the Vue archive which shadows core's meta object.

create_film with a tmdb_id enriches from TMDB and OMDB using the helpers in inc/movie-enrich.php, shared with quick-review.php, so a film created here renders identically to one posted from the quick review page.

Setup

uv venv && uv pip install -e .
export ROLLEKINO_URL=https://www.rollekino.fi
export ROLLEKINO_USER=...              # WordPress user with edit_posts
export ROLLEKINO_APP_PASSWORD=...      # application password

Reads are public; only writes need the credentials.

Available Tools

12 tools
create_filmA
Idempotent

Create a film entry, optionally enriched from TMDB.

With tmdb_id the site fetches plot, poster, backdrop, cast, crew, genres, trailer, IMDb and Metascore and stores them exactly as quick-review.php does, so the film renders identically. Use lookup_tmdb to find the id.

Args: title: Film title. tmdb_id: TMDB id, from lookup_tmdb. Strongly preferred. content: The review text. rating: Rolle's rating out of 10. year: Release year. imdb_url: Full IMDb URL for the film. plot: Synopsis, in Finnish, as the theme expects. status: draft or publish.

ParametersJSON Schema
NameRequiredDescriptionDefault
plotNo
yearNo
titleYes
ratingNo
statusNodraft
contentNo
tmdb_idNo
imdb_urlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal readOnlyHint=false, idempotentHint=true, and destructiveHint=false, and the description adds meaningful behavior beyond that: the tool fetches and stores specific TMDB fields 'exactly as quick-review.php does, so the film renders identically.' It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action, then explains the TMDB enrichment behavior in one important sentence, then provides a tight argument list. Every sentence adds value and no filler is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 8 parameters and an output schema, the description supplies everything an agent needs: complete parameter semantics, an external lookup workflow, and the storage behavior that affects rendering. There is no critical missing context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description documents all 8 parameters with meaningful semantics: rating is 'out of 10', plot must be 'in Finnish, as the theme expects', status is 'draft or publish', and tmdb_id is sourced from lookup_tmdb. This fully compensates for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Create a film entry, optionally enriched from TMDB,' which names a specific action and resource and immediately distinguishes the tool from search/list/trash siblings. It also clarifies the optional enrichment behavior without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context by directing the agent to use lookup_tmdb to find the id and marks tmdb_id as 'strongly preferred.' However, it does not explicitly explain when to use create_film over related siblings like write_review or set_rating, so exclusion guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_connection_statusA
Read-onlyIdempotent

Report which site this points at and whether writing is possible.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive behavior. The description adds useful context beyond those annotations by clarifying that the tool reports the connected site and write capability, which tells the agent what kind of answer to expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entire description is one efficient sentence with a front-loaded verb and no filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only diagnostic tool with rich annotations and an output schema, the description is fully sufficient. An agent can call this tool correctly without additional guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is nothing for the description to clarify. Baseline for zero-parameter tools is 4, and the description correctly avoids inventing unnecessary parameter guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb, 'Report', and names the exact resource: the target site and whether writing is possible. It is unambiguous and easily distinguished from sibling tools, none of which are status/diagnostic checks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when this tool is relevant: when an agent needs to know where the connection points and whether writes are allowed. It does not explicitly name alternatives, but no sibling tool competes with this status-check function.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_filmA
Read-onlyIdempotent

Get one film in full: the review, the rating, credits and every field.

Args: id: Film id, from search_films or list_films.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only, idempotent, and non-destructive. The description adds useful behavioral context by promising a complete record including review, rating, and credits, which helps the agent know it will receive full detail rather than a summary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the core purpose, and has a clearly separated argument line. Every sentence contributes meaningful guidance without repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a single parameter, clear provenance for the id, and an output schema present, the description covers everything needed to correctly invoke this tool. No return-value explanation is required beyond the promise of full film details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only defines id as an integer with no description, so the description carries the full burden. It explains that the id is a film id and, crucially, tells the agent where to obtain it (from search_films or list_films), which is essential context the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches 'one film in full' and enumerates the contents: review, rating, credits, and every field. This distinguishes it from sibling search/list tools and makes the resource and action immediately clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The argument documentation explicitly tells the agent that the film id comes from search_films or list_films, which implies the intended workflow: search or list first, then fetch full details by id. It does not explicitly state when not to use this tool, but the sequencing guidance is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_statsA
Read-onlyIdempotent

Get archive-wide figures: totals, average rating, the rating spread and films per year.

Use this for questions about the collection rather than one film.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=true), so the description's burden is lower. It adds useful context by enumerating which aggregate figures are returned, but doesn't describe behavior beyond that. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero filler. The first sentence front-loads purpose and scope, the second adds usage guidance. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter aggregate tool, the description is complete. The output schema covers return values, annotations cover safety and idempotency, and the description covers scope and usage. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, which sets a baseline of 4. The description adds value beyond the empty schema by explaining what the returned figures actually measure (totals, average rating, rating spread, films per year), giving the agent expectations about the output shape.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Get archive-wide figures') and enumerates the concrete outputs (totals, average rating, rating spread, films per year). The 'archive-wide' scope clearly distinguishes it from per-film siblings like get_film, list_films, and search_films.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence gives explicit when-to-use guidance: 'Use this for questions about the collection rather than one film.' This is a clear usage directive with an implied exclusion of per-film tools, though it doesn't name the alternative sibling explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_filmsA
Read-onlyIdempotent

List films, filtered and ordered.

Args: year: Release year, as the archive records it. genre: Genre name in Finnish, such as Komedia or Draama. director: Director's name. actor: Actor's name. min_rating: Only films Rolle rated at least this, out of 10. max_rating: Only films he rated at most this. unrated: True for films with no rating yet. orderby: date, title or rating. order: ASC or DESC. page: Which page of results. per_page: Results per page, at most 100.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
yearNo
actorNo
genreNo
orderNoDESC
orderbyNodate
unratedNo
directorNo
per_pageNo
max_ratingNo
min_ratingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this read-only, idempotent, and non-destructive. The description adds useful behavioral context beyond that: rating filters are scoped to Rolle's ratings, genre names must be in Finnish, orderby accepts date/title/rating, and per_page is capped at 100. No contradiction with the annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with a one-sentence purpose followed by a compact, structured parameter list. Every line earns its place, and the length is justified for an 11-parameter tool with no schema descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the annotational safety profile and the existence of an output schema, the description covers the invocation-relevant details well: filters, ordering, pagination, and rating semantics. Its main gap is not contextualizing the relationship with 'search_films', which is important for correct tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden of explaining all 11 parameters, and it does so thoroughly. It clarifies 'year' as recorded by the archive, 'genre' as a Finnish name, 'min_rating' and 'max_rating' as Rolle's ratings out of 10, 'unrated', the allowed values for orderby, and the per_page limit of 100.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation ('List') and the resource ('films'), plus the core capabilities of filtering and ordering. It does not, however, distinguish this tool from the sibling 'search_films', which likely overlaps in listing/filtering behavior, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given for when to choose this tool over alternatives such as 'search_films' or 'get_film'. The description does not state exclusions, preferred use cases, or when another sibling would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_queueA
Read-onlyIdempotent

List draft films waiting for a review.

These are queued by the Trakt importer after Rolle watches something. Needs an application password.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds genuine value by disclosing that an application password is required and explaining the queue's origin, which goes beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, focused sentences. The purpose is front-loaded, the queue origin explains behavior, and the password requirement is essential operational information. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only list tool with an output schema, the description is complete. It covers what is listed, why it exists, and the authentication requirement. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is 100%, so the description has no parameter semantics to add. Per the baseline for zero-parameter tools, a 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and a specific resource ('draft films waiting for a review'), clearly distinguishing this queue-viewing tool from siblings like list_films or search_films. The additional context about the Trakt importer further anchors what this tool returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context about when this tool is relevant: it lists films queued by the Trakt importer after Rolle watches something. It does not explicitly name alternatives or exclusions, but the context strongly implies when to use it, so it earns a 4 rather than 3.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_termsA
Read-onlyIdempotent

List genres, directors, writers or actors used in the archive.

Args: taxonomy: One of genre, director, writer, actor. search: Narrow to names containing this. limit: How many terms to return.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
searchNo
taxonomyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds the constraint that terms are 'used in the archive' and that search narrows to names 'containing this,' but it does not disclose sorting, pagination, or exact matching behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: one opening sentence establishes the tool's purpose, followed by a terse, useful Args list. Every line adds meaning without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with a strong annotations profile and an output schema present, the description covers the essential behavior and all parameter semantics. No critical information needed to invoke the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries full responsibility, and it succeeds: it enumerates the valid taxonomy values, explains search as a substring filter, and defines limit as the number of terms returned. This is exactly the meaning an agent needs beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a specific verb and resource: 'List genres, directors, writers or actors used in the archive.' It clearly distinguishes this tool from siblings like list_films and search_films by stating the taxonomy categories it returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: use this tool to retrieve taxonomy terms from the archive, with optional search narrowing and limit controls. It does not explicitly name alternatives or exclusion conditions, but the intended use is obvious from the stated purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_tmdbA
Read-onlyIdempotent

Search TMDB for a film, to get the tmdb_id that create_film enriches from.

This goes through the site, which holds the TMDB key, so no key is needed here. Needs an application password.

Args: query: Film title to search for.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive behavior, and the description adds valuable operational context: the proxy through the site, the fact that the TMDB key is held server-side, and the application password requirement. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences plus an Args line carry the entire definition. Purpose is front-loaded, operational notes follow, and no words are wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter lookup with an output schema and rich annotations, the description covers the essential invocation context: what to pass, why, and what auth is needed. It does not mention behavior on no results or multiple matches, but those are minor given the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does: it explains 'query' means the film title to search for, which is more specific than the schema's bare 'Query' field. For a single parameter this is sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Search'), resource ('TMDB'), and targeted outcome ('to get the tmdb_id that create_film enriches from'). It is clear about what the tool does, though it does not explicitly differentiate from the sibling search_films.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context by tying the lookup to create_film and noting that it goes through the site and needs an application password. It stops short of naming alternative tools or exclusion conditions, but the intended use is easy to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_filmsA
Read-onlyIdempotent

Find films by title.

Start here when you know the name. Returns the id needed by get_film.

Args: title: Part of the film's title. limit: How many matches to return.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
titleYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds value beyond that by clarifying partial-title matching ('Part of the film's title') and the tool's role as a provider of ids to get_film. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: a one-line purpose, a usage pointer, a result note, and an Args block. Every sentence earns its place, and no information is buried or repeated from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, has an output schema, and its annotations cover safety. The description adds the missing context: when to start, what the title parameter accepts, and how the result connects to get_film. Nothing essential is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining both parameters: title is a partial title match, and limit controls how many matches to return. This adds real semantic meaning beyond the raw schema types and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Find films by title') and immediately clarifies the intended entry point ('Start here when you know the name'). It differentiates itself from siblings like list_films and get_film by framing the tool as the id-lookup step before get_film.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly tells the agent when to use this tool ('Start here when you know the name') and what to do with the result ('Returns the id needed by get_film'). It does not explicitly state when not to use it or name alternatives like list_films, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_ratingA
Idempotent

Set Rolle's own rating for a film, out of 10.

Args: id: Film id. rating: 1 to 10. Half points are allowed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
ratingYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds rating range details but no additional behavioral context beyond the annotations, which meets the lower bar set by the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: a single purpose line followed by a compact argument list. Every sentence earns its place, and there is no redundant or vague wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, two required parameters, and the presence of an output schema, the description covers what an agent needs to invoke it correctly. It might have mentioned overwrite behavior, but idempotentHint already implies repeated setting is safe.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does so by explaining 'id: Film id' and 'rating: 1 to 10. Half points are allowed', adding semantic meaning beyond the bare schema types. This is sufficient for the two simple parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Set' and the resource 'Rolle's own rating for a film', with the value constrained to 'out of 10'. It is specific and unambiguous, though it does not explicitly differentiate from siblings like write_review.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context implies this tool is for setting a personal rating, especially given the phrase 'Rolle's own rating', but there is no explicit when-to-use guidance or comparison with alternatives like write_review. Usage is inferred rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

trash_filmA
DestructiveIdempotent

Move a film to the trash. It can be restored from the WordPress admin.

Args: id: Film id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true and readOnlyHint=false. The description adds meaningful behavioral context beyond those flags by stating the film can be restored from WordPress admin, clarifying that this is not a permanent deletion.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the action, and contains no filler. The one-line argument note is directly useful and does not repeat the entire schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter mutation with an output schema and rich annotations, the description covers the core operation and reversibility. It does not address edge cases like already-trashed films or nonexistent IDs, but the output schema likely covers the response behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It provides only 'id: Film id,' which is minimal but does clarify that the parameter refers to the film being trashed. For a single integer parameter, this is adequate though thin.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Move') and a specific resource ('a film to the trash'), making the operation unambiguous. It is clearly distinct from siblings like create_film, get_film, set_rating, and write_review.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly conveys when to use the tool: when a film should be moved to the trash. It also adds context that the action is reversible via WordPress admin. It does not explicitly name an alternative, but no sibling tool obviously competes for this operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_reviewA
Idempotent

Write or replace the review text on a film.

Args: id: Film id. content: The review, as HTML or plain paragraphs. Replaces what is there. rating: Optionally set the rating at the same time. publish: True moves a draft to published.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
ratingNo
contentYes
publishNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavioral details beyond the annotations: content 'replaces what is there' and publish 'moves a draft to published.' These clarify overwriting and draft/publication behavior that annotations alone do not convey. No contradiction with annotations is present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a concise one-sentence summary followed by a tight argument list. Each line earns its place, and the most important behavior—writing or replacing—is front-loaded. No redundant or irrelevant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter write operation with an output schema and annotations, the description covers the key behaviors and parameter semantics. It doesn't mention prerequisites such as whether the film must already exist, but the combination of annotations, output schema, and description is sufficient for confident invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden for parameter meaning. It explains all four parameters: id is a film id, content can be HTML or plain paragraphs and replaces existing text, rating is optional, and publish moves a draft to published. This fully compensates for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Write or replace the review text on a film,' which clearly identifies the verb and resource. It does not explicitly name sibling tools like set_rating, but the focus on 'review text' distinguishes it from rating-only operations, so it is clear even without an explicit sibling comparison.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to choose this tool over alternatives such as set_rating or create_film. It implies usage through the action verb, but doesn't state exclusions or conditions that would route an agent to a sibling tool.

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.

  1. 12 tool updatesv1.0.0
    • First observedcreate_film
    • First observedget_connection_status
    • First observedget_film
    • First observedget_stats
    • First observedlist_films
    • First observedlist_queue
    • First observedlist_terms
    • First observedlookup_tmdb
    • First observedsearch_films
    • First observedset_rating
    • First observedtrash_film
    • First observedwrite_review

TDQS

A4.2/5.0

Scored across 12 tools

Disambiguation4/5

search_films and list_films both return films and could be confused, but search_films is clearly for title lookup while list_films is for filtered browsing. Every other tool targets a distinct resource or action, so overall boundaries are clear.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern with clear verbs like search, list, get, set, write, create, and trash. Minor synonym variety among retrieval verbs is not confusing.

Tool Count5/5

12 tools is within the ideal range for a personal film archive server. Each tool supports a core need: discovery, retrieval, creation, rating/review, queue management, stats, and TMDB integration.

Completeness4/5

Core film lifecycle (search/list/get/create/trash) and review/rating workflows are covered. Missing metadata update, unrate, and API-level restore are minor gaps that agents can work around.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers