md-redline
Server Quality Checklist
Latest release: v0.8.3
- Disambiguation5/5
Each tool serves a distinct phase of the review workflow: mdr_request_review starts/continues a session, mdr_review posts feedback, mdr_ask poses questions, and mdr_wait blocks until the user finishes. No two tools overlap in purpose, and descriptions clearly differentiate their roles.
Naming Consistency5/5All tools are prefixed with 'mdr_' and use snake_case verbs (wait, request_review, ask, review). The naming pattern is uniform and predictable, with no mixing of conventions or irregular abbreviations.
Tool Count5/5Four tools is an ideal count for this focused review domain, covering session management, feedback submission, interactive questioning, and synchronization. Each tool is essential, and the surface is neither bloated nor too sparse.
Completeness4/5The tool set covers the core review life cycle: initiating a review, providing feedback, asking clarifying questions, and waiting for completion. Minor gaps exist, such as no explicit tool to list all pending comments or cancel a session, but these are mitigated by the workflow's design and the user-driven 'Done' action.
Average 4.7/5 across 4 of 4 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- 6 of 7 community issues answered or closed in the last 6 months
- 257 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
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
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description thoroughly discloses the blocking nature, timeout (90s), return values on timeout ({status:"pending"}) and completion ({status:"done"}), and the expected follow-up action ('read the file(s) to see the user's replies...'). No annotations are provided, so the description carries the full burden and handles it excellently.
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 three sentences long, with the first sentence immediately stating the purpose, the second giving usage context, and the third covering timeout and post-completion actions. Every sentence adds value; there is no redundancy or unnecessary detail.
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 wait tool with one parameter and no output schema, the description fully explains the behavior, return values, retry logic, and what to do after completion. It covers all necessary context for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage for sessionId is 100%, and the description repeats the schema description ('Session ID returned by mdr_review'). It adds no extra meaning beyond what the schema already provides, so a 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/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Block until the user has finished engaging with an mdr_review session.' It uses a specific verb (block/wait) and resource (mdr_review session), and distinguishes itself from sibling tools like mdr_review (which posts feedback) and mdr_ask (which likely asks questions).
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?
It explicitly states when to call the tool: 'Call this once after you have posted all your feedback batches via mdr_review.' It also provides guidance on timeout behavior and retry: 'If the wait times out (90s), returns {status:"pending"} — call mdr_wait again...' However, it does not explicitly mention when not to use it or alternatives, though the context is clear.
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 are provided, so the description fully discloses behavior: returns reply text when user answers, partial replies on review finish, empty if session ends otherwise. It also explains disk persistence and pending limitation.
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 detailed but slightly long at 6 sentences. It front-loads the main purpose but could tighten some phrasing.
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 interactive nature and no output schema, the description fully covers return behavior, pending constraints, and integration with siblings for a complete picture.
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 50%, but the description adds context by explaining the purpose of questions and anchors. However, contextAfter/contextBefore parameters lack full explanation in both schema and description.
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 asks the user questions anchored to specific text in a file within an active review session. It distinguishes itself from siblings by mentioning inline markers and referencing mdr_review for replies.
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 explicitly says when to use ('when a comment is unclear, or when you hit a planning fork') and provides guidance on pending constraints ('post a reply via mdr_review then retry'). It does not explicitly state when not to use, but the context is clear.
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?
The description comprehensively explains the workflow states (waiting, batch/done) and the critical constraint that during review the agent cannot read/edit files. No annotations exist, so the description carries the full burden and does so excellently.
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 fairly long but well-structured, front-loading the purpose and then providing detailed usage instructions. Every sentence appears necessary for clarity, though could be slightly more concise.
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 tool with complex workflow (polling, state constraints), the description is remarkably complete. It covers the workflow, permission constraints, and expected result types (batch, done, not finished). No output schema, but the description explains result interpretation.
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 100%, baseline is 3. The description adds value by tying filePaths to new sessions and sessionId to continuation, and reinforces the relationship with enableResolve. It provides context beyond the parameter descriptions.
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 that the tool opens markdown files for human review or continues an existing session. It specifies the resource (markdown files) and action (request review), with clear differentiation between new and continuation sessions.
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?
Explicit guidance on when to pass filePaths vs sessionId, and what to do if the user hasn't finished (call again with same sessionId). Warns about not acting on files during review, which is crucial for correct usage.
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, the description fully discloses behavior: it returns immediately (non-blocking), requires passing sessionId to mdr_wait, and explains consequences of skipping mdr_wait. It also details anchoring behavior for text and fallback for diagrams, covering key traits beyond the schema.
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 well-structured with clear sections and front-loaded key info. It is slightly verbose but every sentence adds value, explaining the flow, anchoring behavior, and author requirement. Could be trimmed slightly, but overall efficient.
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 no output schema and 4 parameters, the description is comprehensive: explains the two-tool flow, return sessionId, anchoring details, and agent identification. It covers all critical aspects an agent needs to use the tool correctly.
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 low (25%), but the description adds significant meaning: explains filePaths, the distinction between comments and replies, importance of author field, and the reason for contextBefore/contextAfter. However, it doesn't detail all parameters (e.g., enableResolve), so not fully compensating.
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 'Review markdown files in md-redline (mdr) and leave inline feedback', specifying the verb (review), resource (markdown files), and action (inline feedback). It distinguishes from siblings by detailing the two-tool flow with mdr_wait, making its role unique.
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 says 'Use this when the user asks you to review a doc and drop comments' and warns against skipping mdr_wait ('Skipping mdr_wait leaves a banner...'). It provides clear context for when and how to use this tool vs. 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
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/dejuknow/md-redline'
If you have feedback or need assistance with the MCP directory API, please join our Discord server