GemSuite-MCP
by PV-Bhat
Verified
# Contributing to GemSuite MCP
Thank you for considering contributing to GemSuite MCP! This document provides guidelines and instructions for contributing to the project.
## Development Environment Setup
1. **Fork and Clone the Repository**
```bash
git clone https://github.com/your-username/gemsuite-mcp.git
cd gemsuite-mcp
```
2. **Install Dependencies**
```bash
npm install
```
3. **Environment Variables**
Create a `.env` file in the root directory with your Gemini API key:
```
GEMINI_API_KEY=your_api_key_here
```
## Development Workflow
### Working with Code
#### CommonJS Version (For Smithery)
The `simple-index.js` file uses CommonJS and is the primary entry point for the Smithery deployment. This version must be kept compatible with Docker builds.
#### TypeScript Version (For Development)
The TypeScript code in the `src` directory is used for development and provides type safety and better organization.
### Testing Your Changes
1. **Local Testing**
```bash
# Run the simple CommonJS version
node simple-index.js
# Build and run the TypeScript version
npm run build
npm start
```
2. **Testing with MCP Inspector**
Use the MCP Inspector tool to test your MCP server:
```bash
npx @modelcontextprotocol/inspector
```
3. **Docker Testing**
```bash
docker build -t gemsuite-mcp .
docker run -p 8000:8000 gemsuite-mcp
```
## Smithery Deployment
### Required Files
1. **Dockerfile**
- Must be in the root directory
- Should build a Docker image that runs the STDIO server
2. **smithery.yaml**
- Defines how to start your MCP server
- Must be correctly formatted with:
- `startCommand.type`: "stdio"
- `startCommand.configSchema`: JSON Schema for configuration
- `startCommand.commandFunction`: Function that returns command details
### Deployment Tips
1. **CommonJS Compatibility**
- Use CommonJS (`require()`) instead of ES modules for better compatibility
- Avoid features that might not work in all Node.js environments
2. **Dependencies**
- Keep dependencies minimal and well-maintained
- Include build tools in the development dependencies
3. **Error Handling**
- Add comprehensive error logging for easier debugging
- Handle rate limits and API errors gracefully
## Pull Request Process
1. Create a branch for your feature or fix: `git checkout -b feature/your-feature-name`
2. Make your changes and test thoroughly
3. Update documentation as needed
4. Commit your changes with clear messages
5. Push your branch to your fork
6. Submit a pull request to the main repository
## Code Style Guidelines
1. Use consistent indentation (2 spaces)
2. Follow existing naming conventions
3. Add JSDoc comments for functions and classes
4. Keep functions small and focused on a single task
## License
By contributing to GemSuite MCP, you agree that your contributions will be licensed under the project's MIT License.