SF Muni Real-Time Transit
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.
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.
Tool Definition Quality
Average 3.7/5 across 8 of 8 tools scored.
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.
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.
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.
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 toolsmuni_alertsMuni Service AlertsARead-onlyInspect
Get current Muni service alerts, detours, and disruptions.
Args:
operator_id: Optional (default 'SF')
| Name | Required | Description | Default |
|---|---|---|---|
| operator_id | No | Operator ID (default SF) | SF |
Tool Definition Quality
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.
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.
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.
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.
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.
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 DeparturesARead-onlyInspect
Get real-time departure predictions for a Muni stop.
Args:
stop_code: The 5-digit stop code
operator_id: Optional (default 'SF')
| Name | Required | Description | Default |
|---|---|---|---|
| stop_code | Yes | Muni stop code (e.g. '15731') | |
| operator_id | No | Operator ID (default SF) | SF |
Tool Definition Quality
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.
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.
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.
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.
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.
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 StopARead-onlyInspect
Get real-time departures at a stop filtered to one Muni route/line.
| Name | Required | Description | Default |
|---|---|---|---|
| line_id | Yes | Route/line ID, e.g. N, 14, 38R | |
| stop_code | Yes | Muni stop code | |
| operator_id | No | Operator ID (default SF) | SF |
Tool Definition Quality
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.
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.
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.
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.
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.
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 DetailsARead-onlyIdempotentInspect
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')
| Name | Required | Description | Default |
|---|---|---|---|
| line_id | Yes | Muni line/route ID | |
| operator_id | No | Operator ID (default SF) | SF |
Tool Definition Quality
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.
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.
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.
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.
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.
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 StopsARead-onlyIdempotentInspect
Find Muni stops near a latitude/longitude point.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum stops to return | |
| latitude | Yes | Latitude | |
| longitude | Yes | Longitude | |
| operator_id | No | Operator ID (default SF) | SF |
| radius_miles | No | Search radius in miles |
Tool Definition Quality
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.
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.
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.
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.
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.
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 RoutesBRead-onlyIdempotentInspect
List all SF Muni routes (bus, rail, cable car).
Args:
operator_id: Optional operator ID (default 'SF' for Muni)
| Name | Required | Description | Default |
|---|---|---|---|
| operator_id | No | Operator ID (default SF) | SF |
Tool Definition Quality
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.
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.
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.
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.
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.
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 TimetableARead-onlyIdempotentInspect
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')
| Name | Required | Description | Default |
|---|---|---|---|
| line_id | Yes | Muni line/route ID | |
| operator_id | No | Operator ID (default SF) | SF |
Tool Definition Quality
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.
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.
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.
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.
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.
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 SummaryARead-onlyInspect
Summarize current Muni service status from 511 service alerts.
| Name | Required | Description | Default |
|---|---|---|---|
| operator_id | No | Operator ID (default SF) | SF |
Tool Definition Quality
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.
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.
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.
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.
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.
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_stop_searchFind Muni StopsARead-onlyIdempotentInspect
Search Muni stops by stop name, stop code, or route. Use this before muni_departures if you do not know the stop code.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matches to return | |
| query | Yes | Stop name, intersection, or stop code, e.g. Duboce, Van Ness, 15731 | |
| line_id | No | Optional route/line filter, e.g. N, 14, 38R | |
| operator_id | No | Operator ID (default SF) | SF |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds no further behavioral details beyond the purpose, such as response structure or sorting, but does not 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with only two sentences: the first states the core function, and the second provides practical usage guidance. Every word earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with full schema coverage and comprehensive annotations, the description covers essential context. While it lacks mention of output fields or result ordering, these are not critical for a basic search operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with descriptions for all parameters. The description reinforces the purpose of query and line_id but adds no new semantic information beyond what the schema already provides, meriting a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: searching Muni stops by name, code, or route. It also distinguishes itself from sibling tool muni_departures by indicating its prerequisite use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises to use this tool before muni_departures when the stop code is unknown, providing clear context for when to use it. However, it does not explicitly state when not to use it or mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
muni_vehiclesMuni Vehicle PositionsCRead-onlyInspect
Get real-time GPS positions of Muni vehicles.
Args:
operator_id: Optional (default 'SF')
| Name | Required | Description | Default |
|---|---|---|---|
| operator_id | No | Operator ID (default SF) | SF |
Tool Definition Quality
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.
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.
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.
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.
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.
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 OperatorsARead-onlyIdempotentInspect
List all transit operators available in the 511 API (BART, Muni, Caltrain, AC Transit, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
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.
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.
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.
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.
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.
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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!