ReviewMCP
Supports Git submodule integration for managing the MCP server as a submodule within Re:VIEW projects
Supports GitHub repository integration for distributing and managing the MCP server as a submodule in Re:VIEW projects
Provides fast linting capabilities by compiling Re:VIEW documents to LaTeX format and analyzing stderr output for common errors and issues
Uses npm for package management and installation of the MCP server dependencies
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ReviewMCPcheck for unknown tags in my current project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
review-mcp-min
Minimal MCP (Model Context Protocol) server for Re:VIEW document processing with JS/Ruby hybrid pipeline.
Version
v0.1.0 - Initial release with hybrid pipeline support
Related MCP server: markdownlint-mcp
Features
Core Functionality
Tag Enforcement: Validates Re:VIEW markup tags against configurable allowlists
ID Management: Automatically fixes empty/duplicate IDs in blocks and captions
Fast Linting: Quick sanity checks via LaTeX compilation
Hybrid Pipeline: JS preprocessing + Ruby (LaTeX Builder) for PDF generation
Security (SSOT - Single Source of Truth)
Dynamic security configuration loading from ReviewExtention
Two-layer defense: MCP pre-sanitization + Ruby final validation
Path traversal and absolute path blocking for mapfile macros
File size and extension validation
MCP Commands
Basic Commands
review.version- Get Re:VIEW CLI versionreview.tags.list- List allowed tagsreview.enforceTags.check- Check for unknown tagsreview.fixIds.plan- Plan ID fixes for empty/duplicate IDsreview.fixIds.apply- Apply ID fixes with backupreview.lint- Run fast lint checks
Hybrid Pipeline Commands
review.preprocess- JS preprocessing (currently passthrough)review.build-pdf-hybrid- Build PDF with hybrid pipelinereview.check-ruby-extensions- Verify Ruby extensionsreview.test-mapfile- Test mapfile with security validation
Security Commands
review.security.config- Get current security configurationreview.security.validate-mapfile- Validate mapfile pathsreview.security.compare- Compare configs for SSOT compliance
Installation
# Clone the repository
git clone https://github.com/dsgarage/ReviewMCP.git
cd review-mcp-min
# Install dependencies
npm install
# Build TypeScript
npm run build
# Start MCP server
npm startUsage
Project Root (cwd) Specification
All MCP tools require a cwd parameter pointing to your Re:VIEW project root:
mybook/ ← This is cwd
├── config.yml ← Required
├── catalog.yml ← Required
├── ch01.re
├── ch02.re
├── images/
└── ...The cwd must be the directory containing config.yml and catalog.yml.
With Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"review-mcp": {
"command": "node",
"args": [
"/path/to/review-mcp-min/node_modules/.bin/tsx",
"/path/to/review-mcp-min/src/index.ts"
]
}
}
}With ClaudeCode
cd ~/books/mybook
claude mcp add review-mcp -s project -- \
node ./tools/review-mcp/node_modules/.bin/tsx ./src/index.tsProject Structure
review-mcp-min/
├── src/
│ ├── index.ts # MCP server main
│ ├── commands/
│ │ └── hybrid-pipeline.ts # Hybrid pipeline commands
│ ├── config/
│ │ └── security.ts # SSOT security configuration
│ └── utils/
│ └── runCommand.ts # Command execution utilities
├── articles/ # Re:VIEW test documents
│ ├── chapter01.re
│ └── chapter02.re
├── config.yml # Re:VIEW configuration
├── catalog.yml # Re:VIEW catalog
└── test-build.js # Test script for hybrid pipelineDevelopment
# Run in development mode
npm run dev
# Type checking
npm run typecheck
# Build
npm run build
# Test PDF generation
node test-build.jsTesting
The repository includes test Re:VIEW documents demonstrating various features:
Inline tags (strong, em, code, tt, kw)
Block tags (list, emlist, note, memo, cmd, quote)
Tables, source code blocks, footnotes
Security and SSOT configuration examples
Run the test build:
review-pdfmaker config.ymlCI/CD
GitHub Actions workflow included (.github/workflows/mcp-hybrid.yml) for:
Multi-version testing (Node.js 18/20, Ruby 3.x)
Security configuration validation
PDF generation testing
SSOT compliance checking
Requirements
Node.js 18+
Ruby + Bundler
Re:VIEW gem (5.x recommended)
TeX Live (for PDF generation with uplatex)
Recommended Workflow
On save:
review.enforceTags.check- Block unknown tagsAuto-fix:
review.fixIds.plan→review.fixIds.apply- Fix IDsLint:
review.lint- Show warnings
Configuration
Optional review-mcp.json:
{
"profile": "dual",
"target": "latex",
"blockOnUnknownTags": true,
"autoFixIdsOnSave": true
}License
MIT
Contributing
Issues and PRs welcome at GitHub repository
Related Issues
Author
@dsgarage
Changelog
v0.1.0 (2025-01-08)
Initial release
Hybrid JS/Ruby pipeline implementation
SSOT security configuration
Basic Re:VIEW tag validation and ID management
Test documents and PDF generation support
Available Tools
13 toolsreview.build-pdf-hybridC
JS→Ruby hybrid pipeline for PDF generation (PDF first priority)
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes | ||
| config | No | ||
| skipPreprocess | No |
TDQS
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 mentions 'PDF generation' and a 'hybrid pipeline', but fails to describe key traits such as whether this is a read-only or mutating operation, what permissions or authentication might be needed, potential side effects (e.g., file creation), rate limits, or error handling. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and to the point, using a single sentence that efficiently conveys the core idea. However, the phrase 'PDF first priority' is somewhat ambiguous and could be more precise, slightly reducing its effectiveness. Overall, it avoids unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity implied by a 'hybrid pipeline' with 3 parameters, no annotations, and no output schema, the description is insufficient. It does not cover behavioral aspects, parameter meanings, or expected outputs, making it incomplete for effective tool selection and invocation. The lack of sibling differentiation further exacerbates this gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the lack of parameter documentation. It does not explain any of the three parameters (cwd, config, skipPreprocess), their purposes, formats, or how they influence the PDF generation process. This results in poor parameter semantics, as users must guess based on the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool is for 'PDF generation' with a 'JS→Ruby hybrid pipeline', which provides a general purpose. However, it lacks specificity about what exactly is generated (e.g., from what source, for what content) and does not clearly distinguish it from sibling tools like 'review.preprocess' or 'review.test-mapfile', which might also involve processing steps. The phrase 'PDF first priority' is vague and adds little clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. The description mentions a 'hybrid pipeline' but does not specify scenarios, prerequisites, or exclusions. Sibling tools like 'review.preprocess' or 'review.lint' might be related, but no comparison or context is given, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review.check-ruby-extensionsC
Verify Ruby extensions (ReviewExtention) are loaded correctly
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'verifies' extensions are 'loaded correctly,' implying a read-only check, but doesn't clarify if it requires specific permissions, what 'correctly' entails (e.g., version checks, dependency validation), or what happens on failure (e.g., returns error codes). This leaves significant gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action ('verify'), making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (verification operation), lack of annotations, no output schema, and low parameter coverage, the description is incomplete. It doesn't address behavioral aspects like error handling, output format, or parameter usage, which are crucial for an agent to invoke it correctly in this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter ('cwd') with 0% description coverage, so the schema provides no semantic details. The tool description doesn't mention any parameters, failing to compensate for this gap. It doesn't explain what 'cwd' represents (e.g., current working directory for Ruby context) or how it influences the verification process.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('verify') and resource ('Ruby extensions (ReviewExtention)'), making it understandable. However, it doesn't explicitly differentiate this tool from its siblings (e.g., 'review.lint' or 'review.security.validate-mapfile'), which could have overlapping verification functions, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context (e.g., during development or deployment), or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review.enforceTags.checkC
Scan .re files for unknown tags using allowlist; returns violations.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes | ||
| allow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions scanning and returning violations but omits critical details like whether this is a read-only operation, if it modifies files, error handling, performance characteristics, or output format. For a tool with no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence that efficiently conveys the core functionality. It's front-loaded with the main action and outcome, with no wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (tag validation tool with 2 parameters, nested objects, no output schema, and no annotations), the description is incomplete. It doesn't explain what constitutes a 'violation', how results are structured, or provide enough context for the agent to use it effectively without trial and error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter details. The description mentions 'allowlist' which hints at the 'allow' parameter but doesn't explain its structure or purpose. It doesn't address the 'cwd' parameter at all. With 2 parameters and low coverage, the description adds minimal semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: scanning .re files for unknown tags using an allowlist and returning violations. It specifies the verb ('scan'), resource ('.re files'), and outcome ('returns violations'), though it doesn't explicitly differentiate from sibling tools like 'review.tags.list' or 'review.lint'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, context, or exclusions, and with multiple sibling tools in the 'review' category, the agent lacks direction on selecting this specific tool for tag validation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review.fixIds.applyC
Apply a previously calculated ID-fix plan; creates .bak backups.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes | ||
| fixes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that the tool creates '.bak backups', which is a useful behavioral trait. However, it lacks details on permissions needed, whether changes are reversible, error handling, or what 'apply' entails beyond backups, leaving significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action. It avoids unnecessary words, though it could be slightly more informative without losing conciseness. Every part earns its place by stating purpose and a key behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema coverage, no output schema, and a mutation tool with 2 parameters, the description is incomplete. It covers the basic action and backup creation but misses critical details like parameter meanings, return values, error conditions, and full behavioral context needed for safe use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 doesn't explain what 'cwd' or 'fixes' represent, their formats, or how they relate to the ID-fix plan. The mention of backups hints at file operations but provides no parameter-specific guidance, failing to add meaningful semantics beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('apply') and the resource ('previously calculated ID-fix plan'), and mentions the creation of '.bak backups' as a side effect. It distinguishes from sibling 'review.fixIds.plan' by focusing on execution rather than planning. However, it doesn't fully specify what 'ID-fix' entails beyond backups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by referencing 'previously calculated ID-fix plan', suggesting it should follow 'review.fixIds.plan'. It doesn't explicitly state when to use this tool versus alternatives or provide exclusions, leaving some ambiguity about its proper sequencing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review.fixIds.planC
Plan auto-fixes for empty/duplicate IDs across all .re files.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes |
TDQS
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 'Plan auto-fixes,' implying a non-destructive, planning phase, but doesn't disclose behavioral traits such as whether it requires specific permissions, outputs a report or preview, handles errors, or has side effects. More context is needed for a mutation-related tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It is front-loaded and appropriately sized, clearly stating the tool's purpose without unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (planning fixes for IDs in files), lack of annotations, no output schema, and incomplete parameter documentation, the description is insufficient. It doesn't explain what the tool returns (e.g., a plan report), error handling, or how it integrates with the workflow, leaving significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter ('cwd') with 0% description coverage. The tool description adds no information about parameters, failing to explain what 'cwd' means (e.g., current working directory for .re files) or its format. With low schema coverage, the description does not compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Plan auto-fixes for empty/duplicate IDs across all .re files.' It specifies the action ('Plan auto-fixes'), target ('empty/duplicate IDs'), and scope ('across all .re files'). However, it doesn't explicitly differentiate from its sibling 'review.fixIds.apply', which appears to be the execution counterpart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing, or how it relates to siblings like 'review.fixIds.apply' (likely for applying fixes) or 'review.lint' (possibly for checking issues). Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review.lintC
Run a fast sanity check by compiling each .re to latex and parsing stderr warnings.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes |
TDQS
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 mentions 'fast sanity check' and parsing stderr warnings, but lacks details on permissions needed, whether it modifies files, error handling, or output format. This is a significant gap for a tool that likely involves compilation and error parsing, where behavioral traits are critical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Run a fast sanity check') and elaborates concisely. Every word earns its place by specifying the method (compile .re to LaTeX) and output handling (parse stderr warnings), with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (involving compilation and warning parsing), no annotations, no output schema, and low schema coverage, the description is incomplete. It lacks details on behavioral aspects, parameter meanings, and what the tool returns (e.g., success/failure status or warning lists), making it inadequate for effective agent use without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter (cwd) with 0% description coverage, so the schema provides no semantic information. The description does not mention the 'cwd' parameter or explain its role (e.g., as the working directory for compilation), failing to compensate for the low schema coverage and leaving the parameter's meaning unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Run a fast sanity check by compiling each .re to latex and parsing stderr warnings.' It specifies the action (compile .re files to LaTeX and parse warnings) and resource (.re files), though it doesn't explicitly differentiate from siblings like 'review.build-pdf-hybrid' or 'review.preprocess' which might involve similar compilation steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions a 'fast sanity check' but doesn't specify scenarios where this is preferred over other review tools (e.g., 'review.build-pdf-hybrid' for PDF generation or 'review.check-ruby-extensions' for Ruby checks), leaving the agent to infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review.preprocessC
JS preprocessor only - normalizes input and adds metadata
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes | ||
| pattern | No | ||
| output | No | ||
| stats | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it 'normalizes input and adds metadata' without explaining what normalization entails, what metadata is added, whether this is a read-only or mutating operation, or any performance/error characteristics. It mentions 'JS preprocessor only' which hints at language specificity but doesn't elaborate on behavioral constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 8 words, with no wasted language. However, this brevity comes at the cost of being under-specified rather than efficiently informative. The single sentence is front-loaded but lacks necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no annotations, 0% schema coverage, and no output schema, the description is inadequate. It doesn't explain what the tool actually does with JS files, what normalization means, what metadata gets added, or what the expected output format would be. The context of 12 sibling tools suggests this is part of a review system, but the description doesn't situate this tool within that ecosystem.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for all 4 parameters, the description provides no information about what 'cwd', 'pattern', 'output', or 'stats' mean or how they should be used. The description doesn't compensate for the complete lack of parameter documentation in the schema, leaving all parameters semantically undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it's a 'JS preprocessor' that 'normalizes input and adds metadata', which gives a vague purpose but doesn't specify what exactly gets normalized or what metadata is added. It distinguishes from siblings by mentioning 'JS' specifically, but doesn't clarify what resource it operates on or the exact transformation performed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus the 12 sibling tools. The description doesn't mention prerequisites, alternatives, or specific contexts where this preprocessor should be applied versus other review tools like 'review.lint' or 'review.security.validate-mapfile'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review.security.compareC
Compare MCP config with ReviewExtention config to ensure SSOT
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'compare' and 'ensure SSOT', which implies a read-only validation operation, but doesn't specify if it's safe, what permissions are needed, whether it makes changes, or what the output looks like. For a security-related tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly. However, it could be more structured by including key details, but it earns points for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a security comparison tool with no annotations, no output schema, and a parameter with 0% coverage, the description is incomplete. It doesn't explain what 'SSOT' entails, what configs are compared, what happens if discrepancies are found, or how to interpret results. For such a tool, more context is needed to be adequately helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no information about the single parameter 'cwd'. With 0% schema description coverage, the parameter is undocumented in both the schema and the description. The description fails to compensate for this gap by not explaining what 'cwd' means or how it should be used in the comparison process.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool compares MCP config with ReviewExtension config to ensure SSOT (Single Source of Truth), which gives a vague purpose. It mentions 'compare' and 'ensure SSOT' but doesn't specify what resources or data are being compared, nor does it distinguish from siblings like 'review.security.config' or 'review.security.validate-mapfile'. The purpose is understandable but lacks specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or exclusions, and with siblings like 'review.security.config' and 'review.security.validate-mapfile', there's no indication of how this tool differs or when it should be chosen over them. The description lacks any usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review.security.configC
Get current security configuration (SSOT from ReviewExtention)
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes | ||
| forceReload | No |
TDQS
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 states this is a 'Get' operation, implying read-only behavior, but doesn't clarify if it requires specific permissions, has side effects (e.g., caching with 'forceReload'), rate limits, or what the output format looks like. The mention of 'SSOT from ReviewExtention' adds some context but is vague about what this entails operationally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is front-loaded with the core purpose ('Get current security configuration') and includes a clarifying note ('SSOT from ReviewExtention') that adds value without verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a security configuration tool with 2 parameters), lack of annotations, 0% schema coverage, and no output schema, the description is incomplete. It doesn't explain parameter usage, behavioral details, or output expectations, making it inadequate for an agent to confidently invoke this tool without additional context or trial-and-error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning neither parameter ('cwd' or 'forceReload') is documented in the schema. The description provides no information about these parameters—what 'cwd' represents (likely current working directory) or when to use 'forceReload'. This fails to compensate for the lack of schema documentation, leaving parameters largely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('current security configuration'), and mentions the data source ('SSOT from ReviewExtention'). However, it doesn't explicitly differentiate this tool from its sibling 'review.security.compare' or 'review.security.validate-mapfile', which likely also deal with security configurations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'review.security.compare' or 'review.security.validate-mapfile'. It doesn't mention prerequisites, exclusions, or specific contexts for usage, leaving the agent to infer based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review.security.validate-mapfileC
Validate mapfile path and content against security policy
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes | ||
| filepath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool validates against security policy but doesn't explain what happens during validation (e.g., returns errors, logs issues, blocks execution) or any constraints (e.g., file size limits, permission requirements). This is inadequate for a tool with potential security implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the sentence ('Validate mapfile path and content against security policy') contributes directly to understanding the tool's function, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (security validation tool), lack of annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't cover behavioral aspects (e.g., what validation entails, error handling), parameter semantics, or usage context. This leaves significant gaps for an agent to invoke the tool correctly in a security-sensitive scenario.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 2 parameters (cwd, filepath) with 0% description coverage, meaning no parameter details are documented in the schema. The description doesn't add any meaning beyond the parameter names—it doesn't explain what 'cwd' and 'filepath' represent (e.g., current working directory and relative/absolute path) or how they interact. This fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Validate mapfile path and content against security policy.' It specifies the action (validate), target (mapfile path and content), and criteria (security policy). However, it doesn't explicitly distinguish this tool from sibling tools like 'review.security.compare' or 'review.test-mapfile', which might have overlapping validation functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context (e.g., during code review or deployment), or compare it to siblings like 'review.security.compare' or 'review.test-mapfile'. This leaves the agent guessing about appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review.tags.listC
Return allowed tags (built-in conservative list; replace with dynamic probe later).
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes | ||
| profile | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'built-in conservative list' which hints at static data, and 'replace with dynamic probe later' which suggests future changes, but doesn't explain what 'allowed tags' are, whether this is a read-only operation, what permissions might be needed, or what the return format looks like. For a tool with 2 parameters and no annotations, this is insufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately brief with just one sentence plus a parenthetical note. It's front-loaded with the core purpose statement. However, the parenthetical implementation note about future replacement doesn't earn its place for an AI agent trying to use the tool now.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 parameters, 0% schema coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'allowed tags' are, what the parameters do, what the return format is, or how this relates to the review context. The description leaves too many gaps given the tool's complexity and lack of structured documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter documentation. The description mentions nothing about the 'cwd' or 'profile' parameters, their purposes, formats, or relationships. The description fails to compensate for the complete lack of schema documentation, leaving both parameters semantically undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'Return allowed tags' which provides a basic verb+resource combination, but it's vague about what 'allowed tags' means in context and doesn't differentiate from sibling tools like 'review.enforceTags.check'. The parenthetical note about 'built-in conservative list; replace with dynamic probe later' adds implementation details but doesn't clarify the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention any prerequisites, context for usage, or relationships to sibling tools like 'review.enforceTags.check' which appears related. The agent receives no help in determining appropriate invocation scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review.test-mapfileC
Test #@mapfile macro with security validation (developer tool)
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes | ||
| file | Yes |
TDQS
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 mentions 'security validation', hinting at safety checks, but doesn't clarify if it's read-only, destructive, requires specific permissions, or has rate limits. The term 'test' is ambiguous—it could imply execution or analysis without detailing outcomes or risks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded in a single sentence, with no wasted words. However, it's slightly under-specified, as it could benefit from more detail given the lack of annotations and schema coverage, but it's not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a developer tool with security validation), no annotations, no output schema, and low parameter coverage, the description is incomplete. It doesn't explain what the tool returns, how security validation works, or provide enough context for safe and effective use, leaving significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 2 parameters (cwd and file) with 0% description coverage, meaning they are undocumented. The description adds no semantic information about these parameters—it doesn't explain what 'cwd' or 'file' represent, their formats, or how they relate to testing the macro. This fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool tests the #@mapfile macro with security validation, which provides a general purpose. However, it's vague about what 'test' entails (e.g., validation, execution, analysis) and doesn't distinguish it from sibling tools like 'review.security.validate-mapfile' or 'review.security.compare', which may have overlapping security functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It labels it as a 'developer tool', implying it's for development contexts, but doesn't specify scenarios, prerequisites, or exclusions compared to other security or review tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review.versionA
Return Re:VIEW CLI version (prefers bundle exec).
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes |
TDQS
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 the behavioral trait of preferring 'bundle exec' for execution, which adds context about how the tool runs. However, it lacks details on output format, error handling, or other behavioral aspects like whether it's read-only or has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Return Re:VIEW CLI version') and adds a useful operational note ('prefers bundle exec') without any waste. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single parameter, no output schema, no annotations), the description is reasonably complete. It explains what the tool does and adds execution context. However, it could be more complete by briefly mentioning the return value (e.g., version string) or error cases, though the simplicity mitigates this gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'cwd' with 0% description coverage, so the schema provides no semantic information. The description does not mention parameters at all, but since there is only one parameter, the baseline is high. The tool's purpose is simple (return version), so the lack of parameter explanation is less critical, but it doesn't add meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Return') and resource ('Re:VIEW CLI version'), and distinguishes it from siblings by focusing on version retrieval rather than build, lint, or security operations. It adds the operational detail 'prefers bundle exec' which further specifies the execution context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'prefers bundle exec', suggesting it's for checking the CLI version in a Ruby/bundler environment. However, it does not explicitly state when to use this tool versus alternatives (e.g., for debugging or setup verification) or name specific sibling tools as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes targeting specific aspects of the Re:VIEW workflow (e.g., PDF generation, Ruby extensions, tag enforcement, ID fixing, linting, preprocessing, security, mapfile testing, version checking). However, review.security.compare and review.security.validate-mapfile could be slightly confused as both involve security validation, though their specific focuses differ (config comparison vs. mapfile validation).
Tools follow a consistent dot-separated naming pattern (e.g., review.build-pdf-hybrid, review.check-ruby-extensions) with clear verb-noun-action structures. Minor deviations include hyphen usage in some names (e.g., build-pdf-hybrid) versus underscores in others (e.g., validate-mapfile), but overall the pattern is predictable and readable.
With 13 tools, the count is well-scoped for a Re:VIEW document processing server. Each tool addresses a specific need in the workflow (e.g., preprocessing, linting, security, PDF generation), and none appear redundant or unnecessary, fitting a typical range for such a domain.
The toolset covers core aspects of Re:VIEW processing including preprocessing, linting, PDF generation, security validation, and tag/ID management. Minor gaps might include tools for advanced editing or collaboration features, but the surface supports essential workflows without dead ends, allowing agents to handle most tasks effectively.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Validiert E-Rechnungen (ZUGFeRD/Factur-X, XRechnung) gegen EN 16931 mit Korrekturvorschlägen.
PDF accessibility checks (veraPDF PDF/UA-1), auto-fix and Markdown conversion. EU-hosted.
Lint a SKILL.md for frontmatter, structure, secrets and size. All 6 tools free.
Validate HTML/CSS, audit SEO and JSON-LD, check links, and capture responsive screenshots.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA server that enables real-time checking and automated correction suggestions for Japanese technical documents using textlint's linting capabilities.1
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with the ability to lint, validate, and auto-fix Markdown files to ensure compliance with established Markdown standards and best practices.6MIT
- AlicenseAqualityFmaintenanceIntegrates Vale prose linting into AI coding assistants, enabling users to check text files for style and grammar issues using Vale's powerful linting engine. Provides automated style feedback with smart configuration discovery and rich formatted results.318MIT
- AlicenseBqualityFmaintenanceProvides intelligent manuscript analysis and writing assistance for markdown projects, including semantic search, quality checks, terminology consistency, link validation, progress tracking, and comprehensive writing statistics.3513113MIT
Appeared in Searches
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/dsgarage/ReviewMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server