Contributing
May 18, 2026 · View on GitHub
Thank you for your contributing to SmartBear MCP!
Getting Started
Repository Structure
├── src/<product-name>/ # Specific SmartBear product integration
├── src/common/ # Shared utilities and types
├── src/tests/ # Test files
├── docs/ # Documentation for developer.smartbear.com site
└── scripts/ # Build and utility scripts
Branching Strategy
The repository uses main as the sole primary development and release branch.
Please read the following guidance:
- Feature branches should be created from
mainand PRs made intomain - Create
integration/branches frommainif you want to keep a larger change away from the release during development - If your change is noteworthy to our customers, update the CHANGELOG.md in your PR with details of your changes
- You may need to create a new section if your change is the first since the last release
- This is a public repo, so a squash-commit of your feature PRs is strongly encouraged to give a cleaner history
- Don't forget to update the
docs/directory with any noteworthy changes to functionality or configuration
Development Setup
-
Clone the repository:
git clone https://github.com/SmartBear/smartbear-mcp.git cd smartbear-mcp -
Install Dependencies
Make sure you have a current version of Node.js and then run:
npm install
We also recommend installing prek git hooks to automatically run linting and formatting checks before each commit:
prek install
- Verify Setup
npm run build npm run lint npm run format:check npm run test:run
Making Changes
To build the files for local testing, run:
npm run build
You can then add the dist directory as an MCP server in your IDE.
For example, in VS Code, use the following configuration with debugging enabled so that you can step through your code:
{
"servers": {
"smartbear": {
"type": "stdio",
"command": "node",
"dev": { // <-- To allow debugging in VS Code
"watch": "dist/**/*.js",
"debug": {
"type": "node"
},
},
"args": ["<PATH_TO_SMARTBEAR_MCP_REPO>/dist/index.js"],
"env": {
// ...
}
}
// ...
},
}
You can also use the MCP Inspector web interface, first setting the appropriate environment variables for the products you want to test:
npx @modelcontextprotocol/inspector node dist/index.js
Testing Guidelines
Test Requirements
- All new features must include tests
- Please always maintain or improve test coverage
- Mock external dependencies appropriately
Running Tests
# Run all tests
npm run test:run
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage
Documentation
Documentation lives in the /docs directory of this repo. Changes to the documentation will be automatically deployed to the docs site when a release is published and to a SmartBear-internal staging site when merged to main. For full information on the markdown syntax allowed in these docs, please see the SwaggerHub Portal Management docs.
Previewing docs
SmartBear team members wishing to preview docs changes in the internal site before a change is merged to main, run the "Publish Portal Content" GitHub Action manually from the "Actions" tab in this repository, selecting your branch as the workflow input.
Please note – there is only one preview site, shared with main merges.
Releases
A release will be carried out by a member of the SmartBear team when a set of releasable changes is ready on the main branch. If there are commits from more than one product, the releasing engineer will coordinate with each product team to ensure the release is appropriate and sufficiently documented in the changelog/docs. The release engineer will ideally wait up to one working day for feedback or agreement from the other product teams before proceeding with the release.
Please follow these steps to create a new release:
-
Run
npm run bumpto:- Suggest a version number based on semantic versioning
- Create a release branch from
main - Update the version in
package.json,package-lock.jsonandCHANGELOG.mdfiles - Commit the changes
- Push the release branch to GitHub
-
Create PR to main
- Create a Pull Request from your release branch into
main - Get approval and merge the PR into
main
- Create a Pull Request from your release branch into
-
Release
- Create a new release on GitHub with just a tag name (e.g.
v0.20.0)- The
publishautomation will publish the new version to external sites (e.g. npm) and update the GitHub release with the changelog details and artifacts
- The
- Await/request approval of the publish workflow
- Create a new release on GitHub with just a tag name (e.g.
-
Post-Release
- Check the publish action to make sure all deployments succeeded
- Check https://developer.smartbear.com/smartbear-mcp/ to ensure the docs have been updated correctly
Please ensure you update internal ticketing systems accordingly.
Additional Resources
Thank you for contributing to SmartBear MCP Server! 🎉