We love your input! We want to make contributing to the Firecrawl MCP server 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!
-
Install dependencies:
npm install
-
Set up environment variables:
export FIRECRAWL_API_KEY=your-api-key -
Start development server:
npm run dev
-
Start the development container:
docker-compose up mcp-server-dev
-
Run tests in container:
docker-compose up mcp-server-test
We use Jest for testing. Run the test suite with:
npm testMake sure to:
- Write tests for new features
- Maintain test coverage above 80%
- Use meaningful test descriptions
We use ESLint and Prettier to maintain code quality. Before committing:
-
Run linter:
npm run lint
-
Format code:
npm run format
- Keep README.md updated
- Document all new tools and configuration options
- Update API documentation for changes
- Include examples for new features
- Update the README.md with details of changes to the interface
- Update the API documentation if endpoints or tools change
- Update the version numbers following SemVer
- The PR will be merged once you have the sign-off of two other developers
In short, when you submit code changes, your submissions are understood to be under the same MIT License that covers the project. Feel free to contact the maintainers if that's a concern.
Report Bugs Using GitHub's Issue Tracker
Report a bug by opening a new issue; it's that easy!
Great Bug Reports tend to have:
- A quick summary and/or background
- Steps to reproduce
- Be specific!
- Give sample code if you can
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
By contributing, you agree that your contributions will be licensed under its MIT License.
This document was adapted from the open-source contribution guidelines for Facebook's Draft.