Thank you for your interest in contributing! This document provides guidelines and instructions.
This project adheres to a Code of Conduct. By participating, you are expected to uphold this code.
Before creating a bug report, please check existing issues to avoid duplicates.
When creating a bug report, include:
- Node.js version (
node --version) - Operating system
- Steps to reproduce
- Expected vs actual behaviour
- Relevant error messages or logs
Use the bug report template when opening an issue.
Feature requests are welcome! Use the feature request template and include:
- Clear description of the feature
- Use case / problem it solves
- Proposed implementation (if any)
- Alternatives considered
- Fork the repository and create your branch from
main - Install dependencies:
npm install - Make your changes following the code style below
- Add tests for new functionality
- Run tests:
npm test - Run linting:
npm run lint - Update documentation if needed
- Submit a pull request using the PR template
# Clone your fork
git clone https://github.com/YOUR_USERNAME/outlook-assistant.git
cd outlook-assistant
# Install dependencies
npm install
# Run tests
npm test
# Start in test mode (no real API calls)
npm run test-mode
# Interactive testing with MCP Inspector
npm run inspect- Use consistent indentation (2 spaces)
- Use meaningful variable and function names
- Add JSDoc comments for public functions
- Keep functions focused and small
- Handle errors appropriately
When adding new tools:
- Create a new module directory if needed (e.g.
tasks/) - Implement tool handlers in separate files
- Export tool definitions from the module's
index.js— prefer consolidating related operations into a single tool with anactionparameter (STRAP pattern) - Include an
annotationsobject on each tool definition (readOnlyHint,destructiveHint,idempotentHint) — see the Tools Reference for examples - Add tools to the
TOOLSarray in mainindex.js - Add tests in the
test/directory - Update
docs/quickrefs/tools-reference.md
Follow Conventional Commits:
feat: add conversation export to MBOX format
fix: resolve folder stats API error
docs: update installation instructions
test: add tests for contacts module
- Write tests for new functionality
- Ensure existing tests pass:
npm test - Use test mode for development:
USE_TEST_MODE=true npm start
If you have questions, feel free to open a discussion.
By contributing, you agree that your contributions will be licensed under the MIT License.