imgw-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool targets a distinct purpose: getting hydrological readings, getting warnings, listing hydro stations, getting weather observations, and listing weather stations. There is no overlap or ambiguity between them, and the station-listing tools clearly complement their respective data-fetching tools.
Naming Consistency5/5All tool names follow a consistent snake_case verb_noun pattern: get_hydro, get_warnings, list_hydro_stations, get_weather, list_weather_stations. The use of 'get' for data retrieval and 'list' for enumeration is uniform, and the resource is always clearly identified (e.g., 'hydro', 'warnings', 'weather').
Tool Count5/5Five tools is well-scoped for a server focusing on current meteorological and hydrological data. Each tool serves a necessary function without redundancy, and the count is neither too sparse nor overwhelming for the domain.
Completeness5/5The tool surface covers the full lifecycle of read-only access to IMGW data: retrieving current weather, current hydrological readings, active warnings, and the ability to list stations to target specific queries. No obvious gaps exist for the stated purpose, as the server explicitly provides current conditions and warnings without needing create/update operations.
Average 3.9/5 across 5 of 5 tools scored. Lowest: 3.1/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 10 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is failing
This repository is licensed under MIT License.
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?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description lists the returned fields but does not state whether the operation is read-only, whether data is cached or real-time, or any side effects. For a data-fetching tool, this is a notable gap.
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 a single, front-loaded sentence that begins with the core purpose and then lists relevant fields. It is concise and informative without being verbose, though the field list is somewhat long. Overall, it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must explain return values. It does list the key fields (e.g., nazwa_zdarzenia, stopien, prawdopodobienstwo), but it does not indicate the result structure (e.g., array of objects) or additional context like timezone or units. This is adequate but leaves some ambiguity.
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 input schema has zero parameters, so there is nothing to explain. Since the schema is empty, the baseline is 4 for parameter semantics. The description appropriately focuses on the output rather than parameters, which is correct for a no-parameter tool.
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 a specific verb ('Get') and resource ('active IMGW meteorological warnings across Poland'), and lists the returned fields. This makes the tool's purpose unambiguous and distinguishes it from weather/hydro siblings by focusing on warnings. However, it does not explicitly name an alternative, so it stops short of a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like get_weather or get_hydro. The description only states what it does, leaving the agent to infer its applicability. No exclusions or contexts are provided.
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?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the data source ('/hydro feed') and optional query filters, but does not state what happens when no filters are applied (e.g., returns all stations), rate limits, or pagination. For a simple list tool, this is adequate but lacks deeper transparency.
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?
Two concise sentences with no redundancy. The purpose and data source are front-loaded, followed by the filter note and the specific use case. Every word earns its place.
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?
For a simple list tool with two optional filters and no output schema, the description provides sufficient information: what it lists, the source, and how it is used (for get_hydro). It does not describe the response format, but that is not critical for a list operation of this nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, meaning both parameters (river, province) are already described in the schema. The description only says 'Optional query filters,' which adds no meaning beyond what the schema provides. Baseline 3 is appropriate.
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 uses a specific verb ('List'), names the resource ('hydrological station names, rivers, and provinces'), and identifies the data source ('/hydro feed'). It also ties the tool to a downstream use case (finding the right station name for get_hydro), which differentiates it from siblings like list_weather_stations, though not explicitly.
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 clearly states the primary context: 'Used to find the right station name for get_hydro.' It does not mention when not to use it or name alternative tools (e.g., list_weather_stations), but the intended usage is specific and actionable, satisfying the 'clear context' criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It transparently explains that the server computes an alarm_status field from current values vs. thresholds, which is not evident from the schema. This adds meaningful context about the tool's internal behavior, though it omits other traits like rate limits or error 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the core purpose, and lists key data fields without redundant detail. Every sentence contributes value, making it highly concise and well-structured.
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?
For a read-only tool with 5 optional parameters and 100% schema coverage, the description adequately conveys the data returned and the alarm_status behavior. The only minor gap is the absence of explicit guidance on pagination or handling of large result sets (though limit is in the schema), and it does not reference sibling tools for context, but overall it provides sufficient information for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are fully documented in the input schema. The description does not add parameter-specific meaning beyond what the schema already provides, hitting the baseline of 3.
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 the tool retrieves current hydrological readings from IMGW, enumerating specific fields (water level, flow rate, temperature, thresholds). This verb+resource definition is unambiguous and naturally distinguishes it from siblings like get_warnings (warnings vs. readings) and get_weather (weather vs. hydrology).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for hydrological data retrieval but does not explicitly state when to choose this tool over get_warnings or other siblings. There is no mention of alternatives or exclusions, leaving the agent to infer the appropriate context from the purpose alone.
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?
No annotations are provided, so the description carries the burden. It discloses the data source ('/synop feed') but does not mention any behavioral traits such as read-only nature, ordering, pagination, or result format. The 'list' verb implicitly suggests read-only, but this is not explicit.
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?
Two short sentences with no filler. The primary action is front-loaded, and the useful context about the feed appears immediately. Every word contributes value.
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?
For a simple list tool with no parameters and no output schema, this description is largely complete. It states what it lists, from which feed, and why it's useful. It could optionally mention if the list is exhaustive or sorted, but that is not critical for basic invocation.
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 tool has zero parameters, and the schema coverage is trivially 100%. The baseline for 0-parameter tools is 4, and the description doesn't need to add parameter details. It appropriately focuses on the output and use case.
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 ('List') and resource ('synoptic station names'), and references the '/synop feed' for context. It clearly distinguishes this tool from siblings like list_hydro_stations by naming a different feed type.
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 provides clear context: this tool is for finding the right station name, implying it is used as a precursor to other operations. However, it does not explicitly state when not to use it or name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It credibly reveals data update frequency (~hourly), the scope behavior with and without station, and enumerates the returned fields with units. Missing minor details like error conditions or aggregation behavior, but for a read-only weather observation tool this is solid forward disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Four front-loaded sentences with zero wasted words. Purpose leads, followed by scope behavior, freshness, and return fields. The field list earns its place as a substitute for an output schema. Every sentence delivers new, non-redundant information beyond what annotations or schema already provide.
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 tool with one optional parameter, no output schema, and no annotations, the description compensates fully: it enumerates the return fields with units (substituting for output schema docs), states freshness, and explains both call modes. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's parameter text ('Omit to get all') essentially duplicates the schema's own wording and adds nothing beyond it — the case-insensitivity, ASCII-fold behavior, and examples all live in the schema. The field/unit list describes output, not parameters, so it doesn't lift this score.
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?
States a specific verb (get), resource (current synoptic weather observations), and origin (IMGW) in the first sentence. It clearly differentiates from siblings: get_hydro/get_warnings are for other data types, and list_weather_stations/list_hydro_stations serve listing purposes, while this tool returns current observations. The 'current' qualifier further distinguishes it from the station listing tools.
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?
Clearly explains the two invocation modes (omit station for all ~60, provide station for a single one), which is the core usage decision. It does not explicitly name sibling alternatives or state when NOT to use this tool, but for a simple retrieval tool the context is sufficient and the scoping behavior is unambiguous.
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/bartosz-kuc/imgw-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server