Skip to main content
Glama

line_course

Read-only

Linienverlauf: die Halte-Folge einer ÖPNV-LINIE und ihre gezeichnete Strecke für die Karte — „wo fährt die Y entlang", „welche X-Linien gibt es". Für Linien-Fragen: diese Auskunft, nicht das Allgemeinwissen. Pflicht ist EINES: query — Name/Nummer, wie ein Mensch sie schreibt ('Heide-Shuttle', 'HS 2'); ODER id aus einer früheren Antwort = GENAU EINE Linie. Sonst frag nach. Optional: area — der Ort, in dem die Linie fährt ('Hannover'; Dutzende Linien heißen '100'), limit (Default 8), render_payload, format. Die Antwort: je Fahrtrichtung ein Verlauf mit headsign, den halts als Namen und pathOnMap — der Strecke im Text, auf max. ~50 m vereinfacht; volle Auflösung: render_payload: true. Mehrdeutig: meint die Frage mehr Linien als eine Antwort ganz liest, kommt statt lines die Liste candidates (Nummer, Betreiber, Id) — ungezeichnet; dann den Ort erfragen oder mit id nachfassen. Grenzen: geometryDegraded: true heißt Luftlinien-Kette statt Straßenverlauf, note sagt es. Je Richtung EIN Fahrtmuster; ist patternsTotal größer, fährt sie üblicherweise so. matchedTotal über der Zahl der Linien heißt Ausschnitt. Unbekannter Ort: note sagt es, nichts wurde eingegrenzt. Nicht dafür: A→B (connections), Abfahrten (departures), Störungen (disruptions). Anleitung: get_usage_guide mit tool='line_course'. Anti-Fab: Linien, Halte, Reihenfolge, Strecke nur aus diesem Aufruf; findet sich keine, sag das.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoA line id out of an earlier answer (`"de:VBN-VH:6002:_3"`) — the one way to name exactly one line when a name means several.
areaNoThe town or city the line runs in (`"Hannover"`), where the user named one — the other way to make a line number mean ONE line. Beside `query`; no effect beside `id`, which already means one line.
limitNoMaximum number of lines, at least 1. Default 8, values above 15 are served as 15. Ignored beside `id`, which is one line.
queryNoLine name or number, as written on the vehicle or in the timetable (`"Heide-Shuttle"`, `"HS 2"`, `"U3"`). Matched against the beginning of both, without case and without separators.
formatNoAnswer serialisation: `"toon"` (default) or `"json"` — the detail is in `get_usage_guide`. **An agent leaves this out.**
render_payloadNo`true` appends the whole answer again, addressed to the user rather than to the model: the halts with their coordinates, and every course's line at the resolution it was drawn at rather than the simplified `pathOnMap` the text carries. For an application that needs the exact line; a client that draws the answer's own `pathOnMap` leaves this off.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A5/5.0
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint/destructiveHint annotations, the description discloses rich behavior: simplified pathOnMap at ~50m, render_payload for full resolution, geometryDegraded meaning, patternsTotal semantics, matchedTotal indicating an excerpt, note for unknown areas, candidate list on ambiguity, and a strong anti-fabrication directive. This exceeds what annotations alone provide.

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 long but highly structured with bold labels (Pflicht, Optional, Die Antwort, Mehrdeutig, Grenzen, Nicht dafür, Anleitung, Anti-Fab) and front-loads the core purpose. Every section earns its place by covering a distinct operational aspect of a complex tool, and the density is justified by the absence of an output schema and the large sibling set.

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?

Given six parameters, no output schema, and numerous sibling tools, the description is exceptionally complete: it covers required inputs, response shape, candidate handling, degraded geometry, limits, what the tool is not for, and anti-hallucination guidance. An agent has all the information needed to invoke it correctly and interpret results.

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?

Although schema coverage is 100%, the description adds substantial meaning: human-written query matching ('Heide-Shuttle', 'HS 2'), id from a previous answer being exactly one line, area disambiguating lines numbered '100', limit default 8 and capping at 15, and render_payload behavior. These details are not fully evident from the schema alone.

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 defines the tool as the line course of an ÖPNV line (stops sequence and drawn route) and distinguishes it from sibling tools by naming alternatives: A→B connections, departures, disruptions. It even gives example questions ('wo fährt die Y entlang', 'welche X-Linien gibt es'), so an agent can recognize when to select it.

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 explicitly states that for line questions this tool should be used rather than general knowledge, and it names excluded cases: connections, departures, disruptions. The mandatory query-or-id requirement, fallback instruction to ask when ambiguous, and pointer to get_usage_guide provide clear decision guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources