Skip to main content
Glama

OpenBusData MCP Server

mcp-name: io.github.AndrewAubury/openbusdata

MCP server for the UK Bus Open Data Service with rich timetable parsing, stop search, route discovery, journey planning and real-time bus tracking.

Features

  • Live API tools — query timetables, fares, disruptions, cancellations and real-time bus locations

  • Stop search — fuzzy text search across every bus stop in the UK

  • Route finder — discover all routes serving a pair of stops

  • Journey planner — "get to X by Y o'clock" with support for direct and chained multi-leg journeys

  • Live tracking — see exactly where buses are right now

Related MCP server: BVG MCP Server

Installation

Option 1: via uvx (recommended — no install needed)

uvx openbusdata-mcp

Option 2: via pip

pip install openbusdata-mcp

Configuration

Set your Bus Open Data Service API key as an environment variable:

export OPENBUS_API_KEY="your-api-key-here"

Get a free key at data.bus-data.dft.gov.uk.

Usage

With uvx (recommended)

Add to your MCP client (Claude Desktop, Cursor, etc.):

{
  "mcpServers": {
    "openbusdata": {
      "command": "uvx",
      "args": ["openbusdata-mcp"],
      "env": {
        "OPENBUS_API_KEY": "your-api-key-here"
      }
    }
  }
}

With pip install

{
  "mcpServers": {
    "openbusdata": {
      "command": "openbusdata-mcp",
      "env": {
        "OPENBUS_API_KEY": "your-api-key-here"
      }
    }
  }
}

Development

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # or .venv\Scripts\activate on Windows

# Install dependencies
pip install -e ".[dev]"

# Run server
python -m openbusdata_mcp.server

License

MIT

Available Tools

16 tools
Data_set_api_v1_fares_datasetC

Returns all fares datasets

Parameters: noc: Operators can operate using a single National Operator Code (NOC) or have multiple NOCs associated. Download the data catalogue to see the relationship between operators and NOCs within the service. To limit results to operators associated with multiple NOCs, input a comma separated list of the relevant NOCs. status: Limit results to data sets with the specified status string, accepted values are published, inactive. boundingBox: Limit results to fares data sets that contain information for the area within the rectangular boundingBox you set using co-ordinates. [minLatitude, maxLatitude, minLongitude, maxLongitude]. The default values shown are for the Liverpool area. limit: The maximum number of records to return. The default value shown is 25. offset: Return results that match the query starting from the specified offset. e.g. If the offset=10 and limit=25, then results from 11 to 35 will be returned The default value shown is 0.

ParametersJSON Schema
NameRequiredDescriptionDefault
kwargsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully convey behavioral traits. While it implies a read operation, it does not explicitly state that it is read-only, safe, or idempotent. It also omits details like rate limits, authentication needs, pagination behavior, or response format beyond the output schema existence. The description is insufficient for transparency.

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

Conciseness3/5

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

The description is moderately concise with a clear one-line purpose followed by parameter descriptions. However, the parameter section is somewhat lengthy and contains formatting issues (e.g., line breaks). The overall structure is acceptable but not optimally front-loaded.

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

Completeness2/5

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

Given the complexity (five described parameters but only one in schema) and the presence of an output schema, the description should explain the purpose of each parameter and how they are used together. It fails to address the schema mismatch, lacks pagination or result limit behavior, and does not cover edge cases or default values beyond the defaults mentioned.

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

Parameters1/5

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

The input schema has only a single 'kwargs' string parameter, but the description lists five distinct parameters (noc, status, boundingBox, limit, offset). This mismatch is misleading and contradicts the schema. The description does not clarify how the parameters map to the actual API, leading to confusion and poor guidance.

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

Purpose4/5

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

The description states 'Returns all fares datasets' which is a specific verb and resource, clearly indicating the tool lists all fares datasets. It implicitly distinguishes from sibling 'Data_set_api_v1_fares_dataset_by_datasetID' which presumably returns one dataset. However, it does not explicitly state the distinction, so a perfect 5 is not warranted.

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 parameter details but gives no guidance on when to use this tool versus alternatives (e.g., when to use the dataset-by-ID sibling). It does not mention when-not to use or prerequisites. Usage context is only implied by the parameter descriptions.

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

Data_set_api_v1_fares_dataset_by_datasetIDB

Returns a single dataset

Parameters: datasetID (required): Limit results to a specific data set of a publisher using the data set ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
kwargsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided. The description only says 'Returns a single dataset' without disclosing whether it's read-only, auth requirements, side effects, or response format. Minimal 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.

Conciseness4/5

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

The description is very short (two lines plus parameter docs), but the parameter section improves structure. Could be more concise by integrating the parameter info into the return statement.

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

Completeness2/5

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

Despite the presence of an output schema (not shown), the description lacks information about required authorization, the format of the dataset ID, the exact nature of the dataset, and why 'kwargs' appears in the schema. The mismatch between description and schema undermines 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 explicitly documents a 'datasetID' parameter and marks it required, adding meaning beyond the schema which only has an undocumented 'kwargs' property. This compensates for the schema's low coverage (0%) by clarifying the intended input.

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

Purpose4/5

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

The description states 'Returns a single dataset', which is clear about the action and resource. The tool name includes 'by_datasetID' distinguishing it from sibling 'Data_set_api_v1_fares_dataset' (likely returns multiple datasets). However, 'dataset' remains somewhat vague without domain context.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like 'Data_set_api_v1_fares_dataset' (for multiple datasets). No prerequisites or context for appropriate usage are mentioned.

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

find_buses_by_arrival_timeA

Find scheduled buses that board at stop_a and arrive at stop_b by the given time.

Parameters: stop_a: Boarding stop (NaPTAN code or name). stop_b: Alighting stop (NaPTAN code or name). arrive_by: Target arrival time (HH:MM, 24h format). day: Optional day filter: mon, tue, wed, thu, fri, sat, sun. Defaults to today.

ParametersJSON Schema
NameRequiredDescriptionDefault
dayNo
stop_aYes
stop_bYes
arrive_byYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses that it finds scheduled (not live) buses and specifies time format. However, it does not describe behavior on errors, missing stops, or invalid input. It adds some value but is not exhaustive.

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 sentence stating purpose followed by a clear bullet list of parameters. It is front-loaded and every sentence adds value. No superfluous text.

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?

With an output schema present, no need to explain return values. The description covers all parameters and notes that it finds scheduled (not live) buses. It does not mention prerequisites or error handling, but for a simple query tool this is adequate.

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

Parameters5/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 add meaning. It does so effectively: stop_a is 'Boarding stop (NaPTAN code or name)', stop_b is 'Alighting stop', arrive_by is 'Target arrival time (HH:MM, 24h format)', and day is optional with specific day abbreviations. This significantly clarifies parameter meaning beyond the schema's minimal titles.

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 'Find scheduled buses that board at stop_a and arrive at stop_b by the given time.' This uses a specific verb ('find'), a defined resource ('scheduled buses'), and specific constraints (boarding and alighting stops, arrival time). It distinguishes from siblings like 'find_routes_between_stops' and 'get_live_buses_on_route'.

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 lists parameters and implies usage for scheduled bus lookup, but it does not explicitly state when to use this tool versus alternatives. It mentions a default for 'day' but lacks guidance on exclusions or when not to use.

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

find_routes_between_stopsA

Find all bus routes that serve BOTH of the given stops. Stops can be specified by NaPTAN code or by name.

Parameters: stop_a: First stop (NaPTAN code or name substring). stop_b: Second stop (NaPTAN code or name substring).

ParametersJSON Schema
NameRequiredDescriptionDefault
stop_aYes
stop_bYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries the burden. It adds behavioral context: stops can be specified by NaPTAN code or name substring. It does not detail error handling or return format, but for a query tool this is adequate.

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 efficiently structured: one sentence for purpose followed by a clear parameter list. No unnecessary words, front-loaded with the main action.

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 only 2 required parameters, no annotations, and an output schema exists, the description is largely complete. It covers purpose and parameter semantics. Minor lack of info on output or error handling, but not critical for this simple tool.

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

Parameters4/5

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

Schema description coverage is 0%, but the description adds meaningful parameter descriptions: 'Stop A' and 'Stop B' with format details (NaPTAN code or name substring). This compensates for the schema's lack of descriptions.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Find all bus routes that serve BOTH of the given stops.' The verb 'find' and resource 'bus routes' are specific, and the condition 'BOTH' distinguishes it from sibling tools like find_buses_by_arrival_time or get_route_stops.

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 on when to use the tool (when needing routes serving both stops). However, it does not explicitly mention when not to use it or suggest alternatives like plan_journey or get_route_stops.

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

get_live_buses_on_routeA

Get real-time bus locations for a specific operator and route.

Parameters: operator_ref: Operator NOC code (e.g. ARBB, SCCM, CBBH). line_ref: Route number (e.g. 12, MK1, 100).

ParametersJSON Schema
NameRequiredDescriptionDefault
line_refYes
operator_refYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states 'Get real-time bus locations' without mentioning rate limits, data freshness, access requirements, or the read-only nature. The description fails to add meaningful behavioral context beyond the basic action.

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

Conciseness5/5

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

The description is extremely concise: a clear first sentence followed by two parameter explanations. No unnecessary words or repetition. It is front-loaded with the purpose and then lists parameters efficiently.

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

Completeness3/5

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

The tool is simple with only two parameters and an output schema, so the description covers the basics. However, it could be more complete by mentioning that results are real-time (so may change rapidly) or what the output contains (e.g., bus IDs, locations). The sibling tools suggest more specialized queries, but the description does not help the agent decide when this is the best tool.

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

Parameters4/5

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

The input schema has 0% description coverage, but the description adds value by explaining operator_ref as 'Operator NOC code' with examples (ARBB, SCCM, CBBH) and line_ref as 'Route number' with examples (12, MK1, 100). This provides clarity that the schema lacks.

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 retrieves real-time bus locations for a specific operator and route. The verb 'Get' and resource 'real-time bus locations' are specific, and it distinguishes from siblings like 'find_buses_by_arrival_time' or 'plan_journey' by focusing on live data by operator and route.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as when to use 'find_buses_by_arrival_time' or 'plan_journey'. There is no mention of context, prerequisites, or exclusions, leaving the agent without decision support.

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

get_route_stopsA

Get the full ordered list of stops for a specific bus route.

Parameters: operator: Operator name (exact or partial match). route: Route number/identifier. direction: Optional filter: 'inbound', 'outbound', or leave blank for all.

ParametersJSON Schema
NameRequiredDescriptionDefault
routeYes
operatorYes
directionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It states that the tool returns a 'full ordered list of stops', but does not mention it is read-only, whether it requires authentication, data freshness, or any side effects. The behavioral disclosure is insufficient.

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: a single sentence for the main purpose followed by a bullet list of parameters. It is front-loaded with the core function and contains no unnecessary words.

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?

An output schema exists, so the description does not need to detail return values. It covers the main input parameters and the output concept ('full ordered list'). However, it does not address edge cases like missing routes or invalid operator names, which would be helpful.

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 parameter descriptions add vital meaning. The description explains that 'operator' supports exact or partial match, 'route' is a number/identifier, and 'direction' accepts specific values ('inbound', 'outbound') or null for all. This exceeds the schema's basic type info.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'full ordered list of stops for a specific bus route'. It distinguishes itself from sibling tools like 'find_buses_by_arrival_time' and 'get_live_buses_on_route' by focusing on stops along a route.

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 when to use the tool (to get stops for a route) but provides no explicit guidance on when not to use it or alternatives. It mentions optional direction filtering but no context about when to prefer this over other similar tools.

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

GTFS_RT_Data_feed_api_v1_gtfsrtdatafeedD

Returns all published datafeeds

Parameters: boundingBox: Limit results to bus location data with vehicle position within the rectangular boundingBox you set using co-ordinates. [minLongitude, minLatitude, maxLongitude, maxLatitude] The default values shown are for the Liverpool area. routeId: Limit results to bus location data with the specified routeId. Use a comma-separated list to specify multiple routeId values. startTimeAfter: Limit results to bus location data with a start time after startTimeAfter. startTimeBefore: Limit results to bus location data with a start time before startTimeBefore.

ParametersJSON Schema
NameRequiredDescriptionDefault
kwargsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.3/5.0
Behavior1/5

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

No annotations provided. Description implies filtering capabilities but schema only accepts a single 'kwargs' string, creating a behavioral inconsistency. No mention of side effects, authentication, or rate limits.

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

Conciseness2/5

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

Description is verbose with parameter details that contradict the schema. The structure is unclear and wastes space on parameters that may not exist.

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

Completeness1/5

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

Given the mismatch between description and schema, and lack of annotations, the description is incomplete. It does not explain the actual behavior or how the 'kwargs' parameter should be formatted.

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

Parameters1/5

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

Schema lists only 'kwargs' as a required string, while description describes four separate parameters (boundingBox, routeId, etc.) not present in the schema. This contradiction misleads the user about how to invoke the tool.

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

Purpose2/5

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

Description states 'Returns all published datafeeds' but then focuses on filtering bus location data, which is contradictory. It does not clearly distinguish from sibling tools like SIRI_VM_Data_feed_api_v1_datafeed.

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

Usage Guidelines1/5

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

No guidance on when to use this tool versus alternatives. Missing context about prerequisites or appropriate scenarios.

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

load_timetable_indexA

Download and index all accessible timetable datasets. Call this first if stop/route search tools return no results.

Parameters: force_refresh: If true, re-download all data instead of using cache.

ParametersJSON Schema
NameRequiredDescriptionDefault
force_refreshNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It explains the action (download and index) and the cache behavior via force_refresh. However, it does not disclose potential side effects like network usage, duration, or whether it clears existing data. Minimal but acceptable for a simple initialization 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?

Very concise: two sentences for purpose/usage and one line per parameter. No wasted words, front-loaded with the main action. Efficient and easy to parse.

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

Completeness4/5

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

Given the tool's simplicity (one optional parameter, no nested objects), the description covers the core purpose, usage context, and parameter semantics. It could mention potential time cost or that it prepares data for other tools, but the existing context (output schema exists) reduces the need for return value details.

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

Parameters5/5

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

Schema coverage is 0%, so the description fully compensates. For the only parameter 'force_refresh', it explains exactly what true/false does ('re-download all data instead of using cache'), adding essential meaning beyond the schema's type and default.

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

Purpose5/5

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

Description clearly states the tool downloads and indexes all accessible timetable datasets, with a specific verb and resource. It distinguishes itself from siblings by being a preparatory step, and the instruction 'Call this first if stop/route search tools return no results' further clarifies its unique role.

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?

Explicitly states when to use ('if stop/route search tools return no results') and implies it as a prerequisite. However, it does not explicitly state when not to use or mention alternatives, but the guidance is clear enough for the intended use case.

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

plan_journeyA

Plan a journey from stop_a to stop_b arriving by a given time. Supports direct routes and single changes.

Parameters: stop_a: Starting stop (NaPTAN code or name). stop_b: Destination stop (NaPTAN code or name). arrive_by: Target arrival time (HH:MM, 24h format). day: Optional day filter: mon, tue, wed, thu, fri, sat, sun. Defaults to today. max_changes: Maximum number of bus changes (0 = direct only, 1 = one change). Default 1.

ParametersJSON Schema
NameRequiredDescriptionDefault
dayNo
stop_aYes
stop_bYes
arrive_byYes
max_changesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

No annotations, so description must provide transparency. It explains basic behavior (plans journey with changes) but does not disclose what happens if no journey found, or if multiple options exist. Output schema exists but not detailed in description.

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?

Extremely concise: one sentence for purpose, then a clear parameter list. No redundancy, every sentence adds value.

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

Completeness4/5

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

Covers key aspects: purpose, parameters, constraints. Lacks details on error handling or output format, but output schema exists. Adequate for a tool with moderate complexity.

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

Parameters5/5

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

Schema coverage is 0%, and description provides full parameter explanations, including formats (HH:MM), possible values (day filter), and defaults. Adds significant value beyond bare 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?

Clearly states verb (plan), resource (journey), and scope (from stop_a to stop_b with arrival time). Distinguishes from sibling tools like find_routes_between_stops which lists routes, or find_buses_by_arrival_time which finds buses, not plans a journey.

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?

Implied usage for journey planning with arrival time constraint. Supports direct routes and single changes, but doesn't explicitly say when not to use or provide alternatives. However, it's clear enough for an 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.

search_stopsA

Search for bus stops by name across all loaded timetable data. Returns matching stops with their NaPTAN codes.

Parameters: query: Substring to search for in stop names (case-insensitive).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description must convey behavioral traits. It states that the tool searches across all loaded timetable data and performs a case-insensitive substring match, which is relevant. However, it does not disclose whether the operation is read-only, any rate limits, or authentication requirements. For a simple search, this is adequate but not comprehensive.

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

Conciseness5/5

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

The description is extremely concise, with two short sentences that cover purpose, scope, return, and parameter meaning. Every sentence contributes value, and the most important information is front-loaded.

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

Completeness5/5

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

Given that an output schema exists (as indicated by context signals), the description does not need to detail return values. It fully covers the tool's functionality and parameter semantics, making it complete for an AI agent to use correctly.

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 only defines a 'query' parameter with no description, so the description compensates by explaining it is a case-insensitive substring search against stop names. This adds crucial semantic meaning 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 specifies the verb 'search', the resource 'bus stops', and the scope 'across all loaded timetable data'. It also mentions the return of NaPTAN codes, distinguishing it from sibling tools like 'get_route_stops' or 'find_buses_by_arrival_time'.

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 clearly states the tool's function (searching bus stops by name) and returns matching stops. While it does not explicitly state when not to use it or mention alternative tools, the sibling list provides context, and the description is sufficient for an agent to infer appropriate use.

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

SIRI_SX_Cancellations_siri_sx_cancellationsD

Returns all cancellations

Parameters:

ParametersJSON Schema
NameRequiredDescriptionDefault
kwargsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.6/5.0
Behavior1/5

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

With no annotations, the description carries full burden but only repeats the tool name. It omits behavioral traits like side effects, authentication needs, or data scope beyond 'all cancellations'.

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

Conciseness2/5

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

The description is very short but incomplete; it says 'Parameters:' with nothing following. This is under-specification, not conciseness.

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

Completeness1/5

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

Given a single opaque parameter and no output schema description, the description fails to provide enough context for correct invocation. It is completely inadequate.

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

Parameters1/5

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

The single parameter 'kwargs' has no description in the schema (0% coverage) and the tool description adds no meaning. The agent has no clue what to pass as kwargs.

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

Purpose3/5

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

The description states it returns all cancellations, which is a clear verb+resource. However, it lacks specificity about scope (e.g., time range, system range) and only barely distinguishes from sibling tools like SIRI_SX_Disruptions.

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

Usage Guidelines1/5

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

No guidance on when to use this tool versus alternatives. No context about prerequisites, filtering, 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.

SIRI_SX_Disruptions_siri_sxC

Returns all disruptions

Parameters:

ParametersJSON Schema
NameRequiredDescriptionDefault
kwargsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It implies a read operation ('Returns') but fails to disclose any behavioral traits like idempotency, auth requirements, or rate limits, leaving significant gaps.

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

Conciseness2/5

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

The description is extremely short with one sentence and an empty 'Parameters:' section. It is under-specified, lacking any structure like bullet points or examples that would help the agent.

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

Completeness2/5

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

Given the tool's single parameter and the presence of an output schema, the description is incomplete. It does not differentiate from siblings, explain the 'kwargs' parameter, or describe the context of disruptions (e.g., transport mode, region).

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

Parameters1/5

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

The sole parameter 'kwargs' is a string, but the description does not explain its purpose or expected value. With 0% schema description coverage, the agent has no guidance on how to populate this parameter.

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

Purpose3/5

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

The description states 'Returns all disruptions', which provides a verb and resource but is vague. It does not differentiate from sibling tool SIRI_SX_Cancellations_siri_sx_cancellations, leaving the agent uncertain about the scope or type of disruptions.

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 such as SIRI_SX_Cancellations. The description lacks any context about prerequisites, filtering, or exclusions.

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

SIRI_VM_Data_feed_api_v1_datafeedA

Returns all published datafeeds

Parameters: boundingBox: Limit results to bus location data with vehicle position within the rectangular boundingBox you set using co-ordinates. [minLongitude, minLatitude, maxLongitude, maxLatitude]. The default values shown are for the Liverpool area. operatorRef: Limit results to bus location data with the specified operatorRef. The National Operator Code is often used as the input for operatorRef. Comma separated list of values can be used for querying. vehicleRef: Limit results to bus location data with the specified vehicleRef. lineRef: Limit results to bus location data with the specified lineRef. producerRef: Limit results to bus location data with the specified producerRef. originRef: Limit results to bus location data with the specified originRef. destinationRef: Limit results to bus location data with the specified destinationRef.

ParametersJSON Schema
NameRequiredDescriptionDefault
kwargsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It states 'returns' but doesn't disclose potential side effects, rate limits, pagination, or max result limits. Only implies read-only behavior through 'Returns'.

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?

Description is concise with the main purpose front-loaded. Parameter explanations are dense but necessary. Minor redundancy in repeating 'Limit results to bus location data' for each parameter.

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 existence of an output schema, return format details are not required. However, the description lacks context on result structure (e.g., is it a list?), and doesn't explain the scope beyond 'bus location data' in parameters. Adequate but not comprehensive.

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

Parameters5/5

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

The input schema has only a generic 'kwargs' string with no description. The description compensates fully by detailing each possible filter parameter (boundingBox, operatorRef, etc.), providing essential meaning 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 'Returns all published datafeeds' with specific verb and resource. It distinguishes from the sibling 'by_datafeedID' tool by indicating it returns all datafeeds without a specific ID filter.

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 explicit guidance on when to use this tool versus alternatives like the per-ID version or GTFS_RT feed. The parameter descriptions imply filtering but no when-to-use or when-not-to-use context.

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

SIRI_VM_Data_feed_api_v1_datafeed_by_datafeedIDC

Returns a single datafeed

Parameters: datafeedID (required): Limit results to a specific data feed of a publisher using the data feed ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
kwargsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden. It only says 'Returns a single datafeed' without disclosing read-only nature, error handling, authentication, or rate limits. Minimal transparency for a read operation.

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

Conciseness3/5

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

The description is very short, with a header and parameter explanation. It is concise but the parameter section is misplaced and inaccurate. No extraneous content, but structure could be improved by aligning with the schema.

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

Completeness2/5

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

Given the complex tool name and sibling context, the description lacks completeness. It does not distinguish from similar tools (list vs. single), does not address error conditions, and the parameter mismatch leaves gaps. An output schema exists but is not described.

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

Parameters1/5

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

The description mentions 'datafeedID' as a required parameter, but the input schema only has 'kwargs' with no description. This mismatch misleads the agent about how to invoke the tool. Schema coverage is 0%, and the description fails to accurately map to the actual parameter.

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

Purpose3/5

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

The description states 'Returns a single datafeed', which is a clear verb+resource. However, the parameter naming mismatch (datafeedID vs kwargs) undermines clarity. The sibling tool SIRI_VM_Data_feed_api_v1_datafeed likely lists all, so specifying 'single' helps, but the discrepancy reduces 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?

No guidance on when to use vs. alternatives like the list datafeed tool. Does not mention that it requires a specific datafeedID or that it's for retrieving a single item by ID. No exclusions or context provided.

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

timetables_api_v1_datasetC

Returns all timetables

Parameters: adminArea: Limit results to datasets with services that stop within the specified area(s). The adminAreas entered will be inserted into a comma delimited query in the API. noc: Limit results to data sets published by an operator identified by the specified National Operator Code (NOC). The NOCs entered will be inserted into a comma delimited query in the API. limit: The maximum number of records to return. The default value shown is 25. offset: Return results that match the query starting from the specified offset e.g. If the offset=10 and limit=25, then results from 11 to 35 will be returned. The default value shown is 0. search: Return data sets where the data set name, data set description, organisation name, or admin area name contain the specified value. status: Limit results to data sets with the specified status. endDateStart: Limit results to data sets with services with end dates after this date. endDateEnd: Limit results to data sets with services with end dates before this date. modifiedDate: Limit results to data sets that have been created/updated since the specified date. startDateStart: Limit results to data sets with services with start dates after this date. startDateEnd: Limit results to data sets with services with start dates before this date. dqRag: Limit results to data sets with the specified String. bodsCompliance: Limit results to data sets with the specified boolean value.

ParametersJSON Schema
NameRequiredDescriptionDefault
kwargsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for disclosing behavior. It does not mention that the operation is read-only, any authentication needs, rate limits, or whether the result is paginated. The presence of 'limit' and 'offset' hints at pagination but is not explicitly stated. Side effects and error behavior are absent.

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

Conciseness3/5

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

The description starts with a clear one-line purpose, then lists parameters in a readable format. It could be more concise by grouping related parameters or removing redundancy. The structure is functional but not optimized for quick scanning.

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

Completeness2/5

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

Despite having an output schema, the description does not mention what the tool returns (e.g., list of timetable dataset objects). It lacks details on how to use 'kwargs' correctly, pagination behavior, error handling, or prerequisites. For a tool with a complex single-parameter input, more context is needed.

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?

The input schema has only one parameter 'kwargs' with 0% coverage, but the description lists many parameters (adminArea, noc, etc.) with brief explanations. This adds meaning but is misleading because it does not explain how these parameters relate to the single 'kwargs' string—whether they should be concatenated, passed as JSON, etc. The gap between schema and description creates confusion.

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 opens with 'Returns all timetables', which clearly states the action and resource. It then lists numerous filter parameters, making it obvious what the tool does. However, it does not differentiate from the sibling tool 'timetables_api_v1_dataset_by_datasetID', so some ambiguity remains about when to use this vs that.

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 explicit guidance is given on when to use this tool versus alternatives like 'Data_set_api_v1_fares_dataset' or 'timetables_api_v1_dataset_by_datasetID'. The parameter list implies usage for listing filtered datasets, but no when-to-use or when-not-to-use advice is provided.

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

timetables_api_v1_dataset_by_datasetIDC

Returns a single dataset

Parameters: datasetID (required): Limit results to a specific data set of a publisher using the data set ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
kwargsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.5/5.0
Behavior1/5

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

No annotations provided, and the description fails to disclose any behavioral traits such as idempotency, authentication, or rate limits. The burden falls entirely on the description, which is insufficient.

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

Conciseness4/5

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

The description is very short with one sentence and a parameter list. It is concise but lacks structure and clarity due to the discrepancy with the schema.

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

Completeness2/5

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

Given the presence of an output schema, return value explanation is not needed. However, the description fails to explain how the parameter (datasetID) relates to the actual schema (kwargs), leaving critical context missing.

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 coverage is 0%, so the description must compensate. It describes a 'datasetID' parameter, but the actual schema contains 'kwargs' instead, leading to a mismatch. This confuses rather than clarifies.

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 'Returns a single dataset' clearly indicates the verb and resource, and the name distinguishes it from the sibling 'timetables_api_v1_dataset' which likely returns all datasets. However, confusion arises from the parameter mismatch with the schema.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'timetables_api_v1_dataset'. The description lacks context for selecting the correct tool.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 16 tool updatesv1.0.2
    • First observedData_set_api_v1_fares_dataset
    • First observedData_set_api_v1_fares_dataset_by_datasetID
    • First observedfind_buses_by_arrival_time
    • First observedfind_routes_between_stops
    • First observedget_live_buses_on_route
    • First observedget_route_stops
    • First observedGTFS_RT_Data_feed_api_v1_gtfsrtdatafeed
    • First observedload_timetable_index
    • First observedplan_journey
    • First observedsearch_stops
    • First observedSIRI_SX_Cancellations_siri_sx_cancellations
    • First observedSIRI_SX_Disruptions_siri_sx
    • First observedSIRI_VM_Data_feed_api_v1_datafeed
    • First observedSIRI_VM_Data_feed_api_v1_datafeed_by_datafeedID
    • First observedtimetables_api_v1_dataset
    • First observedtimetables_api_v1_dataset_by_datasetID

TDQS

C2.7/5.0
Disambiguation3/5

Several tools have overlapping scopes, like multiple dataset listing tools (Data_set_api_v1_fares_dataset and timetables_api_v1_dataset) and real-time feed tools (get_live_buses_on_route and SIRI_VM_Data_feed_api_v1_datafeed). While they target different data types (fares vs timetables, route-level vs feed-level), the names are similar and could confuse an agent.

Naming Consistency2/5

Naming is highly inconsistent: some tools use snake_case (find_buses_by_arrival_time), some use camelCase (Data_set_api_v1_fares_dataset), and others use a mix (GTFS_RT_Data_feed_api_v1_gtfsrtdatafeed). There is no consistent pattern, making it hard to predict tool names.

Tool Count4/5

16 tools is reasonable for a comprehensive bus data API covering fares, timetables, real-time, disruptions, and planning. It is slightly on the high side but still well-scoped for the domain.

Completeness4/5

The tool set covers core bus data operations: dataset discovery, stop search, route lookup, timetables, real-time positions, cancellations, disruptions, and journey planning. Minor gaps exist (e.g., no fare calculation), but the overall coverage is good.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/AndrewAubury/openbusdata-mcp'

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