Skip to main content
Glama
uwmyuan

bus-scheduling-mcp

by uwmyuan

Bus Scheduling MCP Server

This is a Model Context Protocol (MCP) server designed to interface with the Bus Scheduling Backend system. It allows MCP-compatible LLM clients (like Claude Desktop, Cursor, Cline, etc.) to access scheduling data, read KPIs, list routes, and trigger/monitor optimization algorithms.

Prerequisites

  • Node.js (v18 or higher recommended)

  • The accompanying Python backend must be running (by default on http://127.0.0.1:8000).

Related MCP server: yellow-pages

Installation

  1. Install dependencies:

    npm install
  2. Build the TypeScript code:

    npm run build

Configuration

If your backend is running on a different URL, you can configure it via a .env file in the root of this /mcp-server directory.

Example .env:

API_BASE_URL=http://localhost:8000/api

Running the Server

For standard usage as an MCP Server:

Point your MCP client configuration (e.g. cline_mcp_settings.json or equivalent) to the built index.js file.

Example Cursor/Claude config:

{
  "mcpServers": {
    "bus-scheduling": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server/build/index.js"]
    }
  }
}

For development:

Run the development watcher (useful if you are actively modifying the MCP server code):

npm run dev

Available Tools

The server exposes the following tools directly to the AI:

  • Dashboard & Metrics

    • scheduling_get_kpi: Fetch KPIs (vehicle status, departures, punctuality).

    • scheduling_get_trends: Get passenger flow trends.

  • Routes & Data

    • scheduling_list_routes: List active bus routes.

    • scheduling_get_route_details: Fetch stations and departures for a specific route.

  • Plans & Gantt

    • scheduling_list_plans: List all saved scheduling plans.

    • scheduling_get_gantt_data: Get task formats for Gantt charts.

  • Optimization

    • scheduling_get_optimization_algorithms: List available optimization scripts.

    • scheduling_run_optimization: Trigger an algorithm task.

    • scheduling_get_optimization_status: Check the status of a running algorithm task.

Testing & Evaluations

You can inspect the capabilities of this server directly using the official MCP inspector:

npx @modelcontextprotocol/inspector node build/index.js

10 comprehensive use cases and checks are available in evaluations.xml in this project's root folder.

Available Tools

9 tools
scheduling_get_gantt_dataB

Get plan tasks formatted as Gantt chart data by dataset or plan ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idNo
dataset_idNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavior. It indicates a read-only operation ('Get') but does not clarify what happens when both or neither ID is provided, the structure of the returned Gantt data, or any pagination/formatting behavior.

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

Conciseness5/5

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

The description is a single, clear sentence that immediately conveys the core function. It is appropriately concise with no wasted words.

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 no output schema, annotations, or parameter descriptions, the tool's full behavior is under-specified. The agent is left without knowledge of what the Gantt data contains, what the response looks like, or how to handle ambiguous inputs.

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 needs to compensate. It states the parameters are 'dataset or plan ID' but does not specify whether they are alternatives, required, or how they interact. This adds minimal meaning beyond the schema's bare type strings.

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 uses a specific verb ('Get') and identifies a clear resource ('plan tasks formatted as Gantt chart data') with explicit access paths ('by dataset or plan ID'). It distinguishes itself from siblings like scheduling_get_route_details or scheduling_list_plans by focusing on Gantt chart data.

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. It does not explain prerequisites (e.g., need to have a plan or dataset ID first), whether to prefer one ID over another, or scenarios where this tool is appropriate.

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

scheduling_get_kpiA

Fetch key performance indicators (KPIs) like vehicle status, total departures, punctuality rate.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 bear the full burden of behavior disclosure. 'Fetch' implies a read operation, but there is no mention of side effects, return format, data freshness, or any operational constraints. The description adds minimal behavioral context beyond the verb itself.

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, concise sentence that front-loads the primary action and resource, followed by illustrative examples. Every word contributes to understanding.

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 (no parameters, simple fetch), the description is largely sufficient. It names the primary outputs but does not detail the full return structure or caveats, which could be helpful since there is no output schema. However, the examples cover the key KPI categories.

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 zero parameters, so the description does not need to explain any parameter semantics. This matches the baseline of 4 for tools with no parameters.

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 action (fetch) and resource (key performance indicators), with concrete examples (vehicle status, total departures, punctuality rate). It is distinct from sibling tools which focus on routes, gantt data, optimization, trends, and plans.

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 retrieving KPIs, but it does not explicitly contrast with alternatives like scheduling_get_trends or scheduling_get_route_details. There is no 'when to use vs. not use' guidance, but the examples give a general sense of the tool's purpose.

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

scheduling_get_optimization_algorithmsA

List available scheduling optimization algorithms (e.g., circular timetable, shift sequence).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
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 clearly indicates a read-only listing operation ('List available'), which is a key behavioral trait. The examples ('circular timetable, shift sequence') add context about the type of content returned. It does not mention side effects or edge cases, but for a simple enumeration tool these are not necessary.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that directly states the action and resource, with optional examples. Every word earns its place, and there is no redundant or verbose content.

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 that the tool is a simple parameterless list operation and there is no output schema, the description provides sufficient context: it names the resource and gives examples of what is listed. It does not specify return format, but 'List' implies an array of algorithm names, which is sufficient for this complexity. A slightly more explicit note about the output being a list of identifiers could bump it to 5, but it is already adequate.

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 zero parameters, so per rubric the baseline is 4. The description does not need to explain parameters, and the schema coverage is trivially 100%. The examples in the description are not parameter-related but they do enrich the domain context.

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 uses the specific verb 'List' and identifies the resource as 'available scheduling optimization algorithms', clearly distinguishing it from sibling tools like scheduling_run_optimization (which executes) and scheduling_get_optimization_status (which checks status). The examples 'circular timetable, shift sequence' further clarify the resource domain.

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 a use case: to discover available algorithms before running an optimization (via scheduling_run_optimization). However, it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or conditions. The guidance is implied but not explicit.

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

scheduling_get_optimization_statusA

Get the status (running, completed, failed) of a specific optimization task by its task ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

A4.2/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 conveys a read-only operation ('get') and lists the possible status values, but does not disclose error behavior (e.g., invalid task ID), required permissions, or whether the status is returned as a string or structured object. This is adequate but leaves some ambiguity.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys the tool's purpose and parameter without redundancy. Every word contributes to understanding, achieving maximum conciseness.

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 no output schema, the description does not need to list return fields, but it does mention the possible status values, which is the core return information. It is a simple status lookup, so the description is reasonably complete despite missing explicit error conditions or additional response details.

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 no description coverage (0%). The description clarifies that the lone parameter 'task_id' is the identifier of the optimization task, adding meaning beyond the bare schema. It does not provide format examples or additional constraints, but the single parameter's role is clearly explained.

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 specific resource 'status of a specific optimization task' identified by task ID. It distinguishes itself from sibling tools like scheduling_get_route_details or scheduling_get_kpi by focusing exclusively on optimization task status, with enumerated states (running, completed, failed).

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: use this tool to retrieve the status of a specific optimization task by its ID. It implies the appropriate use case but lacks explicit exclusions or mentions of alternative sibling tools, though the use case is sufficiently distinct from siblings.

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

scheduling_get_route_detailsA

Get details of a specific route including stations and departures by route ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
route_idYesThe ID of the route

TDQS

A4/5.0
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. It discloses what is returned (route details, stations, departures), which is useful for a read operation. However, it does not state side effects, permissions, or response format, leaving some ambiguity for a tool with no annotation support.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys essential information with no filler. Every word contributes to understanding the tool's purpose and scope.

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?

The tool is simple with one parameter and no output schema. The description covers the core purpose and what to expect (stations and departures). It could mention that the route ID must be valid, but overall it is sufficiently complete for this complexity.

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% coverage with a description for route_id ('The ID of the route'). The description does not add much beyond this, merely restating 'by route ID'. Since the schema already covers the parameter, baseline 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb 'Get' with a clear resource 'route details' and clarifies the scope via 'including stations and departures' and 'by route ID'. This clearly distinguishes it from the sibling tool scheduling_list_routes, which lists routes rather than details of a specific one.

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 phrase 'by route ID' implies the tool is used when you already have a route ID and need detailed information, while list_routes would be used to discover routes. However, it does not explicitly mention alternatives or exclusions, so it falls short of a 5.

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

scheduling_list_plansA

List all algorithmically generated scheduling plans.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It only states 'List all...' which implies a read-only operation, but it does not mention return format, pagination, authentication, rate limits, or any side effects. This is insufficient for a tool without annotation coverage.

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 one concise sentence that front-loads the verb and resource. There is no wasted wording or redundancy, making it highly efficient for a simple list operation.

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 low complexity (no params, no output schema), the description is brief but does not clarify what a 'scheduling plan' contains or whether results are paginated. While this might be adequate for a simple enumeration, the sibling tools suggest a richer domain, and more 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 tool has zero parameters, and the schema coverage is trivially 100%, so there are no parameter semantics to explain. The description adds no parameter information, but since none exist, this is acceptable and aligns with the baseline 4 for parameter-free tools.

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 lists all algorithmically generated scheduling plans, using a specific verb and resource. It distinguishes from sibling tools such as scheduling_list_routes by explicitly naming 'plans' rather than 'routes', making the purpose unambiguous.

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 does not mention any context, exclusions, or relationships to sibling tools like scheduling_list_routes or scheduling_get_route_details, leaving the agent to infer usage.

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

scheduling_list_routesA

List all active bus routes with optional filtering by dataset or company.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of records to skip for pagination (default: 0)
limitNoMaximum number of records to return (default: 100)
companyNoFilter by company name
dataset_idNoFilter by dataset ID

TDQS

A3.6/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 the 'active' filter behavior and optional filtering, but does not explicitly state read-only nature (though 'List' implies non-mutating) or response format. Pagination behavior is left to the 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 a single, front-loaded sentence with the verb 'List' and the resource. It is concise, efficient, and contains no unnecessary 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?

For a simple list tool, the description covers the core purpose and filtering options. However, it lacks usage guidelines and does not describe the response structure, which would be helpful given no output schema. The schema covers parameter details, so it remains reasonably complete.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter (skip, limit, company, dataset_id) described. The description adds that filtering by dataset or company is optional, which is consistent with the schema but does not introduce new semantics beyond what is already documented.

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 uses a specific verb 'List' and resource 'active bus routes', clearly stating the scope and optional filters by dataset or company. This distinguishes it from sibling tools like scheduling_get_route_details (for details) and scheduling_list_plans (for plans).

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. It does not mention that scheduling_get_route_details should be used for individual route details or that this is for overviews. There are no exclusions or prerequisites.

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

scheduling_run_optimizationB

Trigger an optimization task with a specific algo_id and parameters. Returns a task ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsNo
algo_idYes
data_set_idNo

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It discloses that a task ID is returned, implying an asynchronous operation, but fails to state that this is a mutation or that it kicks off a potentially expensive background job. No side effects, permissions, or polling behavior are mentioned.

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 two short sentences with no filler. It efficiently states the action and immediate output.

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

Completeness2/5

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

For a tool with three parameters and no output schema/annotations, the description is incomplete. It omits data_set_id, does not explain the params object structure, and does not mention how to track the task. Missing critical information for correct invocation.

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 explain parameters. It mentions 'algo_id' and 'parameters' but does not explain what 'params' should contain or what 'data_set_id' is. Minimal compensation for the schema gap.

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 action (trigger), the resource (optimization task), and key input (algo_id). It also mentions the return value (task ID), distinguishing it from sibling tools that list or retrieve 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 for starting an optimization run, but does not explicitly contrast it with alternatives like scheduling_get_optimization_status for checking progress. No when-not-to-use guidance is provided.

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

Tool Schema Changelog

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

  1. 9 tool updatesv1.0.0
    • First observedscheduling_get_gantt_data
    • First observedscheduling_get_kpi
    • First observedscheduling_get_optimization_algorithms
    • First observedscheduling_get_optimization_status
    • First observedscheduling_get_route_details
    • First observedscheduling_get_trends
    • First observedscheduling_list_plans
    • First observedscheduling_list_routes
    • First observedscheduling_run_optimization

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct resource and action: routes, route details, Gantt data, optimization algorithms, running/status of optimizations, KPIs, trends, and plans. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tools follow a consistent scheduling_<verb>_<noun> pattern using only snake_case. Verbs are limited to list, get, and run, making the naming predictable and coherent.

Tool Count5/5

9 tools is well within the ideal 3-15 range and each tool serves a clear purpose in the bus scheduling domain. The count is neither sparse nor overwhelming.

Completeness4/5

The tool set covers route viewing, optimization execution and status, KPIs, trends, and plan listing. However, there is no direct way to fetch the result of a specific optimization task (only status), nor a get_plan_details tool; the Gantt data requires a plan ID, which may not be known until after listing plans.

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

  • A
    license
    Not graded
    quality
    B
    maintenance
    Exposes enterprise KPIs, health scores, forecasting, and anomaly detection as MCP tools, resources, and prompts for use by any MCP-compatible agent.
    AGPL 3.0
  • F
    license
    A
    quality
    D
    maintenance
    Exposes two MCP tools (discover and execute) that enable agents to query an OpenAPI schema via natural language and execute matched API operations.
    2
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP clients to serve and query semantic models, providing tools for entity descriptions, metric lookups, context resolution, and operation validation for AI agents.
    MIT

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/uwmyuan/transit-scheduling-mcp'

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