colregs-mcp
Server Quality Checklist
Latest release: v0.0.1
- Disambiguation4/5
The tools are mostly distinct: rule_text retrieves paragraph text, light retrieves light definitions, and evaluate_display computes lawful displays. The main overlap is between applied_entries and evaluate_display, since both take the same input and both report applicable entries, but the descriptions clearly separate the cheaper applicability query from the full display evaluation.
Naming Consistency3/5The names are readable and domain-specific, but they do not follow a consistent pattern: evaluate_display is verb_noun, applied_entries and rule_text are noun phrases, and light is a bare noun. There is no strong predictable convention across the set.
Tool Count5/5Four tools is well-scoped for the server's narrow purpose of evaluating COLREGS Part C lights. Each tool has a distinct role in the workflow: evaluate displays, check applicable entries, look up rule text, and look up light definitions.
Completeness4/5The core workflow is covered: a fact record can be evaluated, applicable entries identified, and supporting rule text and light definitions retrieved. Minor gaps exist, such as no tool to introspect the available fact schema or enumerate all rule cites and light ids, but these are workable from the response data.
Average 4.6/5 across 4 of 4 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 2 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under 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.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only and idempotent; the description goes much further by explaining how multiple lawful displays are represented, that all options are equally correct, that 'shall' and 'may' lights are not merged, and that results are verbatim from a pre-release data package. No annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long, but the tool is complex and nearly every sentence carries a distinct caveat or output detail. It is front-loaded with the purpose and returns, though the density of the prose makes it harder to scan than a bulleted structure would be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description thoroughly explains return fields, relation semantics, option numbering, optional additions, citations, coverage limits, and data stability. It lacks a concrete call example and does not discuss invalid/empty fact inputs, but is otherwise complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by naming the core fact fields (propulsion, activity, position, length), referencing the facts data package, and adding the crucial semantic that the input describes a situation, not a fitted vessel, so equipment choices are not settled. Per-field value details are left to the input schema, which provides them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool evaluates every complete lawful set of navigation lights from a fact record under COLREGS, and enumerates the returned data (applied entries, exemptions, lawful_displays). This makes the tool's purpose unambiguous and distinguishes it from a generic rule-text or single-light tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear when-to-use context (COLREGS Part C lights at night, from a fact record) and explicit exclusions (no day shapes, sound signals, or Part B rules). It does not name sibling tools or explicitly route to alternatives, which prevents a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses that the content is verbatim from a pre-release data package, that nothing is paraphrased, that the surface is a 0.0.x preview subject to change, and that it is not for navigation. This is substantial behavioral context not available from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded with the core purpose and output fields, followed by necessary caveats. A few caveats are repeated in spirit, but each sentence adds useful information for a tool with significant data-quality warnings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description enumerates the return fields, mentions the bearing convention for arcs, specifies coverage and exclusions, and warns about data maturity. For a single-parameter read-only tool, this is complete enough for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'id' parameter, so the baseline is 3. The description adds meaningful context by explaining that ids come from evaluate_display, giving concrete examples, and noting that the 'light:' prefix is optional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns one light's definition from the colregs data package, listing the exact fields included. It is distinct from sibling tools because it ties ids to evaluate_display, but it does not explicitly name or contrast the other sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit scope and exclusions: COLREGS Part C lights only, international text only, lights at night only, and no day shapes/sound signals/Part B rules. It also clarifies the id provenance via evaluate_display, helping an agent decide 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.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish read-only and idempotent behavior, but the description adds substantial behavioral context: the source file, retrieval date, no-paraphrasing guarantee, pre-release data quality, and version instability. This goes well beyond what annotations alone convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by cite syntax and then important limitations. It is longer than strictly necessary for a one-parameter tool, but every sentence contributes useful safety or provenance information, so the length is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read-only tool, the description is complete: it defines the parameter format, scope, source, caveats, and versioning behavior. Even without an output schema, it explains what the response contains (verbatim text plus source and retrieval date).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already has 100% coverage for the 'cite' parameter with examples, so the baseline is 3. The description adds meaningful extras: bare rule numbers return every paragraph of that rule, ranges are accepted, and cites follow the exact format used elsewhere in the system. This strengthens the parameter semantics beyond the schema's short example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns the verbatim text of a COLREGS paragraph from a specific data source, addressed by cite. The verb 'retrieve' is implied through 'the verbatim text ... by its cite,' and the detailed cite syntax distinguishes it from sibling tools like light or evaluate_display.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong context for when to use the tool: whenever verbatim paragraph text is needed by a COLREGS cite, and it explicitly lists coverage exclusions (no day shapes, no sound signals, no Part B rules). It does not explicitly name alternative tools or say 'use X instead,' but the scope and limitations are clear enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description adds substantial non-obvious behavior: output ordering, verbatim provenance from the data package, coverage limitations, pre-release data status, and a stability warning that the surface may change without notice. This goes well beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well organized: purpose first, then the key alternative, then scope limitations, then data-provenance and stability caveats. Every sentence adds necessary information, and the most decision-relevant content is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complex nested input and no output schema, the description is unusually complete: it specifies the output shape ({id, cite} pairs in data order), the exact coverage boundaries, the source data version, the preview instability, and the fact that entries are verbatim rather than paraphrased. Nothing essential for invoking the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single top-level facts parameter has no inline description in this tool, and schema description coverage is 0%. However, the description says 'Same input as evaluate_display', linking the agent to the sibling schema, and frames the input as a fact record. The nested schema itself documents each fact property in detail, so an agent can construct valid input despite the top-level cross-reference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns COLREGS applicability entries that hold for a fact record, as {id, cite} pairs in data order. It also clearly distinguishes itself from evaluate_display by framing this as the cheaper 'which paragraphs speak to this vessel' question, so an agent can tell the tools apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to use evaluate_display instead and what this tool is for: 'Use evaluate_display for the lights; this is the cheaper question'. It also gives hard exclusions via the coverage statement: no day shapes, no sound signals, no Part B steering rules, and not for navigation.
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
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/mark-brannan/colregs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server