A Model Context Protocol (MCP) server that acts as a coding standards and framework guide for LLM connectors (like Claude Desktop or Cursor). It provides WordPress development knowledge, code generation tools, and best practices focused on Gutenberg blocks, GeneratePress theme, GenerateBlocks plugin, and WPCodebox code snippet formatting.
This MCP server does NOT directly access WordPress websites. Instead, it provides:
- Code Generation Tools: Generate WordPress code following best practices
- Coding Standards: WordPress coding standards validation and formatting
- Framework Guides: Knowledge base for Gutenberg, GeneratePress, GenerateBlocks, and WPCodebox
- Best Practices: Security, performance, and compatibility guidelines
- Gutenberg block code (block.json, PHP registration, React components)
- GenerateBlocks-compatible block code
- WordPress functions, hooks, shortcodes, and REST API endpoints
- WPCodebox-formatted code snippets
- PHP coding standards validation
- JavaScript coding standards validation
- CSS coding standards validation
- Security best practices (sanitization, escaping, nonces)
- Performance optimization guidelines
- WordPress coding standards reference
- Gutenberg block development patterns
- GenerateBlocks development guide
- WPCodebox snippet format specifications
- GeneratePress theme best practices
- Node.js 18.0.0 or higher
- npm or yarn
- Claude Desktop or Cursor installed
Follow these simple steps to connect this MCP server to Claude Desktop or Cursor.
-
Clone the repository:
git clone https://github.com/JTruax/BOIM-WP-MCP.git cd BOIM-WP-MCP -
Install dependencies:
npm install
-
Build the project:
npm run build
Verify the build succeeded: You should see a
dist/directory created withindex.jsinside it. If the build fails, check that all dependencies installed correctly. -
Note the full path to the
dist/index.jsfile. You'll need this in the next step.To get the full path:
- macOS/Linux: Run
pwdin the terminal aftercd BOIM-WP-MCP, then append/dist/index.js - Windows: Run
cdin Command Prompt aftercd BOIM-WP-MCP, then append\dist\index.js
Example paths:
- macOS/Linux:
/Users/yourname/BOIM-WP-MCP/dist/index.js - Windows:
C:\\Users\\yourname\\BOIM-WP-MCP\\dist\\index.js(use double backslashes\\in JSON, or forward slashes/)
- macOS/Linux: Run
-
Locate your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
-
Open the config file in a text editor. If it doesn't exist, create it.
-
Add the MCP server configuration:
If the file is empty or doesn't have
mcpServers, use this:{ "mcpServers": { "wordpress-gutenberg": { "command": "node", "args": ["/full/path/to/BOIM-WP-MCP/dist/index.js"] } } }If the file already has
mcpServers, add to the existing object:{ "mcpServers": { "existing-server": { ... }, "wordpress-gutenberg": { "command": "node", "args": ["/full/path/to/BOIM-WP-MCP/dist/index.js"] } } } -
Replace
/full/path/to/BOIM-WP-MCP/dist/index.jswith your actual path from Step 1. -
Save the file and restart Claude Desktop.
-
Open Cursor Settings:
- Press
Cmd/Ctrl + Shift + Pto open the command palette - Type "Preferences: Open User Settings (JSON)" and select it
- Or go to Settings → Extensions → MCP (if available)
- Press
-
Add the MCP server configuration:
Add this to your Cursor settings JSON:
{ "mcp.servers": { "wordpress-gutenberg": { "command": "node", "args": ["/full/path/to/BOIM-WP-MCP/dist/index.js"] } } } -
Replace
/full/path/to/BOIM-WP-MCP/dist/index.jswith your actual path from Step 1. -
Save the settings and restart Cursor.
-
Restart your application (Claude Desktop or Cursor).
-
Check for the MCP server:
- In Claude Desktop: The server should appear in the MCP servers list
- In Cursor: Check the MCP status indicator
-
Test a tool:
- Try asking: "Generate a Gutenberg block called 'custom-card'"
- Or: "Format this PHP code for WPCodebox: [your code]"
MCP server not appearing?
- Verify the path to
dist/index.jsis correct and absolute (not relative) - Make sure you ran
npm run buildsuccessfully - Check that Node.js is installed:
node --version(should be 18.0.0 or higher) - Restart your application completely
"Command not found" error?
- Make sure Node.js is in your system PATH
- Try using the full path to Node.js:
"/usr/local/bin/node"or"C:\Program Files\nodejs\node.exe"
JSON syntax error?
- Validate your JSON at jsonlint.com
- Make sure all quotes are properly escaped
- Ensure there are no trailing commas
Still having issues?
- Open an issue on GitHub with:
- Your operating system
- The error message (if any)
- Your configuration file (with paths redacted)
format_wpcodebox_snippet- Format code snippet for WPCodeboxget_wpcodebox_guidelines- Get WPCodebox usage guidelinesvalidate_wpcodebox_snippet- Validate snippet structure
generate_gutenberg_block- Generate complete Gutenberg block codegenerate_block_variation- Generate block variationgenerate_block_pattern- Generate block patternget_gutenberg_standards- Get Gutenberg development standards
generate_gb_block- Generate GenerateBlocks-compatible block codegenerate_gb_styles- Generate GenerateBlocks-specific CSSgenerate_gb_template- Generate GenerateBlocks template codeget_generateblocks_guide- Get GenerateBlocks development guide
generate_php_function- Generate WordPress PHP functiongenerate_hook- Generate WordPress action or filter hookgenerate_shortcode- Generate WordPress shortcodegenerate_rest_endpoint- Generate WordPress REST API endpointformat_for_wpcodebox- Format any code for WPCodebox
resource://wordpress-gutenberg-mcp/coding-standards- WordPress coding standardsresource://wordpress-gutenberg-mcp/gutenberg-patterns- Gutenberg block patternsresource://wordpress-gutenberg-mcp/generateblocks-guide- GenerateBlocks guideresource://wordpress-gutenberg-mcp/wpcodebox-format- WPCodebox formatresource://wordpress-gutenberg-mcp/generatepress-guide- GeneratePress guide
// Use the generate_gutenberg_block tool
{
"name": "custom-card",
"title": "Custom Card",
"description": "A custom card block",
"category": "design"
}// Use the format_wpcodebox_snippet tool
{
"title": "Custom Function",
"code": "function my_function() { ... }",
"language": "php",
"description": "A custom WordPress function",
"tags": ["function", "custom"]
}// Use the generate_hook tool
{
"type": "filter",
"hook": "the_content",
"callback": "modify_content",
"description": "Modify post content"
}BOIM-WP-MCP/
├── src/
│ ├── index.ts # Main MCP server
│ ├── standards.ts # Coding standards
│ └── tools/
│ ├── wpcodebox.ts # WPCodebox tools
│ ├── gutenberg-blocks.ts # Gutenberg tools
│ ├── generateblocks.ts # GenerateBlocks tools
│ └── wordpress-utils.ts # WordPress utilities
├── resources/
│ ├── coding-standards.md # Coding standards guide
│ ├── gutenberg-patterns.md # Gutenberg patterns
│ ├── generateblocks-guide.md # GenerateBlocks guide
│ ├── wpcodebox-format.md # WPCodebox format
│ └── generatepress-guide.md # GeneratePress guide
├── package.json
├── tsconfig.json
└── README.md
npm run buildnpm run devnpm run type-checkThis MCP server follows and enforces WordPress best practices:
- Sanitize all user input
- Escape all output
- Use nonces for forms
- Check user capabilities
- Validate and sanitize data
- Minimize database queries
- Use transients for expensive operations
- Optimize CSS/JS delivery
- Use lazy loading when appropriate
- GeneratePress theme compatibility
- GenerateBlocks plugin compatibility
- WordPress coding standards compliance
- Backward compatibility considerations
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch
- Make your changes
- Follow WordPress coding standards
- Test your changes
- Submit a pull request
MIT License - see LICENSE file for details
For issues, questions, or contributions, please open an issue on GitHub.
- WordPress community for coding standards
- GeneratePress team for the excellent theme
- GenerateBlocks team for the powerful block collection
- WPCodebox for code snippet management
- Removed WPCodebox formatting overrides (code formatting now handled by default agent)
- Added SCSS formatting rule
- Initial release
- WPCodebox formatting tools
- Gutenberg block generation
- GenerateBlocks integration
- WordPress utility tools
- Coding standards validation
- Knowledge base resources