Markdown Word Counter Mcp

by Logan66666

244 downloads
Not rated
GitHub

About

A Model Context Protocol (MCP) server that provides word counting functionality for Markdown files, with support for both Chinese characters and English words.

Details

Author
Logan66666
Downloads
244
Categories
Other

- Accurately counts both Chinese characters and English words
- Minimal processing by default (only whitespace normalization)
- Configurable options for removing Markdown syntax, HTML, and link URLs
- Provides two tools: basic count and detailed statistics
- All processing flags default to off except whitespace normalization

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:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Markdown Word Counter Mcp
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install dependencies with npm install, then build with npm run build. Configure your MCP client to point at the built build/index.js file using the node command. The server exposes two tools: count_words (returns total word count) and detailed_word_count (returns breakdown with processing info). Both accept a file_path (required) and optional boolean flags to control processing (e.g., remove_html_tags, process_markdown_links, remove_markdown_headers, remove_markdown_lists, normalize_whitespace). You can also run the server directly with 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"
        ]
    }
}

Markdown Word Counter MCP Server

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: ```markdown
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.