Skip to main content
Glama

Service Health MCP Server

CONTRIBUTING.md8.36 kB
# Contributing to Service Health MCP Server First off, thank you for considering contributing to Service Health MCP Server! 🎉 This project was built by a learner with AI assistance, and we welcome contributors of all skill levels. Whether you're a seasoned developer or just starting out, your contributions are valuable. ## 🌟 Ways to Contribute ### 🐛 Bug Reports Found a bug? Please help us fix it! **Before submitting:** - Check if the issue already exists in [Issues](https://github.com/natashanajdovski/service-health-mcp/issues) - Test with the latest version - Try to reproduce the issue consistently **When reporting:** - Use a clear, descriptive title - Describe the expected vs actual behavior - Include steps to reproduce - Mention your environment (OS, Node.js version, Claude Desktop version) - Include error messages and logs if applicable ### ✨ Feature Requests Have an idea for a new feature? **Before submitting:** - Check our [Roadmap](README.md#-roadmap) to see if it's already planned - Search existing [Issues](https://github.com/natashanajdovski/service-health-mcp/issues) and [Discussions](https://github.com/natashanajdovski/service-health-mcp/discussions) **When requesting:** - Clearly describe the feature and its use case - Explain why this would be valuable to the community - Consider if it fits the project's scope and goals ### 📖 Documentation Help improve our guides and documentation! - Fix typos or unclear explanations - Add missing examples or use cases - Improve installation instructions - Create tutorials or learning resources ### 🔧 Code Contributions Ready to write some code? **Areas where we especially welcome help:** - Database health checking (PostgreSQL, MySQL, Redis, MongoDB) - Additional HTTP features (authentication, custom validation) - Performance optimizations - Test coverage improvements - Bug fixes ## 🚀 Development Setup ### Prerequisites - **Node.js 18+** - **TypeScript 5+** - **Git** - **Claude Desktop** (for testing) ### Setup Steps 1. **Fork the repository** ```bash # Click "Fork" on GitHub, then clone your fork: git clone https://github.com/yourusername/service-health-mcp.git cd service-health-mcp ``` 2. **Install dependencies** ```bash npm install ``` 3. **Create a development branch** ```bash git checkout -b feature/your-feature-name # or git checkout -b fix/your-fix-name ``` 4. **Build and test** ```bash npm run build npm run start # Test that server starts correctly ``` 5. **Test with Claude Desktop** - Add your development version to Claude Desktop config - Test that tools work correctly - Verify no regressions in existing functionality ## 🔍 Code Standards ### TypeScript Guidelines - **Use strict TypeScript** - no `any` types unless absolutely necessary - **Follow existing patterns** - look at current code structure - **Add proper type definitions** for new interfaces - **Use meaningful variable names** - prefer clarity over brevity ### Security Requirements - **Maintain SSRF protection** - never allow internal network access - **Validate all inputs** - use Zod schemas for validation - **Follow secure coding practices** - no hardcoded secrets, proper error handling - **Test security features** - ensure your changes don't bypass protections ### Code Style - **Use existing formatting** - follow the project's TypeScript/ESLint configuration - **Write self-documenting code** - clear function and variable names - **Add comments for complex logic** - especially security-related code - **Keep functions focused** - single responsibility principle ### Error Handling - **Provide meaningful error messages** - help users understand what went wrong - **Use proper TypeScript error types** - avoid generic Error objects where possible - **Log appropriately** - helpful for debugging but don't leak sensitive info - **Fail gracefully** - don't crash the entire server on individual request errors ## 🧪 Testing ### Manual Testing Before submitting, please test: 1. **Basic functionality** ```bash npm run build npm run start ``` 2. **Claude Desktop integration** - Add to config and restart Claude Desktop - Test basic health checks: `"Check if google.com is healthy"` - Test error cases: `"Check if localhost is healthy"` (should be blocked) 3. **Edge cases** - Invalid URLs - Network timeouts - Different HTTP methods - Custom headers ### Automated Testing We welcome contributions to improve our test coverage: - Unit tests for core functionality - Integration tests for MCP protocol - Security tests for SSRF protection ## 📝 Commit Guidelines ### Commit Message Format ``` <type>(<scope>): <description> <optional longer description> Fixes #<issue-number> ``` ### Types - **feat**: New feature - **fix**: Bug fix - **docs**: Documentation changes - **style**: Code formatting (no logic changes) - **refactor**: Code restructuring (no functionality changes) - **test**: Adding or updating tests - **security**: Security improvements ### Examples ``` feat(database): add PostgreSQL health checking support - Implement PostgreSQL connection testing - Add connection string validation - Include timeout and retry logic Fixes #42 ``` ``` fix(security): prevent bypass of localhost blocking - Add additional IPv4 validation - Block hex-encoded IP addresses - Update tests for edge cases Fixes #38 ``` ## 🔄 Pull Request Process ### Before Submitting 1. **Update documentation** if your changes affect usage 2. **Test thoroughly** - both happy path and error cases 3. **Check code quality** - follow our style guidelines 4. **Rebase your branch** if needed to keep history clean ### PR Description Please include: - **Clear description** of what your PR does - **Why this change is needed** (link to issue if applicable) - **How to test** your changes - **Screenshots/examples** if UI/output changes - **Breaking changes** if any ### Review Process 1. **Automated checks** must pass (if we add CI/CD) 2. **Manual review** by maintainers 3. **Testing** of the changes 4. **Approval and merge** We aim to review PRs within 48-72 hours. Please be patient and responsive to feedback! ## 🎓 Learning Resources ### New to MCP Development? - [MCP Documentation](https://docs.anthropic.com/en/docs/build-with-claude/mcp) - [TypeScript Handbook](https://www.typescriptlang.org/docs/) - [Our Learning Guide](docs/LEARNING.md) (coming soon!) ### New to Open Source? - [First Contributions Guide](https://github.com/firstcontributions/first-contributions) - [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) - [GitHub Flow](https://guides.github.com/introduction/flow/) ## 🤝 Community Guidelines ### Be Respectful - **Welcoming environment** - help newcomers feel included - **Constructive feedback** - focus on code, not people - **Patient with learners** - we all started somewhere - **Professional communication** - keep discussions focused and respectful ### Getting Help - **GitHub Discussions** for questions and ideas - **Issues** for bugs and feature requests - **Code comments** for implementation questions ## 🚨 Security Policy If you discover a security vulnerability, please: 1. **Do NOT open a public issue** 2. **Email the maintainer** directly (if contact info provided) 3. **Provide detailed information** about the vulnerability 4. **Allow time for a fix** before public disclosure We take security seriously and will respond promptly to legitimate security concerns. ## 📜 License By contributing to Service Health MCP Server, you agree that your contributions will be licensed under the [MIT License](LICENSE). ## 🙏 Recognition All contributors will be: - **Listed in our README** acknowledgments section - **Credited in release notes** for significant contributions - **Welcomed as community members** with continued involvement opportunities ## 📞 Questions? Don't hesitate to ask! You can: - Open a [Discussion](https://github.com/natashanajdovski/service-health-mcp/discussions) for general questions - Comment on relevant [Issues](https://github.com/natashanajdovski/service-health-mcp/issues) - Reach out to maintainers through GitHub --- **Thank you for contributing to making service monitoring accessible to everyone! 🚀**

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/natashanajdovski/service-health-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server