Skip to main content
Glama

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.2.0

  • Disambiguation4/5

    Most tools have clearly distinct purposes, but arnfa_plan_day and arnfa_ask both produce weather-fit plans, which could cause confusion. However, the descriptions clarify that one is a direct structured planner and the other is an AI-narrated follow-up, so the overlap is manageable.

    Naming Consistency3/5

    While all tools share the 'arnfa_' prefix, the naming conventions vary: 'list_areas' and 'plan_day' use verb_noun, but 'sky_now' uses noun_adverb, 'where' is just an adverb, 'cooling_centers' is a noun phrase, and 'ask' is a bare verb. This mixed style is readable but lacks a consistent pattern.

    Tool Count5/5

    With 6 tools covering area discovery, planning, current sky, location ranking, emergency cooling centers, and natural language queries, the count is well-scoped for the intended functionality. Each tool earns its place without unnecessary bloat or sparseness.

    Completeness4/5

    The tool surface covers core workflows: finding areas, planning a day, checking current conditions, choosing the clearest location, and getting emergency centers. The only minor gap is the lack of a direct multi-day forecast tool, but agents can work around it by using plan_day for specific dates.

  • Average 4/5 across 6 of 6 tools scored. Lowest: 3.4/5.

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

    • No community issues in the last 6 months
    • 3 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
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • 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.json to 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

  • Behavior3/5

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

    With no annotations provided, the description carries the behavioral transparency burden. It discloses that the tool returns a 'bulk real forecast, never fabricated', which is a meaningful promise about data authenticity and request scope. However, it does not disclose details such as data source, latency, error handling, or whether any side effects occur, though the read-only nature is reasonably inferred from 'Rank WHERE'.

    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, focused sentence that packs purpose, scope, and a data-quality promise without waste. Every phrase earns its place, making it both concise and front-loaded.

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

    Completeness4/5

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

    Given the tool's simplicity (one optional parameter) and the explicit 'Rank WHERE' phrasing, the description conveys the essential purpose. However, without an output schema or further behavioral details, it leaves some ambiguity about the exact return format (e.g., a sorted list of locations with scores). The 'bulk' hint partially addresses this, so the description is adequate but not fully complete.

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

    Parameters3/5

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

    The only parameter, 'day', is fully described in the input schema with '0=today … 6 days ahead', and the description merely restates 'chosen day' without adding new semantic detail. With 100% schema description coverage, the baseline of 3 is appropriate and the description does not elevate it further.

    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 identifies the tool's purpose: 'Rank WHERE the sky is clearest across Thailand for a chosen day'. It also adds thematic context with the 'ไปไหนดี / where should I go' view, which helps differentiate it from a general sky-now tool. However, it stops short of explicitly contrasting with sibling tools like arnfa_sky_now or arnfa_list_areas.

    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 choose this tool over alternatives. It does mention 'for a chosen day' as a temporal condition, but it does not state when not to use it, nor does it reference any sibling tools or alternative approaches.

    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, the description carries the full burden of behavioral disclosure. It states the data source ('Real กทม. open data') and implies a read-only lookup, but it does not disclose return format, side effects, or external dependencies. This is moderate transparency for a simple geo-query 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 a single, front-loaded sentence that packs the core function, use case, and data source without wasted words. Every clause adds 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.

    Completeness3/5

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

    The description lacks an explanation of return values (no output schema) and does not mention the optional 'n' parameter, so it is not fully complete. However, for a simple tool with few parameters, it captures the primary purpose and context adequately, earning a mid-range score.

    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 only 33% (only 'n' has a description). The description mentions 'to a point' implying lat/lng coordinates, but it does not elaborate on parameter meaning or format, and it never mentions the 'n' parameter. It does not compensate for the low schema coverage.

    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 finds 'Nearest OFFICIAL Bangkok cooling centers' to a point, which is a specific verb+resource+scope combination. It also distinguishes from siblings like arnfa_where or arnfa_ask by focusing on cooling centers for heat/PM2.5.

    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 the tool: 'for dangerous heat or PM2.5.' It does not explicitly mention alternatives or exclusions, so it stops short of a full 5, but the context is specific and actionable.

    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, the description carries the behavioral disclosure burden. It reveals that the forecast is 'real forecast at its centre', a useful limitation, but does not explain how the verdict is derived or mention read-only nature or any potential side effects. This adds some 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 a single, concise sentence that is front-loaded and contains no filler. It efficiently conveys the tool's purpose and a notable caveat.

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

    Completeness4/5

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

    For a simple single-parameter tool with no output schema, the description is nearly complete. It explains the core output (current sky + verdict) and an important spatial limitation. However, it omits any detail about the output format or how the verdict is determined, which could be 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?

    Schema description coverage is 100% with the parameter 'area' described as 'area key, e.g. 'phuket''. The description adds no extra parameter semantics, so baseline 3 applies.

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

    Purpose5/5

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

    Description clearly states the tool provides 'Current sky + a go-out verdict' for an area, using a specific verb and resource. It distinguishes itself from siblings like arnfa_plan_day (future planning) and arnfa_list_areas (listing areas) by focusing on current conditions and a verdict.

    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 phrase 'current sky' implies use for immediate conditions, and the 'go-out verdict' suggests a decision aid, providing some context. However, it does not explicitly mention when to prefer this over alternatives like arnfa_plan_day or arnfa_where, nor does it state any 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 disclosing behavior. It adds 'with real POI counts', which provides insight into the quality of results, and 'list/search' indicates read-only behavior. However, it does not describe return format, filtering details, or any limitations, so it is only partially transparent.

    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?

    Two sentences, both informative and front-loaded with the essential purpose. No filler or repetition of schema details. Every sentence earns its place.

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

    Completeness4/5

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

    For a list/search tool with no output schema, the description adequately explains the tool's scope, use case, and highlights the 'real POI counts' feature. It gives enough context for an agent to know when to use it, though it could be slightly clearer on how the parameters interact.

    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 describes the 'query' parameter but not 'tier'. The description mentions categories (neighborhoods, districts, province cities, tourist spots) that loosely correspond to the tier enum but does not explicitly map them or explain that the parameters are optional. This adds some context but does not fully compensate for the 50% schema coverage.

    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 'List/search Arnfa's plannable areas across Thailand' with specific granularity levels (Bangkok neighbourhoods & districts, all 76 province cities, tourist spots). This distinguishes it from sibling tools like arnfa_plan_day or arnfa_sky_now, which are clearly different in purpose.

    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 explicitly says 'Use to find a valid `area` key', which gives a concrete use case and directs when to invoke this tool. However, it does not state when not to use it or mention alternatives, so it misses the highest bar for explicit distinctions.

    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?

    With no annotations provided, the description fully carries the transparency burden. It discloses key behavioral traits: reranking based on forecast at arrival time, returning an ordered itinerary, and the strong guarantee that it uses 'real forecast only — never fabricated.' This goes beyond the schema and sets clear expectations, including a data integrity promise.

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

    Conciseness5/5

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

    The description is two short sentences, tightly packed with useful information: purpose, mechanism, output, and a key behavioral assurance. It is front-loaded with the main verb and avoids any filler.

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

    Completeness4/5

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

    For a planning tool with no output schema, the description sufficiently explains the return value ('ordered itinerary') and the overall workflow. It could be more specific about the number of places returned or itinerary structure, but given the tool's scope and the completeness of the parameter schema, it is adequately complete for an agent to invoke it correctly.

    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 100% with each parameter (area, day, budget) already explained clearly. The description itself adds no new parameter info beyond mentioning 'area' generically. Since the schema already does the heavy lifting, a baseline score of 3 is appropriate.

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

    Purpose5/5

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

    The description clearly states a specific verb ('Plan') and resource ('a weather-fit day in an area'), and explains the mechanism (reranks places by forecast) and output (ordered itinerary). It distinguishes itself from sibling tools like arnfa_list_areas (just lists areas) and arnfa_sky_now (current sky), making its purpose unambiguous.

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

    Usage Guidelines4/5

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

    The description clearly implies when to use this tool: when the user wants a day plan optimized for weather in a specific area. It does not explicitly mention alternatives or when not to use it, but the context is clear and the 'ordered itinerary' outcome signals it as the planning tool among siblings.

    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, the description carries the burden and does well: it states the tool reads live weather data, returns a plan, and explains the follow-up mechanism using prior. It doesn't cover error behavior or rate limits, but for a query tool, the core behavior is transparent enough.

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

    Conciseness5/5

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

    The description is two sentences, front-loaded with the core purpose, and every clause earns its place. It avoids fluff and clearly explains the main action and the follow-up pattern.

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

    Completeness5/5

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

    For a simple two-param tool with no output schema or annotations, the description is complete: it specifies language, input type, return value, and chaining pattern. It provides enough context for an agent to select and invoke the tool correctly.

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

    Parameters4/5

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

    Schema coverage is 100%, so the baseline is 3. The description adds value by explaining how to use 'prior' in follow-up calls, linking it to the previous reply's 'intent'. This clarifies the chaining behavior beyond what the schema states.

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

    Purpose5/5

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

    The description uses a specific verb ('Ask') and resource ('Arnfa AI') and clearly states the outcome: a weather-fit plan based on real sky data. It distinguishes itself from siblings by emphasizing natural Thai/English input and the 'same grounded engine, narrated', which differentiates it from more structured tools like arnfa_plan_day.

    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 gives clear context for when to use the tool (natural language queries in Thai/English, follow-up refinements) but does not explicitly name alternatives or exclusions. The phrase 'the same grounded engine' implies a relationship to arnfa_plan_day, but an explicit comparison is missing.

    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

arnfa-mcp MCP server

Copy to your README.md:

Score Badge

arnfa-mcp 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/palmzamak2547/arnfa-mcp'

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