A Model Context Protocol (MCP) server that integrates with the Markup.ai API to provide advanced text analysis and improvement capabilities to AI assistants like Claude and Cursor.
- Text Rewriting: Automatically improve text for clarity, tone, and style guide compliance
- Content Analysis: Get detailed quality scores across multiple dimensions
- Writing Suggestions: Receive specific recommendations for text improvements
- Style Guide Support: AP, Chicago Manual of Style, Microsoft, and Proofpoint
- Multiple Dialects: American, British, Australian, and Canadian English
- Tone Flexibility: Academic, business, casual, conversational, formal, gen-z, informal, and technical
- Node.js 18.0.0 or higher
- A Markup AI API key
- Clone the repository:
git clone https://github.com/markupai/mcp.git
cd mcp- Install dependencies:
npm install- Configure environment variables:
cp .env.example .env
# Edit .env and add your MARKUPAI_API_KEY- Build the project:
npm run build| Variable | Required | Description | Default |
|---|---|---|---|
MARKUPAI_API_KEY |
Yes | Your Markup.ai API key | - |
MARKUPAI_BASE_URL |
No | API base URL | https://api.markup.ai |
DEBUG |
No | Enable debug logging | false |
MAX_TEXT_LENGTH |
No | Maximum text length (chars) | 100000 |
WORKFLOW_TIMEOUT |
No | Workflow timeout (ms) | 60000 |
POLL_INTERVAL |
No | Status check interval (ms) | 2000 |
MAX_RETRIES |
No | API retry attempts | 3 |
This MCP server is compatible with any IDE that supports the Model Context Protocol, including Claude Desktop and Cursor.
The configuration is identical for all MCP-compatible IDEs. Only the configuration file location differs:
| IDE | Configuration File Location |
|---|---|
| Claude Desktop (macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Desktop (Windows) | %APPDATA%\Claude\claude_desktop_config.json |
| Cursor (macOS/Linux) | ~/.cursor/mcp.json |
| Cursor (Windows) | %USERPROFILE%\.cursor\mcp.json |
Add this configuration to your IDE's MCP configuration file:
{
"mcpServers": {
"markupai": {
"command": "npx",
"args": [
"-y",
"github:markupai/mcp"
],
"env": {
"MARKUPAI_API_KEY": "your_api_key_here"
}
}
}
}For local development or if you prefer to run from a local installation:
{
"mcpServers": {
"markupai": {
"command": "node",
"args": ["/path/to/mcp/dist/index.js"],
"env": {
"MARKUPAI_API_KEY": "your_api_key_here"
}
}
}
}Note: After updating the configuration, restart your IDE for the changes to take effect.
When using this MCP server with Cursor, you'll see a "Calling undefined" message with a "Run tool" button when the AI wants to use Markup.ai tools. This is normal behavior - simply click "Run tool" to approve the analysis. This manual approval is Cursor's security feature for MCP tool execution.
Automatically rewrite and improve text content.
Parameters:
text(required): The text to rewritedialect: Language dialect (default: "american_english")tone: Desired tone (default: "formal")style_guide: Style guide to follow (default: "microsoft")
Analyze text for quality issues without making changes.
Parameters:
text(required): The text to analyzedialect: Language dialect (default: "american_english")tone: Target tone to check against (default: "formal")style_guide: Style guide to check against (default: "microsoft")
Get detailed editing suggestions for improving text.
Parameters:
text(required): The text to get suggestions fordialect: Language dialect (default: "american_english")tone: Target tone for suggestions (default: "formal")style_guide: Style guide for suggestions (default: "microsoft")
Check the status of an asynchronous workflow.
Parameters:
workflow_id(required): The workflow ID to checkworkflow_type(required): Type of workflow ("rewrites", "checks", or "suggestions")
npm run dev# Test suggestions endpoint
node test-suggestions.js
# Test complete workflow
node test-suggestions-complete.jsnpm run build-
"Calling undefined" message in Cursor: This is normal Cursor behavior, not an error. When you see this message with a "Run tool" button, click the button to execute the Markup.ai analysis. This is Cursor's security feature requiring manual approval for MCP tool execution.
-
"Client closed" error in Cursor: Try clearing the npx cache:
npx clear-npx-cacheand restart Cursor -
API key issues: Verify your
MARKUPAI_API_KEYis correctly set in the environment variables -
Permission errors: On Unix systems, ensure the compiled JavaScript file is executable (
chmod +x dist/index.js)
Enable debug logging by setting DEBUG=true in your environment:
DEBUG=true npm run startThe server implements the Model Context Protocol using stdio transport and provides four main tools that interact with the Markup.ai API. Key features include:
- Cross-IDE Compatibility: Works with Claude Desktop, Cursor, and any MCP-compatible IDE
- Retry Logic: Exponential backoff for improved reliability
- Timeout Handling: Configurable timeouts for long-running operations
- Comprehensive Logging: Debug mode for troubleshooting
- Type Safety: Full TypeScript implementation with proper type guards
- Graceful Shutdown: Proper cleanup on termination
MIT
- Fork the repository
- Create a feature branch
- Make your changes
- Run
npm run buildto ensure everything compiles - Submit a pull request
For issues and questions:
- Create an issue on GitHub
- Check the Markup AI documentation
- Contact Markup.ai support