Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool targets a distinct purpose: pond_search for discovery, pond_get_message for single-message expansion, pond_get_session for full-session transcripts, and pond_sql for advanced SQL queries. The descriptions make the boundaries clear, and there is no overlap in functionality.

    Naming Consistency4/5

    All tools share the pond_ prefix and use snake_case, but the pattern is not perfectly uniform: two use get_ (pond_get_message, pond_get_session), one uses a bare verb (pond_search), and one uses a noun (pond_sql). This is mostly consistent but with a slight deviation.

    Tool Count5/5

    Four tools is well within the ideal 3-15 range for a focused server. Each tool earns its place: search, single-message read, session read, and SQL access cover the core recall/analytics functionality without redundancy.

    Completeness5/5

    The set provides a complete workflow for recalling past conversations: search to find, then either get a message or get a session to read, with SQL as an escape hatch for advanced queries, exact matching, and analytics. The documented gaps (tool bodies, subagent sessions) are explicitly addressed via SQL, so there are no dead ends.

  • Average 4.8/5 across 4 of 4 tools scored.

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

    • 4 of 4 community issues answered or closed in the last 6 months
    • 189 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 Apache 2.0.

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

  • This server has been verified by its author.

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

    Annotations already declare the tool read-only and idempotent. The description adds meaningful behavioral context by explaining the output includes full part bodies and that context_before/context_after control neighbor inclusion (default 3, like grep -B/-A). No contradiction is present.

    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 three sentences, front-loaded with the primary action, and every sentence earns its place. It packs core semantics, usage guidance, and a sibling pointer without waste.

    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 tool with only 3 parameters, no output schema, and strong annotations, the description covers what the tool does, how to identify the target message, the behavior of optional parameters, and a pointer to the alternative for broader context. It also points to a resource schema for response format details, making it complete.

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

    Parameters4/5

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

    Schema coverage is 100%, but the description enriches parameter meaning by explaining id can come from pond_search or transcript, and by giving the grep analogy for context_before/context_after defaults. This adds value beyond the bare schema 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 uses a specific verb ('Expand') with a clear resource ('one message') and details what expansion includes (full part bodies: tool_call/tool_result/reasoning/file) plus conversational neighbors. It also distinguishes from sibling tools by explicitly pointing to pond_get_session for whole-session 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 clearly instructs how to obtain the message_id (from pond_search or a transcript line) and names an alternative tool for whole-session needs ('For the whole session use pond_get_session'). It doesn't explicitly state when not to use it, but the context is unambiguous enough.

    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?

    Annotations already declare read-only and idempotent, and the description adds substantial behavioral detail: vector mode fallback to fts, scored hits grouped by session with best-first ordering, conversational-text-only scope, subagent exclusion with deliberate opt-in via source_agent subpath, and no pagination (limit as knob). No contradiction with annotations.

    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?

    Four dense sentences, each earning its place: purpose/examples, modes, scoping/filters, output/navigation, exclusions. Well front-loaded and free of fluff.

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

    Completeness5/5

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

    Despite lacking an output schema, the description explains return structure (scored hits grouped by session), how to access full messages, and the expected gap for excluded content. It also points to a resource schema for further response details. Given the tool's complexity, this is 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?

    Schema coverage is 100% with rich per-parameter descriptions. The main description reinforces a few concepts (semantic query, mode meaning, scoping filters) but adds limited new parameter-level detail beyond the schema. Baseline 3 is appropriate since the schema carries the heavy lifting.

    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?

    Description opens with a specific verb+resource: 'Find relevant messages in past sessions' and positions it as 'the entry point for recall' with example queries. It further distinguishes from siblings by directing users to pond_get_session/pond_get_message for reading hits and to pond_sql for excluded content.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Explicitly defines when to use: entry point for recall queries. Clearly states what is excluded (tool calls/results, reasoning, subagent sessions) and points to pond_sql for those cases, giving concrete when-not-to-use guidance. Also explains mode choices (vector vs fts) and scoping filters.

    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?

    Annotations already declare readOnlyHint and idempotentHint, but the description adds substantial behavioral context: chronological ordering, paging semantics, from="end" reading final state, subagent footer listing, and that message_id resolves to parent session. It also warns about late conclusions superseding early ones.

    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 dense but every sentence serves a purpose: purpose, id resolution, paging, subagent navigation, and bulk-export exclusion. It is front-loaded with the core purpose and avoids filler.

    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 no output schema and nontrivial paging, the description covers the key aspects: content of the transcript, paging methods, id sources, and subagent handling. It points to resource schema://pond for return format, but does not detail response fields. Slight gap, but still robust enough for an agent to select and invoke correctly.

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

    Parameters5/5

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

    Though schema coverage is 100%, the description significantly enriches parameter meaning: it explains that message_id resolves to parent session, from="end" reads most recent turns first, and describes how after_message_id/before_message_id act as page markers. This goes far beyond the schema's basic field definitions.

    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 opens with a specific verb and resource: "Read a whole past session as a chronological transcript." It clearly distinguishes from siblings (pond_get_message, pond_search, pond_sql) by noting tool bodies are one message away and that bulk export should use `pond copy`.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Explicitly frames when to use the tool: "the tool for analyzing, reviewing, or summarizing a session," and gives a clear alternative for bulk export. Also explains how to obtain the id from pond_search or a subagent footer, and advises against bulk export, directing to `pond copy`.

    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?

    Beyond the annotations (readOnlyHint, openWorldHint, idempotentHint), the description discloses critical runtime behaviors: output is 'row-capped' with 'long cells clip with a +N chars marker', queries are 'wall-clock-capped', and writes are rejected (in schema description). It also warns about performance pitfalls ('unscoped LIKE over variant_data full-scans and times out') and tells users to scope-then-scan. This goes well beyond annotation hints and prepares the agent for real-world edge cases.

    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, dense paragraph that front-loads purpose and exclusions, then lists use cases, then gives operational guidance and output/performance caveats. Every sentence earns its place; there is no filler or tautology. The structure makes it easy to scan and absorb.

    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?

    Given the tool's complexity (SQL over multiple tables, JSONB fields, export modes, potential for timeouts), the description is remarkably complete. It covers return value behavior (row cap, truncation, export links), performance pitfalls, schema resources to read first, and use-case boundaries. No output schema exists, but nothing is missing for selecting and invoking the tool correctly.

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

    Parameters4/5

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

    With 100% schema description coverage and highly detailed parameter descriptions, the baseline is 3. The tool description adds usage context for parameters: linking format=parquet|ndjson to avoiding truncation, and timeout_seconds to raising the wall-clock cap for long-running queries. This enriches the bare schema without being essential, so a 4 is appropriate rather than a 5.

    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 opens with a clear verb+resource: 'run ONE read-only SQL statement' over specific tables ('sessions / messages / parts'). It explicitly distinguishes itself from siblings by stating 'NOT for finding or reading conversations' and naming pond_search and pond_get_session / pond_get_message as alternatives. This leaves no ambiguity about the tool's niche.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides explicit when-to-use guidance: 'Reach for SQL only for: aggregation (counts, group-by, joins, time buckets), exact strings or identifiers in conversational text (contains_tokens / fts), tool-call analytics and tool bodies, subagent sessions, bulk export'. It also gives a clear exclusion ('NOT for finding or reading conversations') and names alternative tools, fulfilling the when/when-not/alternatives criteria perfectly.

    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

pond MCP server

Copy to your README.md:

Score Badge

pond 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/tenequm/pond'

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