Skip to main content
Glama
BandaruDheeraj

TestFlight Feedback MCP Server

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool targets a distinct resource or action (apps, groups, testers, builds, feedback, crash logs, and responses). Even the two feedback-related tools have clear separation: list_feedback retrieves items, get_feedback_detail provides in-depth detail, and get_crash_log downloads specific crash content.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern using lowercase with underscores (e.g., list_apps, get_feedback_detail, respond_to_feedback). This makes the set predictable for an agent to learn and select tools.

    Tool Count5/5

    8 tools is well-scoped for a TestFlight feedback MCP. Each tool serves a necessary function without redundancy, covering the essential workflows: listing resources, retrieving details, downloading crash logs, and responding to feedback.

    Completeness4/5

    The tool set covers the core TestFlight feedback lifecycle: listing apps/groups/testers/builds/feedback, retrieving detailed info and crash logs, and responding. Minor gaps exist, such as the ability to delete feedback or manage beta tester invitations, but these are not critical for the stated purpose.

  • Average 3.7/5 across 8 of 8 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
  • 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?

    Annotations are absent, and the description does not disclose behavioral traits such as idempotency, rate limits, or side effects. The tool appears to be a read operation, but this is not explicitly stated.

    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?

    Description is a single concise sentence with no redundant information. It is front-loaded with the main action and result.

    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?

    No output schema is provided, and the description only briefly mentions return fields. Lacks details on pagination, sorting, or other behaviors that might be needed given the absence of annotations.

    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%, so parameters are adequately described in the schema. The description adds value by mentioning what the response includes, but this is not necessary for parameter understanding.

    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 lists beta tester groups for an app and specifies the returned information (group name, status, feedback settings). It distinguishes from siblings like list_beta_testers or list_apps.

    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?

    No guidance on when to use this tool versus alternatives like list_beta_testers or list_feedback. The description does not provide context for choosing this tool.

    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, the description carries the full burden. It claims to 'list all apps' but the limit parameter (default 50, max 200) implies it may not return all apps. This contradiction and lack of pagination details reduce transparency.

    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 sentences: one for action and one for return fields. Every word adds value, and the structure is front-loaded with the primary purpose.

    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?

    While the description states the return fields, it omits details about the limit parameter and pagination behavior. For a simple tool without an output schema, this 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 input schema has 100% description coverage for the limit parameter, so the baseline is 3. The description does not add any additional meaning to the parameter beyond the schema, thus earning the baseline score.

    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 verb 'List' and the resource 'apps in your App Store Connect account', and distinguishes it from sibling tools like list_beta_groups and list_builds. It also specifies the return fields (app ID, name, bundle ID, SKU), making the purpose very clear.

    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, such as when to use list_builds for app-specific builds. There is no mention of prerequisites, filtering, or limitations like pagination.

    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 provided, so description carries full burden. It indicates a read/download operation but does not disclose output format, authentication needs, or potential side effects. For a simple download, this is adequate but not rich.

    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?

    Single sentence, no redundant words, perfect structure for a simple tool.

    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 one required parameter and no output schema, the description covers the core behavior. However, omitting output format (e.g., plain text) or error conditions slightly reduces completeness.

    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 100% with parameter description 'The beta feedback crash submission ID'. The tool description adds little beyond that, just rephrasing. Baseline 3 is appropriate as no additional semantic value.

    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 verb 'Download', the resource 'crash log content', and the context 'for a specific beta feedback crash submission'. It distinguishes from sibling tools like get_feedback_detail, which likely returns feedback details rather than crash logs.

    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?

    No guidance on when to use this tool versus alternatives (e.g., get_feedback_detail). It does not mention prerequisites or scenarios where it should not be used.

    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 explains the mechanism (lookup email, send SMTP) but omits side effects, error states, and authorization requirements. Partial transparency.

    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, front-loaded with the key action, no extraneous information. Every word 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?

    The description explains the core process and covers the main purpose, but lacks detail on return value (success/failure), error handling, and why submission_type is needed. Still largely complete for a simple tool.

    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 100%, and parameter descriptions are adequate. The description adds no new meaning beyond what the schema already provides for individual parameters, so baseline score 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?

    The description clearly states the action ('Send an email') and the resource ('beta tester feedback'), distinguishing it from sibling tools that retrieve or list data. The verb+resource is specific and unambiguous.

    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 (responding to feedback) but provides no explicit guidance on when not to use it, prerequisites, or alternatives. The agent must infer usage from the action and schema.

    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 disclose behavioral traits. It correctly indicates a read-only list operation and describes returned fields, but it omits details like pagination, sorting, or potential side effects. Adequate but not thorough.

    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 with no redundant information. Every phrase adds value: action, filters, and output fields.

    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 covers core purpose and filters but lacks details on default limit, pagination, or ordering. With 4 optional parameters and no output schema, more context (e.g., 'returns up to 50 testers by default') would improve completeness.

    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?

    Input schema has 100% description coverage, each parameter is documented. The description adds that the tool returns specific fields, but does not enrich parameter meaning beyond the schema. Baseline score 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?

    The description clearly states the tool lists beta testers and specifies filter options (app, group, email) and return fields (name, email, invite type, state). This differentiates it from sibling tools like list_beta_groups.

    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 lists filter parameters and implies when to use (listing testers with optional filters). It does not explicitly exclude alternatives, but the context is clear and sufficient for a list operation.

    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 full burden. It discloses that comments require browser auth, which is valuable. However, it does not explain pagination behavior, rate limits, or whether the operation is read-only (assumed but unstated). Gaps remain in behavioral expectations.

    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 main purpose followed by retrieval specifics and filtering options. Every sentence adds value without redundancy.

    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 tool has no output schema and the description does not describe the return format or behavior when no results are found. Given the complexity (4 parameters, list tool), additional context on pagination or response structure would improve completeness.

    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 100% coverage with descriptions. The description's mention of filtering by build or type reinforces the schema but does not add new meaning beyond what is already in the parameter descriptions. Baseline 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 the tool lists TestFlight feedback for an app, specifying the types (screenshots, crashes, comments) and the auth requirement for comments. It distinguishes itself from sibling tools like get_crash_log (specific crash) and get_feedback_detail (single feedback).

    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 mentions filtering by build or feedback type, giving clear usage context. However, it does not explicitly state when to avoid this tool in favor of siblings (e.g., for detailed feedback or responding). The absence of exclusions leaves some ambiguity.

    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 specifies return fields (build number, version, upload date, status) and filtering, but lacks details on pagination, sorting, or side effects. It does not explicitly declare the tool as read-only.

    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 totaling 16 words, front-loaded with the core purpose, followed by filtering and return values. Every sentence is essential and efficient.

    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 4 parameters, the description covers the main purpose and return fields. It omits details about the limit parameter's default and error handling, but is largely adequate for a simple list tool.

    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 100%, so baseline is 3. The description adds value by summarizing the filtering ('Filter by version or processing state') and listing the return fields, which are not in the 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 action ('List'), resource ('TestFlight builds'), and scope ('for an app'). It also mentions filtering capabilities, and the tool's purpose is distinct from siblings like list_apps or list_beta_groups.

    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 when to use the tool (to list builds), but it does not explicitly state when not to use it or provide alternatives. No exclusions or context versus other list tools is given.

    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 reveals that the tool returns details contingent on the 'type' parameter (screenshot asset or crash log reference), but it does not disclose permissions, rate limits, or the exact structure of the response. Given the conditional nature implied by the enum, more explicit behavioral notes would be beneficial.

    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 16-word sentence that immediately states the verb and resource, then lists included items. There is no wasted text, and it is well-structured for quick parsing by an AI agent.

    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?

    With no output schema, the description reasonably covers the return content (device info, tester details, screenshot or crash reference). While it does not detail the exact structure or nesting, the tool's low parameter count and simple purpose make the description sufficiently complete for most usage 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 100% description coverage, and the description adds value by explaining that the 'type' parameter determines whether the response includes a screenshot asset or crash log reference. This linkage between parameters and return content goes beyond the schema's bare descriptions.

    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 explicitly states the verb 'Get' and the resource 'detailed information about a specific feedback submission', listing specific content like device info, tester details, screenshot asset, or crash log reference. This clearly distinguishes it from sibling tools like list_feedback (lists summaries) and get_crash_log (standalone crash log retrieval).

    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 indicates this tool is used for obtaining detailed info on a single feedback submission, implying it is suitable after a list operation. While it does not explicitly state when not to use it or mention alternatives, the purpose is clear enough for an agent to infer appropriate usage from the sibling context (e.g., use list_feedback first, then this).

    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

testflight-feedback-mcp MCP server

Copy to your README.md:

Score Badge

testflight-feedback-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/BandaruDheeraj/testflight-feedback-mcp'

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