umami-mcp-server
Server Quality Checklist
Latest release: v0.2.0
- Disambiguation5/5
All tools have clearly distinct purposes: real-time active visitors, semantic journey search, raw HTML, pageview time series, screenshots, session IDs, session details, metric breakdowns, website listing, and aggregated stats. No overlapping functionality.
Naming Consistency5/5Every tool uses the consistent 'get_' prefix followed by a descriptive noun phrase in snake_case (e.g., get_active_visitors, get_pageview_series). Even the slightly vague 'get_docs' follows the pattern.
Tool Count5/510 tools is well-scoped for an analytics MCP server. It covers core analytics (stats, series, breakdowns, sessions) plus useful extras (HTML, screenshot, RAG search) without being overwhelming.
Completeness4/5The set provides comprehensive read-only coverage of Umami analytics: listing websites, retrieving stats, time series, dimensional breakdowns, session data, and active visitors. Missing write operations and some advanced analytics (e.g., retention, funnel) are minor gaps for a query-focused server.
Average 4.1/5 across 10 of 10 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 4 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 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.jsonto 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 must carry the full burden. It discloses the HTTP GET method and no JS execution, but lacks details on error handling, timeouts, authentication, or response format. This leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief with the core action first, then usage context and parameter details. It is efficient but the usage sentence could be more precise; still, it wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description covers the basic invocation. However, it omits potential aspects like response format (likely HTML string), error handling for unreachable pages, and any rate limiting, which could affect safe use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'url' has no schema description, but the description provides clear guidance: 'Full URL including scheme' with an example. This meaningfully adds to the schema, compensating for the 0% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches raw HTML from a live web page via HTTP GET with no JS execution, which distinguishes it from sibling tools like get_screenshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it is useful for analyzing page structure/markup, which gives some usage context. However, it does not explicitly state when not to use it or compare to alternatives like get_screenshot for visual rendering.
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 describes the tool as getting a 'full activity timeline' but does not disclose behavioral traits like read-only nature, rate limits, or what 'full' entails. The return value is not described, though an output schema exists. 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.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with a clear purpose sentence followed by parameter documentation. It is efficient but slightly verbose due to including parameter descriptions in the docstring format. No wasted sentences, but could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and the presence of an output schema, the description covers the essential aspects: purpose, parameter meanings with cross-references to other tools. It does not describe the return format, but the output schema fills that gap. Complete enough for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning to each parameter beyond the schema's raw titles. For example, it explains 'website_id' as coming from get_websites and 'session_id' from get_session_ids. Since the input schema has 0% description coverage, the description compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Get the full activity timeline (user journey) for one session.' The verb 'Get' and specific resource 'activity timeline' make the purpose clear. However, it does not explicitly differentiate from sibling tools like get_session_ids or get_pageview_series, which might also involve session data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implicit usage context by listing parameters with source hints (e.g., 'The website id (from get_websites)'), suggesting a workflow. But it does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites or exclusions.
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 the description bears full burden. It discloses the real-time nature and that it returns a count, but does not mention error behavior, authentication requirements, or any side effects. Acceptable for a simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences plus a lightweight Args format. The main purpose is front-loaded, and every word is informative with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool (single parameter, read operation) and the presence of an output schema, the description is largely sufficient. It explains the parameter source and the real-time aspect, though it could mention what the output looks like (though not required due to output schema).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining that website_id comes from get_websites, adding practical context beyond the bare schema. This is helpful for an agent to understand how to obtain the parameter value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Get', the resource 'number of visitors currently active on a website', and specifies 'real-time' which distinguishes it from other tools that may provide historical data. The name also aligns perfectly with the described action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage through the real-time context, but does not explicitly state when to use this tool over siblings or provide any exclusions. It does reference get_websites for obtaining the website_id, which is helpful but not a full guideline.
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 exist, so the description must disclose behavioral traits. It explains the type parameter variants and date range, but does not discuss data freshness, pagination, rate limits, or whether the data is live or cached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: it states the purpose in the first sentence, then lists parameters in a structured format. Every sentence is informative with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no annotations, and an output schema, the description adequately covers the purpose and parameter details. However, it lacks usage guidelines and behavioral notes, so it is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description explains all four parameters: website_id is from get_websites, start_at/end_at are UTC ranges, and type has an enumerated list with context. This adds meaning beyond the schema titles and enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a breakdown of visitors by dimension over a date range, and lists the possible dimension types (url, referrer, browser, etc.). This specific verb+resource combination distinguishes it from sibling tools like get_website_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks explicit guidance on when to use this tool versus alternatives such as get_website_stats or get_active_visitors. It does not mention when not to use it or any prerequisites.
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 mentions the date range formats and a common pitfall (no data), but does not disclose whether the operation is read-only, any authentication requirements, rate limits, or side effects. The description is adequate 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.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences plus an args block), front-loads the purpose, and structures parameter docs clearly. No superfluous content, though the hint sentence could be more precise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters and no annotations, the description covers the function, parameter semantics, and a usage tip. It does not detail the output structure (but an output schema exists), and could mention pagination or error handling. Still largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description provides detailed docstrings for all three parameters: website_id comes from get_websites, start_at/end_at have clear format specifications including timezone and whole-day handling. This adds significant meaning beyond the bare JSON schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get overview metrics for a website over a date range' and lists the specific metrics (pageviews, unique visitors, visits, bounces, total time). This is a specific verb+resource combination that differentiates from sibling tools like get_active_visitors or get_website_metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a useful hint about checking the date range when no data is returned, but it does not provide explicit guidance on when to use this tool versus alternatives like get_website_metrics or get_pageview_series. Usage context is implied but not clearly defined.
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 full burden. It explains the workflow: pulling sessions, filtering, returning relevant chunks, and requiring optional 'rag' extra. It does not disclose auth needs, rate limits, or side effects, but it provides reasonable behavior details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a one-line summary, then a detailed explanation, followed by the 'rag' extra note, and finally an args list. It is front-loaded and every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, semantic search) and the presence of an output schema, the description covers the key aspects: purpose, workflow, parameter meanings, and special requirements. It does not detail the output format but that is handled by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It provides brief but helpful descriptions for each parameter (e.g., 'user_question: What you want to learn (used for the similarity search)', 'website_id: The website id (from get_websites)'). This adds value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs 'Semantic search over many user journeys to surface the most relevant moments', using specific verbs and resources. It distinguishes from sibling tools like get_tracking_data or get_session_ids by focusing on relevance-based search rather than raw data 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/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use: for analyzing behavior across many users without overflowing context. It mentions the optional 'rag' extra requirement. However, it does not explicitly state when not to use or compare to alternatives, leaving 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?
No annotations are provided, so the description carries full burden. It describes the tool as a read operation ('Get'), but does not disclose additional behavioral traits such as authentication needs, rate limits, or response format. However, the output schema exists to document the return structure, which partially compensates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the first sentence states the purpose, followed by usage guidelines, then parameter descriptions. It contains no unnecessary words and is well-structured for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, the description covers the essential aspects: purpose, usage guidelines, parameter semantics, and unit recommendations. It could include error handling or rate limit information, but overall it is sufficient for a straightforward retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides clear semantics for all 5 parameters, including source for website_id, format for start_at/end_at (UTC), and valid values for unit and timezone. This adds significant meaning beyond the schema's type-only definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'pageviews-and-sessions time series', and specifies bucketing by hour, day, or month. This distinguishes it from sibling tools that return different metrics, such as get_active_visitors or get_website_metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use each unit: 'Use 'hour' for short ranges, 'day' for medium ranges, 'month' for long ranges.' It does not explicitly mention alternatives or when not to use this tool, but the context is sufficient for correct tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description takes full responsibility. It discloses the dependency on the screenshot extra and the fallback to install instructions, which is valuable behavioral context. However, it does not mention output format, size limits, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three parts: purpose, prerequisite, and parameter details. It could be slightly more streamlined, but it is well-structured and front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (1 required param, no output schema, no nested objects), the description adequately covers purpose, prerequisite, and parameter format. It also hints at the return type (image vs. instructions), but lacks details on supported image formats or performance considerations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'url' is described with format guidance ('Full URL including scheme') and an example. Since schema description coverage is 0%, the description fully compensates, adding meaning beyond the schema's basic string type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Capture a rendered screenshot of a live web page', which is a specific verb-object pair. It distinguishes from sibling tools like get_html or get_active_visitors, as screenshot capture is unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the prerequisite (Playwright extra) and fallback behavior, but does not explicitly state when to use this tool vs alternatives. No when-not scenarios or sibling comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It discloses it lists data without arguments and conditionally returns team or personal websites. It does not detail return format or side effects, but 'list' implies read-only. Adequate for a non-destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences. Front-loaded with purpose. Every sentence adds value: what it does, how to use returned ID, and conditional behavior. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Low complexity with zero parameters and an output schema present. Description covers purpose, usage, and conditional behavior fully. Agent can confidently determine when and how to use this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so baseline is 4. Description adds value by stating 'Takes no arguments,' confirming the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List the websites in your Umami account, with their ids, names, and domains.' The verb 'list' and resource 'websites' are specific. It distinguishes from sibling tools like get_active_visitors and get_website_metrics by focusing on listing basic website info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains it takes no arguments and instructs to use returned id for other tools. It clarifies team vs personal website retrieval based on configuration. No explicit when-not-to-use, but the context is sufficient for a simple tool.
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 adequately states the tool returns session ids and describes parameters, but does not disclose any behavioral traits (e.g., side effects, permissions, rate limits). The description is correct but could be enhanced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear first paragraph and bullet-style parameter explanations. Every sentence adds value, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (context shows has output schema: true), the description need not detail return values. It covers purpose, usage guidance, parameters, and differentiation from siblings, making it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% description coverage, so the description must compensate. It explains all four parameters: 'website_id' (from 'get_websites'), 'start_at' and 'end_at' (UTC), and optional 'event_name' with example. This adds significant value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets unique session ids in a range, optionally filtered by event. It distinguishes from siblings like 'get_tracking_data' (inspection) and 'get_website_stats' (counting). The verb 'Get' and resource 'session ids' are 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 Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly guides when to use the tool: for finding sessions to inspect with 'get_tracking_data', not for counting visitors (use 'get_website_stats'). It also explains the optional 'event_name' filter and when to omit it.
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
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/MurkyPuma/umami-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server