Thank you for your interest in contributing to the most comprehensive WordPress MCP server! 🎸
Found a bug? Please open an issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Your environment (Node version, OS, WordPress version)
Have ideas for new tools or improvements?
- Check existing issues first
- Open a feature request with clear use case
- Explain why it would benefit the community
Ready to code? Awesome! Here's how:
# Fork and clone the repository
git clone https://github.com/YOUR-USERNAME/claudeus-wp-mcp.git
cd claudeus-wp-mcp
# Install dependencies
pnpm install
# Create a feature branch
git checkout -b feature/your-feature-name# Build TypeScript
pnpm build
# Run linter
pnpm lint
# Fix linting issues
pnpm lint:fix
# Run tests
pnpm test
# Test with MCP Inspector
pnpm inspector- ✅ Write TypeScript with strict mode
- ✅ Follow existing code structure (modular architecture)
- ✅ Add JSDoc comments for public APIs
- ✅ Include error handling
- ✅ Test your changes with real WordPress sites
- ✅ Update documentation if needed
-
Update tests - Add tests for new features
-
Update docs - Update README.md if you add tools
-
Run linter - Ensure
pnpm lintpasses -
Build successfully -
pnpm buildmust complete -
Commit message - Use conventional commits:
feat: add new tool for widget managementfix: resolve pagination issue in users APIdocs: update security guiderefactor: improve error handling in base client
-
Submit PR with:
- Clear title and description
- Link to related issue (if any)
- Screenshots/examples if UI changes
Documentation is crucial! Help us improve:
- Fix typos or unclear instructions
- Add examples and use cases
- Translate documentation
- Create video tutorials
- Test the MCP server with different WordPress setups
- Try different themes and plugins
- Report compatibility issues
- Share your use cases
Understanding the codebase structure:
src/
├── api/ # API clients for WordPress REST API
├── tools/ # Tool definitions by category
│ ├── content/ # Posts, pages, blocks, media
│ ├── taxonomy/ # Categories, tags, custom taxonomies
│ ├── user/ # User management
│ ├── comment/ # Comment management
│ ├── menu/ # Menu management
│ ├── astra/ # Astra theme integration
│ └── ...
├── handlers/ # Request handlers (tools, resources, prompts)
├── types/ # TypeScript type definitions
├── security/ # Security & validation layers
└── utils/ # Helper utilities
# Run all tests
pnpm test
# Run tests in watch mode
pnpm test:watch
# Generate coverage report
pnpm test:coverage- Set up test WordPress site
- Configure
wp-sites.json - Run MCP Inspector:
pnpm inspector - Test your new tool/feature
- Verify error handling
When adding new tools:
- ✅ Validate all input parameters
- ✅ Use proper WordPress capabilities
- ✅ Sanitize user input
- ✅ Escape output data
- ✅ Document dangerous operations
- ✅ Add to appropriate danger level in SECURITY.md
-
Create Tool Definition
// src/tools/your-category/index.ts export const yourTools: Tool[] = [ { name: 'claudeus_wp_category__action', description: 'Clear description of what it does', inputSchema: { type: 'object', required: ['site', 'requiredParam'], properties: { site: SITE_PARAM, requiredParam: { type: 'string', description: '...' } } } } ];
-
Create Handler
// src/tools/your-category/handlers.ts export async function handleYourTools( name: string, args: Record<string, unknown>, client: YourApiClient ) { switch (name) { case 'claudeus_wp_category__action': const result = await client.yourMethod(args.param); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } }
-
Add API Client (if needed)
// src/api/your-client.ts export class YourApiClient extends BaseApiClient { async yourMethod(param: string): Promise<Result> { return this.get<Result>(`/your-endpoint/${param}`); } }
-
Update Documentation
- Add tool to README.md
- Add to appropriate danger level in SECURITY.md
- Update CHANGELOG.md
Contributors will be:
- Listed in CHANGELOG.md for their contributions
- Mentioned in release notes
- Part of building the most comprehensive WordPress MCP!
- Maintainer: Amadeus Samiel H.
- Email: deus.h@outlook.com
- Website: https://deusware.se
- Issues: https://github.com/deus-h/claudeus-wp-mcp/issues
- Treat all contributors with respect
- Welcome newcomers
- Be patient with questions
- Provide constructive feedback
- Keep discussions on topic
- No spam or self-promotion
- No harassment or discrimination
- Follow GitHub's Terms of Service
Thank you for contributing to making WordPress + AI integration awesome!
Every contribution, no matter how small, makes a difference. \m/
Questions? Don't hesitate to ask in issues or discussions!