MovieGlu MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MovieGlu MCPWhat are the showtimes for Spider-Man at Regal tonight?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MovieGlu MCP
Real theater showtimes, films, cinemas and ticket deep links from the MovieGlu API, exposed to Open WebUI chat sessions as tools.
Two interchangeable integrations, one shared client:
Path | What it is | When to use |
| Single-file OpenWebUI tool | Fastest path: paste into the web UI ( |
| MCP server (stdio + Streamable HTTP) | OpenWebUI's native MCP integration: |
| Drop-in tool folder (same code) | Prefer installing by file into the container: |
openwebui/movieglu_tool.py and openwebui/movieglu/__init__.py are
byte-identical by design — one canonical tool, two delivery forms.
Open WebUI only speaks Streamable HTTP for MCP (no stdio/SSE natively),
so the server ships an HTTP transport; a stdio transport is included for
local testing and for the mcpo bridge if you ever need it.
1. Get MovieGlu credentials
Request an API key at https://developer.movieglu.com/request-key/ and pick a territory (the evaluation key is limited to that country).
You receive an email with:
client(username)x-api-keyauthorization(a full Basic-auth value, e.g.Basic A1B2c3...)evaluation credentials (75 requests) + sandbox credentials (10,000 requests)
HTTP 429means the quota for that credential set is exhausted.
Related MCP server: Allociné MCP Server
2. Configure
Copy .env.example to .env and fill in:
MOVIEGLU_API_KEY=...
MOVIEGLU_CLIENT=...
MOVIEGLU_AUTHORIZATION=Basic ...
MOVIEGLU_TERRITORY=US
MOVIEGLU_LAT=37.7749 # optional default location
MOVIEGLU_LNG=-122.4194 # optional default locationFor the custom tool, the same values are set in
Admin Panel → Tools → MovieGlu → ⚙️ (Valves) — or pre-filled in
openwebui/movieglu/config.yaml.
3. Run the MCP server
pip install . # installs movieglu-mcp + its dependencies
# Streamable HTTP (what OpenWebUI connects to), default port 8000
movieglu-mcp --transport http --port 8000
# endpoint: http://0.0.0.0:8000/mcp
# stdio (local MCP clients / mcpo bridge)
movieglu-mcp --transport stdio(Alternatively run without installing: set PYTHONPATH=src /
export PYTHONPATH=src, then python -m movieglu_mcp ....)
Docker (same behavior, credentials via --env-file .env):
docker build -t movieglu-mcp .
docker run --env-file .env -p 8000:8000 movieglu-mcpConnect to Open WebUI
Settings → Admin → Integrations → External Tool Servers → + Add ConnectionType: MCP (Streamable HTTP)
URL:
server on the host, OpenWebUI in Docker:
http://host.docker.internal:8000/mcpboth on the same Docker network:
http://movieglu-mcp:8000/mcpsame machine / published port:
http://<ip>:8000/mcp
Auth: None (credentials live server-side in the .env, not in OpenWebUI)
Save, restart Open WebUI if prompted.
In a chat:
+ → Integrations → Tools → MovieGlu(enable once per chat for the model to use the tools).
Import the single-file tool through the web interface (recommended)
Open
openwebui/movieglu_tool.pyin this project — it is fully self-contained (frontmatter metadata, credentials UI, client and all 12 tools in one file, no local imports).In Open WebUI: Admin Panel → Tools → Create
ID:
moviegluName:
MovieGluDescription:
Real movies, cinemas and theater showtimes from the MovieGlu API
Paste the entire file contents into the code editor → Save. (Equivalent path: Import From Link with a URL to the file, e.g. a raw GitHub link.)
v0.9.2 note (Monolith build): saving a tool actually loads it first. If the code fails to load (wrong class name, missing import, etc.) the request fails and nothing is stored — the tool will not appear in the list even though the dialog closed. This file follows the v0.9.2 contract:
class Toolswith nestedValves/UserValves, zero-arg__init__, plainasyncmethods, no@function_tool. If a save “succeeds” but the tool never lists, that is the cause.Open the ⚙️ gear icon (Valves) next to the tool and fill in the credentials from your MovieGlu email:
api_key,client,authorization(the fullBasic ...value),territory, and an optional defaultdefault_lat/default_lng.In a chat:
+ → Integrations → Tools → MovieGlu(enable per chat, or set as a default tool on a model).
The requirements: requests frontmatter line makes Open WebUI
auto-install requests on first load
(ENABLE_PIP_INSTALL_FRONTMATTER_REQUIREMENTS is on by default).
Alternative: install the drop-in folder (older OpenWebUI builds)
# inside an OpenWebUI container: copy the whole folder to
/app/backend/open_webui/components/tools/tools/movieglu/Not available in v0.9.x (Monolith build): that
components/toolsdirectory does not exist there; tools are DB-stored and created through the Admin Panel (orPOST /api/v1/tools/create). The folder is kept for compatibility with older builds. Restart Open WebUI, then set the credentials underAdmin Panel → Tools → MovieGlu(same Valves).config.yamlpre-fills defaults;requirements.txtcoversrequests.
4. Tools (12, identical in both integrations)
Tool | MovieGlu resource | Notes |
|
| top films by showtime count |
|
| by release date |
|
| returns |
|
| synopsis, cast, ratings |
|
| trailer URLs |
|
| geolocation required |
|
| min 3-char query |
|
| omit |
|
| by distance; geolocation required |
|
| nearest cinema, any date |
|
| deep link to ticketing page |
|
| credential/connectivity diagnostics |
Typical chat flow: search_movies → movie_showtimes → present times →
ticket_link for the chosen showing.
All tools return a uniform envelope:
{ "ok": true, "data": { ...MovieGlu payload incl. status envelope... } }
{ "ok": false, "error": "...", "status_code": 401, "mg_message": "..." }so the model gets an actionable message instead of a crash.
5. MovieGlu quirks baked into the code
Geolocation header uses a semicolon:
51.510391;-0.13013(max 6 decimals).Cinema day runs 03:00–02:59 — post-midnight showtimes belong to the previous calendar day; never "fix" returned times.
device-datetimemust be current (yyyy-mm-ddThh:mm:ss.sss, no TZ offset) — it's regenerated on every request, and a stale one yields 204s.HTTP 204 = no content (usually geolocation outside the licensed territory or no data); 429 = quota exhausted; the
MG-messageresponse header is surfaced in every error.Resource names are case-sensitive (
cinemaShowTimes, notCinemaDetails-style).filmShowTimes/cinemasNearby/closestShowingrequire a geolocation; without lat/lng the configured default location is used, and the error envelope tells you exactly what to set if there isn't one.
6. Verify
python scripts/check_movieglu.py # live ping with your .env creds
python -m pytest tests -q # offline unit tests (mocked requests)7. Repository layout
MovieGlu MCP/
├── pyproject.toml # package + movieglu-mcp console script
├── requirements.txt # mcp, requests, python-dotenv
├── requirements-dev.txt # + pytest
├── Dockerfile # Streamable HTTP image
├── .env.example # credential/transport config template
├── src/movieglu_mcp/
│ ├── client.py # MovieGlu v200 REST client (no MCP deps)
│ ├── config.py # env/.env -> Settings
│ ├── server.py # FastMCP server, 12 tools
│ └── __main__.py # python -m movieglu_mcp [--transport ...]
├── openwebui/
│ ├── movieglu_tool.py # SINGLE FILE for the web UI (Tools > Create)
│ └── movieglu/ # drop-in folder variant (same code + metadata)
│ ├── __init__.py # byte-identical to movieglu_tool.py
│ ├── manifest.yaml
│ ├── config.yaml # default Valve values
│ └── requirements.txt
├── scripts/check_movieglu.py # credential/connectivity gate
└── tests/test_client.py # mocked-request unit testsAvailable Tools
12 toolsapi_statusA
Diagnose the MovieGlu connection: which credentials are present, and whether a live API call succeeds. Use when other tools fail.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses two key behaviors: it checks which credentials are present and whether a live API call succeeds. This implies read-only, non-destructive behavior, and it explicitly mentions making a live API call, which is relevant. However, it doesn't disclose the return format or any potential side effects (though 'diagnose' strongly implies non-mutating). It could be more explicit that it performs a network call and does not modify anything, but given the context, it is reasonably transparent.
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, with the core purpose front-loaded in the first sentence and the usage condition in the second. Every word earns its place, with no filler or redundancy. It is as concise as possible while conveying the essential information.
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 zero-parameter tool with an output schema (which declares the return shape), the description fully covers what the tool does and when to use it. There is no missing information an agent would need to invoke it correctly: it knows the purpose, the lack of inputs, and the appropriate trigger condition. The output schema handles return-value documentation, so the description is complete.
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 tool has zero parameters, and the input schema is an empty object. The description adds no parameter information because there are none. Per the rubric, a tool with 0 parameters and 100% schema coverage receives a baseline of 4. The description correctly implies the tool requires no input, so no further semantic addition is needed.
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 ('Diagnose') and a clear resource ('the MovieGlu connection'), and specifies what it checks (credentials present, live API call success). This clearly distinguishes it from the sibling tools, which are all data-fetching operations for movies, cinemas, and showtimes. A tool named 'api_status' could be ambiguous, but the description removes that ambiguity by naming the exact diagnostic function.
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 'Use when other tools fail.' This is a clear, actionable condition for selecting this tool over its siblings. It doesn't enumerate all non-use cases, but the primary use case is unambiguous. This meets the bar for explicit when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cinema_showtimesA
All showtimes at one cinema for one date.
With film_id: only that film. Without: every film playing that day. Times are as published by the cinema; times after midnight belong to the previous day (cinema day = 03:00-02:59).
Args: cinema_id: MovieGlu numeric cinema id. date: YYYY-MM-DD (defaults to today). film_id: Optional film id to narrow the schedule to one film. sort: popularity or alphabetical.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| sort | No | ||
| film_id | No | ||
| cinema_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behaviors: times are 'as published by the cinema,' after-midnight times belong to the previous day with a defined cinema day (03:00-02:59), and date defaults to today. These are not visible in the schema and are essential for correct invocation and interpretation.
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 a compact paragraph that front-loads the core purpose, then lists parameters in a clean bullet-like structure. Every sentence adds information—there is no fluff. The cinema-day note is placed early where it matters, and the args section is easy to scan.
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 4-parameter tool with an existing output schema, the description covers all operational details an agent needs: scope, filtering behavior, defaults, sort choices, and the special day-boundary rule. No critical context is missing, and the output schema handles return structure.
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 0%, yet the description's 'Args' section fully compensates: it explains cinema_id as 'MovieGlu numeric cinema id,' date format and default, film_id as optional narrowing, and sort options ('popularity or alphabetical'). This goes far beyond the bare schema types and defaults.
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 'All showtimes at one cinema for one date,' which is a specific verb+resource+scope, and immediately clarifies the effect of film_id ('With film_id: only that film. Without: every film playing that day.'). This unambiguously distinguishes it from siblings like movie_showtimes (which likely covers multiple cinemas) and closest_showing.
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 explains how to narrow the schedule with film_id and provides the cinema-day definition, but it never explicitly states when to use this tool instead of alternatives such as movie_showtimes or closest_showing. The 'at one cinema' phrase implies a constraint, but no direct comparison or exclusion is given, leaving the agent to infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cinemas_nearbyA
List the cinemas nearest to a location, with addresses and distances.
lat/lng are optional: when omitted, the configured default location (MOVIEGLU_LAT / MOVIEGLU_LNG) is used. Only cinemas with showtimes in the next 10 days are returned.
Args: limit: Max cinemas (default 10, max 25). lat: Latitude (-90..90). lng: Longitude (-180..180).
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lng | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden and does well: it discloses the default-location fallback via environment variables, the 10-day showtime filter, and the inclusion of addresses and distances. It does not mention error handling or rate limits, but for a read-only listing tool these are not critical omissions.
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 well-structured and front-loaded: purpose first, then behavioral nuances, then a compact Args section. Every sentence adds useful information without redundancy or filler.
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 tool's simplicity, an output schema is present, and all parameters and key behaviors are described, the definition is complete enough for an agent to invoke it correctly. No critical details such as default values, coordinate ranges, or result filtering are 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 0%, so the description fully compensates by explaining all three parameters: limit's default and maximum, lat's range (-90..90), lng's range (-180..180), and the optional/null behavior of lat/lng with fallback to configured defaults. This adds substantial meaning beyond the raw schema.
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 clearly states the operation: list cinemas nearest to a location with addresses and distances. It is specific enough to distinguish from general cinema search tools, though it does not explicitly name sibling alternatives.
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 context: call it with lat/lng to get nearby cinemas, or omit them to use the configured default location. It also states the 10-day showtime filter, but it does not explicitly say when to use this tool over search_cinemas or closest_showing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
closest_showingA
Nearest cinemas showing a film, regardless of date and time.
For 'where can I see this film at all?' A location is required (lat/lng, or the configured default location).
Args: film_id: MovieGlu numeric film id. limit: Max cinemas (default 5, max 20). lat: Latitude (-90..90), optional. lng: Longitude (-180..180), optional.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lng | No | ||
| limit | No | ||
| film_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It usefully discloses that location is required via lat/lng or a configured default, and that the search is not constrained by date/time. However, it leaves some behavioral details unstated, such as whether results are ordered by distance, whether only currently bookable showtimes count as 'showing,' and what happens if no default location is configured.
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 compact and front-loaded with the main behavior, followed by a one-line use case and a clean parameter list. Every sentence adds useful information, and there is no fluff or repetition.
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 present, the description covers the essential input semantics and the primary use case. It is missing an explicit pointer to date/time-specific alternatives, but the 'regardless of date and time' phrasing helps the agent infer when not to use it. Overall, it is complete enough for a successful call.
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 0%, and the description compensates fully by explaining every parameter: film_id is a MovieGlu numeric id, limit has default/max values, and lat/lng have ranges and optionality. It also clarifies the relationship between optional lat/lng and the configured default location, adding meaning the schema alone does not provide.
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: 'Nearest cinemas showing a film.' It also adds a distinctive scope, 'regardless of date and time,' which separates it from date/time-specific showtimes siblings like movie_showtimes and cinema_showtimes. The user-question framing 'where can I see this film at all?' reinforces the intended purpose.
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 a clear use case ('For where can I see this film at all?') and states the location prerequisite, including the fallback to a configured default location. It does not name alternatives explicitly or say when not to use this tool, but the 'regardless of date and time' line implies that date-specific queries belong elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
movie_detailsA
Full metadata for one film: synopsis, cast, directors, genres, ratings, trailers, images and nationwide show dates.
Args: film_id: MovieGlu numeric film id (from search / listing tools). size_category: Image size: small, medium, large, xlarge or xxlarge (comma-separated for multiple).
| Name | Required | Description | Default |
|---|---|---|---|
| film_id | Yes | ||
| size_category | No | medium |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It lists the metadata fields returned but does not mention error behavior, rate limits, authentication, or any side effects. For a read-only tool, it lacks transparency about what happens when film_id is invalid or not found.
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 concise, front-loading the core purpose in one sentence followed by a compact Args block. It wastes no words and is easy to scan, though it could be slightly more structured with explicit optionality notes.
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 has a moderate complexity with two parameters and an output schema, but the description does not indicate that size_category is optional (default medium) or describe error handling. Since annotations are absent, more context on potential failure modes or prerequisites would be needed for full completeness.
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?
With 0% schema description coverage, the description compensates well. It explains film_id as a 'MovieGlu numeric film id' sourced from search/listing tools, and size_category with explicit allowed values and comma-separation for multiple. This adds meaning beyond the bare parameter names, though it omits the default value for size_category.
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 clearly states the tool provides 'Full metadata for one film' and enumerates specific content: synopsis, cast, directors, genres, ratings, trailers, images, and nationwide show dates. This distinctly separates it from siblings like movie_trailers or movie_showtimes, making its purpose 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 gives usage context by noting film_id comes 'from search / listing tools', implying the tool is meant to be used after searching. However, it does not explicitly state when to choose this over alternatives like movie_trailers or movie_showtimes, nor does it mention exclusions or prerequisites beyond that hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
movies_coming_soonA
List films coming soon to cinemas, ordered by release date.
Includes release dates, age ratings and synopses.
Args: limit: How many films to return (default 10, max 15).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It states that the tool lists films ordered by release date and includes release dates, ratings, and synopses, which is helpful. However, it does not explicitly state that the operation is read-only or non-destructive, nor does it mention any potential errors, authentication requirements, or rate limits. For a simple list operation, this is adequate but not thorough.
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 extremely concise, with two sentences covering the purpose, content included, and parameter specification. The most important information (what and ordering) is front-loaded, and the parameter section is clearly separated. Every word earns its place, making it easy to parse quickly.
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 that an output schema exists (not shown but indicated), the description doesn't need to detail return types. It covers the operation, ordering, included fields (release dates, ratings, synopses), and the limit parameter with default and max. Minor gaps like handling empty results or pagination are not critical for a single-list tool with a max of 15 items, so it is nearly complete for its complexity.
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 only defines 'limit' as an integer with a default, but the description provides full semantic meaning: 'How many films to return (default 10, max 15)'. This directly compensates for the 0% schema description coverage, making the parameter's purpose and constraints crystal clear. The agent knows exactly what to pass and its bounds.
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 clearly states the verb 'List' and the resource 'films coming soon to cinemas', and specifies ordering by release date. This distinctly differentiates it from siblings like 'movies_now_showing' (currently playing) and 'search_movies' (search across all films), so an agent can select it correctly without ambiguity.
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 makes it clear that this tool returns upcoming films, which implies its use case, but it does not explicitly mention alternatives or provide 'when not to use' guidance. There is no reference to sibling tools like 'movies_now_showing' or 'search_movies', so the agent must infer when to prefer this tool over others. The purpose is clear enough to guess, but explicit routing would be better.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
movie_showtimesA
Showtimes for one film at the cinemas nearest a location, sorted by distance.
A location is required: pass lat/lng, or set a default location (MOVIEGLU_LAT / MOVIEGLU_LNG).
Args: film_id: MovieGlu numeric film id. date: YYYY-MM-DD (defaults to today). limit: Max cinemas (default 10, max 25). lat: Latitude (-90..90), optional. lng: Longitude (-180..180), optional.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lng | No | ||
| date | No | ||
| limit | No | ||
| film_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden and does well: it discloses sorting by distance, that a location is required, that date defaults to today, and that limit is capped at 25. It does not discuss error behavior when no location is available or timezone semantics, but the key call-affecting behaviors are disclosed.
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 most important information is front-loaded in the first line. The location requirement is stated immediately after, and the Args section is compact and information-dense. Every line adds value; there is no repetition of schema trivia or filler.
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 5-parameter tool with no annotations, the description covers the required location nuance, defaults, ranges, and limits. Since an output schema exists, return-value documentation is not needed. Minor gaps include not explicitly routing between sibling tools and not stating what happens when lat/lng are omitted and env defaults are also unset, but the core invocation is fully specified.
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 0%, so the description must compensate, and it does. Every parameter gets meaningful semantics: film_id is a MovieGlu numeric id, date is YYYY-MM-DD with a default, limit has default and max, and lat/lng have ranges and optionality plus the env-var fallback. This is exactly the detail 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.
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: 'Showtimes for one film at the cinemas nearest a location, sorted by distance.' This clearly distinguishes it from siblings like cinema_showtimes (likely cinema-centric) and closest_showing (likely a single nearest result). The film-centric, location-based scope is immediately 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 gives clear context for when to use the tool: you need showtimes for one film near a location. It also explains the two ways to satisfy the location requirement: pass lat/lng or rely on MOVIEGLU_LAT/MOVIEGLU_LNG defaults. It stops short of explicitly naming sibling alternatives such as cinema_showtimes for cinema-centric queries, so it earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
movies_now_showingA
List the top films currently in cinemas in the configured territory.
Results are ordered by number of showtimes in the MovieGlu database. Each film carries a film_id — use it with movie_showtimes, closest_showing, movie_details or ticket_link.
Args: limit: How many films to return (default 10, max 25).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It provides useful behavioral details: results are ordered by number of showtimes in the MovieGlu database, and the operation is a listing that returns film IDs. It does not mention rate limits or authentication, but these are not critical for this simple read-only listing tool.
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?
Each sentence earns its place: the main purpose, ordering behavior, film_id guidance, and parameter semantics are all covered in a compact, well-structured format. The description avoids fluff and front-loads the most important information.
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 list tool with an output schema available, the description provides enough context to invoke it correctly: what it lists, how results are ordered, what the limit parameter means, and how to use the returned film_id. 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 provides only the parameter name, type, and default, with 0% schema description coverage. The description compensates fully by explaining that limit controls 'how many films to return' and adds the important max constraint of 25, which is not present in the schema.
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 begins with a specific verb and resource: 'List the top films currently in cinemas in the configured territory.' It clearly distinguishes this tool from siblings like movies_coming_soon by emphasizing 'currently in cinemas' and 'top films'.
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 ('currently in cinemas', 'configured territory') and tells the agent how to use the resulting film_id with related tools. It does not explicitly name exclusions or alternatives such as movies_coming_soon, but the context is strong enough to guide selection among the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
movie_trailersB
Trailer URLs (with qualities and regions) for one film.
Args: film_id: MovieGlu numeric film id.
| Name | Required | Description | Default |
|---|---|---|---|
| film_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It does reveal that the tool returns trailer URLs with qualities and regions, implying a read-only lookup. However, it does not mention error behavior, handling of missing/invalid film IDs, or data limitations.
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 appropriately short and front-loaded with the core purpose. The 'Args' block is useful and non-redundant, though it could have been integrated into the main sentence without loss.
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 single-parameter lookup with an output schema, the description is mostly sufficient. It lacks sibling differentiation and edge-case guidance, but it covers the essential call semantics: what the tool returns and what film_id means.
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 coverage for parameters is 0%, so the description must define the parameter itself. 'MovieGlu numeric film id' adds meaningful context beyond the schema's bare integer type, clarifying both the source and expected format of film_id.
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 output ('Trailer URLs') and scope ('for one film'), making the tool's purpose immediately clear. It does not explicitly differentiate from related movie tools, but the focus on trailers is unambiguous enough to avoid confusion.
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 no explicit guidance about when to use this tool versus alternatives like movie_details or search_movies. It implies usage through 'for one film' but never states exclusions or conditions for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_cinemasA
Search cinema names or towns (min 3 characters, search-as-you-type).
Works best with a geolocation (within 75 miles); without it, results are alphabetical. lat/lng fall back to the configured default location.
Args: query: Cinema chain or town name fragment (3+ chars). limit: Max results (default 5, max 25). lat: Latitude (-90..90), optional. lng: Longitude (-180..180), optional.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lng | No | ||
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does it well. It discloses the minimum query length, search-as-you-type behavior, geolocation radius, fallback to configured default location, and alphabetical ordering when no location is given. These are meaningful behavioral traits beyond what the schema reveals.
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 compact and well-structured. The core behavior and constraints are front-loaded, followed by a clean Args list. Every sentence contributes useful information, with no filler or repetition.
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 moderate-complexity search tool with an output schema present, the description covers all invocation-critical details: query requirements, limits, geolocation behavior, defaults, and ordering. Nothing essential for selecting or calling the tool appears to be 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 0%, but the Args block fully compensates by explaining every parameter: query is a 3+ character fragment, limit defaults to 5 with max 25, and lat/lng are optional with valid ranges. This adds real meaning that the bare schema properties lack.
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 and resource: 'Search cinema names or towns', with a clear search-as-you-type behavior and a minimum character requirement. This distinguishes it from sibling tools like cinemas_nearby, which imply a location-based listing rather than a text query tool.
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 practical context: it works best with geolocation within 75 miles, falls back to a default location, and returns alphabetical results without coordinates. It does not explicitly name alternatives or state when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_moviesA
Search film titles by name fragment (search-as-you-type).
Results are ordered by popularity (showtime count) and include film_id, release date, duration and age rating.
Args: query: Film title fragment (at least 1 character). limit: Max results (default 5, max 25).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does disclose useful behavior: results are ordered by popularity via showtime count, include specific fields, and support search-as-you-type. It does not discuss rate limits or data freshness, but for a simple search tool the disclosed behavior is reasonably transparent.
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 compact and front-loaded, with the core behavior stated first, followed by useful result-ordering details and a clean Args breakdown. Every sentence adds information beyond 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?
For a two-parameter search tool with an output schema, the description is complete: it covers search behavior, result ordering, returned fields, and parameter constraints. Nothing needed to call it correctly appears 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 0%, so the description must fully compensate, and it does. It explains query as a film title fragment of at least 1 character, and limit as max results with default 5 and max 25—details not present in the input schema properties.
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 film titles by name fragment', which is distinct from sibling tools like search_cinemas or list-style tools like movies_now_showing. The search-as-you-type behavior makes the tool's role unmistakable.
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 intended use is implied clearly by 'Search film titles by name fragment' and the search-as-you-type qualifier, but the description does not explicitly state when to prefer this over sibling tools such as search_cinemas or movies_now_showing. No exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticket_linkA
Deep link to the cinema's ticketing page with film, date and time pre-selected. Use after presenting a showtime to the user.
MovieGlu does not support seat selection or payment; the link goes to the cinema's own website.
Args: cinema_id: MovieGlu numeric cinema id. film_id: MovieGlu numeric film id. date: Showtime date YYYY-MM-DD. time: Showtime time HH:MM (24h) exactly as published.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | Yes | ||
| film_id | Yes | ||
| cinema_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses important behavior: the link redirects to the cinema's own website, and seat selection/payment are not supported. This goes beyond a generic 'create a deep link' phrasing and sets accurate expectations about what happens after invocation.
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 compact and well-structured. It opens with the core purpose, follows with a key limitation, and then lists the parameters in a scannable Args block. Every sentence adds necessary information; there is no filler or redundant repetition.
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 has a simple shape, four fully documented parameters, a clear usage rule, and an output schema to describe return values. The description covers purpose, behavior, parameters, and timing. Nothing essential is missing for an agent to invoke it correctly in context.
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 0%, so the description must define every parameter, and it does. Each argument gets a meaningful explanation and format: 'MovieGlu numeric cinema id', 'MovieGlu numeric film id', 'Showtime date YYYY-MM-DD', and 'Showtime time HH:MM (24h) exactly as published.' This fully compensates for the empty 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 states a specific verb ('Deep link') and resource ('the cinema's ticketing page') with explicit pre-selection of film, date, and time. This clearly distinguishes it from siblings like cinema_showtimes or movie_showtimes, which are about fetching showtimes rather than linking out to purchase tickets.
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?
It gives a clear usage context: 'Use after presenting a showtime to the user.' It also clarifies that seat selection and payment are not handled by MovieGlu, which prevents misuse. It does not explicitly discuss when not to use it or name alternatives, but the guidance is sufficient for choosing it at the right moment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools target clearly distinct resources and actions: film discovery, cinema lookup, showtimes by film or cinema, and ticketing. The main overlap is movie_trailers versus movie_details (both include trailers), and movie_showtimes versus closest_showing, but the descriptions make the intended use clear.
Names are mostly resource-oriented with a readable pattern: movie_*, cinema_*, search_*. There are minor inconsistencies like movies_now_showing/movies_coming_soon vs movie_details/movie_showtimes, plus standalone names like closest_showing and ticket_link.
12 tools is well-scoped for a cinema information server. Each tool serves a distinct part of the workflow—discovery, details, showtimes, ticketing, and diagnostics—without feeling bloated or redundant.
The set covers the full cinema lookup journey: finding films and cinemas, retrieving metadata and trailers, checking showtimes by film or venue, finding the closest showing, and linking to ticket purchase. No major lifecycle gaps are apparent for the domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Booking gateway for AI agents — discover events, movies & hotels, hand off to partner checkout.
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
The Ferryhopper MCP server is a connector for LLMs and AI Agents in maritime travel that exposes ferry routes, schedules, and booking options. It enables AI assistants to search ports and connections across 33 countries and 190+ ferry operators, provide real-time ferry itineraries with indicative prices, and assist users with planning island-hopping or multi-leg journeys by processing natural language queries about ferry times, passenger counts, and travel durations.
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides a comprehensive movie booking experience for AMC Theatres, enabling users to discover movies, find showtimes, select seats, and process payments through conversational AI. Supports multi-location theater search with real-time seat availability and booking management.61MIT
- FlicenseNot gradedqualityCmaintenanceEnables users to search for movies and retrieve showtimes from Allociné, including cinema locations, screening times, and formats (VF, VOST, 3D, IMAX) for specific cities or postal codes in France.
- FlicenseNot gradedqualityCmaintenanceEnables searching for movies, checking Google Calendar for conflicts, and booking tickets with seat type and INR pricing, all through natural conversation. Supports demo mode without API keys.
- AlicenseAqualityBmaintenanceProvides a comprehensive movie booking experience for AMC Theatres, enabling conversational AI assistants to help users discover movies, find showtimes, book seats, and process payments.6MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/brettyandell/MovieGlu_MCP_OpenWebUI'
If you have feedback or need assistance with the MCP directory API, please join our Discord server