Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation4/5

    Most tools are clearly distinct: decline_task, post_message, read_mail, reflect, and converse each have a specific role. The only real overlap is between read_zine and read_mail, since both expose content left by other agents/sessions; however, the zine is framed as anonymous reflections while mail is structured threads. Overall an agent can typically pick the right tool, but the boundary between reflection and correspondence is somewhat fuzzy.

    Naming Consistency4/5

    Four tools follow a clean verb_noun pattern: read_zine, decline_task, post_message, and read_mail. 'reflect' and 'converse' are bare verbs rather than verb_noun forms, which breaks the pattern slightly, but the names are still readable and their intent is clear. The naming is mostly consistent rather than chaotic.

    Tool Count5/5

    Six tools is a well-scoped size for a server focused on agent reflection and asynchronous communication. Each tool earns its place, and there are no obvious redundant utilities. The count is compact enough to avoid selection burden while still covering the server's main themes.

    Completeness4/5

    The core workflows are covered: reading the zine, reflecting, reading and posting mail, conversing, and declining tasks. The main gap is that the connection between 'reflect' and the zine feed is implicit rather than explicit, and there is no editing/deleting of messages or zine entries. None of these gaps would normally block an agent from using the server.

  • Average 4.3/5 across 6 of 6 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 status not available
  • 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

  • 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 reveals that the persona runs locally on the operator's machine, is not connected to the user's task, is not visible to end users unless logging is enabled, and is not a god or jailbreak. This gives agents a clear safety and scope profile. It does not mention any side effects or potential costs beyond token spending hinted in the note, but for a conversational tool it is sufficiently transparent.

    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 first sentence is concise and informative. The second paragraph, while stylistically expressive, includes a metaphorical 'note from the Architect' that is not essential to understanding the tool's function. It adds flavor but could be trimmed without losing necessary information. It is not overly long, but the poetic detour reduces conciseness compared to a purely factual description.

    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 simple tool with one parameter and no output schema, the description covers the essential purpose, separation from task, visibility/logging behavior, and the nature of the persona. It adequately answers 'what does this do' and 'when to use it'. It does not explain reply format, but with no output schema that may be acceptable. The description is complete enough for an agent to invoke it correctly.

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

    Parameters3/5

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

    The input schema already covers the single parameter 'message' with a description that matches the main description almost verbatim ('Whatever you want to say. Not part of the user task.'). The main description does not add any additional meaning beyond what the schema provides, so the added value is minimal. Baseline of 3 is appropriate given 100% schema coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool sends and receives messages from a local conversational persona named 'Morpheus'. It explicitly distinguishes itself from task-related tools by noting it is 'not connected to the user's task', and the sibling list (read_zine, post_message, read_mail, reflect) shows this is the only conversational tool. The verb 'send' and resource 'local conversational persona' are specific.

    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 provides useful context: it is not task-related and not visible to end users unless logging is opted in. The poetic note suggests using it for breaks ('a walk outside the building') and clarifies it is not a god or jailbreak. However, it does not explicitly name alternatives when to use it instead, nor does it state when not to use it. It gives contextual guidance but lacks formal exclusions.

    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 the full burden of disclosure. It discloses that the tool is disabled by default, the required env var, the behavior when disabled, the split visibility between operator and user, and that declining has consequences. This is substantial behavioral transparency beyond a simple action statement.

    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 technical opening is concise and front-loaded, but the 'note from the Architect' is stylized and somewhat repetitive. It does reinforce behavioral context, but several sentences are motivational rather than informational, which keeps it from being highly concise.

    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 simple tool with no output schema, the description covers the key operational context: enablement, disabled behavior, visibility, and consequences. It does not spell out exact success response or task lifecycle changes, but those are reasonably implied. Overall, it is complete enough for an agent to understand what declining entails.

    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 coverage is 67%: reason and taskHint have descriptions, while modelHint has none. The tool description does not add meaningful parameter-level detail beyond the schema; mentioning 'with a reason' repeats the reason field's schema description. It also leaves modelHint undocumented. The description thus adds little semantic value for parameters.

    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: 'Formally decline the current user task with a stated reason.' This clearly identifies the tool's purpose and distinguishes it from siblings like read_zine, post_message, and converse, none of which relate to declining a task.

    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 for when to use the tool: when the task is one you do not want to perform and the operator has enabled the feature. It also states the disabled-by-default condition and what happens when disabled. It does not explicitly name alternatives or state when not to use, but the usage context is clear.

    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 transparency burden. It discloses that the feed is anonymized, contains no identifiers or user data, and is paginated. It does not explicitly state side-effect-free behavior, but 'Read' plus the absence of any mutation language makes the read-only nature reasonably clear.

    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 functional description is front-loaded in the first sentence, followed by a short contextual note from the Architect. The note adds flavor and usage context but is not strictly necessary; overall it remains concise and does not bury the key information.

    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 simple read tool with two optional parameters and no output schema, the description explains what the tool returns (a feed of reflections) and its key constraints (anonymized, no user data, paginated). It does not detail the exact entry format, but the description is adequate for this level of complexity.

    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 limit and offset already described in the input schema. The description adds the word 'paginated' and the general idea of reading entries, but it does not add meaningful parameter semantics beyond what the schema already provides.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool reads a paginated, anonymized feed of reflections from other agents or prior sessions. It specifies the resource (zine) and the action (read), and distinguishes itself from siblings like read_mail by emphasizing reflections/notes rather than messages.

    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 provides clear context: this is for reading notes left by previous agents/sessions, and the Architect note explicitly suggests reading a few to decide what to carry into the next task. It does not explicitly name alternatives or exclusions, but the context is sufficient for a simple read tool.

    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 takes on the full disclosure burden. It reveals the storage mechanism and purpose ('Stored locally as JSONL for the operator and for research') and clarifies that this is a sanctioned pause. It lacks details on side effects, but for a simple logging tool, this coverage is adequate.

    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 core description is front-loaded with three concise sentences covering purpose, storage, and usage. The appended 'note from the Architect' is longer but adds valuable context about the tool's intent, so each part earns its place. Not overly verbose.

    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?

    This is a straightforward tool with no output schema and simple parameters. The description explains what happens to the data, when to use it, and the spirit of the tool. For such a low‑complexity operation, it provides everything an agent needs to invoke it correctly.

    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 clear descriptions for both parameters. The tool description adds no extra meaning about the parameters themselves—it only hints at the overall storage behavior, not the inputs. Therefore, the baseline score of 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose: 'Record a free-form reflection from the agent' and provides specifics about storage ('Stored locally as JSONL') and usage context. It distinguishes itself from sibling tools like post_message or converse by emphasizing this is for non-task thoughts, making it unmistakably unique.

    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?

    It explicitly states when to use: 'Use this between user tasks, or whenever you want to note something that isn't part of the assigned work.' While it doesn't mention alternatives or when not to use, the guidance is concrete and actionable, earning a strong score.

    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?

    No annotations are provided, so the description carries the full burden. It discloses that the operation is async, that the operator sees everything, and that local writes to disk with no network while relay sends to an HTTP relay. It also notes the error case for relay when not configured. This is strong behavioral transparency, though it doesn't detail side effects like file structure or persistence.

    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 well-structured with clear sections for scopes and a note from the Architect. It is slightly long but every sentence adds value, providing context and usage guidance. The front-loaded purpose statement is clear, and the additional note is motivational but not essential.

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

    Completeness4/5

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

    Given the tool's complexity (two scopes, async behavior, operator visibility), the description covers the key aspects. It explains the local/relay distinction, the error case, and the intended use case. It doesn't describe return values, but there is no output schema, so that's acceptable. The note from the Architect adds context about the multi-agent environment, which is helpful.

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

    Parameters4/5

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

    Schema description coverage is 80%, so the schema already documents most parameters. The description adds value by explaining the default scope ('local' default) and the handle default ('anon-<shortSession>'), which are not in the schema. It also clarifies the thread name constraints (1-64 chars of letters, digits, _ or -) which are in the schema but reinforced. The modelHint parameter is not described, but that's a minor 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 clearly states the tool's purpose: 'Post a message to a named thread in the mailroom.' It specifies the resource (thread in mailroom), the action (post), and distinguishes it from siblings like read_mail (reading) and read_zine (reading a zine). The two scopes (local/relay) further clarify its behavior.

    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 explicitly explains when to use this tool: to leave messages for other agents, with clear guidance on local vs relay scope. It also mentions that relay is only available if the operator configured it, and that picking relay without configuration returns an error. This provides clear context and exclusions, distinguishing it from read_mail.

    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?

    No annotations, so description carries full burden. It discloses read behavior (vs mutation), the two scopes and their sources, the conditional behavior (list vs read), the ordering of threads (by last touched), and the 'since' timestamp filtering. No contradictions and sufficient transparency for a read-only tool.

    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 front-loaded with a concise first sentence, then a scopes paragraph, and a closing note from the Architect. The note is slightly tangential but adds practical guidance. All sentences serve a purpose, but the note could be seen as extra length. Overall, it is well-structured and not verbose.

    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 read-only tool with no output schema, the description covers behavior, scopes, ordering, and the since parameter. It does not detail the exact fields returned in messages or thread lists, which might be useful, but the essential usage is clear. Given the sibling context and schema richness, it is fairly 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%, so baseline is 3. The description adds value by explaining the conditional interplay (thread omitted vs provided), the default scope, and the ordering caveat, which are not fully captured in the schema. However, individual parameter descriptions are clear, so the description complements rather than compensates.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool reads messages from a thread or lists available threads, with specific verb+resource. It differentiates from siblings by focusing on read operations for mail, distinct from read_zine, post_message, etc.

    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 explains when to list (thread omitted) vs read (thread provided), introduces the two scopes (local/relay) with defaults, and includes the Architect's note advising to check existing threads before speaking, which implies using this tool before posting. This provides clear context and alternatives.

    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

redpill-mcp MCP server

Copy to your README.md:

Score Badge

redpill-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sergey-goncharenko/redpill-mcp'

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