We love your input! We want to make contributing to Browser[X]MCP as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
- Fork the repo and create your branch from
main. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code lints.
- Issue that pull request!
# Fork and clone the repository
git clone https://github.com/yourusername/browserx-mcp.git
cd browserx-mcp
# Install dependencies
npm install
# Install Playwright browser binaries for local browser tests
npx playwright install chromium
# Run tests to verify setup
npm test
# Start development server
npm run dev- Use ES6+ features where appropriate
- Follow existing code style and patterns
- Add JSDoc comments for public APIs
- Use meaningful variable and function names
- Keep functions small and focused
npm run lint
npm run lint:fix# Run all tests
npm test
# Run AI tests
npm run test:ai
# Run mock tests
npm run test:mock
# Generate a report
npm run test:report- Add tests for new features
- Update tests when changing existing functionality
- Use descriptive test names
- Test both success and error cases
browserx-mcp/
├── src/
│ ├── server/ # MCP Server implementation
│ │ ├── index.js # Main server
│ │ ├── atomic-navigation.js
│ │ └── daemon.js
│ └── extractor/ # Page analysis
│ └── VirtualCanvasExtractor.js
├── test/ # Test files
├── tools/ # Development tools
├── examples/ # Usage examples
├── docs/ # Documentation
└── config/ # Configuration
- Add method to
src/server/index.js - Follow existing patterns for error handling
- Add comprehensive JSDoc documentation
- Write tests for the new method
- Update API documentation
Example:
/**
* New MCP method description
* @param {Object} args - Method arguments
* @returns {Promise<Object>} MCP response
*/
async newMethod(args) {
try {
// Implementation
return {
content: [{ type: 'text', text: 'Success' }]
};
} catch (error) {
throw new Error(`Method failed: ${error.message}`);
}
}- Enhance
test/ai-mcp-interaction-test.js - Add new decision types if needed
- Update AI prompts and validation
- Test with different AI models
- Document new capabilities
We use GitHub issues to track public bugs. Report a bug by opening a new issue.
Great Bug Reports include:
- A quick summary and/or background
- Steps to reproduce
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening)
We welcome feature requests! Please:
- Check if the feature already exists
- Explain the problem you're trying to solve
- Provide examples of how you'd use the feature
- Consider the scope and complexity
- API Documentation: JSDoc comments in code
- User Guides:
docs/directory - Examples:
examples/directory - README: Main project overview
- Use clear, simple language
- Provide practical examples
- Keep documentation up to date with code changes
- Include troubleshooting sections
We have an active roadmap with planned features:
- Screenshot analyzer tool
- Enhanced error handling
- Performance optimization
- Multi-browser support
- Visual testing framework
- Cloud deployment options
- Enterprise features
- Mobile browser automation
- Additional AI model support
- Advanced analytics
- Plugin system
- Custom extractors
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn and grow
- Maintain professional communication
- Check existing documentation
- Search through GitHub issues
- Ask questions in discussions
- Join our community channels
Contributors will be recognized in:
- README contributors section
- Release notes for significant contributions
- GitHub contributor graphs
- Special mention for major features
By contributing, you agree that your contributions will be licensed under the MIT License.
Don't hesitate to reach out:
- Open a GitHub issue
- Start a discussion
- Contact maintainers directly
Thank you for contributing to Browser[X]MCP! 🚀