CONTRIBUTING.md•1.69 kB
# Contributing to FM8 MCP Server
Thanks for your interest in contributing! Here are some guidelines:
## Getting Started
1. Fork the repository
2. Clone your fork: `git clone https://github.com/yourusername/fm8-mcp-server.git`
3. Create a branch: `git checkout -b feature/your-feature-name`
4. Make your changes
5. Test thoroughly
6. Commit with clear messages: `git commit -m "Add feature: XYZ"`
7. Push to your fork: `git push origin feature/your-feature-name`
8. Open a Pull Request
## Development Setup
```bash
npm install
npm run build
```
## Code Style
- Use TypeScript
- Follow existing code formatting
- Add comments for complex logic
- Use meaningful variable names
## Testing Changes
1. Build: `npm run build`
2. Test with Claude Desktop or HTTP mode
3. Verify MIDI messages reach FM8
4. Check for console errors
## Adding New Features
### Adding New CC Mappings
Edit `mappings.json` to add new FM8 parameters. Format:
```json
{
"cc": 123,
"label": "Parameter Name",
"type": "category",
"source": "optional",
"dest": "optional"
}
```
### Adding New MCP Tools
1. Define Zod schema for input validation
2. Add tool to `server.tools` array
3. Implement handler in `server.setRequestHandler`
4. Update README.md with tool documentation
## Pull Request Guidelines
- Keep PRs focused on a single feature/fix
- Update README.md if adding features
- Test on Windows (loopMIDI) if possible
- Include clear description of changes
## Bug Reports
Please include:
- OS and Node.js version
- Steps to reproduce
- Expected vs actual behavior
- Console error messages
- MIDI setup (loopMIDI, IAC, etc.)
## Questions?
Open an issue for questions or discussions!