Markdown Word Counter Mcp
About
A Model Context Protocol (MCP) server that provides word counting functionality for Markdown files, with support for both Chinese characters and English words.
Explore
- Accurate Word Counting: Properly handles both Chinese characters and English words
- Minimal Processing by Default: Only normalizes whitespace, preserves all content
- Configurable Processing: Control what gets processed with flexible options
- Markdown-Aware: Optionally removes Markdown syntax while preserving content
- HTML Tag Removal: Optionally strips HTML tags from content
- Link Processing: Optionally extracts text from Markdown links
- Two Tools Available:
- count_words: Get total word count with options
- detailed_word_count: Get detailed statistics with processing info
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Markdown Word Counter McpCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
1. Clone or download this repository
2. Install dependencies:
npm install
3. Build the project:
npm run build
You can also run the server directly:
npm start
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"markdown word counter mcp": {
"markdown-word-counter": {
"command": "node",
"args": [
"/path/to/markdown-word-counter-mcp/build/index.js"
]
}
}
}
}
McpServers
{
"markdown-word-counter": {
"command": "node",
"args": [
"/path/to/markdown-word-counter-mcp/build/index.js"
]
}
}
A Model Context Protocol (MCP) server that provides word counting functionality for Markdown files, with support for both Chinese characters and English words.
Features
- Accurate Word Counting: Properly handles both Chinese characters and English words
- Minimal Processing by Default: Only normalizes whitespace, preserves all content
- Configurable Processing: Control what gets processed with flexible options
- Markdown-Aware: Optionally removes Markdown syntax while preserving content
- HTML Tag Removal: Optionally strips HTML tags from content
- Link Processing: Optionally extracts text from Markdown links
- Two Tools Available:
- count_words: Get total word count with options
- detailed_word_count: Get detailed statistics with processing info
Processing Options
By default, only whitespace is normalized. All other processing is optional:
- remove_html_tags (default: false) - Remove HTML tags like <div>, <p>
- process_markdown_links (default: false) - Extract text from text links
- remove_markdown_headers (default: false) - Remove header markers #, ##, etc.
- remove_markdown_lists (default: false) - Remove list markers -, , +
- normalize_whitespace (default: true) - Collapse multiple spaces/newlines
Installation
1. Clone or download this repository
2. Install dependencies:
npm install
3. Build the project:
npm run build
Usage
As MCP Server
Add to your MCP client configuration (e.g., mcp_settings.json):
{
"mcpServers": {
"markdown-word-counter": {
"command": "node",
"args": [
"/path/to/markdown-word-counter-mcp/build/index.js"
]
}
}
}
Available Tools
count_words
Count total words in a Markdown file.Parameters:
- file_path (string, required): Path to the Markdown file
- remove_html_tags (boolean, optional): Remove HTML tags (default: false)
- process_markdown_links (boolean, optional): Process Markdown links (default: false)
- remove_markdown_headers (boolean, optional): Remove headers (default: false)
- remove_markdown_lists (boolean, optional): Remove list markers (default: false)
- normalize_whitespace (boolean, optional): Normalize whitespace (default: true)
Example (Default - Minimal Processing):
{
"file_path": "document.md"
}
Example (Enable All Processing):
{
"file_path": "document.md",
"remove_html_tags": true,
"process_markdown_links": true,
"remove_markdown_headers": true,
"remove_markdown_lists": true
}
detailed_word_count
Get detailed word count statistics with processing information.Parameters:
- Same as count_words
Example:
{
"file_path": "document.md",
"remove_markdown_headers": false
}
Standalone Usage
You can also run the server directly:
npm start
Development
- npm run dev: Watch mode for development
- npm run build: Build the TypeScript code
- npm start: Run the built server
Word Counting Logic
The server uses the following logic to count words:
1. Remove HTML tags: Strips all HTML markup
2. Process Markdown links: Extracts link text, removes URLs
3. Remove Markdown syntax: Headers (#), lists (-, , +)
4. Normalize whitespace: Collapses multiple spaces
5. Count separately:
- Chinese characters: Using Unicode range [\u4e00-\u9fa5]
- English words: Using word boundaries \b\w+\b
6. Sum totals: Chinese chars + English words = Total words
Examples
Default Processing (Minimal - Only Normalize Whitespace)
For a file containing: ```markdownSign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



