Skip to main content
Glama
xiaobenyang-com

Berlin-Search-Service

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool has a clearly distinct purpose: get_service_details retrieves comprehensive data for a specific service, get_services_stats provides dataset-level statistics, list_services returns a paginated catalog, and search_services enables keyword-based filtering. There is no overlap in functionality, making tool selection straightforward for an agent.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with snake_case (e.g., get_service_details, list_services). The verbs (get, list, search) are appropriate and predictable, and there are no deviations in naming conventions across the set.

    Tool Count5/5

    With 4 tools, the server is well-scoped for its purpose of searching and retrieving Berlin administrative services. Each tool earns its place by covering distinct aspects of the domain without being overly sparse or bloated, aligning with typical expectations for a focused service.

    Completeness4/5

    The tool set provides strong coverage for querying and retrieving service information, including listing, searching, getting details, and accessing statistics. A minor gap exists in the lack of update or management tools (e.g., create_service, update_service), but this is reasonable if the server is read-only, and agents can still perform core lookup workflows effectively.

  • Average 3.2/5 across 4 of 4 tools scored.

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

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under Apache 2.0.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.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. It mentions the tool returns 'a list of matching services with basic information,' which gives some behavioral context about the output format. However, it lacks details on permissions, rate limits, pagination, error handling, or what constitutes 'basic information.' For a search tool with zero annotation coverage, this is insufficient.

    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 and well-structured in two sentences: one stating the action and scope, and another describing the output. Every sentence adds value without redundancy, making it easy to parse and front-loaded with key information.

    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 the tool's complexity (a search function with one parameter), lack of annotations, and no output schema, the description is incomplete. It doesn't explain the return format beyond 'basic information,' error cases, or how results are ordered/filtered. For a tool with zero structured coverage, more contextual details are needed to guide effective use.

    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%, with one parameter 'query' undocumented in the schema. The description adds minimal semantics by implying 'query' is used to search 'by name or description,' but it doesn't specify format, constraints, or examples. This partially compensates for the coverage gap but falls short of fully explaining the parameter's purpose and usage.

    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 states the tool's purpose: 'Search for Berlin administrative services by name or description.' It specifies the verb (search), resource (Berlin administrative services), and scope (by name or description). However, it doesn't explicitly differentiate from sibling tools like 'list_services' or 'get_service_details,' which prevents a perfect score.

    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 guidance on when to use this tool versus alternatives. It mentions returning 'basic information' but doesn't clarify when to choose this over 'get_service_details' for more details or 'list_services' for unfiltered listings. No explicit when/when-not instructions or prerequisites are included.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • 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. It mentions the tool returns 'comprehensive information including requirements, forms, fees, appointments, and more,' which gives some context on output content. However, it lacks details on error handling (e.g., invalid ID), rate limits, authentication needs, or whether it's a read-only operation. For a tool with zero annotation coverage, this leaves significant gaps in understanding its 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/5

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

    The description is appropriately sized and front-loaded: the first sentence states the core purpose, and the second adds valuable context about return content. Both sentences earn their place by providing essential information without redundancy or fluff. It's efficient and well-structured for quick comprehension.

    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?

    Given the tool's complexity (a read operation with 1 parameter) and lack of annotations and output schema, the description is minimally complete. It covers the purpose and output scope but misses behavioral details like error cases or authentication. It's adequate for basic use but has clear gaps that could hinder an agent in edge cases or integration scenarios.

    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 input schema has 1 parameter with 0% description coverage, so the description must compensate. It adds meaning by specifying that 'service_id' refers to 'a specific Berlin service,' clarifying the parameter's purpose beyond the schema. However, it doesn't detail the ID format (e.g., numeric, string pattern) or provide examples. Since there's only one parameter, the description does a good job of contextualizing it, earning a baseline 4.

    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 states the tool's purpose: 'Get detailed information about a specific Berlin service by its ID.' It specifies the verb ('Get'), resource ('Berlin service'), and key constraint ('by its ID'). However, it doesn't explicitly differentiate from sibling tools like 'get_services_stats' or 'list_services' beyond mentioning 'detailed information' versus potentially summary views.

    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 guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_services' (for browsing) or 'search_services' (for filtering), nor does it specify prerequisites such as needing a valid service ID. Usage is implied by the need for detailed info on a known service, but no explicit context or exclusions are stated.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/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 mentions pagination and return format (names and IDs), which is helpful, but lacks details on rate limits, authentication needs, error handling, or whether it's read-only. The description doesn't contradict annotations, but it's insufficient for a mutation-free tool with zero annotation coverage.

    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 two sentences, front-loaded with the core purpose and efficiently adds details about pagination and return format. Every sentence contributes value, with no wasted words, though it could be slightly more structured for clarity.

    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?

    Given the tool's low complexity (one parameter, no output schema, no annotations), the description covers the basic purpose and return format adequately. However, it misses parameter documentation and lacks behavioral context like pagination mechanics or error scenarios, making it incomplete for optimal agent use.

    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 description coverage is 0%, so the description must compensate. It doesn't mention the 'limit' parameter at all, leaving it undocumented. Since there's only one parameter, the baseline is higher, but the description adds no parameter-specific information beyond the general context of listing services.

    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 states the verb ('List') and resource ('Berlin administrative services'), specifying it returns a paginated list with names and IDs. However, it doesn't explicitly differentiate from sibling tools like 'search_services' or 'get_services_stats' beyond mentioning it lists 'all available' services.

    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 usage by stating it lists 'all available' services, suggesting it's for broad retrieval rather than filtering or detailed analysis. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'search_services' for filtered results or 'get_service_details' for specifics.

    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. It discloses that the tool retrieves statistics (implying a read-only operation) and hints at the type of data returned, but does not specify behavioral traits such as rate limits, authentication needs, or whether the data is real-time or cached. The description is consistent with a read operation 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, efficient sentence that front-loads the core purpose ('Get statistics about the Berlin services dataset') and adds clarifying examples ('total count, last update, etc.') without unnecessary elaboration. Every word earns its place, 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?

    Given the tool's simplicity (0 parameters, no annotations, no output schema), the description is adequate but minimal. It covers the basic purpose and hints at return values, but does not fully explain the output format or provide rich context for a statistical tool, leaving gaps in completeness for an agent to understand the full behavior.

    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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description does not add parameter details beyond the schema, which is appropriate here. A baseline score of 4 is applied for tools with no parameters, as there is no gap to compensate for.

    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 states the tool's purpose with a specific verb ('Get') and resource ('statistics about the Berlin services dataset'), including examples of what statistics are returned ('total count, last update, etc.'). It distinguishes from siblings by focusing on aggregated statistics rather than individual details, lists, or searches, though it doesn't explicitly name the sibling tools for comparison.

    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 usage context by specifying 'statistics about the Berlin services dataset,' suggesting it should be used for aggregated metrics rather than detailed or filtered data. However, it lacks explicit guidance on when to use this tool versus alternatives like 'list_services' or 'search_ervices,' and does not mention any prerequisites or exclusions.

    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

1777316659740675 MCP server

Copy to your README.md:

Score Badge

1777316659740675 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/xiaobenyang-com/1777316659740675'

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