Skip to main content
Glama

Server Details

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

Status
Healthy
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.7/5 across 8 of 8 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: alerts for disruptions, departures for stop predictions, line for route details, map for visualization, routes for listing, schedule for timetables, vehicles for GPS positions, and operators for listing transit agencies. The descriptions make it easy to distinguish between tools like muni_line (static details) and muni_schedule (timetable), preventing misselection.

Naming Consistency5/5

The naming follows a highly consistent pattern: all tools start with 'muni_' except transit_operators, which logically fits as it covers multiple operators. The naming is uniform (snake_case throughout) and descriptive, with clear prefixes indicating the domain (e.g., muni_alerts, muni_departures). This predictability aids agent selection.

Tool Count5/5

With 8 tools, the count is well-scoped for a real-time transit server, covering key aspects like alerts, departures, routes, schedules, and vehicle tracking. Each tool earns its place by addressing a specific need, avoiding bloat while providing comprehensive coverage for common transit queries.

Completeness5/5

The tool set offers complete coverage for real-time transit data: it includes real-time elements (alerts, departures, vehicles), static information (lines, routes, schedules), and auxiliary functions (map, operators). There are no obvious gaps; agents can handle typical transit workflows from planning trips to monitoring disruptions.

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 indicate readOnlyHint=true and destructiveHint=false, establishing safety. The description adds no additional behavioral context (e.g., pagination, rate limits, or response structure). With annotations covering safety, a baseline score of 3 is appropriate.

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 with no superfluous words. The key information is front-loaded in the first sentence.

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?

Despite lacking an output schema, the description clearly states the type of information returned (alerts, detours, disruptions). For a simple read-only tool with one optional parameter, this is sufficiently complete.

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% (operator_id described as 'Operator ID (default SF)'). The tool description merely repeats this information without adding further semantic value, so a score of 3 is warranted.

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 action verb 'Get' and the resource 'current Muni service alerts, detours, and disruptions' are specific and clearly state the tool's function. It is distinct from sibling tools like muni_departures or muni_routes, which deal with different data.

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 use for retrieving current alerts but provides no explicit guidance on when to use this tool versus alternatives such as muni_status_summary or muni_schedule. The purpose is clear, but usage context is not explicitly addressed.

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 DeparturesA
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 (readOnlyHint=true, destructiveHint=false) already indicate safe read behavior. The description does not add behavioral context beyond what annotations provide, nor does it contradict them.

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?

Purpose is front-loaded in the first sentence. Parameter list is present but could be omitted given schema coverage. No wasted sentences, but the param section adds little value.

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

Completeness4/5

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

Given low complexity (2 params, 1 required), annotations covering safety, and no output schema, the description covers the purpose and key parameters. It lacks return format info, but that is often acceptable for simple tools.

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%, so baseline is 3. The description repeats schema info (stop_code as 5-digit, operator_id default SF) without adding new meaning or clarifying usage beyond schema.

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

Purpose5/5

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

The description explicitly states 'Get real-time departure predictions for a Muni stop' (verb+resource+scope). This clearly distinguishes it from siblings like muni_schedule (schedule vs real-time) and muni_departures_by_route_stop (different filtering).

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 for real-time departures but does not explicitly state when to use vs alternatives or provide when-not conditions. No exclusions or alternative tool mentions are given, though sibling context is available.

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 openWorldHint=true, so description adds limited behavioral context beyond 'real-time'. Does not disclose behavior for invalid inputs or empty results. Bar is lower due to annotations, but still minimal additional value.

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?

Single sentence, no wasted words. However, could be more informative without significant length increase. Good structure but slightly under-specified.

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?

Parameters well-documented in schema, annotations sufficient for safety profile. Missing output schema, but for a simple retrieval tool, context is mostly adequate. Sibling tools provide clarity on specialization.

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 clear parameter descriptions (e.g., line_id examples, operator_id default). Description adds no semantic value beyond the schema; baseline 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?

Description clearly states verb 'get', resource 'real-time departures', and filtering criteria ('at a stop filtered to one Muni route/line'). Distinguishes well from sibling tools like muni_departures (likely all routes) and muni_line.

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?

Description implies usage context (filtered to one route) but does not explicitly state when to use this tool versus alternatives like muni_departures for all routes. No when-not or alternative guidance provided.

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

muni_lineMuni Line DetailsA
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
Behavior4/5

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

Annotations provide readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=true, indicating safe, non-destructive, cacheable operations. The description adds context by specifying that it includes 'stops' in the details, which is useful behavioral information not covered by annotations. It does not contradict annotations, as 'Get' aligns with read-only behavior.

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

Conciseness5/5

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

The description is front-loaded with the core purpose in the first sentence, followed by a concise Args section. Every sentence earns its place by providing essential information without waste, making it 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?

Given the tool's low complexity (2 parameters, no output schema), rich annotations (covering safety and behavior), and high schema coverage, the description is mostly complete. It specifies what details are included (stops) and provides parameter examples. However, it could improve by mentioning output format or limitations, but annotations help compensate.

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 clear descriptions for line_id and operator_id. The description adds minimal value beyond the schema by providing an example ('e.g. 'N', '14', '38R'') for line_id, which is helpful but not extensive. Since the schema already covers parameters well, 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 clearly states the verb 'Get' and the resource 'details for a specific Muni line including stops', which is specific and distinguishes it from siblings like muni_alerts (alerts), muni_departures (real-time departures), and muni_routes (list of routes). It precisely defines 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 Guidelines3/5

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

The description implies usage by specifying 'details for a specific Muni line', suggesting it's for retrieving information about a particular line rather than lists or real-time data. However, it does not explicitly state when to use this tool versus alternatives like muni_routes (which might list lines) or muni_map (which might show visual data), leaving some ambiguity.

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 no destructive behavior. The description adds no extra behavioral context beyond the basic function, such as handling of missing stops or performance.

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 with no redundant information, efficiently conveying the tool's purpose.

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?

While the description is adequate given the 100% schema coverage and annotations, it lacks details about output format, sorting, or special behaviors like radius defaults, which would improve completeness.

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% with descriptions for all 5 parameters. The tool description adds no additional meaning beyond what the input schema already provides, meeting baseline.

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 verb (find) and resource (Muni stops), and distinguishes from sibling tools like muni_stop_search which likely uses text searches.

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 for location-based queries but does not explicitly indicate when to use this tool versus alternatives like muni_stop_search, leaving usage guidance ambiguous.

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

muni_routesList Muni RoutesB
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, destructiveHint=false, openWorldHint=true, and idempotentHint=true, covering safety and idempotency. The description adds no behavioral context beyond what annotations provide, such as rate limits, authentication needs, or pagination behavior, but doesn't contradict annotations.

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

Conciseness4/5

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

The description is appropriately sized with two sentences: one stating the purpose and one explaining the parameter. It's front-loaded with the core functionality, though the parameter note could be integrated more seamlessly.

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?

Given the tool's low complexity (one optional parameter), rich annotations covering safety and behavior, and no output schema, the description is minimally adequate. However, it lacks details on output format (e.g., list structure, fields) and doesn't leverage context to explain sibling tool distinctions, leaving gaps for agent usage.

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 the parameter 'operator_id' fully documented in the schema. The description repeats the default value ('SF') but adds no additional meaning, syntax, or format details beyond what the schema provides, meeting the baseline for high coverage.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('all SF Muni routes') with specific scope ('bus, rail, cable car'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'muni_line' or 'transit_operators', which might also list route-related information.

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_line' (which might get details for a specific route) or 'transit_operators' (which might list operators). It only includes a default parameter note, not usage context or exclusions.

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
Behavior4/5

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

Annotations already indicate read-only, non-destructive, idempotent, and open-world behavior. The description adds context by specifying it retrieves a 'timetable/schedule,' which implies static schedule data rather than real-time updates, but doesn't detail rate limits, auth needs, or exact return format. It aligns with annotations without contradiction.

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

Conciseness5/5

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

The description is front-loaded with the core purpose in the first sentence, followed by a concise Args section. Every sentence earns its place by clarifying parameters without redundancy, making it 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?

Given the tool's low complexity, rich annotations (covering safety and behavior), and 100% schema coverage, the description is mostly complete. However, without an output schema, it doesn't explain return values (e.g., schedule format), leaving a minor gap in contextual understanding.

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 clear parameter documentation. The description adds minimal value beyond the schema, providing examples for line_id (e.g., 'N', '14', '38R') and noting operator_id is optional with a default. This meets the baseline for high schema coverage.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('timetable/schedule for a specific Muni line'), distinguishing it from siblings like muni_alerts (alerts), muni_departures (real-time departures), and muni_routes (route lists). It precisely defines what information is retrieved.

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 by specifying it's for a 'specific Muni line,' but it doesn't explicitly state when to use this tool versus alternatives like muni_departures (for real-time data) or muni_routes (for route metadata). No exclusions or clear alternatives are provided, leaving some ambiguity.

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 declare readOnlyHint and openWorldHint. The description adds the data source (511 service alerts), which is useful but does not disclose additional behavioral traits like output format or content scope beyond the summary.

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 a single concise sentence that conveys the core function without extraneous words. It could be slightly expanded to clarify output, but is efficient.

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

Completeness4/5

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

Given the simple parameter set and annotations, the description provides adequate context for an agent to understand the tool's purpose. It lacks output format details, but the summary nature is implied.

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 single parameter (operator_id) is fully described in the input schema with a default. The tool description does not add further meaning, so 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 clearly states the tool summarizes current Muni service status from 511 service alerts, using a specific verb and resource. The name and title are aligned. Among siblings like muni_alerts, this summary tool is distinct.

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 for obtaining an aggregate summary, but does not explicitly state when to prefer this over muni_alerts or other alternatives. No when-not-to-use guidance is provided.

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

muni_vehiclesMuni Vehicle PositionsC
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 already declare readOnlyHint=true, openWorldHint=true. Description adds 'real-time GPS positions' implying dynamic data. No contradictions, but no additional behavioral details like rate limits or data freshness.

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

Conciseness3/5

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

The description is very short with a single sentence and a bullet. It is concise but lacks structure or front-loading of key information.

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

Completeness2/5

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

For a simple tool with no output schema, the description omits return format or what happens with default operator_id. This leaves the agent without enough context for proper 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?

Schema coverage is 100% with one parameter fully described. The description does not add meaning beyond the schema, maintaining the baseline score.

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 it gets real-time GPS positions of Muni vehicles, using a specific verb and resource. It distinguishes from siblings like alerts or departures, but does not specify if all vehicles are returned.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like muni_departures or muni_status_summary. The description only mentions an optional operator_id parameter without explaining context.

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

Behavior4/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=true, covering safety and idempotency. The description adds value by specifying the scope ('all transit operators') and examples, which helps the agent understand the breadth of data returned, though it doesn't disclose additional behavioral traits like rate limits or response format.

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, efficient sentence that front-loads the purpose ('List all transit operators') and provides helpful examples without any wasted words. It's appropriately sized and structured for a simple tool.

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

Completeness4/5

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

Given the tool's simplicity (0 parameters, no output schema) and rich annotations, the description is complete enough by stating what it does and providing examples. However, it could slightly improve by mentioning the lack of filtering or the response structure, though annotations cover key behavioral aspects.

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 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately focuses on the tool's purpose without redundant parameter info, earning a high baseline score for this dimension.

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 the resource 'transit operators available in the 511 API', with specific examples (BART, Muni, Caltrain, AC Transit) that help distinguish it from sibling tools focused on Muni-specific operations. It's specific and immediately tells 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 Guidelines4/5

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

The description implies usage context by mentioning '511 API' and listing examples, which suggests this tool is for retrieving a broad set of operators rather than Muni-specific data. However, it does not explicitly state when to use this vs. the sibling tools (e.g., for general operator info vs. Muni-specific details), so it lacks explicit alternatives or exclusions.

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!

Try in Browser

Your Connectors

Sign in to create a connector for this server.