Thank you for your interest in contributing! This document provides guidelines for contributing to the project.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/pipedrive-mcp-server.git - Install dependencies:
npm install - Create a branch:
git checkout -b feature/your-feature
- Copy
.env.exampleto.envand add your Pipedrive API key - Run in development mode:
npm run dev - Build:
npm run build - Test with MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.js
- Use TypeScript with strict mode
- Follow existing patterns in the codebase
- Use Zod for schema validation
- Log to stderr (not stdout) to avoid STDIO protocol corruption
- Include JSDoc comments for public functions
- Create schema in
src/schemas/following existing patterns - Implement handler in
src/tools/following existing patterns - Register tool in
src/tools/index.ts - Add documentation to README.md
export const myTools = [
{
name: "pipedrive_my_tool",
description: "Clear description of what the tool does",
inputSchema: {
type: "object",
properties: {
// Define parameters
},
required: ["required_param"],
},
handler: myToolHandler,
schema: MyToolSchema,
},
];- Test tools using MCP Inspector before submitting
- Verify error handling with missing/invalid API keys
- Test pagination for list endpoints
- Test with real Pipedrive data when possible
- Ensure code builds without errors:
npm run build - Update documentation if adding/changing features
- Commit with clear, descriptive messages
- Push to your fork
- Create a Pull Request with:
- Clear description of changes
- Any related issues
- Screenshots/examples if relevant
When reporting issues, please include:
- Node.js version
- npm version
- Error messages (from stderr)
- Steps to reproduce
- Expected vs actual behavior
Open an issue for questions or join the discussion in existing issues.
By contributing, you agree that your contributions will be licensed under the MIT License.