docscanner-mcp
Provides lightweight documentation review tools including issue detection, readability scoring, style checking, and document summarization for integration with MCP-compatible clients.
README
DocScanner MCP Server v1
DocScanner MCP Server v1 exposes a lightweight documentation review workflow through MCP tools.
It is designed for end users who want to review plain text documents from an MCP-compatible client such as Claude Desktop, Cursor, or VS Code MCP integrations.
What This Server Does
The server provides 4 tools:
- review_document
- readability_score
- style_check
- summarize_document
It also provides 2 read-only resources:
- style-guide://main
- rules://review
High-Level Flow
- You send document text from an MCP client.
- The client calls one of the DocScanner tools.
- The tool returns structured JSON results.
- You use the response directly, or ask the client to rework your text.
Project Layout
- server.py: MCP entry point and tool/resource registration.
- tools/review.py: Rule-based issue detection (passive voice, long sentences).
- tools/readability.py: Flesch score and grade level.
- tools/style.py: Style violations (future tense, sentence length).
- tools/summary.py: Basic extractive summary.
- resources/style_guide.md: Style guide text served as an MCP resource.
- resources/review_rules.md: Review rule categories served as an MCP resource.
- smoke_test.py: Local smoke test for all four tools.
Prerequisites
- Python 3.10 or newer
- pip
Installation
From the project root, install dependencies:
pip install -r requirements.txt
If needed, install directly:
pip install mcp textstat
Running The MCP Server
Start the server from the project root:
python server.py
The process stays active and waits for MCP client requests.
Connecting From An MCP Client
Configure your MCP client to launch this server with Python.
Command:
python
Arguments:
server.py
Working directory:
docscanner-mcp project root
After connecting, the client should discover:
- Tools: review_document, readability_score, style_check, summarize_document
- Resources: style-guide://main, rules://review
Tool Reference
1) review_document
Input:
{
"document": "content here"
}
Output shape:
{
"issues": [
{
"severity": "high",
"message": "Avoid passive voice"
}
]
}
Current behavior:
- Returns severity/message issues.
- Detects passive voice patterns.
- Flags sentences longer than 25 words.
- Returns one medium issue when the document is empty.
2) readability_score
Input:
{
"document": "content here"
}
Output shape:
{
"flesch_score": 62.5,
"grade_level": 8
}
Current behavior:
- Computes Flesch Reading Ease using textstat.
- Computes Flesch-Kincaid grade level.
- Rounds score to one decimal.
- Returns zeros for empty input.
3) style_check
Input:
{
"document": "content here"
}
Output shape:
{
"violations": [
"Future tense detected",
"Sentence too long"
]
}
Current behavior:
- Detects future tense keywords: will, shall, going to.
- Flags sentences longer than 25 words.
- Returns an empty violations list for empty input.
4) summarize_document
Input:
{
"document": "content here"
}
Output shape:
{
"summary": "..."
}
Current behavior:
- Uses the first two sentences as a concise summary.
- Truncates long summary text to about 300 characters.
- Returns a fallback message for empty input.
Resource Reference
style-guide://main
Serves this guidance:
- Use active voice.
- Use sentence case.
- Avoid future tense.
- Keep sentences under 25 words.
rules://review
Serves rule categories:
- Passive Voice
- Readability
- Terminology
- Capitalization
- Formatting
Example End-User Prompts
Use prompts like these in your MCP client:
- Review this document using review_document and list high severity issues first.
- Run readability_score on this text and explain if grade_level is suitable for general users.
- Run style_check and rewrite only the violating sentences.
- Summarize this document in two concise sentences using summarize_document.
- Read style-guide://main first, then review my text against it.
Local Smoke Test
A small smoke test is included to verify all tools at once:
python smoke_test.py
Expected result:
- JSON output that includes keys for all 4 tools.
- Non-empty values for most fields when sample text is present.
Troubleshooting
ModuleNotFoundError for mcp or textstat
Install dependencies again:
pip install -r requirements.txt
Server starts but client cannot discover tools
Check:
- The client command points to python.
- Arguments include server.py.
- Working directory is the project root.
- The process starts without Python errors.
Empty or weak analysis results
Check document input quality:
- Ensure the document field contains plain text.
- Use multiple sentences for better summary/readability output.
- Avoid sending only headings or very short snippets.
Notes On v1 Scope
This version intentionally stays small and deterministic.
- No file parsing (PDF, DOCX) yet
- No RAG retrieval pipeline yet
- No GitLab integration yet
This keeps setup simple and makes behavior easy to validate before expanding to later versions.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。