Skip to main content
Glama
onionst
by onionst

Server Quality Checklist

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

  • Disambiguation4/5

    Most tools are clearly distinct: one lists properties, one fetches metadata, one covers realtime data, and the rest are named report types. There is minor overlap between ga4_overview and ga4_events, which both surface users and key events, but their primary purposes remain distinguishable.

    Naming Consistency3/5

    All tools share the ga4_ prefix and use snake_case, but the naming convention is mixed: ga4_list_properties and ga4_run_report are verb_noun while the other six are noun-style names like ga4_overview, ga4_events, and ga4_realtime. The prefix keeps them readable, but the pattern is not fully consistent.

    Tool Count5/5

    With 8 tools, the server is well-scoped for a GA4 reporting assistant. Each tool has a clear role, and the count is neither bloated nor too thin.

    Completeness5/5

    The tool set covers listing properties, exploring compatible dimensions and metrics, realtime reporting, common pre-built reports, and a fully custom report runner. For a read-only GA4 analytics server, this provides comprehensive coverage with no obvious dead ends.

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

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

    • No community issues in the last 6 months
    • 3 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • 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?

    With zero annotations, the description must carry the full behavioral disclosure burden, but it only says 'Return top...' with no mention of ordering, aggregation, date-range semantics, or caveats. No details about authentication, rate limits, or property resolution are provided.

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

    Conciseness3/5

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

    The one-sentence description is concise and front-loaded with the core result, which is a structural strength. However, it is under-specified for a four-parameter tool with no annotations, so it is not appropriately sized overall.

    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?

    An output schema exists, but the description still leaves key invocation details undocumented: acceptable date formats, how limit applies, what determines 'top' ranking, and how property_id is used. The agent must rely on parameter names alone, which is insufficient for reliable invocation.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description adds no meaning for any of the four parameters, including the required property_id, limit, start_date, or end_date. It does not explain date formats, default semantics, or how limit affects results beyond what the schema already shows.

    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 names the GA4 events resource and says it returns top events, users, key events, and event values, which conveys a clear action and resource. It does not explicitly distinguish itself from siblings such as ga4_top_pages or ga4_run_report, so it misses the top 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?

    No guidance is given for when to use this tool rather than its siblings like ga4_overview or ga4_run_report. The description simply states what it returns, leaving the agent to infer the appropriate context.

    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 says 'Return,' which implies a read-only operation, but gives no detail about pagination, date-range behavior, data granularity, or output shape. This is minimal and leaves important behavioral context undisclosed.

    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 a single, waste-free sentence that front-loads the core action and resource. It earns its place as far as it goes, though extreme brevity limits how much value the sentence provides.

    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?

    For a tool with 4 parameters, no annotations, and only a vague description, this is not complete. The presence of an output schema reduces the need to explain return values, but the description still fails to situate the tool among siblings, clarify date range semantics, or explain property_id's role.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description does not mention property_id, start_date, end_date, or limit. It only hints at the result dimensions (session channels, source/medium), which does not compensate for the complete lack of parameter-level meaning.

    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 specific verb ('Return') and names the resource/scope ('session channels and source/medium acquisition performance'), making the tool's purpose understandable. However, it does not explicitly differentiate it from sibling tools like ga4_top_pages or ga4_events beyond the 'acquisition' framing.

    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 ga4_realtime or ga4_overview. There are no exclusions, prerequisites, or conditions stated, leaving the agent to infer usage entirely from the tool name and minimal wording.

    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 burden of behavioral disclosure. 'Return daily users...' indicates a read-only overview of aggregate metrics, which is some transparency, but it does not mention date handling, required property_id, or any caveats about the data returned.

    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 a single, efficient sentence that gets straight to the point. It is appropriately short for a simple overview tool, though it could have added a little more context without losing conciseness.

    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?

    The tool has three parameters, no annotations, and only a bare output list; an output schema exists, but it does not explain how parameters control the returned data. The description lacks enough context for an agent to confidently call this tool correctly for a specific request.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description does not compensate by explaining what property_id, start_date, or end_date mean or how they affect results. It only lists output metrics, leaving parameter semantics entirely to the schema's basic type/name hints.

    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 specifies an action ('Return') and a concrete resource: daily users, sessions, engagement, key events, and revenue. It clearly conveys what the tool produces, though it does not explicitly distinguish itself from sibling tools like ga4_report or ga4_realtime.

    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 guidance about when to use this tool versus its siblings, nor any exclusions or alternatives mentioned. The description only states what it returns, so an agent must infer usage from the name and output list.

    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 full responsibility for disclosing behavioral traits such as read-only operation, pagination, limits, or output handling. It only says 'run a report' and 'historical,' which adds temporal context but does not explain what happens when the tool is invoked or what side effects might occur.

    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 a single tight sentence with the action verb front-loaded and no unnecessary filler. While it is terse, every word earns its place; the main weakness is not verbosity but lack of detail.

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

    Completeness1/5

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

    With 10 parameters, 3 required, no annotations, and zero schema description coverage, this description is far from complete. It omits the required property_id and all optional parameters like filters, ordering, limit, and date range, so an agent cannot confidently construct a correct call. The output schema exists, but that does not compensate for missing invocation context.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description only echoes the dimensions and metrics parameters already visible in the schema. It does not explain property_id, date defaults, limit, descending, ordering, or filters, so the agent gains no additional meaning about any of the 10 parameters.

    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 the specific verb 'Run' with the resource 'custom historical GA4 report,' which clearly states what the tool does. The words 'custom' and 'historical' help distinguish it from realtime or prebuilt sibling reports like ga4_realtime or ga4_top_pages, though it does not explicitly name any sibling.

    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 'custom historical' implies this tool is for arbitrary dimensions/metrics over past date ranges, as opposed to realtime or preconfigured reports. However, the description does not explicitly state when to use this tool versus alternatives, leaving the agent to infer from sibling tool names.

    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 of behavioral disclosure, but it only says 'List compatible GA4 dimensions and metrics.' It does not clarify what 'compatible' means (e.g., with the GA4 API, the property, or the reporting tool), nor does it mention auth requirements, rate limits, or the return shape. A read operation is implied but not explicit.

    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 a single efficient sentence with no filler. The main action and optional filter are front-loaded. It earns high marks for brevity, though it sacrifices some explanatory depth.

    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 is simple (2 params, 1 required, output schema present), so a short description is partly forgivable. However, with 0% schema coverage and no annotations, the ambiguity of 'compatible' and the unexplained required property_id leave meaningful gaps in context for an agent deciding whether and how to call this tool.

    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. The phrase 'filtered by text' maps to the 'search' parameter, but the required 'property_id' parameter is not mentioned or explained. An agent must infer that property_id identifies the GA4 property for which metadata is being listed.

    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 verb ('List') and resource ('compatible GA4 dimensions and metrics'), with an optional filter. It is clear and distinct from siblings like ga4_run_report (runs reports) and ga4_list_properties (lists properties), though it does not explicitly name 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 description implies this is for discovering available dimensions/metrics, likely before constructing a report. However, it provides no explicit when-to-use guidance, exclusions, or mention of alternatives such as ga4_run_report, leaving the usage context to inference.

    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?

    There are no annotations, so the description bears the behavioral burden. It does signal a read-only retrieval operation and specifies ordering by page views, but it does not disclose behavior around result limits, date defaults, or required property context beyond what the schema already names.

    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?

    A single front-loaded sentence with no filler. It immediately conveys the output and ordering, which is all it attempts to communicate; the structure is as efficient as possible for the given content.

    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?

    With no annotations, no sibling differentiation, and no parameter guidance, the description is too thin for an agent to fully contextualize invocation. The output schema covers return shape, but selection logic and invocation expectations are underspecified.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description adds no parameter meaning. It does not explain limit, date range semantics, or property_id requirements, leaving the schema's self-evident names and defaults to carry all parameter understanding.

    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 a specific verb and resource: it returns top page paths and titles ordered by page views. It is distinguishable from siblings by naming a concrete report type, though it does not explicitly contrast itself with any sibling tool.

    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: when an agent needs the most-viewed pages for a GA4 property. However, it provides no explicit guidance on when to choose this over alternatives like ga4_overview or ga4_run_report, and no exclusion criteria.

    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 transparency burden. It makes the read-only, time-boxed report behavior clear, but it does not disclose realtime-specific behaviors such as data latency, metric/dimension compatibility constraints, or property prerequisites. This is adequate for a simple read operation but does not go beyond the obvious.

    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 single sentence is front-loaded and free of filler, saying exactly what the tool does in one line. It is slightly under-specified for a 6-parameter API, but the wording is appropriately concise for clarifying the core purpose.

    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?

    With six parameters, no annotations, and sibling tools requiring differentiation, one sentence is not enough context for reliable selection and invocation. The output schema reduces the need to explain returns, but the description still omits usage trade-offs and parameter-level guidance.

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

    Parameters1/5

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

    Schema description coverage is 0%, yet the description names none of the six parameters and adds no guidance on property_id, metrics, dimensions, ordering, or limit behavior. The schema carries all parameter meaning, so the description fails to compensate for the coverage gap.

    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 ('Run'), a specific resource ('GA4 realtime report'), and the distinctive scope of activity from the last 30 minutes. This clearly separates it from sibling tools like ga4_run_report or ga4_overview, which target different time ranges or report types.

    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 'last 30 minutes' phrasing implies this tool is for realtime queries, but the description does not explicitly state when to choose it over siblings such as ga4_run_report or ga4_acquisition. There is no when-not-to-use guidance or alternative tool mention, leaving the agent to infer usage from the name and the time window.

    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 full burden of behavioral disclosure. It clearly communicates that the operation is read-only and scoped to the current credentials, and that it returns the full set of accessible properties. It does not detail pagination or ordering, but the output schema covers return structure.

    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 sentence with no filler. The action is front-loaded, and every word adds meaning: 'List', 'every', 'accessible', and 'current read-only credentials' all contribute to the tool's purpose and scope.

    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 zero-parameter listing tool with an output schema, this description is complete. It states what is returned, the scope of results, and the authentication context. Nothing needed for correct invocation 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?

    The tool has zero parameters, and the schema already covers 100% of the parameter space. The description's mention of 'every GA4 property accessible with the current read-only credentials' clarifies that no user-supplied parameters are needed beyond the implicit authentication context.

    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 ('List') and a clear resource ('every GA4 property accessible'), making the tool's purpose immediately obvious. It also distinguishes itself from sibling reporting tools by indicating this is an account-level discovery operation rather than a data-reporting operation.

    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: it lists all GA4 properties under the current read-only credentials. It does not explicitly name alternatives or exclusion conditions, but among the siblings none performs the same listing function, so the intended use is evident.

    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

ga4-mcp MCP server – quality and maintenance score on Glama

Copy to your README.md:

Score Badge

ga4-mcp MCP server – quality and maintenance score on Glama

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/onionst/ga4-toolkit'

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