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

    get_map_details and get_map_layers overlap since details already includes layer information, but one is a general map overview and the other specifically returns only layers. list_maps and create_new_map are clearly distinct.

    Naming Consistency5/5

    All tool names follow a predictable verb_noun snake_case pattern: get_map_details, get_map_layers, create_new_map, list_maps. The small variations ('new' and plural 'maps') do not create confusion.

    Tool Count5/5

    Four tools is a compact, well-scoped set for a map-oriented MCP server. Each tool covers a reasonable core action: list, get details, get layers, and create.

    Completeness3/5

    The set covers list/get/create for maps and layer listing, but lacks update/delete for maps and any layer manipulation such as create, update, or delete. This leaves the map lifecycle incomplete, though common read-and-create workflows are supported.

  • Average 3.9/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 is failing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

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

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

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

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

    No annotations are provided, so the description carries the disclosure burden. It discloses the core behavior of creating a new map and the optional initial viewport parameters, but it does not mention persistence, authentication, side effects, idempotency, or constraints on lat/lon/zoom values. The disclosure is minimal but not misleading.

    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: a one-sentence purpose followed by a terse Args list covering all four parameters. Every sentence contributes useful information, and there is no filler or redundant restatement of schema types.

    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 low-complexity create tool with no required parameters and an output schema, the description covers the purpose and all parameters adequately. The output schema handles return-value expectations, so the main gaps are the absence of explicit usage guidance and behavioral constraints, but the core calling contract is present.

    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 input schema has 0% property descriptions, so the Args section compensates by explaining each parameter: optional title, initial latitude, initial longitude, and initial zoom level. It adds the meaningful 'initial' semantics to lat/lon/zoom, but it does not provide value ranges, coordinate formats, or examples, leaving partial but not complete compensation.

    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 action and resource: 'Create a new Felt map.' It uses a specific verb and indicates a new instance, which makes its purpose obvious. It does not explicitly differentiate itself from the sibling read-only tools, but the create verb already separates it from get/list 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 usage context is implied: use this when creating a new Felt map rather than retrieving details or listing maps. However, the description does not explicitly state when to use this tool versus siblings, nor does it mention any prerequisites or alternative 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?

    With no annotations, the description carries the disclosure burden. It discloses that the result includes layers and elements and that retrieval is by map ID, which communicates the basic read behavior. It does not mention auth, error handling, or response details, but for a simple 'get' operation this level is minimally adequate.

    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, front-loaded with the core purpose, and adds only the necessary parameter explanation. No sentence is wasted and the structure is easy to scan.

    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 one-parameter read tool with an output schema present, the description gives the core purpose, the parameter meaning, and a useful hint about returned content. It lacks only explicit comparative guidance against get_map_layers, which would make it fully complete.

    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?

    Although schema description coverage is 0%, the description's Args section explicitly defines `map_id` as 'The ID of the map to retrieve.' This adds meaning beyond the bare string property and fully explains the only required parameter, though it omits any format or pattern details.

    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 ('Get') and resource ('details for a specific Felt map') and even indicates the return content ('including its layers and elements'). It is unambiguous about the object of the operation, though it does not explicitly differentiate itself from the sibling tool get_map_layers.

    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 impies targeted single-map retrieval via `map_id`, which logically excludes list_maps and create_new_map. However, it gives no explicit when-to-use guidance, no mention of when get_map_layers would be more appropriate, and no exclusions or alternatives.

    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 itself must convey behavior. 'List' implies a read-only operation, but the description does not explicitly state that this has no side effects or describe other behavioral nuances such as error handling or empty-map behavior. It is adequate but minimal.

    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, front-loaded, and contains no filler. The purpose is stated in the first sentence, and the parameter explanation is minimal but complete.

    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 one-parameter list operation with an output schema available, the description is largely complete. It could be improved by explicitly noting that this is read-only and where it fits relative to sibling tools, but no critical calling information is missing.

    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 carries the burden. It defines map_id as 'the ID of the map whose layers to list,' adding meaningful relational context beyond the bare schema field name 'Map Id.' This is sufficient for the tool's single parameter.

    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: 'List all layers on a specific Felt map.' This clearly distinguishes the tool from siblings like list_maps and get_map_details by naming the exact object being retrieved.

    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 the tool is for retrieving layers for a particular map, but it does not explicitly contrast it with alternatives such as get_map_details or list_maps. The intended use is understandable but not made fully explicit.

    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 disclosure burden. It communicates that only maps accessible to the authenticated user are returned, and it lists the included fields. However, it does not mention potential pagination, response size limits, or any authentication prerequisites beyond the qualifier 'authenticated Felt user.'

    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 brief, front-loaded with the core action, and directly followed by the output contents. Every sentence contributes useful information without redundancy or fluff.

    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, zero-parameter list tool with an output schema present, the description is fully sufficient. It states the operational scope, authentication context, and return fields, leaving no critical gap 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?

    The tool takes zero parameters, so there are no parameter meanings to explain. The input schema is trivially covered, and the baseline for no-parameter tools is 4. The description adds value by describing the output shape instead of repeating parameter details.

    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: 'List all maps accessible to the authenticated Felt user.' It also states the returned fields (id, title, URL, project, access level), making the tool's purpose and output unambiguous. It is clearly distinct from siblings like get_map_details, which focuses on a single map.

    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 implies straightforward usage: call this tool to get an overview of all accessible maps. It does not explicitly name sibling alternatives or state when not to use it, but the context is clear enough for a list operation with zero parameters.

    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

felt-mcp MCP server

Copy to your README.md:

Score Badge

felt-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/kthy/felt-mcp'

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