Skip to main content
Glama
nhannpl

Winnipeg City MCP Server

by nhannpl

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation4/5

    Most tools have distinct purposes, but 'plan_journey', 'plan_timed_itinerary', and 'plan_trip' could cause confusion due to overlapping trip-planning functionality. Their descriptions clarify differences (multi-stop vs. timed itinerary vs. point-to-point), but an agent might initially misselect without careful reading.

    Naming Consistency4/5

    Tool names follow a consistent verb_noun pattern throughout (e.g., 'find_stops_near', 'get_bus_arrivals'), with only minor deviations like 'plan_timed_itinerary' being slightly longer. The naming is predictable and readable, supporting easy identification.

    Tool Count5/5

    With 8 tools, the count is well-scoped for a city transit and services server. Each tool addresses a specific aspect of Winnipeg's public services (e.g., transit stops, arrivals, journeys, neighborhoods, 311 issues), avoiding bloat while covering core functionalities.

    Completeness4/5

    The toolset provides strong coverage for transit planning, real-time arrivals, and neighborhood/311 services, with no major gaps in core workflows. Minor gaps might include lack of tools for transit alerts or detailed neighborhood demographics, but agents can work effectively with the available tools.

  • Average 3.3/5 across 8 of 8 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It mentions combining bus arrivals and weather, which hints at data aggregation, but lacks details on behavioral traits such as rate limits, authentication needs, error handling, or whether it's read-only or has side effects. The description adds minimal context beyond the basic function.

    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 concise and front-loaded, with the core purpose stated first in two sentences. The second sentence adds helpful context without being verbose. However, the lack of parameter information slightly reduces efficiency, as it could integrate key details 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 moderate complexity (one parameter) and the presence of an output schema (which handles return values), the description is somewhat complete for basic understanding. However, with no annotations and low parameter coverage, it lacks sufficient detail on usage scenarios, behavioral aspects, and parameter meaning, making it only minimally adequate.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate for parameter documentation. It does not mention the 'stop_number' parameter at all, offering no semantic context beyond what the schema provides. This leaves the parameter's purpose and usage unclear, failing to add value.

    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 tool's purpose: 'Get bus arrivals combined with current weather conditions.' It specifies the verb ('Get') and resources ('bus arrivals' and 'weather conditions'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_bus_arrivals'—the addition of weather is implied but not contrasted.

    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?

    Usage is implied through the example scenario ('deciding if you need a parka or just a light jacket while waiting'), suggesting it's for commute planning with weather considerations. No explicit guidance on when to use this tool versus alternatives like 'get_bus_arrivals' or 'plan_journey' is 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.

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions optimization ('optimized the visit order (TSP) starting from the first stop') and optional date/time parameters, but it doesn't cover critical aspects like permissions, rate limits, error handling, or what the output contains. For a planning tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

    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 and front-loaded, starting with the core purpose followed by parameter details. Each sentence adds value without redundancy. However, the formatting with 'Args:' and bullet-like points is slightly informal, and it could be more structured for clarity, preventing a perfect score.

    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 complexity (planning multi-stop journeys) and the presence of an output schema, the description is minimally adequate. It covers the basic purpose and parameters but lacks behavioral context (e.g., how optimization works in practice) and doesn't leverage the output schema to explain return values. With no annotations and moderate parameter coverage, it meets baseline completeness but has clear gaps.

    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 description adds substantial meaning beyond the input schema, which has 0% description coverage. It explains that 'stops' are 'List of locations (plain text, stop numbers, or formatted keys)', clarifies that 'optimize' uses 'TSP' and starts from the first stop, and notes that 'date' and 'time' are optional with format examples. This compensates well for the schema's lack of descriptions, though it could be more detailed on parameter interactions.

    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 tool's purpose: 'Plan a multi-stop journey (A -> B -> C ...).' It specifies the verb ('Plan') and resource ('multi-stop journey'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'plan_trip' or 'plan_timed_itinerary', which prevents a perfect score.

    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 doesn't mention sibling tools like 'plan_trip' or 'plan_timed_itinerary', nor does it specify prerequisites or exclusions. The only implied usage is for multi-stop journeys, but without explicit comparisons, this is insufficient.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'optimized itinerary' but doesn't explain what optimization entails (e.g., time, cost, distance), whether it's read-only or mutative, error handling, rate limits, or authentication needs. The note about 'Stay times for the LAST stop are ignored' is a useful behavioral detail, but overall disclosure is minimal for a planning tool.

    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 and front-loaded, with the core purpose stated first, followed by parameter details. The 'Args:' section is structured but could be more concise (e.g., combining format details). Every sentence adds value, though minor trimming is possible.

    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 complexity (planning tool with 3 parameters, 0% schema coverage, no annotations, but with an output schema), the description is moderately complete. It covers parameter semantics well but lacks behavioral transparency and usage guidelines. The output schema existence means return values needn't be explained, but other gaps remain for effective tool use.

    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 description coverage is 0%, so the description must compensate. It adds significant meaning beyond the schema by detailing the structure of 'stops_config' (list of dictionaries with 'location', 'min_stay', 'max_stay' keys), clarifying that the first stop is the origin, and specifying date/time formats. However, it doesn't explain the 'additionalProperties' in the schema or the nullable/default behavior of 'start_date' and 'start_time'.

    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 tool's purpose: 'Plan an optimized itinerary with specific stay durations at each stop.' It specifies the verb ('plan'), resource ('itinerary'), and key constraint ('with specific stay durations'), distinguishing it from siblings like 'plan_journey' or 'plan_trip' that lack duration specifications. However, it doesn't explicitly contrast with all siblings, such as 'get_bus_arrivals' or 'search_311_issues', which are clearly different.

    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 doesn't mention sibling tools like 'plan_journey' or 'plan_trip', nor does it specify prerequisites, exclusions, or contextual cues for selection. The only implied usage is for itinerary planning with stay durations, but this is redundant with purpose clarity.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It mentions 'recent' service requests, hinting at temporal filtering, but doesn't disclose key behaviors like pagination, rate limits, authentication needs, error handling, or what 'recent' means. This leaves significant gaps for an agent to use it correctly.

    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 with zero waste. It front-loads the key action and scope, making it easy to parse quickly. Every word contributes directly to understanding 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?

    Given 1 parameter with 0% schema coverage and no annotations, but with an output schema (which handles return values), the description is minimally adequate. It covers the core purpose and parameter context but lacks behavioral details and usage guidance, making it incomplete for safe and effective use.

    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 0%, so the description must compensate. It adds meaning by specifying that the 'neighborhood' parameter is for Winnipeg and relates to 311 service requests, but doesn't provide format examples, valid values, or constraints beyond what's implied. This partially compensates but leaves ambiguity.

    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 action ('Search for') and resource ('311 service requests'), with geographic scope ('Winnipeg neighborhood') and temporal qualifier ('recent'). It distinguishes from siblings by focusing on 311 issues rather than transit or planning tools, though it doesn't explicitly contrast with them.

    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 is provided on when to use this tool versus alternatives. The description implies usage for 311 service requests in Winnipeg neighborhoods, but it doesn't mention prerequisites, when not to use it, or how it differs from potential similar tools (none listed as siblings).

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It explains how 'origin' and 'destination' arguments are resolved (via OSM for addresses/landmarks, stop numbers, or formatted keys), which adds useful context. However, it doesn't cover other behavioral aspects like error handling, rate limits, authentication needs, or what the output contains (though an output schema exists).

    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 highly concise and well-structured. The first sentence states the purpose clearly, followed by a bulleted list explaining argument formats. Every sentence earns its place, with no redundant or vague language, making it easy to scan and understand.

    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 moderate complexity (5 parameters, no annotations, but with an output schema), the description is partially complete. It thoroughly explains 'origin' and 'destination' but omits details on 'mode', 'date', and 'time'. The output schema likely covers return values, so that gap is acceptable. However, for a planning tool with siblings, more usage context would improve completeness.

    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 description adds significant meaning for 'origin' and 'destination' parameters, detailing acceptable formats (plain text addresses, stop numbers, formatted keys) and resolution methods (OSM). This compensates for the 0% schema description coverage. It doesn't address 'mode', 'date', or 'time', but with 5 total parameters and 2 well-documented, it provides substantial value beyond the bare schema.

    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 tool's purpose: 'Plan a trip between two points using Winnipeg Transit.' It specifies the verb ('plan'), resource ('trip'), and service provider ('Winnipeg Transit'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like 'plan_journey' or 'plan_timed_itinerary', which appear related.

    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 doesn't mention sibling tools like 'plan_journey' or 'plan_timed_itinerary', nor does it specify prerequisites, constraints, or typical use cases. The agent must infer usage from the tool name and description alone.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool provides 'real-time' data, which implies freshness and potential rate limits or API constraints, but doesn't elaborate on these aspects. It doesn't mention error handling, authentication needs, data format, or whether the operation is read-only (though implied by 'get'). More context on behavioral traits would help the agent.

    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 core purpose. Every word earns its place: 'Get' (action), 'real-time bus arrivals' (what's retrieved), 'for a specific Winnipeg Transit stop number' (context and parameter). There's no redundancy or unnecessary elaboration, making it highly concise 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 (1 parameter, no nested objects) and the presence of an output schema (which handles return values), the description is reasonably complete. It covers the essential purpose and parameter context. However, it lacks usage guidelines and behavioral details that would make it fully comprehensive, especially with no annotations to supplement it.

    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 description coverage is 0%, so the description must compensate. It adds meaning by specifying that 'stop_number' refers to a 'Winnipeg Transit stop number', which clarifies the parameter's domain beyond just being an integer. However, it doesn't provide examples, valid ranges, or format details (e.g., typical stop number length), leaving gaps in parameter understanding.

    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 specific action ('Get real-time bus arrivals'), identifies the resource ('Winnipeg Transit stop number'), and distinguishes from siblings like 'find_stops_near' (which finds stops) or 'plan_trip' (which plans journeys). It uses precise language that leaves no ambiguity about the tool's function.

    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 doesn't mention prerequisites (e.g., needing a valid stop number), exclusions (e.g., not for historical data), or comparisons to siblings like 'plan_journey' or 'get_commute_status'. The agent must infer usage context solely 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.

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'recent 311 activity,' which hints at data recency, but doesn't specify what 'recent' means, how the list is structured, if there are rate limits, or any error conditions. This leaves significant gaps in understanding the tool's behavior beyond basic functionality.

    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 highly concise and front-loaded, with two sentences that directly state the purpose and parameter usage without any wasted words. Each sentence adds clear value, making it easy to scan and understand quickly.

    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) and the presence of an output schema, the description is adequate for basic use. However, without annotations and with gaps in behavioral details (e.g., definition of 'recent'), it doesn't fully prepare the agent for edge cases or advanced scenarios, though the output schema may cover return values.

    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 description adds meaningful context for the single parameter 'search_term' by providing an example ('e.g., 'Fort'') and clarifying it's optional, which helps interpret its use. Since schema description coverage is 0% and there's only one parameter, this compensates well, though it doesn't detail format constraints beyond the example.

    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 tool's purpose: 'Get a list of Winnipeg neighborhoods that have had recent 311 activity.' It specifies the verb ('Get'), resource ('Winnipeg neighborhoods'), and scope ('recent 311 activity'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'search_311_issues', which might also involve 311 data, leaving room for minor ambiguity.

    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 provides some implied usage guidance by mentioning the optional 'search_term' filter, suggesting it can be used for targeted queries. However, it lacks explicit guidance on when to use this tool versus alternatives like 'search_311_issues' or other siblings, and doesn't specify prerequisites or exclusions, leaving the agent to infer context.

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

  • Behavior4/5

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

    Since no annotations are provided, the description carries the full burden. It discloses key behavioral traits: the distance cap ('Distance is capped at 2000 meters') and efficiency consideration ('to allow efficient querying'). However, it does not mention other potential behaviors like rate limits, authentication needs, or error handling, which could be relevant for a search tool.

    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 appropriately sized and front-loaded, with the core purpose stated first, followed by usage context and a behavioral note. Each sentence adds value without redundancy, making it efficient and easy to parse for an AI agent.

    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 moderate complexity (3 parameters, no annotations, but with an output schema), the description is mostly complete. It covers purpose, usage, and a key behavioral constraint. Since an output schema exists, it need not explain return values, but it could benefit from mentioning prerequisites (e.g., coordinate format) or error cases to be fully comprehensive.

    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?

    With schema description coverage at 0%, the description must compensate. It adds meaning by explaining that parameters are for 'a specific geographic coordinate' and that distance is 'capped at 2000 meters,' which clarifies the purpose of lat, lon, and distance_meters beyond their schema titles. However, it does not detail the units or constraints for lat/lon (e.g., valid ranges) or the default value for distance_meters.

    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: 'Search for bus stops near a specific geographic coordinate.' It specifies the verb ('Search'), resource ('bus stops'), and context ('near a specific geographic coordinate'), distinguishing it from siblings like get_bus_arrivals or plan_journey. The additional note about obtaining stop IDs further clarifies the output intent.

    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 for when to use this tool: 'Useful when you know the location (e.g. from a user's known lat/lon) but need stop IDs.' However, it does not explicitly state when not to use it or name alternatives among the sibling tools, such as using plan_trip for route planning instead.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

wpg-city-mcp MCP server

Copy to your README.md:

Score Badge

wpg-city-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nhannpl/wpg-city-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server