elog-mcp
Server Quality Checklist
Latest release: v0.3.2
- Disambiguation5/5
Each tool has a clearly distinct purpose: listing logbooks, searching entries, fetching a single entry, retrieving recent entries, and downloading attachments. No two tools overlap in a way that would cause misselection.
Naming Consistency4/5All tools share the 'elog_' prefix and mostly follow a verb_noun pattern (list_logbooks, get_entry, get_recent_entries, get_attachment). The exception is 'elog_search', which omits the object noun, creating a slight inconsistency. Overall, the pattern is predictable.
Tool Count5/5With 5 tools, the server is well-scoped for a read-only ELOG client. Each tool serves a necessary function without redundancy, and the count is within the ideal range.
Completeness4/5The surface covers core read operations: listing logbooks, searching, retrieval of individual entries, recent entries, and attachments. Minor gaps include lack of pagination for search results and no explicit way to browse entries beyond new ones, but these can be worked around via search with date filters.
Average 4.4/5 across 5 of 5 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- No commit activity data available
- 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.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
- 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 and discloses meaningful behavioral traits: it returns untruncated body text (a notable distinction from truncated list results), threading info (reply_to/in_reply_to), and the canonical web URL. This directly informs the agent of valuable return characteristics beyond a bare 'reads an entry.'
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?
Purpose is front-loaded in the first line, followed by a compact Args section and a concise Returns section. The structure is clean and scannable, though the Returns paragraph is slightly redundant with the opening line's mention of attributes, body, and attachments.
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?
For a two-parameter read tool, the description is substantially complete: both parameters are explained, return value structure is disclosed, and the output schema exists to formalize the record shape. Missing only minor context like authentication prerequisites, which is typically not tool-specific for a read operation.
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 compensate, and it does: it explains logbook as 'Name of the logbook containing the entry' and entry_id as 'Numeric message ID of the entry.' Both parameters are adequately documented in prose despite the empty schema titles, with no enums or nesting concerns.
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?
States a specific verb ('Read') and resource ('one logbook entry in full'), and lists what makes it distinct from siblings: all attributes, complete body, and attachments. The 'in full' phrasing clearly differentiates it from the list/summary tools in the sibling set like elog_get_recent_entries.
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 implies this is the right tool when you need a complete single entry rather than a summary or search result, but it never explicitly names alternatives or gives conditions for choosing between them. The 'in full' contrast versus elog_search and elog_get_recent_entries is implied, not stated. No exclusions or when-not-to-use guidance is given.
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 discloses the return format (list of {name, description?, url} objects) and the effect of an optional environment variable (ELOG_LOGBOOKS) that restricts and orders results. This adds meaningful behavioral context beyond a simple 'list' call, though it does not cover potential errors or auth requirements.
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 two concise sentences. The first states the purpose immediately; the second provides return format and an optional configuration detail. No redundant wording, no filler, and the most important information is front-loaded.
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?
For a simple listing tool with no parameters and an output schema that likely describes the returned objects, the description is complete. It covers what it does, what it returns, and a relevant environment variable. The sibling tools are all entry-focused, so there is no missing context about when to use this tool. No output schema is shown, but the description compensates by describing the return structure.
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 tool has zero parameters, so the schema provides no parameter meaning. The description adds value by explaining what is returned and mentioning the ELOG_LOGBOOKS environment variable as a configuring influence. This goes beyond the empty schema and justifies a score above the baseline for no-parameter tools.
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 states a specific verb 'List' and a specific resource 'logbooks available on the configured ELOG server'. It clearly distinguishes from sibling tools (elog_search, elog_get_entry, etc.) which all operate on entries rather than logbooks. No ambiguity.
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 implies usage (when you need the list of logbooks) but does not explicitly state when to use it vs alternatives or when not to use it. Since siblings are all entry-focused, the context makes the purpose obvious, but no explicit guidance is 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?
Since no annotations are provided, the description carries the full burden. It discloses the return format ('Returns {"total": int, "entries": [...]}'), the ordering ('newest first'), and references sibling behavior ('excerpts like elog_search'). This adds meaningful context beyond the schema, though it does not address read-only guarantees, pagination limits, or error conditions, leaving some room for improvement.
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 well-structured. It leads with the one-sentence purpose, then lists parameters in a clear 'Args:' block, and ends with the return type. No filler or redundancy; every sentence contributes useful information. The most critical info (what it does) is front-loaded.
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 tool's simplicity (2 params, no enums, output schema exists), the description is complete. It states the purpose, parameter meanings, and the return shape, and references sibling behavior for the excerpt format. The presence of an output schema reduces the need to explain return details further, and nothing essential for a correct call is missing.
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?
With schema description coverage at 0%, the description must compensate. It clearly defines both parameters: 'Name of the logbook to read' for logbook and 'Number of recent entries to return' for count. This provides semantics that the schema omits, fully explaining the purpose of each parameter.
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 opens with a clear action verb and resource: 'Fetch the newest entries of a logbook, newest first.' It identifies the resource (logbook entries) and the ordering (newest first), which distinguishes it from siblings like elog_search (searches by criteria) and elog_get_entry (single entry).
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 purpose implies usage ('when you want recent entries'), but there is no explicit comparison to alternatives or conditions for when not to use this tool. It does not name elog_search or elog_get_entry as alternatives, nor does it describe when they would be more appropriate. Guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden of behavioral disclosure. It explains key semantics: text and attributes are treated as regular expressions, date_to defaults to 23:59:59, reverse controls sort order, max_results has a server cap of 100000, and logbook defaults to '*'. It also details the exact return structure. These are non-obvious behaviors an agent needs to invoke correctly.
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 efficient: a one-sentence purpose, then a structured Arg list covering all parameters without redundancy, and a concise Returns line. Every sentence adds information – no padding. The main purpose is front-loaded, and parameter details are logically grouped.
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?
Despite having 8 parameters and an output schema, the description covers every parameter's semantics and the return format explicitly. It even includes defaults and edge-case behaviors (e.g., date_to time default). Nothing an agent needs to call this tool correctly is missing, and the provided output schema complements rather than replaces the description.
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?
Schema description coverage is 0%, so the description must supply meaning for all 8 parameters. It does so comprehensively: each parameter gets a clear explanation with examples (e.g., attribute regex syntax, date formats, use of '^…$' for exact text match, and the logic of last_days vs. explicit range). This adds value far 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 opens with 'Search logbook entries by full text, attributes, and/or date' – a specific verb, resource, and filtering criteria. This clearly distinguishes it from sibling tools like elog_get_entry (single entry) and elog_list_logbooks (list logbooks). An agent immediately understands the tool's role and scope without needing to inspect siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given for when to choose this tool over alternatives. While the description implies it is for flexible searching, it does not mention that elog_get_entry should be used when an entry ID is known, or elog_get_recent_entries for recent entries. The agent must infer these distinctions from the tool names and parameters.
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. It discloses the return structure ({filename, content_b64, mime, size}) and advises embedding via MCP resource mechanisms, which is key behavioral context. It doesn't mention error conditions, authentication, or size limits, but for a simple read operation the core behavior is well-covered.
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 well-structured with explicit 'Args' and 'Returns' sections. The purpose is front-loaded, and every sentence adds value. There is no redundancy or filler.
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?
For a two-parameter tool with an output schema (per context), the description covers all necessary calling information: parameters, return format, and integration guidance. No additional details are needed for an agent to call it correctly.
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?
Schema description coverage is 0%, so the description must compensate. It does so effectively: 'logbook' is explained as the name of the holding logbook, and 'filename' is specified as the exact name as listed on the entry. This adds critical meaning beyond the bare schema titles.
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 opens with a specific verb ('Download') and a concrete resource ('an attachment'), and specifies the output encoding ('as base64 content'). This clearly distinguishes it from sibling tools like elog_get_entry or elog_search, which operate on entries or search results rather than binary attachments.
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 clearly implies when to use the tool: when you need to retrieve an attachment by logbook and filename. It does not explicitly reference alternatives or exclusions, but the purpose is self-evident and matches the tool's name. Since no sibling tool offers attachment downloading, no additional routing guidance is necessary.
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/ast0815/elog-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server