Skip to main content
Glama
arjunkmrm

Singapore LTA MCP Server

by arjunkmrm

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation5/5

    Each tool has a clearly distinct purpose targeting different aspects of Singapore's transport system: bus arrivals, carpark availability, station crowd forecasts, real-time station crowding, traffic incidents, train alerts, and travel times. There is no overlap in functionality, making it easy for an agent to select the appropriate tool without confusion.

    Naming Consistency5/5

    All tool names follow a consistent snake_case pattern with clear, descriptive noun-based naming (e.g., bus_arrival, carpark_availability). The naming is uniform throughout, making the tool set predictable and easy to understand at a glance.

    Tool Count5/5

    With 7 tools, this server is well-scoped for its purpose of providing real-time transport information in Singapore. Each tool addresses a specific, valuable aspect of the domain, and there are no extraneous or redundant tools, making the count appropriate and manageable.

    Completeness5/5

    The tool set offers comprehensive coverage of Singapore's transport domain, including bus, train, carpark, traffic, and travel time information. It provides both real-time and forecasted data across key areas, leaving no obvious gaps for agents to encounter dead ends in typical transport-related queries.

  • Average 3.6/5 across 7 of 7 tools scored.

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

  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • 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 the full burden of behavioral disclosure. It mentions 'real-time' and 'Updates when there are changes,' which hints at dynamic data, but lacks details on rate limits, authentication needs, error handling, or response format. For a tool with zero annotation coverage, this is insufficient to fully inform agent 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 concise and front-loaded: two sentences that directly state the purpose and update behavior. There's no wasted text, and it efficiently communicates key information. It could be slightly improved by structuring usage guidance more explicitly, but it's well-sized for its content.

    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 (simple read operation with 0 parameters), no annotations, and no output schema, the description is moderately complete. It covers the purpose and update behavior but lacks details on output format, error cases, or integration with siblings. It's adequate as a minimum viable description but has clear gaps in behavioral and contextual guidance.

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

    Parameters4/5

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

    The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate. Baseline is 4 for 0 parameters, as it doesn't need to compensate for gaps, but it doesn't reach 5 since it doesn't explicitly state the lack of parameters.

    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 real-time train service alerts including service disruptions and shuttle services.' It specifies the verb ('Get') and resource ('train service alerts'), and includes scope details ('real-time', 'service disruptions and shuttle services'). However, it doesn't explicitly differentiate from sibling tools like 'traffic_incidents' or 'travel_times', which prevents a score of 5.

    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 minimal usage guidance: 'Updates when there are changes' implies it's for monitoring changes in alerts, but it doesn't specify when to use this tool versus alternatives (e.g., 'traffic_incidents' for road issues or 'bus_arrival' for bus info). No explicit when/when-not or alternative tool references are included, leaving gaps in context.

    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 'forecasted' and '30-minute intervals', giving some behavioral context about temporal scope. However, it lacks details on data freshness, accuracy, rate limits, authentication needs, or output format. For a forecasting tool with no annotations, this is a significant gap in behavioral disclosure.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that front-loads key information: action, resource, and temporal detail. Every word earns its place with zero waste, making it highly concise and well-structured for quick comprehension.

    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 one parameter with full schema coverage and no output schema, the description provides basic purpose and scope. However, as a forecasting tool with no annotations, it lacks details on reliability, data sources, or example outputs. It's minimally viable but leaves gaps in understanding practical use and limitations.

    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 'trainLine' fully documented in the schema including enum values. The description adds no parameter-specific information beyond what the schema provides. Baseline score of 3 is appropriate as the schema handles parameter semantics adequately.

    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 ('Get forecasted') and resource ('MRT/LRT station crowdedness levels') with specific temporal granularity ('in 30-minute intervals'). It distinguishes from sibling 'station_crowding' by specifying 'forecasted' vs. likely current data, though not explicitly named. The purpose is specific and actionable.

    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 future crowdedness predictions rather than real-time data, which differentiates it from 'station_crowding'. However, it lacks explicit when-to-use guidance, alternatives (e.g., vs. 'travel_times'), or prerequisites. Usage context is inferred but not clearly articulated.

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

  • Behavior3/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 adds useful context about the update frequency ('Updates every 5 minutes'), which helps set expectations for data freshness. However, it lacks other important behavioral details such as whether this is a read-only operation, potential rate limits, error conditions, or what the output format looks like (especially critical since there's no output schema).

    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 perfectly concise and well-structured with just two sentences. The first sentence clearly states the core purpose, and the second adds important behavioral context about update frequency. Every word earns its place with zero waste or redundancy, making it easy for an agent to parse 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 moderate complexity (travel time estimation with dynamic updates) and the absence of both annotations and an output schema, the description is incomplete. While it covers the purpose and update frequency adequately, it lacks crucial information about what the tool returns (format, structure, units) and any operational constraints. For a tool with no output schema, the description should ideally explain the return values, which it doesn't do.

    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 tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description doesn't need to add parameter information, and it appropriately doesn't mention any parameters. The baseline for 0 parameters with high schema coverage is 4, as the description correctly focuses on other aspects without unnecessary parameter discussion.

    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 with a specific verb ('Get') and resource ('estimated travel times on expressway segments'), making it immediately understandable. It distinguishes itself from siblings like traffic_incidents or train_alerts by focusing on travel time estimates rather than incidents or alerts. However, it doesn't explicitly differentiate from all siblings (e.g., bus_arrival might also involve travel estimates).

    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 when this tool is appropriate compared to siblings like traffic_incidents (for disruptions) or station_crowding (for congestion at stations), nor does it specify any prerequisites or exclusions. The only contextual hint is the update frequency, which doesn't help with tool selection.

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

  • Behavior3/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 adds useful context: the data is 'real-time' and 'Updates every 10 minutes,' which informs about freshness and update frequency. However, it lacks details on potential errors, rate limits, authentication needs, or what the output looks like (e.g., format or structure), leaving gaps in behavioral understanding.

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

    Conciseness5/5

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

    The description is concise and well-structured in two sentences: the first states the purpose, and the second adds behavioral context (update frequency). Every sentence earns its place by providing essential information without redundancy, making it front-loaded and efficient.

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

    Completeness3/5

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

    Given the tool's moderate complexity (single parameter, no annotations, no output schema), the description is partially complete. It covers the purpose and update behavior but lacks details on output format, error handling, or how it differs from siblings. Without an output schema, the description should ideally explain return values, which it does not, resulting in a score of 3 as adequate but with clear gaps.

    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 input schema has 100% description coverage, with a clear enum for 'trainLine' parameter. The description does not add any semantic details beyond what the schema provides (e.g., it doesn't explain the meaning of line codes or provide examples). According to the rules, with high schema coverage, the baseline is 3 even without additional param info in the description.

    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 real-time MRT/LRT station crowdedness level for a particular train network line.' It specifies the verb ('Get'), resource ('station crowdedness level'), and scope ('particular train network line'), but does not explicitly differentiate it from sibling tools like 'station_crowd_forecast' or 'travel_times', which prevents a score of 5.

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

    Usage Guidelines3/5

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

    The description implies usage context by mentioning 'real-time' and 'Updates every 10 minutes,' which suggests when to use it for current data. However, it does not provide explicit guidance on when to use this tool versus alternatives like 'station_crowd_forecast' (which might offer predictions) or other siblings, nor does it state any exclusions or prerequisites.

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

  • Behavior3/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 effectively describes the tool's behavior by mentioning it returns 'estimated arrival times, bus locations, and crowding levels,' which adds value beyond the input schema. However, it lacks details on rate limits, error handling, or data freshness, leaving some gaps.

    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 a single sentence that efficiently conveys the tool's purpose, parameters, and return values without any wasted words. Every part of the description earns its place by adding essential information.

    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 (2 parameters, no output schema, no annotations), the description is fairly complete. It covers the purpose, parameters, and return values adequately. However, without an output schema, it could benefit from more detail on the structure of returned data, such as format or examples, to fully compensate for the lack of structured output documentation.

    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 input schema has 100% description coverage, clearly documenting both parameters. The description adds marginal value by contextualizing the parameters as 'specific bus stop' and 'optional bus service number to filter results,' but it does not provide additional syntax or format details beyond what the schema already specifies.

    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 specific verbs ('Get real-time bus arrival information') and resources ('bus stop', 'service number'), distinguishing it from sibling tools like carpark_availability or traffic_incidents by focusing on bus arrivals rather than other transportation 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 usage context by specifying 'for a specific bus stop and optionally a specific service number,' but it does not explicitly state when to use this tool versus alternatives or provide any exclusions. No guidance is given on prerequisites or comparisons with sibling tools.

    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?

    With no annotations provided, the description carries the full burden. It discloses key behavioral traits: real-time data, updates every minute, and coverage of specific carpark types (HDB, LTA, URA). However, it does not mention potential limitations like rate limits, authentication needs, or error conditions, leaving some gaps.

    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 clause and adds only one additional sentence for context ('Updates every minute.'). It is highly efficient with zero wasted words, making it easy to parse 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 simplicity (0 parameters, no output schema, no annotations), the description is adequate but could be more complete. It covers what the tool does and update frequency, but lacks details on output format, error handling, or data freshness guarantees, which would help an agent use it more effectively.

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

    Parameters4/5

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

    The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, earning a baseline score of 4 for not adding unnecessary information beyond the 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 clearly states the specific action ('Get real-time availability') and resource ('parking lots for HDB, LTA, and URA carparks'), distinguishing it from sibling tools like bus_arrival or traffic_incidents by focusing on parking availability rather than transportation incidents or forecasts.

    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 parking availability checks, but provides no explicit guidance on when to use this tool versus alternatives (e.g., no mention of other parking-related tools or scenarios where it might not be applicable). It lacks clear exclusions or named alternatives.

    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?

    With no annotations provided, the description carries full burden and adds valuable behavioral context: it discloses the data update frequency ('Updates every 2 minutes'), which helps agents understand data freshness. However, it doesn't mention rate limits, authentication needs, 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?

    Two sentences with zero waste: the first states purpose with examples, the second adds critical behavioral context about update frequency. Every sentence earns its place and is front-loaded with essential information.

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

    Completeness3/5

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

    For a zero-parameter tool with no annotations and no output schema, the description provides adequate purpose and update frequency. However, it lacks information about response format, geographic scope, or error handling, leaving some gaps in contextual understanding.

    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 tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description doesn't need to compensate for any parameter gaps, and it appropriately doesn't discuss parameters since none exist.

    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 resource ('current road incidents') with specific examples ('accidents, roadworks, and heavy traffic'). It distinguishes from siblings by focusing on road incidents rather than bus arrivals, carpark availability, train alerts, etc.

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

    Usage Guidelines3/5

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

    The description implies usage context ('current road incidents') but doesn't explicitly state when to use this tool versus alternatives like 'travel_times' or 'train_alerts'. No guidance on prerequisites or exclusions is provided.

    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

mcp-sg-lta MCP server

Copy to your README.md:

Score Badge

mcp-sg-lta 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/arjunkmrm/mcp-sg-lta'

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