Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation4/5

    The tools are generally distinct: search returns SERP listings, fetch_page retrieves a specific page body, and the profile tools manage browser profiles. The only mild ambiguity is between import_profile and bake_profile, since both modify the profile set, but their descriptions clearly separate copying an existing profile from creating a new state interactively.

    Naming Consistency4/5

    Most tools follow a clear verb_noun pattern: list_profiles, import_profile, fetch_page, bake_profile. The lone search tool is a bare verb rather than search_web or similar, but the overall naming style is consistent and predictable.

    Tool Count5/5

    Five tools is well-scoped for a search-oriented MCP server. Each tool covers a distinct part of the workflow: querying search engines, inspecting profiles, importing profiles, fetching pages, and baking profile state.

    Completeness4/5

    The core search-and-fetch workflow is well covered, and profile management includes listing, importing, and baking. A minor gap is the lack of a profile deletion or removal tool, but this does not block the main search/fetch use case.

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

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

    • No community issues in the last 6 months
    • 12 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 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.

  • 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?

    There are no annotations, so the description carries the full burden of behavioral disclosure. 'コピーして取り込む' usefully implies the source folder is copied rather than moved, but the description does not explain overwrite semantics, name-collision behavior, or what happens to an existing destination profile. This is a significant gap for a tool with an overwrite parameter.

    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 concise, front-loaded sentence with no redundant wording. It states the core operation directly and is easy to scan.

    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 three parameters, no annotations, and an output schema, the single-sentence description is not enough. It omits overwrite/destination-name behavior and does not position the tool relative to bake_profile, so an agent may not confidently choose and invoke it correctly in all cases.

    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 indirectly identifies source_dir as the existing profile folder, but it never explains name or overwrite or how they affect the import. The description only partially maps to the parameters and leaves most of their semantics undocumented.

    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?

    Description states a clear action: copy and import an existing browser profile folder that already has login state. It identifies both verb and resource well, distinguishing the tool's domain from siblings, though it does not explicitly contrast it with bake_profile or the read-only siblings.

    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 '既存の(すでにログイン状態を持つ)' implies the intended use case: importing an existing, logged-in profile folder. However, it gives no explicit guidance about when to prefer this tool over siblings like bake_profile, and no when-not-to-use conditions.

    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 must carry the behavioral burden. It communicates a read-only list operation by saying it 'returns' profile data, which is transparent for a simple list tool. However, it does not mention potential limitations like pagination, ordering, or access scope beyond 'held' profiles.

    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 concise sentence in Japanese, directly stating the operation and output contents. Every word earns its place, and there is no redundant or vague 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 that the tool takes no parameters and has an output schema, the description is almost complete: it identifies the operation, the resource, and the returned fields. It could be slightly stronger by clarifying relationship to sibling search, but for such a simple tool this is adequate.

    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 zero parameters, so the description carries no parameter burden. The baseline of 4 for a no-parameter tool is appropriate, and the description adds useful information about what is returned: names and sizes.

    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 action and resource: it returns a list of held profiles with their names and sizes. This is specific and distinguishable from sibling tools like search, import_profile, fetch_page, and bake_profile, which suggest different operations.

    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 that the tool should be used when an agent needs an overview of existing profiles, but it does not explicitly say when to prefer this over sibling tools such as search. There is no exclusion or alternative guidance, only an implied use case.

    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 behavioral disclosure burden. It explicitly states that fetching happens through a browser using a persistent profile, which implies cookie/login state and JS rendering support—useful behavioral context beyond the schema. It does not mention potential side effects on the profile or operational costs like slower fetches, but the core behavioral characteristic is well disclosed.

    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 concise, with two focused sentences. The first sentence states the mechanism and main action, while the second adds the intended use case. No redundant wording or repetition of schema details.

    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 main purpose, the intended workflow relative to search, and the key behavioral difference (browser, persistent profile). An output schema exists, so return values need not be described. The main completeness gap is the unaddressed headless/profile parameter semantics, but overall the description gives an agent enough context to select and invoke the tool 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. It clarifies that URL is the target page and mentions the persistent profile concept, but it does not explain the 'profile' parameter's selectable values or what 'headless' means. The headless parameter is entirely unexplained, leaving an agent with an incomplete understanding of the available knobs.

    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 verb and resource: it retrieves the body of a given URL via a browser with a persistent profile. It also distinguishes itself from plain HTTP fetching and positions itself as a deep-dive companion to search snippets, clearly separating it from sibling tools like search.

    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 this tool: for pages requiring login state or JS rendering, and for investigating a few search results not fully judgeable from snippets. It implies when not to use it by contrasting with plain HTTP fetching, though it does not explicitly name alternatives or exclusion conditions. This is strong contextual guidance, missing only an explicit 'when-not-to-use' statement.

    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 full behavioral burden. It discloses verified headless behavior, bot-challenge risks for duckduckgo/brave, yahoo's equivalence to Google due to licensing, and the automatic private virtual display when headless=False. It does not cover failure modes or rate limits, but the disclosed operational behavior is valuable.

    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, followed by line-broken parameter guidance. It is dense but mostly earns its length; minor redundancy exists because it restates defaults already present in the schema, and the SPEC.md reference may not be accessible to all agents.

    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 annotations and no schema descriptions, the description covers the important operational details: engine alternatives, headless behavior, profile discovery, and display handling. The lack of num_results semantics and absence of error/blocking behavior are the main gaps; output schema covers return values, so that is not a concern.

    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 explains engine with allowed values and caveats, profile with a reference to list_profiles, and headless with default and display behavior. However, num_results is not described, and query is only implied by the search phrasing.

    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 verb and resource: search with a search engine and return a list of titles/URLs/snippets. This clearly distinguishes it from sibling tools such as fetch_page, which fetches page content rather than returning search-result snippets.

    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 operational guidance: engine selection, recommendation to avoid headless for duckduckgo/brave, and use of yahoo as a fallback when Google is blocked. It does not explicitly state when to use search instead of sibling tools like fetch_page, but the engine-level guidance is specific and practical.

    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 provided, so the description carries the full burden. It discloses blocking behavior (waits until user closes window), timeout with force termination, headful execution, and remote debugging bind requirements. It doesn't state whether existing profile state is overwritten or how persistent the bake is, but the mutating meaning is clear.

    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?

    Purpose is front-loaded, followed by workflow behavior, then a compact semicolon-separated parameter list. Every sentence conveys actionable information; no fluff or repetition. The SPEC.md reference is brief and doesn't bloat the description.

    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 tool with 6 optional params, no annotations, and an output schema, the description covers the core workflow and most parameter semantics well. The main gape are that 'profile' is not explained and the behavior depends on an external SPEC.md section that may not be accessible to the agent.

    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 adds meaningful semantics for method, start_url, cdp_host/cdp_port, and timeout_seconds, including defaults, ssh -X behavior, and the closed-network bind warning. However, the 'profile' parameter is not described at all, leaving part of the schema under-explained.

    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 states a concrete action: baking a new state (e.g. login) into a profile, and explains the interactive headful workflow. This clearly differentiates it from read-only siblings like search and fetch_page, and from import_profile, because it explicitly covers browser launch and waiting for user action.

    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?

    Provides explicit method selection rules: auto based on $DISPLAY, display for direct display (including ssh -X), and cdp for display-less environments. It also gives timeout and start_url context. It doesn't explicitly state when to prefere bake_profile over import_profile or fetch_page, so it stops short of a full 5.

    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

search-mcp MCP server

Copy to your README.md:

Score Badge

search-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/antigravity-press/search-mcp'

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