Skip to main content
Glama

Server Details

Real-time SF Muni departures, routes, alerts, vehicle positions, and schedules.

Status
Unhealthy
Last Tested
Transport
Streamable HTTP
URL
Repository
srivastsh/bay-area-transit-mcp
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 3.8/5 across 11 of 11 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool serves a clearly distinct purpose: alerts vs status summary, departures vs filtered departures, stop search vs nearby stops. Descriptions clarify any potential overlap, making misselection unlikely.

Naming Consistency4/5

Most tools follow the muni_<noun> pattern consistently, with transit_operators as the only outlier (justified by its broader scope). Snake_case is used throughout, maintaining readability.

Tool Count5/5

11 tools is well-scoped for a real-time transit server, covering routes, stops, departures, vehicles, schedules, and alerts without unnecessary bloat or thin coverage.

Completeness5/5

The surface covers the full lifecycle of transit information needs: discovering routes and stops, getting real-time departures and vehicle positions, schedules, alerts, and operator info. No obvious gaps for the stated purpose.

Available Tools

11 tools
muni_alertsMuni Service AlertsA
Read-only
Inspect

Get current Muni service alerts, detours, and disruptions.

Args:

  • operator_id: Optional (default 'SF')

ParametersJSON Schema
NameRequiredDescriptionDefault
operator_idNoOperator ID (default SF)SF
Behavior3/5

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

Annotations already confirm read-only, non-destructive behavior, so the description only needs to add extra context. It adds 'current' to indicate real-time data and mentions the categories (alerts, detours, disruptions), but it does not disclose response format, pagination, or rate limits. The minimal additions earn a baseline score.

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?

The description is very short and front-loaded with the core purpose. The 'Args' section is slightly redundant with the schema but is concise and does not distract. Each word earns its place, though the Args duplication costs a point.

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

Completeness3/5

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

This is a simple one-parameter read tool, and the description covers its core function. However, without an output schema, the description leaves the return format entirely unspecified. Adequate for basic use but lacks a clear picture of what the response contains.

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 100% for the single parameter operator_id, complete with default and description. The description repeats this information without adding new meaning. Baseline 3 is appropriate because the schema does the heavy lifting.

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 'Get current Muni service alerts, detours, and disruptions,' using a specific verb and resource. This distinguishes it from sibling tools like departures, schedules, and vehicles, though it may overlap with status summary. The purpose is unambiguous.

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 description implies usage when current alert information is needed, but it provides no explicit guidance on when to use this tool versus alternatives such as muni_status_summary. There is no exclusion or alternative naming, leaving usage largely inferred.

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

muni_departuresMuni Real-Time DeparturesB
Read-only
Inspect

Get real-time departure predictions for a Muni stop.

Args:

  • stop_code: The 5-digit stop code

  • operator_id: Optional (default 'SF')

ParametersJSON Schema
NameRequiredDescriptionDefault
stop_codeYesMuni stop code (e.g. '15731')
operator_idNoOperator ID (default SF)SF
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, which covers the safety profile. The description adds 'real-time' context, but it does not disclose additional behavioral traits such as response format, rate limits, or any side effects. Since the annotations provide the core safety information, this is adequate but not enriched.

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 concise, consisting of a single main sentence plus an argument list. It is front-loaded with the primary purpose and includes no extraneous phrasing. Every element serves a purpose, making it highly efficient.

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

Completeness3/5

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

The tool is simple with 2 parameters and no output schema, yet the description covers the core purpose and parameter meanings. However, it does not explain the structure of the departure predictions returned, nor does it mention any constraints or alternative use cases. This is adequate for a minimal viable description but leaves some gaps in context.

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% with both parameters already described. The description adds only that stop_code is '5-digit' and operator_id is 'Optional (default SF)', which are minor clarifications. With high schema coverage, the baseline is 3, and the description contributes minimal extra meaning.

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 'Get real-time departure predictions for a Muni stop' with a specific verb and resource, clearly indicating the tool's function. However, it does not explicitly distinguish itself from the sibling tool 'muni_departures_by_route_stop', which appears to offer a related but different departure lookup method.

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 use this tool versus alternatives like 'muni_departures_by_route_stop' or other Muni tools. It only implies usage by mentioning the stop_code argument, but there is no explicit context or exclusion criteria.

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

muni_departures_by_route_stopMuni Departures for Route at StopA
Read-only
Inspect

Get real-time departures at a stop filtered to one Muni route/line.

ParametersJSON Schema
NameRequiredDescriptionDefault
line_idYesRoute/line ID, e.g. N, 14, 38R
stop_codeYesMuni stop code
operator_idNoOperator ID (default SF)SF
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety profile is covered. The description adds 'real-time' which indicates dynamic data but does not provide additional behavioral context like response format, pagination, or rate limiting. No contradiction with annotations, but minimal added value.

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?

Single sentence that is front-loaded and to the point. No wasted words. Perfectly concise for the function described.

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 simple getter tool with no output schema, the description provides enough information to understand the core purpose. It does not describe return values, but the phrase 'real-time departures' is reasonably clear. With annotations covering safety and schema covering parameters, the description is complete enough for an agent to use confidently. Slight gap on output expectations, but not critical.

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%, with each parameter (line_id, stop_code, operator_id) having a description. The tool description does not add parameter details, but the baseline of 3 is appropriate because the schema carries the full burden and does so adequately.

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?

Description clearly states 'Get real-time departures at a stop filtered to one Muni route/line.' Uses specific verb ('get'), resource ('departures'), and condition ('filtered to one route/line'). This differentiates from sibling tool muni_departures, which likely provides unfiltered departures. Purpose is unambiguous.

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 description implies usage context (filtered to one route/line) and hints that this is distinct from other departure tools, but it does not explicitly name alternative tools or state when not to use this one. No exclusions or alternatives are mentioned, so guidance is implicit rather than explicit.

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

muni_lineMuni Line DetailsB
Read-onlyIdempotent
Inspect

Get details for a specific Muni line including stops.

Args:

  • line_id: Route/line ID (e.g. 'N', '14', '38R')

  • operator_id: Optional (default 'SF')

ParametersJSON Schema
NameRequiredDescriptionDefault
line_idYesMuni line/route ID
operator_idNoOperator ID (default SF)SF
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety traits. The description adds that the response includes stops, which is useful context about return content. However, it does not disclose any other behavioral aspects such as rate limits, ordering, or pagination, but given the annotations, the bar is lower and the added detail is meaningful.

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 exceptionally concise: one short sentence for the purpose followed by two arg bullets. It is front-loaded with the primary action and includes only necessary parameter details. Every word earns its place, with no filler or redundancy.

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

Completeness3/5

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

For a simple two-parameter, read-only tool, the description is adequate but has gaps. It says 'including stops' but does not describe the response structure, fields, or any other details that would be returned. Since there is no output schema, the description carries the responsibility of explaining the return value, and it only partially does so. Overall, it is sufficient for basic use but not fully complete.

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 input schema covers 100% of parameters with descriptions, so the baseline is 3. The description enhances this by providing concrete example values for line_id ('N', '14', '38R') and explicitly restating the optional nature and default of operator_id. This adds practical usage guidance beyond the schema's 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 clearly states that the tool retrieves details for a specific Muni line, with the verb 'Get' and resource 'specific Muni line'. It also mentions the inclusion of stops, which is a concrete detail. However, it does not differentiate from sibling tools like muni_routes or muni_schedule, relying mostly on the tool name for distinction.

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 use this tool versus alternatives. It does not mention scenarios, exclusions, or references to sibling tools such as muni_routes for listing all lines or muni_departures for real-time info. There is no implied or explicit usage context beyond the generic purpose.

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

muni_nearby_stopsNearby Muni StopsA
Read-onlyIdempotent
Inspect

Find Muni stops near a latitude/longitude point.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum stops to return
latitudeYesLatitude
longitudeYesLongitude
operator_idNoOperator ID (default SF)SF
radius_milesNoSearch radius in miles
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is well established. The description adds minimal context beyond the basic operation and does not mention defaults like radius_miles=0.25 or limit=10, but the annotations lower the bar for additional behavioral disclosure.

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 single, focused sentence with no wasted words. It immediately conveys the tool's purpose without repetition or padding.

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 simple geospatial lookup, the description is sufficient to understand the tool's role, and the schema fully documents parameters. No output schema exists, but the description's clarity, combined with rich annotations and param coverage, makes it complete enough for correct selection and invocation.

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?

Input schema covers 100% of parameters with descriptions (latitude, longitude, limit, radius_miles, operator_id). The description adds no extra parameter meaning beyond what the schema already provides, so the baseline score of 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?

The description 'Find Muni stops near a latitude/longitude point' clearly states the tool's verb (find), resource (Muni stops), and specific geospatial query method. This distinguishes it from sibling tools like muni_stop_search, which likely searches by name or identifier rather than coordinates.

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 description implies usage when coordinates are available but does not explicitly contrast with alternatives. There is no 'use this when...' or 'use muni_stop_search for text queries' guidance, leaving the agent to infer the appropriate context from the tool's name and description.

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

muni_routesList Muni RoutesA
Read-onlyIdempotent
Inspect

List all SF Muni routes (bus, rail, cable car).

Args:

  • operator_id: Optional operator ID (default 'SF' for Muni)

ParametersJSON Schema
NameRequiredDescriptionDefault
operator_idNoOperator ID (default SF)SF
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read operation. The description adds the scope ('all') and the mode types, but beyond that it discloses no additional behavioral details such as pagination or data freshness. With annotations covering the safety profile, this is acceptable but not rich.

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: two sentences. The first sentence front-loads the core action and purpose, while the second documents the optional parameter. Every word earns its place, though the Args line is somewhat redundant with the schema, it is still efficient and well-structured.

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 simple list tool with one optional parameter and no output schema, the description provides sufficient context. It specifies the scope and default operator, but does not detail what fields the returned routes will contain. Given the low complexity and annotations that cover safety, the description is nearly complete, though a note about return structure would make it fully comprehensive.

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?

The schema has 100% coverage for the single parameter, including a default value and description. The tool's Args section essentially repeats the schema's parameter description without adding extra semantic meaning, so it does not elevate beyond the baseline of 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?

The description clearly states the verb ('List') and resource ('all SF Muni routes'), with a parenthetical clarifying the modes (bus, rail, cable car). This distinguishes it from sibling tools like muni_departures or muni_schedule, which handle different aspects of transit data.

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 implies the tool should be used when a complete list of Muni routes is needed, but it does not explicitly provide when-not-to-use conditions or mention alternative tools. Given the clear purpose, the context is adequate, though exclusions or alternatives would strengthen it.

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

muni_scheduleMuni TimetableA
Read-onlyIdempotent
Inspect

Get the timetable/schedule for a specific Muni line.

Args:

  • line_id: Route/line ID (e.g. 'N', '14', '38R')

  • operator_id: Optional (default 'SF')

ParametersJSON Schema
NameRequiredDescriptionDefault
line_idYesMuni line/route ID
operator_idNoOperator ID (default SF)SF
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds the scope constraint 'specific Muni line' and parameter examples, but does not disclose additional behaviors like error handling, return format, or data source limitations.

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 single opening sentence followed by a concise Args list. It is front-loaded with the action and resource, and every word contributes meaning. No redundant or vague language.

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?

The tool is simple with only two parameters and strong annotations, so the description's brevity is acceptable. However, it does not explain the return format or behavior for invalid line IDs. Given the low complexity and good annotations, it is adequately complete but not exhaustive.

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% with descriptions for both parameters. The description adds value by providing concrete examples for line_id (e.g., 'N', '14', '38R') and explicitly stating the default for operator_id, which goes beyond the schema's basic 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 clearly states the action 'Get' and the resource 'timetable/schedule for a specific Muni line', which is specific and distinct from sibling tools like real-time departures or route listings. It avoids tautology and gives a concrete idea of what the tool does.

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 use this tool versus alternatives such as muni_departures or muni_routes. There is no 'use when' or 'instead of' language, leaving the agent to infer usage from the tool name and description.

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

muni_status_summaryMuni Status SummaryA
Read-only
Inspect

Summarize current Muni service status from 511 service alerts.

ParametersJSON Schema
NameRequiredDescriptionDefault
operator_idNoOperator ID (default SF)SF
Behavior3/5

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

Annotations already indicate read-only and non-destructive behavior. The description adds context that the summary is current and sourced from 511 service alerts, but does not disclose output format, update frequency, or any additional behavioral traits. With annotations covering safety, the description provides a modest enhancement.

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 single, clear sentence with no extraneous information. It is well-structured and front-loaded, effectively communicating the tool's core function.

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

Completeness3/5

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

The tool is simple with one optional parameter and clear purpose, but the lack of an output schema means the description should explain the form of the summary; it does not clarify whether the output is plain text, structured data, or what statuses are included. Still, the description is minimally adequate for a simple tool.

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?

The schema fully documents the single parameter (operator_id) with a default and description, achieving 100% coverage. The tool description adds no additional parameter semantics, so the baseline score of 3 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 'summarize' and identifies the resource ('current Muni service status') and source ('511 service alerts'). This clearly distinguishes it from sibling tools like muni_alerts, which likely provide raw alerts rather than a summary.

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 description implies the tool is used for obtaining a high-level status summary, but it offers no explicit guidance on when to choose it over alternatives such as muni_alerts or muni_departures. No exclusions or alternative references are provided, yet the intended usage is reasonably inferred.

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

muni_vehiclesMuni Vehicle PositionsA
Read-only
Inspect

Get real-time GPS positions of Muni vehicles.

Args:

  • operator_id: Optional (default 'SF')

ParametersJSON Schema
NameRequiredDescriptionDefault
operator_idNoOperator ID (default SF)SF
Behavior3/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the 'real-time' and 'GPS' context, which gives useful behavioral insight beyond annotations, but it does not disclose rate limits, data freshness, or response structure. 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?

The description is extremely concise, using two short sentences. It front-loads the core purpose and then lists the parameter. Every sentence earns its place with no filler or redundancy.

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 simple tool with one optional parameter and no output schema, the description gives enough context to understand what the tool does (fetch live GPS positions). However, because there is no output schema, it could benefit from briefly noting the return format (e.g., a list of vehicles with coordinates), but the core functionality is clear.

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 single parameter operator_id is already well-documented. The description repeats 'Optional (default SF)' which matches the schema's default property, adding no new semantic meaning. Baseline 3 is appropriate since the schema carries the parameter documentation.

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 'Get real-time GPS positions of Muni vehicles', which specifies the verb (get), resource (real-time GPS positions), and scope (Muni vehicles). This unambiguously distinguishes it from sibling tools like muni_departures or muni_routes, which deal with schedules and routes, not live vehicle positions.

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 purpose makes it implied that this tool should be used when the agent needs current Muni vehicle locations, but there is no explicit guidance on when to use this versus alternatives (e.g., muni_status_summary) or exclusions for non-Muni operators. No alternative tools are named.

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

transit_operatorsList 511 Transit OperatorsA
Read-onlyIdempotent
Inspect

List all transit operators available in the 511 API (BART, Muni, Caltrain, AC Transit, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that this is a list of operators available in the 511 API, but does not disclose behavior like return format or pagination, which is acceptable given the tool's simplicity.

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 single, front-loaded sentence that includes the verb, resource, and examples. Every word contributes to understanding the tool's purpose, with no wasted language.

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 rich annotations, the description is sufficient. It explains what the tool returns (all transit operators) and the scope (511 API), and the lack of output schema is mitigated by the simplicity of the 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?

There are no parameters, and the schema coverage is 100% (empty properties). The description does not need to explain parameter semantics, and the baseline for 0 parameters is 4. No additional parameter information is required.

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 the specific verb 'List' with the resource 'all transit operators available in the 511 API', clearly stating the tool's function. It distinguishes itself from the Muni-specific sibling tools by emphasizing the comprehensive scope, supported by examples of multiple operators.

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 that this is the broad, cross-operator listing tool, implicitly differentiating it from the Muni-only siblings. However, it does not explicitly state when to choose this tool over alternatives or mention exclusions, leaving some room for interpretation.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.