Skip to main content
Glama
robotmcp

ROS MCP Server

Server Quality Checklist

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

  • Disambiguation4/5

    Most tools have distinct purposes focused on different ROS operations like service calls, topic management, and network configuration. However, there is some overlap between get_services and inspect_all_services, as well as between subscribe_once and subscribe_for_duration, which could cause minor confusion in tool selection.

    Naming Consistency4/5

    The naming follows a consistent snake_case pattern with clear verb_noun structures like get_topics, call_service, and publish_once. Minor deviations exist, such as ping_robot (which is more specific) and set_websocket_ip (which uses 'set' instead of a more common verb like 'configure'), but overall the conventions are readable and predictable.

    Tool Count4/5

    With 17 tools, the count is slightly high but reasonable for a ROS server that needs to cover services, topics, messages, and network operations. It provides comprehensive functionality without being overwhelmingly large, though it borders on the upper limit of a well-scoped set.

    Completeness5/5

    The tool set offers complete coverage for ROS operations, including CRUD-like actions for services and topics (e.g., call, get, publish, subscribe), message and service details retrieval, and network configuration tools. There are no obvious gaps, and agents can handle core workflows like monitoring, publishing, and service interaction effectively.

  • Average 3/5 across 17 of 17 tools scored. Lowest: 2.4/5.

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

    • 14 of 20 community issues answered or closed in the last 6 months
    • 9 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under Apache 2.0.

  • This repository includes a README.md file.

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

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

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

  • This server has been verified by its author.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

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

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

How is the quality score calculated?

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

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

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

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

Tool Scores

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It only states what the tool does ('Get the service type') without mentioning permissions, rate limits, error handling, or response format. The example adds minimal context but lacks critical behavioral details for a tool with zero 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.

    Conciseness4/5

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

    The description is brief and front-loaded with the core purpose, followed by a relevant example. Both sentences add value, with no wasted words, making it efficient for an AI agent to parse quickly.

    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 annotations, 0% schema coverage, and no output schema, the description is incomplete. It lacks details on parameter usage, behavioral traits, and return values, which are essential for a tool in this context with siblings that perform related operations. The example helps but doesn't fill these gaps adequately.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate. It mentions 'a specific service' and provides an example with '/rosapi/topics', which hints at the parameter's purpose, but doesn't explain the 'service' parameter's format, constraints, or semantics beyond the basic example. This is insufficient for a tool with one undocumented 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 'Get the service type for a specific service', which provides a clear verb ('Get') and resource ('service type'), but it doesn't differentiate from siblings like 'get_service_details' or 'get_topic_type'. The example adds some specificity but doesn't fully distinguish the tool's unique purpose.

    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 like 'get_service_details' or 'get_services'. The example shows usage but doesn't explain context, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.

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

  • Behavior1/5

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

    No annotations are provided, so the description carries full burden for behavioral disclosure. It states what the tool does but reveals nothing about side effects, permissions needed, error conditions, or what happens after setting the IP/port (e.g., whether it persists, requires restart). This is inadequate for a configuration tool with potential system impact.

    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, direct sentence that efficiently conveys the core function without any fluff. It's appropriately sized and front-loaded with the essential information.

    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 annotations, no output schema, and 3 parameters with 0% schema coverage, the description is incomplete. It lacks details on behavioral implications, parameter meanings, and expected outcomes, which are critical for a configuration tool that could affect system connectivity.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'IP and port' but only covers 2 of the 3 parameters (ip, port), omitting 'local_ip' entirely. This leaves one parameter unexplained and provides no additional context beyond naming two parameters.

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

    Purpose4/5

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

    The description clearly states the action ('Set') and the target ('IP and port for the WebSocket connection'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools, which are mostly about querying services and topics rather than configuration.

    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 or in what context it should be applied. The description is purely functional without any usage context, prerequisites, or exclusions.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. While it states the tool calls a ROS service, it doesn't describe what happens during invocation (e.g., whether it's synchronous/asynchronous, error handling, timeout behavior, or side effects). The example hints at usage but lacks critical operational details needed for safe and effective use.

    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 brief and front-loaded with the core purpose in the first sentence. The example is relevant but could be more integrated. Overall, it's efficient with minimal waste, though it sacrifices completeness for brevity.

    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 (3 parameters, nested objects, no output schema, and no annotations), the description is inadequate. It lacks details on parameter usage, behavioral traits, return values, and error handling. For a tool that invokes services in a ROS environment, this leaves significant gaps in understanding how to use it correctly.

    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 schema provides no parameter descriptions. The description mentions 'specified request data' but doesn't explain the three parameters (service_name, service_type, request) or their relationships. The example shows values but without semantic context, leaving parameters largely undocumented and unclear to the agent.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Call a ROS service with specified request data.' This specifies the verb ('Call'), resource ('a ROS service'), and scope ('with specified request data'). However, it doesn't differentiate this tool from its siblings like 'get_service_details' or 'inspect_all_services', which are read-only operations, while this appears to be an invocation tool.

    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 includes an example but doesn't explain when to choose 'call_service' over other tools like 'get_services' or 'get_service_type'. There's no mention of prerequisites, error conditions, or typical use cases, leaving the agent with insufficient context for decision-making.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but lacks behavioral disclosure. It doesn't state whether this is a read-only operation, if it requires authentication, potential rate limits, or what happens on errors (e.g., invalid service_type). The example implies a string parameter format but doesn't clarify behavioral traits like response format or side effects.

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

    Conciseness4/5

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

    The description is appropriately sized with two sentences: a purpose statement and an example. It's front-loaded with the core functionality, and the example is relevant but not verbose. However, the example could be more integrated (e.g., explaining the parameter) rather than standalone.

    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 1 parameter with 0% schema coverage, no annotations, and no output schema, the description is incomplete. It doesn't explain the return values (e.g., structure of details), error conditions, or usage context. For a tool that presumably returns complex data, more guidance is needed to help the agent use it effectively.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate but adds minimal value. It mentions 'service_type' in the example but doesn't explain what it represents (e.g., a package/service identifier), valid formats, or constraints. With 1 undocumented parameter, the description fails to provide meaningful semantics beyond the basic example.

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

    Purpose4/5

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

    The description clearly states the tool's purpose with the verb 'Get' and resource 'complete service details', including specific components like 'request and response structures'. It distinguishes itself from siblings like 'get_services' (list) and 'get_service_type' (type only) by focusing on comprehensive details. However, it doesn't explicitly differentiate from 'inspect_all_services', which might be similar in scope.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context (e.g., after listing services), or exclusions (e.g., not for basic info). The example shows usage but doesn't explain why to choose this over siblings like 'get_service_type' or 'inspect_all_services', leaving the agent to infer based on tool names alone.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves a list but doesn't mention whether it's read-only, if it requires specific permissions, what format the list returns, or any error conditions. For a tool with zero annotation coverage, this is a significant gap in behavioral context.

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

    Conciseness4/5

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

    The description is appropriately sized with two sentences: a clear purpose statement and a helpful example. The example is relevant and adds value without unnecessary elaboration, making it efficient and 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 no annotations, no output schema, and low schema coverage, the description is incomplete. It lacks details on return values, error handling, permissions, or how it differs from sibling tools. For a tool in this context, more comprehensive information is needed to guide the agent effectively.

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

    Parameters3/5

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

    The schema description coverage is 0%, so the description must compensate. It adds meaning by specifying that the 'topic' parameter should be a topic name (e.g., '/cmd_vel'), which clarifies beyond the schema's generic 'string' type. However, it doesn't explain topic format constraints or provide full parameter documentation, keeping it at baseline.

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

    Purpose4/5

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

    The description clearly states the action ('Get list of nodes') and resource ('publishing to a specific topic'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_subscribers_for_topic' or 'get_topics', which would be needed for a perfect score.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'get_subscribers_for_topic' or 'get_topics'. The example shows usage but doesn't explain context or exclusions, leaving the agent to infer when 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.

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It states the tool returns a list but doesn't disclose behavioral traits such as whether it's read-only, requires authentication, has rate limits, or what format the list takes (e.g., JSON array, paginated). The example hints at input format but lacks output details, leaving gaps in understanding how the tool behaves.

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

    Conciseness5/5

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

    The description is appropriately sized and front-loaded: the first sentence states the purpose clearly, and the example is concise and relevant. There's no wasted text, and the structure supports quick understanding without unnecessary detail.

    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 complexity (querying service providers in what appears to be a ROS context), lack of annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't cover return values, error conditions, or dependencies, leaving the agent with insufficient information to use the tool effectively beyond basic invocation.

    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 description adds minimal meaning beyond the input schema. Schema coverage is 0%, with one parameter ('service') documented only by title and type. The description implies 'service' is a string (via the example '/rosapi/topics') but doesn't explain what constitutes a valid service name, expected format, or if it's a ROS service path. This provides some context but doesn't fully compensate for the low schema coverage.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get list of nodes that provide a specific service.' It uses a specific verb ('Get') and resource ('list of nodes'), and the example reinforces this by showing usage with a service parameter. However, it doesn't explicitly differentiate from siblings like 'get_services' (which likely lists available services rather than providers) or 'get_service_details' (which might provide detailed info about a service).

    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 includes an example but doesn't explain context, prerequisites, or exclusions. Given siblings like 'get_services' and 'get_service_details', the agent must infer usage based on naming alone, which is insufficient for reliable tool selection.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It states it 'Get list of nodes' but doesn't disclose behavioral traits such as whether this is a read-only operation, if it requires specific permissions, rate limits, or what the return format looks like (e.g., list structure, error handling). The example adds minimal context but lacks depth.

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

    Conciseness5/5

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

    The description is appropriately sized and front-loaded: the first sentence states the core purpose clearly, and the example is brief and relevant. Every sentence earns its place without redundancy or unnecessary elaboration.

    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 (a query tool with no annotations, 1 parameter at 0% schema coverage, and no output schema), the description is incomplete. It lacks details on return values, error conditions, and operational context (e.g., real-time vs. static data), making it inadequate for full understanding despite its conciseness.

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

    Parameters3/5

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

    The schema description coverage is 0%, so the description must compensate. It mentions 'a specific topic' and provides an example '/cmd_vel', which adds some meaning beyond the schema's generic 'topic' parameter. However, it doesn't explain topic format constraints, validation rules, or semantics, leaving gaps in parameter understanding.

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

    Purpose4/5

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

    The description clearly states the verb 'Get' and the resource 'list of nodes that are subscribed to a specific topic', making the purpose evident. It distinguishes from siblings like 'get_publishers_for_topic' by focusing on subscribers rather than publishers, but doesn't explicitly differentiate from other list tools like 'get_topics' or 'get_services'.

    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 includes an example but doesn't specify scenarios, prerequisites, or exclusions. For instance, it doesn't clarify if this is for real-time monitoring or configuration checks compared to siblings like 'subscribe_once'.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It mentions 'Fetch' but doesn't disclose behavioral traits such as whether this is a read-only operation, potential rate limits, authentication needs, or what the return format looks like. The example adds minimal value 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.

    Conciseness3/5

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

    The description is brief with two sentences, but the example 'get_topics()' is redundant as it restates the tool name without adding value. It could be more front-loaded by omitting the example or replacing it with more informative content, making it somewhat inefficient.

    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 has no parameters and no output schema, the description is minimal. It lacks context on what 'available topics' entails (e.g., format, scope, or relation to siblings), making it incomplete for guiding an AI agent effectively in a server with multiple ROS-related tools.

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

    Parameters4/5

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

    The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here, but it also doesn't compensate for any gaps since there are none. A baseline of 4 reflects that the description doesn't detract from the complete schema coverage.

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

    Purpose4/5

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

    The description clearly states the action ('Fetch') and resource ('available topics from the ROS bridge'), making the tool's purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_services' or 'get_message_details', which would require a more specific scope statement.

    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. With siblings like 'get_publishers_for_topic' and 'get_subscribers_for_topic', it's unclear if this tool lists all topics broadly or serves a specific subset, leaving usage context ambiguous.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Get[s] the message type,' implying a read-only operation, but does not specify if it requires permissions, what happens if the topic is invalid, or any rate limits. The example adds minimal context but lacks details on error handling or output format.

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

    Conciseness5/5

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

    The description is very concise and front-loaded: the first sentence clearly states the purpose, and the example is brief and relevant. There is no wasted text, making it efficient for quick comprehension.

    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 (a read operation with 1 parameter) and lack of annotations or output schema, the description is incomplete. It does not explain what the tool returns (e.g., the message type format), error conditions, or dependencies on other tools like 'get_topics'. For a tool with no structured support, more context is needed to be fully helpful.

    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 1 parameter with 0% description coverage, so the description must compensate. It mentions 'a specific topic' and provides an example with '/cmd_vel', adding some meaning by indicating the parameter is a topic path. However, it does not explain the topic format, constraints, or what constitutes a valid topic, leaving gaps in parameter understanding.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get the message type for a specific topic.' This specifies the verb ('Get'), resource ('message type'), and target ('specific topic'), making it easy to understand what the tool does. However, it does not explicitly differentiate from siblings like 'get_message_details' or 'get_topics', which might provide related information.

    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 lacks context on prerequisites, such as whether the topic must exist, or comparisons to siblings like 'get_message_details' or 'get_topics'. The example shows usage but does not explain when this tool is appropriate over others.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'publish' (implying a write/mutation operation) and 'delays', but doesn't clarify permissions needed, whether messages are sent immediately or queued, error handling, or what happens if durations/messages arrays mismatch. The example hints at usage but lacks comprehensive behavioral context for a mutation tool.

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

    Conciseness5/5

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

    The description is highly concise and front-loaded: the first sentence states the core purpose, followed immediately by a practical example. Every sentence earns its place by demonstrating usage without unnecessary elaboration. No wasted words or redundant information.

    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 4 parameters with 0% schema coverage, no annotations, and no output schema, the description is incomplete. While the example helps, it doesn't cover error cases, return values, or detailed behavioral expectations. For a mutation tool publishing sequences with timing, more context on execution flow and results is needed.

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

    Parameters3/5

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

    Schema description coverage is 0%, so the description must compensate. The example illustrates all four parameters (topic, msg_type, messages, durations) with concrete values, adding meaningful semantics beyond the bare schema. However, it doesn't explain parameter constraints (e.g., durations in seconds, message format requirements) or relationships between arrays. Baseline 3 reflects partial compensation.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Publish a sequence of messages with delays.' This specifies the verb ('publish'), resource ('messages'), and key behavior ('with delays'). It distinguishes from siblings like 'publish_once' by emphasizing sequential publishing with timing. However, it doesn't explicitly contrast with 'subscribe_for_duration' or other siblings beyond the example.

    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 explicit guidance on when to use this tool versus alternatives. While the example shows usage, it doesn't state when this tool is preferred over 'publish_once' or when subscription tools might be more appropriate. No prerequisites, exclusions, or comparative context are mentioned.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('publish a single message') but lacks details on permissions, rate limits, error handling, or what 'publish' entails in ROS context (e.g., network effects, persistence). The example hints at usage but doesn't clarify behavioral traits beyond the basic operation.

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

    Conciseness5/5

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

    The description is front-loaded with the core purpose in the first sentence, followed by a concise example that illustrates usage without unnecessary detail. Every sentence earns its place by providing essential information efficiently, 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 the complexity (ROS messaging with 3 parameters, no output schema, and no annotations), the description is incomplete. It lacks context on ROS-specific behaviors, error cases, or integration with sibling tools, making it inadequate for an agent to fully understand the tool's role and limitations in this environment.

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

    Parameters3/5

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

    Schema description coverage is 0%, so the description must compensate. It lists parameters in the example (topic, msg_type, msg) and shows a sample structure, adding meaning beyond the bare schema. However, it doesn't explain parameter roles (e.g., what msg_type formats are valid, topic naming conventions), leaving gaps in semantic understanding.

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

    Purpose4/5

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

    The description clearly states the verb ('publish') and resource ('a single message to a ROS topic'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'publish_for_durations' or 'subscribe_once', which would require mentioning the 'once' aspect more clearly in relation to alternatives.

    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 like 'publish_for_durations' or 'subscribe_once'. It includes an example but doesn't explain context, prerequisites, or exclusions, leaving the agent to infer usage from the name and example alone.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves a list but doesn't mention any behavioral traits such as permissions needed, rate limits, or what 'all available' entails (e.g., scope, freshness). This leaves significant gaps for a tool that likely interacts with a ROS system.

    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 brief and front-loaded with the core purpose, followed by a concise example. However, the example is somewhat redundant with the purpose statement and could be integrated more efficiently, slightly reducing the score.

    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 of ROS services and the lack of annotations and output schema, the description is incomplete. It doesn't explain what the returned list contains (e.g., format, structure) or any operational constraints, which is insufficient for effective tool use in this context.

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

    Parameters4/5

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

    The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate, but it includes an example that reinforces the lack of parameters, slightly enhancing clarity beyond the schema.

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

    Purpose4/5

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

    The description clearly states the verb ('Get') and resource ('list of all available ROS services'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_service_details' or 'inspect_all_services', which prevents a perfect score.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'get_service_details' or 'inspect_all_services'. It includes an example of usage syntax, but this doesn't address context or prerequisites for selection among similar tools.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Get[s] comprehensive information,' implying a read-only operation, but doesn't specify if it requires authentication, has rate limits, returns paginated results, or what format the information is in. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior and constraints.

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

    Conciseness4/5

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

    The description is appropriately sized and front-loaded, with the core purpose stated in the first sentence. The example adds minimal but useful syntactic clarification. There's no wasted text, though the example could be integrated more seamlessly. Overall, it's efficient and well-structured.

    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 of inspecting 'all services' and the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'comprehensive information' entails, how results are structured, or any limitations (e.g., performance impact for many services). Without this context, an agent might struggle to use the tool effectively or interpret its output.

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

    Parameters4/5

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

    The input schema has 0 parameters with 100% coverage, so no parameter information is needed in the description. The description correctly avoids discussing parameters, focusing instead on the tool's purpose. This aligns with the baseline of 4 for tools with no parameters, as it doesn't add unnecessary details.

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

    Purpose4/5

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

    The description clearly states the tool's purpose with the verb 'Get' and resource 'comprehensive information about all services including types and providers.' It distinguishes itself from siblings like 'get_services' by specifying 'comprehensive information' and mentioning 'types and providers,' which suggests more detailed output than basic listing. However, it doesn't explicitly contrast with 'get_service_details' or 'get_service_providers,' which could cause confusion.

    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. With siblings like 'get_services,' 'get_service_details,' and 'get_service_providers,' it's unclear whether this tool should be used for a high-level overview, detailed inspection, or as a replacement for other tools. The example only shows syntax without context, offering no usage rules or exclusions.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves a 'complete structure/definition,' implying a read-only operation, but does not detail aspects like error handling, performance, or output format. For a tool with zero annotation coverage, this leaves significant behavioral gaps, such as whether it requires specific permissions or how it handles invalid inputs.

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

    Conciseness5/5

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

    The description is highly concise and well-structured, consisting of two sentences: a clear purpose statement and a practical example. Every element serves a purpose without redundancy, making it easy to parse and front-loaded with essential information. This efficiency earns a top score for conciseness.

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

    Completeness3/5

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

    Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is minimally adequate. It states the purpose and provides an example, but lacks details on behavior, parameter semantics, and usage guidelines. For a simple read operation, this might suffice, but gaps in transparency and guidelines prevent a higher score, making it just viable.

    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 1 parameter with 0% description coverage, and the description does not add any semantic details about the 'message_type' parameter beyond what the example implies. It shows usage with a string example but does not explain format, constraints, or valid values. With low schema coverage, the description fails to compensate adequately, resulting in a baseline score due to the example providing minimal context.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get the complete structure/definition of a message type.' It specifies the verb ('Get') and resource ('structure/definition of a message type'), making the intent unambiguous. However, it does not explicitly differentiate from sibling tools like 'get_topic_type' or 'get_service_type', which likely retrieve different types of definitions, so it misses full sibling distinction.

    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 includes an example ('get_message_details('geometry_msgs/Twist')'), which illustrates usage but does not specify contexts, prerequisites, or exclusions. Without explicit when/when-not instructions or named alternatives, it offers minimal usage guidance.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but only states basic behavior. It doesn't disclose critical traits: whether subscription is blocking/non-blocking, error handling for invalid topics/msg_types, message format returned, or if it requires active publishers. The example shows defaults but no behavioral context like rate limits or permissions needed.

    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 with two sentences: a clear purpose statement followed by a comprehensive example showing all parameters. Zero wasted words, front-loaded with the core functionality. The example efficiently demonstrates usage without verbose explanations.

    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 4-parameter tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (message format, structure, or error cases), behavioral details like subscription mechanics, or integration with sibling tools. The example helps but doesn't cover output or edge cases, leaving significant gaps for agent understanding.

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

    Parameters3/5

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

    Schema description coverage is 0%, so the description must compensate. The example lists all 4 parameters with sample values, adding meaning beyond schema titles. However, it doesn't explain parameter relationships (e.g., duration vs. max_messages interaction), units for duration, or valid msg_type formats. Baseline would be lower without the example, but it partially compensates.

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

    Purpose4/5

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

    The description clearly states the verb 'subscribe' and resource 'topic', specifying the action of collecting messages for a duration. It distinguishes from sibling 'subscribe_once' by emphasizing duration-based collection rather than single-message subscription. However, it doesn't explicitly contrast with other siblings like 'get_topics' or 'get_subscribers_for_topic'.

    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 collecting multiple messages over time through the example, suggesting when to use this vs. 'subscribe_once' for single messages. However, it lacks explicit guidance on when NOT to use it or alternatives like polling with 'get_message_details'. No prerequisites or context about topic availability are mentioned.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It mentions the tool subscribes and returns the first message, but does not disclose critical behavioral traits such as timeout behavior, error handling (e.g., if no message arrives), permission requirements, or rate limits. The example adds some context but leaves operational details unclear.

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

    Conciseness5/5

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

    The description is appropriately sized with two sentences: a clear purpose statement followed by a concise example. It is front-loaded with the core functionality, and every sentence adds value without redundancy or unnecessary elaboration.

    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 complexity (interactive subscription with ROS), lack of annotations, no output schema, and low schema coverage, the description is incomplete. It fails to explain return values, error conditions, or integration context (e.g., ROS environment requirements), making it inadequate for safe and effective use by an AI agent.

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

    Parameters3/5

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

    Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining that 'topic' is the ROS topic to subscribe to and 'msg_type' specifies the message type, as shown in the example. However, it does not detail parameter formats (e.g., topic naming conventions) or default behaviors, leaving gaps in documentation.

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

    Purpose5/5

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

    The description clearly states the specific action ('Subscribe to a ROS topic and return the first message received') with the exact resource (ROS topic). It distinguishes from sibling tools like 'subscribe_for_duration' by specifying 'once' for single-message retrieval, and from 'publish_once' by focusing on subscription rather than publishing.

    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 implies usage for retrieving a single message from a ROS topic, with an example showing parameter usage. However, it lacks explicit guidance on when to use this versus alternatives like 'subscribe_for_duration' for continuous listening or 'get_topics' for discovery, and does not mention prerequisites or exclusions.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It explains what the tool does (ping IP, check port) and mentions diagnostic interpretation ('successful ping to the IP but not the port can indicate that ROSbridge is not running'), which adds useful context. However, it doesn't disclose timeout behaviors, error handling, or what constitutes a 'successful' result beyond the example.

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

    Conciseness5/5

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

    The description is perfectly sized and front-loaded: the first sentence states the core purpose, the second adds diagnostic context, and the third provides a concrete example. Every sentence earns its place with no wasted words, making it easy for an agent to quickly understand the tool's function.

    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 no annotations, no output schema, and 4 parameters (2 undocumented), the description is moderately complete. It covers the core functionality and main parameters well but lacks details on optional parameters, return values, error conditions, and timeout behaviors. For a network diagnostic tool, more behavioral context 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 description must compensate. It explicitly names and provides an example for the two required parameters (ip, port), giving them clear meaning. However, it doesn't mention the two optional timeout parameters (ping_timeout, port_timeout) at all, leaving them undocumented. The description adds significant value for the core parameters but misses the optional ones.

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

    Purpose5/5

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

    The description clearly states the tool's purpose with specific verbs ('ping', 'check') and resources ('robot's IP address', 'specific port'). It distinguishes this tool from all sibling tools, which focus on ROS services, topics, and publishing rather than network connectivity testing. The example reinforces the specific functionality.

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

    Usage Guidelines4/5

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

    The description provides clear context for when to use this tool: to test network connectivity to a robot and check port availability, specifically mentioning ROSbridge as a potential use case. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools for different network or ROS diagnostic tasks.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

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

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

Card Badge

ros-mcp-server MCP server

Copy to your README.md:

Score Badge

ros-mcp-server MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/robotmcp/ros-mcp-server'

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