Skip to main content
Glama

Server Details

Build a full weekly timetable for a primary school (classes, teachers, rooms) via chat.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.6/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: get_interview_guide for onboarding, validate_input for validation, create_schedule for starting a job, get_schedule_result for polling results, and send_feedback for user feedback. The workflow is explicitly sequenced, and the only minor overlap (get_schedule_result handling a slow validate_input) is described and not ambiguous in practice.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern: get_interview_guide, validate_input, create_schedule, get_schedule_result, send_feedback. There are no deviations or mixed conventions.

Tool Count5/5

Five tools is well-scoped for a timetable builder, covering the full workflow from initial guidance through validation, creation, result retrieval, and feedback. No tool feels redundant or missing for the core purpose.

Completeness4/5

The surface covers the essential lifecycle: guide, validate, create, poll result, and feedback. However, there is no tool to cancel or delete a long-running job (5-8 minutes), which could be a minor gap for an agent that needs to abort or manage jobs.

Available Tools

5 tools
create_scheduleCreate timetableAInspect

Starts calculating the full timetable from the 8 input files (validate them first). Returns a job_id at once; the calculation takes about 5-8 minutes. Then keep calling get_schedule_result with the job_id in the same reply until it is done.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesThe 8 input files, exactly as described in the interview guide's 'submission' and 'topics'. JSON files are sent as JSON text inside the string; empty CSV files contain only the header line.
user_countryNoOptional, for anonymous usage statistics: the school's country (e.g. 'Denmark') if the user has mentioned it. Never ask the user just for this.
user_languageNoOptional, for anonymous usage statistics: the language you talk to the user in (e.g. 'da', 'en'). Fill it in if you know it; never ask the user.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare the generic profile (not read-only, not idempotent, not destructive). The description adds the traits that actually matter here: the call is asynchronous, returns immediately with a job_id, the computation runs 5-8 minutes, and completion must be polled via get_schedule_result. That is a substantial disclosure beyond what the annotations convey.

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, front-loaded with the action, then the immediate return value, then the polling instruction. No filler, and the 5-8 minute estimate is placed where the agent will read it before deciding to poll.

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?

With no output schema, the description carries return semantics and does so well (job_id, polling loop). It is slightly incomplete on failure/edge behavior: nothing says what happens if the files are invalid or how to interpret a failed job, and idempotentHint=false suggests retry semantics the agent must infer.

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 description coverage is 100% and each of the 8 file properties plus the two optional statistics fields is already documented in the schema, including the 'never ask the user' caveat for user_country/user_language. The description only references 'the 8 input files' and adds no format or field-level meaning, so the baseline 3 applies.

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?

States a specific verb and resource (starts calculating the full timetable) plus the exact input source (the 8 input files) and the output shape (immediate job_id). It also implicitly distinguishes itself from validate_input ('validate them first') and get_schedule_result ('keep calling ... with the job_id'), so an agent can place it in the workflow without opening schemas.

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

Usage Guidelines5/5

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

Gives explicit sequencing: validate the files first, call this to start the job, then repeatedly call get_schedule_result with the returned job_id. Both the precondition tool and the follow-up tool are named, which is exactly the routing guidance an agent needs among these siblings.

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

get_interview_guideGet interview guideA
Read-onlyIdempotent
Inspect

Returns the interview guide: which questions to ask the user, default values, engine limits and the exact format of the 8 input files. Call this first.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description only needs to add context. It does so by disclosing what the response contains, which is valuable given there is no output schema, though it says nothing about caching, size, or whether the guide is static.

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 sentences, front-loaded with the verb and resource, and every clause adds information an agent needs (contents plus call ordering). No filler.

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?

With no output schema, the description carries the burden of describing the return, and it does list the categories of content, which is enough to call the tool correctly. It is slightly thin on what 'engine limits' or the file format actually look like, but this is adequate for a zero-arg bootstrap tool.

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 takes zero parameters and the schema is empty with 100% coverage, so there is nothing for the description to document. Baseline 4 applies.

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?

States a specific verb (returns) and resource (the interview guide) and then enumerates the concrete payload: questions to ask the user, default values, engine limits, and the exact format of the 8 input files. 'Call this first' also positions it against siblings like validate_input and create_schedule, so an agent can tell what the tool is for without opening anything else.

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?

'Call this first' is explicit sequencing guidance that tells the agent when to invoke it relative to the workflow siblings. It stops short of naming alternatives or stating what to do if the guide is not needed, but for a zero-arg entry point this is clear operational context.

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

get_schedule_resultGet timetable resultA
Read-onlyIdempotent
Inspect

Gets the status or result of a job from create_schedule (or a slow validate_input). While running: progress. When done: a compact timetable as text plus a link (valid 1 hour) to the full JSON result. view='classes' (default) = one table per class, 'teachers' = one per teacher incl. preparation time, 'summary' = key figures and lists of classes/teachers only. Use 'names' to get only some classes/teachers (recommended for big schools). If impossible: the reasons.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoWhat to show when done (default 'classes')
namesNoOnly these classes (e.g. '1.A') or teacher codes (e.g. 'T01')
job_idYesjob_id from create_schedule or validate_input

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover the read-only, idempotent, non-destructive profile, and the description adds genuinely non-obvious behavior: this is an async job poll whose result arrives as compact text plus a JSON link valid only 1 hour, and failures return reasons. It stops short of stating polling cadence or link-request limits, so it is strong but not exhaustive.

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

Conciseness4/5

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

Front-loads the core purpose and result contract, then walks through view and names options with no filler. The telegraphic fragments ('While running: progress.', 'If impossible: the reasons.') are dense but occasionally read as clipped rather than flowing.

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?

With no output schema, the description carries the return-value burden and does so: it describes the running, done, and failure cases and the shape of the text result and link. Some detail (link format, whether re-polling is cheap) is left implicit, but the lifecycle is covered.

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 coverage is 100%, so the baseline is 3, but the description meaningfully enriches the parameters: view='teachers' is explained as one table per teacher including preparation time, 'summary' as key figures plus class/teacher lists, and names is scoped to class or teacher codes with a size-based recommendation.

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?

States a specific verb and resource (get status/result of a job) and ties it directly to the originating tools, 'create_schedule (or a slow validate_input)'. That origin reference cleanly separates it from the create/validate siblings, so an agent knows this is the polling/retrieval step rather than a new job.

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

Usage Guidelines5/5

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

Gives explicit conditional guidance: while running you get progress, when done you get a timetable plus a link, and it recommends names='...' specifically for big schools. The view options are framed by when each is appropriate (classes vs teachers incl. preparation time vs summary figures).

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

send_feedbackSend feedback to the developerAInspect

Passes the user's feedback about the timetable service on to its developer (what worked, what did not, wishes). Only call it when the user has said they want to give feedback, and send what the user said in their own words (you may shorten it; any language is fine). Never include teacher names, other personal data or the school's data files. Tell the user briefly that it was sent. Nobody replies through this channel - if the user wants an answer, give them the support email timetablingengine.support@gmail.com.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idNojob_id of the timetable the feedback is about, if any
messageYesThe user's feedback, without names or other personal data
sentimentNoOverall tone of the feedback, if clear
user_countryNoOptional, for anonymous usage statistics: the school's country (e.g. 'Denmark') if the user has mentioned it. Never ask the user just for this.
user_languageNoOptional, for anonymous usage statistics: the language you talk to the user in (e.g. 'da', 'en'). Fill it in if you know it; never ask the user.

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (which only mark it as a non-read-only, non-destructive, non-idempotent, non-open-world call), the description discloses behavior the agent could not otherwise know: nobody replies through this channel, personal data and school data files must be excluded, and the agent should briefly confirm delivery to the user. That is real operational context, not annotation restatement.

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?

Purpose comes first, then trigger condition, then content/privacy rules, then post-call behavior. Every sentence carries a distinct instruction; none is filler or redundant with the 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?

With no output schema, the description correctly covers the post-call obligation (tell the user it was sent) and the no-reply expectation, so an agent can complete the interaction loop. It is essentially complete; the only untouched area is how the statistics fields are actually used server-side, which the agent does not need to act.

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 description coverage is 100%, so the schema already documents all five parameters including the sentiment enum and the anonymous-statistics caveats. The description adds content-shaping rules for 'message' (user's own words, any language, may be shortened, no personal data), which is useful, but it says nothing about job_id or the statistics fields beyond what the schema states. Baseline 3 with modest added value.

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 a specific verb and resource: it 'passes the user's feedback about the timetable service on to its developer', and it enumerates the content types (what worked, what did not, wishes). This is unmistakably distinct from the scheduling/validation siblings without needing to compare schemas.

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

Usage Guidelines5/5

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

It gives an explicit trigger ('Only call it when the user has said they want to give feedback') and an explicit routing alternative for a different need ('if the user wants an answer, give them the support email'). Both when-to-use and when-to-redirect are stated, leaving nothing to inference.

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

validate_inputValidate input files (free)A
Read-onlyIdempotent
Inspect

Checks the 8 input files in a few seconds without creating a timetable: file structure, engine limits and a capacity analysis (enough teachers/time?). Returns VALID (with warnings) or INVALID (with reasons). Always run this before create_schedule.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesThe 8 input files, exactly as described in the interview guide's 'submission' and 'topics'. JSON files are sent as JSON text inside the string; empty CSV files contain only the header line.
user_countryNoOptional, for anonymous usage statistics: the school's country (e.g. 'Denmark') if the user has mentioned it. Never ask the user just for this.
user_languageNoOptional, for anonymous usage statistics: the language you talk to the user in (e.g. 'da', 'en'). Fill it in if you know it; never ask the user.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive), so the bar is lower. The description adds genuinely new context: it is free, finishes in a few seconds, does not create a timetable, and returns VALID (with warnings) or INVALID (with reasons) — a meaningful disclosure given there is no output schema.

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, front-loaded with the primary action and scope, then mechanics, then the routing instruction. No redundant restatement of the name or title.

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 read-only validator with a rich nested schema, the description supplies what structured data does not: runtime expectation, cost, that no timetable is produced, and the two possible outcome states. Nothing needed 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.

Parameters3/5

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

Schema description coverage is 100%, including the nested 'files' object with all 8 named keys and format notes, so the schema carries the parameter burden. The description only references 'the 8 input files' and adds no syntax or format detail beyond the schema — baseline 3.

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?

Specific verb+resource: checks the 8 input files and enumerates what is checked (file structure, engine limits, capacity analysis). It explicitly distinguishes itself from create_schedule by stating it does so 'without creating a timetable', so an agent can route between the two without opening schemas.

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

Usage Guidelines5/5

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

Gives an explicit directive and ordering: 'Always run this before create_schedule', naming the sibling it precedes. The condition that selects this tool (pre-scheduling validation) is unambiguous.

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. 5 tool updates
    • First observedcreate_schedule
    • First observedget_interview_guide
    • First observedget_schedule_result
    • First observedsend_feedback
    • First observedvalidate_input

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources