A Model Context Protocol (MCP) server that integrates Vale prose linting into AI coding assistants like Claude Code and Gemini command-line tool.
This MCP server provides AI assistants with the ability to check files for style and grammar issues using Vale's powerful linting engine. It automatically discovers Vale configuration files and provides formatted, actionable feedback about writing quality.
- ✅ File linting: Check any text file for style issues with Vale.
- 🔍 Smart config discovery: Automatically finds
.vale.ini
files using Vale's native upward search. - 🎯 Configuration priority: Supports
VALE_CONFIG_PATH
environment variable for explicit config. - 📊 Rich formatting: Returns markdown-formatted results with emojis and severity grouping.
- 🛡️ Graceful degradation: Provides helpful installation guidance when Vale isn't installed.
- 🐛 Debug mode: Optional debug logging for troubleshooting.
- Node.js: Version 22 or higher
- Vale: Version 3.0 or higher
# Clone or navigate to the project directory
cd vale-mcp-server
# Build the TypeScript project
make build
# Install globally using npm link
make install
This creates a global vale-mcp-server
command that you can use from anywhere.
To uninstall:
make uninstall
The Vale MCP server can be integrated with AI coding assistants that support the MCP standard.
Add the Vale MCP server to Claude Code using stdio transport:
claude mcp add --transport stdio vale-mcp -- vale-mcp-server
Verify installation:
# List configured servers
claude mcp list
# Check server status
claude mcp get vale-mcp
In Claude Code:
> /mcp
# Shows available MCP tools including vale_status and check_file
See Claude Code MCP documentation for more details.
Add the Vale MCP server to Gemini command-line tool:
gemini mcp add vale vale-mcp-server
Verify installation:
# List configured servers
gemini mcp list
# Check in conversation
/mcp
Refer to the Gemini command-line tool MCP documentation for more details.
Add the Vale MCP server using VS Code's Command Palette for a quick, no-config setup:
-
Open the command palette: press
Ctrl+Shift+P
(Windows/Linux) orCmd+Shift+P
(Mac). -
Run Command: Type
MCP: Add Server
and select it. -
Provide Server Information:
- Name:
vale
(or any name you prefer) - Type: Select
stdio
- Command:
vale-mcp-server
- Arguments: Leave empty or add
--debug
for debug mode
- Name:
-
Choose Scope:
- User configuration: Available globally across all workspaces
- Workspace: Available only in the current workspace
Verify in VS Code:
- Open GitHub Copilot Chat
- Type
/mcp
to see available MCP tools - The Vale tools should appear in the list
- "Check docs/guide.md using Vale"
- "Lint this markdown file: @README.md"
- "What style issues does Vale find in the documentation?"
The server provides three MCP tools:
Check if you have installed Vale and can access it.
Returns:
- Installation status (installed/not installed)
- Vale version (if installed)
- Platform-specific installation instructions (if not installed)
Example usage in AI:
"Is Vale installed on this system?"
Download Vale styles and packages by running vale sync
. Use this when you encounter errors about missing styles directories.
Parameters:
config_path
(optional): Path to.vale.ini
file. If not provided, uses the server's configured path or searches in the current directory.
Returns:
- Success/failure status
- Output from the sync operation
- Helpful error messages if sync fails
When to use:
- When you see E100 errors:
"The path '/path/to/styles' does not exist"
- After creating or updating a
.vale.ini
file - When adding new packages to your Vale configuration
Example usage in AI:
"Run vale_sync to download the required styles" "The styles directory is missing, can you sync Vale?"
Lint a file at a specific path against Vale style rules.
Parameters:
path
(required): Absolute or relative path to the file
Returns:
- Formatted markdown with issues grouped by severity
- Detailed issue information (line, column, rule, message, suggestion)
- Summary statistics (errors, warnings, suggestions)
Example usage in AI:
"Check the README.md file for style issues"
vale-mcp-server [options]
Options:
--debug, --verbose, -v Enable debug logging
--help, -h Show help message
--version Show version number
vale-mcp-server/
├── src/
│ ├── index.ts # Main MCP server
│ ├── vale-runner.ts # Vale execution wrapper
│ ├── config.ts # Configuration management
│ └── types.ts # TypeScript type definitions
├── build/ # Compiled JavaScript (generated)
├── tests/ # Test files and fixtures
├── package.json # Node.js package configuration
├── tsconfig.json # TypeScript compiler configuration
├── Makefile # Build and installation tasks
└── README.md # This file
# Install dependencies
npm install
# Build TypeScript
npm run build
# Or use Make
make build
# TypeScript compilation check
npx tsc --noEmit
# Strict unused code check
npx tsc --noUnusedLocals --noUnusedParameters --noEmit
I've created this project using Claude Code with the Claude 4.5 model.
This project is licensed under the MIT License. Refer to the LICENSE file for details.