Skip to main content
Glama

Curl MCP Server

by 247arjun
CONTRIBUTING.md5.24 kB
# Contributing to mcp-curl Thank you for your interest in contributing to mcp-curl! This document provides guidelines and instructions for contributing to the project. ## Code of Conduct By participating in this project, you agree to abide by our Code of Conduct: - Be respectful and inclusive - Welcome newcomers and help them get started - Focus on constructive feedback - Respect different viewpoints and experiences ## Getting Started ### Prerequisites - Node.js 18.0.0 or higher - npm package manager - git - Basic familiarity with TypeScript and MCP (Model Context Protocol) ### Development Setup 1. Fork the repository on GitHub 2. Clone your fork locally: ```bash git clone https://github.com/YOUR_USERNAME/mcp-curl.git cd mcp-curl ``` 3. Install dependencies: ```bash npm install ``` 4. Build the project: ```bash npm run build ``` 5. Run tests: ```bash npm test ``` ## Development Workflow ### Making Changes 1. Create a new branch for your feature/fix: ```bash git checkout -b feature/your-feature-name ``` 2. Make your changes in the `src/` directory 3. Build and test your changes: ```bash npm run build npm test ``` 4. Test the MCP server manually: ```bash echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}' | node build/index.js ``` 5. Run linting: ```bash npm run lint ``` ### Code Style - Use TypeScript for all source code - Follow the existing code style and conventions - Use meaningful variable and function names - Add comments for complex logic - Keep functions focused and concise ### Testing - Add tests for new functionality - Ensure all existing tests pass - Test manually with actual MCP clients when possible - Include edge cases and error conditions ## Types of Contributions ### Bug Reports When reporting bugs, please include: - Clear description of the issue - Steps to reproduce - Expected vs actual behavior - Environment details (Node.js version, OS, etc.) - MCP client being used - Sample curl commands that demonstrate the issue ### Feature Requests For new features: - Describe the use case and problem being solved - Provide examples of how the feature would be used - Consider backward compatibility - Discuss potential implementation approaches ### Code Contributions We welcome: - Bug fixes - New curl features or options - Performance improvements - Documentation improvements - Test coverage improvements - Code quality enhancements ## Submitting Changes ### Pull Request Process 1. Ensure your code follows the project's style guidelines 2. Add or update tests as needed 3. Update documentation if you've changed APIs 4. Ensure all tests pass 5. Update the CHANGELOG.md if applicable 6. Submit a pull request with: - Clear description of changes - Reference to any related issues - Screenshots or examples if applicable ### Pull Request Guidelines - Keep changes focused and atomic - Write clear commit messages - Reference issues using GitHub keywords (fixes #123) - Be responsive to feedback and questions - Ensure CI passes ## Project Structure ``` mcp-curl/ ├── src/ │ └── index.ts # Main server implementation ├── build/ # Compiled JavaScript output ├── test/ # Test files ├── examples/ # Usage examples ├── .github/ # GitHub workflows and templates └── docs/ # Additional documentation ``` ## Adding New curl Features When adding new curl functionality: 1. **Research the curl option**: Understand the curl command-line option thoroughly 2. **Design the tool interface**: Create a clear, intuitive tool schema 3. **Implement the handler**: Add the logic in `src/index.ts` 4. **Add error handling**: Handle edge cases and provide clear error messages 5. **Write tests**: Test both success and failure scenarios 6. **Update documentation**: Add examples to README.md ### Example Tool Implementation ```typescript // Add to the tools array { name: "curl_new_feature", description: "Description of what this does", inputSchema: { type: "object", properties: { url: { type: "string", description: "URL to request" }, option: { type: "string", description: "New option description" } }, required: ["url"] } } // Add handler case case "curl_new_feature": return await handleNewFeature(request.params.arguments); ``` ## Documentation - Keep README.md up to date - Add inline code comments for complex logic - Update DEPLOYMENT.md for configuration changes - Include examples for new features ## Release Process Maintainers handle releases, but contributors should: - Update version numbers if needed - Update CHANGELOG.md with their changes - Tag any breaking changes clearly ## Getting Help - Check existing issues and discussions - Ask questions in issue comments - Reach out to maintainers for major changes - Review MCP documentation for protocol questions ## Recognition Contributors will be recognized in: - CHANGELOG.md for their contributions - GitHub contributors list - Release notes for significant contributions Thank you for contributing to mcp-curl! 🎉

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/247arjun/mcp-curl'

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