Skip to main content
Glama

MCP Joplin Server

by happyeric77
CONTRIBUTING.md5.84 kB
# Contributing to MCP Joplin Server Thank you for your interest in contributing to MCP Joplin Server! We welcome contributions from the community and are pleased to have you aboard. ## Table of Contents - [Code of Conduct](#code-of-conduct) - [Getting Started](#getting-started) - [Development Setup](#development-setup) - [How to Contribute](#how-to-contribute) - [Pull Request Process](#pull-request-process) - [Issue Guidelines](#issue-guidelines) - [Code Style](#code-style) - [Testing](#testing) - [Release Process](#release-process) ## Code of Conduct This project adheres to a code of conduct that we expect all contributors to follow. Please be respectful and constructive in all interactions. ## Getting Started ### Prerequisites - Node.js 18 or higher - npm or yarn - Joplin Desktop application - Basic knowledge of TypeScript and the Model Context Protocol (MCP) ### Development Setup 1. **Fork the repository** on GitHub 2. **Clone your fork** locally: ```bash git clone https://github.com/YOUR_USERNAME/mcp-joplin.git cd mcp-joplin ``` 3. **Install dependencies**: ```bash npm install ``` 4. **Set up Joplin**: - Ensure Joplin Desktop is running - Enable Web Clipper service in Tools → Options → Web Clipper - Note the API token and port number 5. **Build the project**: ```bash npm run build ``` 6. **Test the setup**: ```bash npm start -- --token YOUR_API_TOKEN ``` ## How to Contribute ### Reporting Bugs - Use the GitHub issue tracker to report bugs - Include as much detail as possible: - Operating system and version - Node.js version - Joplin version - Steps to reproduce the issue - Expected vs actual behavior - Error messages and logs ### Suggesting Features - Use GitHub issues to suggest new features - Explain the use case and why it would be valuable - Consider how it aligns with the project's goals ### Contributing Code 1. **Create a feature branch**: ```bash git checkout -b feature/your-feature-name ``` 2. **Make your changes**: - Follow the existing code style - Add tests if applicable - Update documentation as needed 3. **Test your changes**: ```bash npm run build npm start -- --token YOUR_API_TOKEN ``` 4. **Commit your changes**: ```bash git add . git commit -m "feat: add your feature description" ``` 5. **Push to your fork**: ```bash git push origin feature/your-feature-name ``` 6. **Create a Pull Request** on GitHub ## Pull Request Process 1. **Ensure CI passes**: All checks must pass before merge 2. **Update documentation**: Include relevant documentation updates 3. **Add tests**: If adding new functionality, include appropriate tests 4. **Follow commit conventions**: Use conventional commit messages 5. **Request review**: Wait for maintainer review and address feedback ### Commit Message Convention We follow the [Conventional Commits](https://conventionalcommits.org/) specification: - `feat:` for new features - `fix:` for bug fixes - `docs:` for documentation changes - `style:` for formatting changes - `refactor:` for code refactoring - `test:` for adding or updating tests - `chore:` for maintenance tasks Examples: ``` feat: add notebook search functionality fix: resolve pagination issue in getNotes docs: update installation instructions ``` ## Issue Guidelines ### Before Creating an Issue 1. **Search existing issues** to avoid duplicates 2. **Check the documentation** to ensure it's not a usage question 3. **Test with the latest version** to see if the issue still exists ### Issue Templates Please use the appropriate issue template: - **Bug Report**: For reporting bugs and unexpected behavior - **Feature Request**: For suggesting new features or enhancements ## Code Style ### TypeScript Guidelines - Use TypeScript strict mode - Prefer explicit types over `any` - Use meaningful variable and function names - Follow existing naming conventions ### Formatting - Use 2 spaces for indentation - Use semicolons - Use single quotes for strings - Maximum line length: 100 characters ### Project Structure ``` src/ ├── index.ts # Main MCP server implementation └── joplin-client.ts # Joplin API client ``` ## Testing ### Manual Testing 1. **Build the project**: ```bash npm run build ``` 2. **Test with different scenarios**: - Test with and without API token - Test various MCP tools - Test error handling 3. **Verify MCP integration**: - Test with Claude Desktop or other MCP clients - Verify all tools are properly registered ### Integration Testing - Ensure Joplin connectivity works - Test all MCP tools function correctly - Verify error handling and edge cases ## Documentation ### README Updates - Keep the README.md up to date with new features - Include clear examples and usage instructions - Update configuration examples when needed ### Code Documentation - Add JSDoc comments for new functions - Document complex logic and algorithms - Include parameter and return type documentation ## Release Process 1. **Version Bumping**: Use semantic versioning ```bash npm version patch # Bug fixes npm version minor # New features npm version major # Breaking changes ``` 2. **Update CHANGELOG**: Document all changes 3. **Create Release**: Tag and create GitHub release 4. **Publish to NPM**: Automated via CI/CD ## Questions and Support - **General Questions**: Use GitHub Discussions - **Bug Reports**: Use GitHub Issues - **Feature Requests**: Use GitHub Issues - **Security Issues**: Email maintainers directly ## Recognition Contributors will be recognized in: - README.md contributors section - Release notes for significant contributions - GitHub contributors page Thank you for contributing to MCP Joplin Server! 🚀

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/happyeric77/mcp-joplin'

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