Skip to main content
Glama
m2nho
by m2nho

Server Quality Checklist

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

  • Disambiguation4/5

    The async job lifecycle tools (start/check/list/cancel_collection) are clearly distinct, as are get_leads and export_excel. The only mild confusion is the shared 'check_' prefix on check_collection (job progress) and check_site_whatsapp (single website lookup), and list_collections overlapping somewhat with check_collection in purpose, but descriptions resolve these adequately.

    Naming Consistency4/5

    All tools follow a verb_noun snake_case pattern (start_collection, cancel_collection, get_leads, export_excel), which is predictable and readable. Minor deviations: list_collections uses plural while other collection tools use singular, and check_site_whatsapp is a compound noun rather than a simple object.

    Tool Count5/5

    Seven tools is well-scoped for the stated purpose of bulk Google Maps lead collection. Each tool earns its place: four for the async job lifecycle, one for reading results, one for single-site WhatsApp verification, and one for Excel export recovery.

    Completeness5/5

    The tool set fully covers the collection lifecycle: start, check progress, list jobs, cancel (with preserved partial results), read leads, verify a single site, and export to Excel even after cancellation. Cross-session access via csv_path is a thoughtful touch that prevents dead ends.

  • Average 3.9/5 across 7 of 7 tools scored. Lowest: 3.1/5.

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

    • No community issues in the last 6 months
    • 46 commits in the last 12 weeks
    • Last stable release on
    • 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

  • 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, but it is a bare noun phrase that discloses only the session scope. It does not state whether the call is read-only, what 'session' means, whether results persist, or what the response shape is. The agent is left to assume safe read behavior without any confirmation.

    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?

    A single compact phrase in Korean with no filler words, and the session-scope qualifier is front-loaded. It is appropriately brief for a zero-parameter tool, though the brevity borders on under-specification rather than deliberate economy.

    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?

    For a simple zero-parameter list tool this is nearly adequate, but key context is missing: the definition of 'session' is never explained, and with no output schema the agent cannot anticipate the response structure or empty-list behavior. The description covers scope but leaves the rest to inference.

    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 takes zero parameters and schema coverage is trivially 100%, so per the rubric the baseline is 4. There are no arguments for the description to clarify, and it appropriately does not invent any.

    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 identifies the resource precisely — 'collection tasks started in this session' — and the 'list' verb is carried by the tool name itself. The session-scope qualifier adds a meaningful boundary beyond a generic collections listing. It is clear but does not explicitly differentiate against sibling tools such as check_collection, so it falls short of a 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/5

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

    The description offers no guidance on when to choose this tool over start_collection, check_collection, or cancel_collection. It states only an output scope ('started in this session') with no exclusions, conditions, or named alternatives. An agent must infer all selection logic from sibling names 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?

    With no annotations provided, the description carries the full disclosure burden. It usefully reveals that previously collected records are preserved, which is the main side-effect concern for a cancel operation. However, it does not state whether cancellation is reversible, what happens to the job status, or what response the caller should expect.

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

    Conciseness5/5

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

    The description is one compact sentence with the main action front-loaded and the key side effect stated immediately after. There is no redundant or filler content.

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

    Completeness4/5

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

    For a single-parameter cancel tool with no output schema, the description covers the core purpose and the most important behavioral consequence. It could have added guidance on where to find job_id or how to verify the job state afterward, but given the low complexity, this is a minor gap rather than a serious omission.

    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%, and the description never mentions job_id at all. The parameter name is fairly self-explanatory, but the description does not explain where to obtain the job ID or that it must refer to an actively running collection, so it fails to compensate for the missing schema-level documentation.

    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 states a specific action: stopping a running collection ('돌고 있는 수집을 중단한다') and adds the meaningful outcome that already-collected records remain. This clearly distinguishes it from sibling tools like start_collection and check_collection, though it does not explicitly reference them.

    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 '돌고 있는' (running) implies the tool should be used on an in-progress collection, but there is no explicit guidance about when not to use it or which sibling tool should be used instead. Usage context is present but only implicitly.

    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 burden. It discloses the core behavior (returning progress/aggregation), implying a read-only status check, but it does not mention behavior on unknown/completed jobs, output shape, or polling suitability.

    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?

    One short sentence conveys the essential operation with no filler. The key concept (progress) is front-loaded before the aggregation detail.

    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?

    For a simple one-parameter status tool this is usable, but without annotations or an output schema the agent still lacks information about the return format, error behavior, and the relationship to sibling lifecycle tools (start/list/cancel).

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

    Parameters3/5

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

    Schema coverage is 0%, but there is only one required parameter, job_id, whose name is self-explanatory. The description adds context by tying the job to a '수집 작업' (collection job), though it does not explain where to obtain job_id or its format.

    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 uses a clear verb ('돌려준다' = returns) and identifies the resource: progress and current aggregation of a collection job. This distinguishes it from start_collection/cancel_collection/list_collections implicitly, though it does not name any sibling explicitly.

    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 this is a monitoring/status tool for an ongoing collection job, but it gives no explicit guidance on when to use it instead of list_collections or check_site_whatsapp, nor when not to use it.

    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 explicitly states that only href links matching wa.me/api.whatsapp.com are read and that body-text numbers are ignored because their WhatsApp validity is unknowable. This is a key limitation. It does not mention side effects or output, but the dominant behavior is clearly disclosed.

    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 concise and front-loaded with the core action. The second paragraph adds essential boundary information about href-only reading. The phrase 'takes a few seconds' is slightly extraneous but does not detract overall.

    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?

    For a single-parameter read tool with no output schema, the input and processing are well described. However, the description does not state what the tool returns when a number is found nor what happens when no matching link exists. Since there is no output schema, this leaves a meaningful gap in the agent's ability to interpret the result.

    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 has one 'url' parameter with no description (0% coverage), so the description must compensate. It does clarify that the URL is the website to open and check, but it adds no format constraints, protocol expectations, or invalid-URL behavior. The parameter meaning is recoverable from the tool action, but barely beyond the parameter name itself.

    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 and resource: 'opens one website and finds the declared WhatsApp number.' It also precisely scopes the method—reading only wa.me/api.whatsapp.com href links—which clearly separates this tool from the broader collection/export siblings.

    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?

    There is no explicit guidance on when to use this tool versus alternatives like check_collection or get_leads. No context, prerequisites, or exclusions are mentioned, so the agent is left to infer its role in a larger workflow.

    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?

    There are no annotations, so the description carries the behavioral transparency burden. It discloses that the operation reads results, that Excel is auto-generated alongside CSV after collection, and that only contactable records appear. It does not discuss edge cases such as empty results or errors, but it provides meaningful behavioral context beyond a simple read statement.

    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 compact and well-structured: it leads with the core purpose, then adds one useful behavioral note, then gives clear parameter semantics. Every sentence contributes information needed to use the tool correctly, with no repetition or 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?

    Given no output schema and no annotations, the description covers the key aspects an agent needs: what the tool reads, how to reference a job or file, status filtering, and result column structure. It is slightly incomplete because it does not explicitly describe the returned data shape for the API call itself, but the provided context is sufficient for most calling scenarios.

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

    Parameters5/5

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

    Schema coverage is 0%, yet the description documents every parameter in its Args section: job_id is the task id from start_collection, csv_path reads previous sessions, status defines the three allowed values, and limit caps the return count. This fully compensates for the bare 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 opens with a specific action ('수집 결과를 읽는다') and identifies the resource as collection results, also clarifying that it returns only a subset rather than all records. However, it does not explicitly distinguish itself from siblings like export_excel or check_collection, so it stops short of full sibling differentiation.

    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 job_id versus csv_path, and explains that status and limit control the returned set. It does not state explicit when-not-to-use guidance or name alternative tools, but the parameter-level usage conditions are genuinely helpful for an agent deciding how to call it.

    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 present, the description carries the behavioral burden. It honestly discloses that the function returns immediately while the real work takes 20–40 minutes, and that disabling crawl is faster but drastically reduces confirmed results. This is valuable async-behavior context beyond the schema.

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

    Conciseness5/5

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

    The description is front-loaded with the core action and async behavior, followed by a well-organized Args list. Each line adds practical value, especially the measurements and field tips, so no sentence feels wasted for a 9-parameter tool.

    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 is strong for parameters and async behavior, but it does not specify what the immediate return value contains. Since there is no output schema and the agent likely needs a collection ID to pass to check_collection or cancel_collection, this is a meaningful gap in an otherwise complete description.

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

    Parameters5/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 fully explain parameters. It does: keyword includes language and empirical yield tips, region is tied to phone normalization, lat/lng requires coordinates, grid explains Google Maps' ~120-result truncation, and crawl quantifies the tradeoff. Every parameter receives meaningful, actionable guidance.

    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 states a specific action: starting a Google Maps collection of hospitals/clinics while looking for WhatsApp contacts. It clearly distinguishes start_collection from its siblings like check_collection and cancel_collection by emphasizing that it launches a long-running task and returns immediately.

    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 explicit guidance to use check_collection to monitor progress, and explains practical tradeoffs like crawl on/off affecting speed and confirmed-rate. It does not exhaustively contrast with all siblings, but the key alternative flow is clearly indicated.

    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?

    No annotations are present, so the description carries the behavioral burden. It discloses that the tool builds from the .raw.jsonl resume ledger, can run mid-collection, and creates the xlsx alongside the CSV by default. It does not mention overwrite behavior or error cases, but the provided context is substantial for an export 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 well-structured and front-loaded: the purpose appears in the first sentence, followed by use-case context, source behavior, and an Args section. Every sentence adds meaningful guidance without redundant repetition of the schema.

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

    Completeness4/5

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

    The description covers the primary use cases, data source, and all parameter semantics, which is sufficient for an export tool without an output schema. Minor ambiguity remains about precedence if both job_id and csv_path are provided, and what happens when all parameters are empty.

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

    Parameters5/5

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

    Schema description coverage is 0%, and the description fully compensates by explaining each parameter: job_id is the start_collection work id, csv_path can substitute for job_id, and out_path controls the .xlsx save location with a default behavior when empty. This adds essential meaning beyond the bare schema.

    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 re-extracts collection results into Excel (.xlsx), with a specific verb and resource. It also distinguishes the tool from the automatic Excel generation that happens on normal collection completion, and from sibling tools like cancel_collection and start_collection.

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

    Usage Guidelines5/5

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

    The description explicitly defines when to use the tool: when auto-generation did not occur, when a collection was interrupted by cancel_collection, when regenerating old data in the current format, or during collection to get partial results. It implies it is unnecessary when collection completes normally, giving a when-not condition.

    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

sourcing MCP server

Copy to your README.md:

Score Badge

sourcing 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/m2nho/sourcing'

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