|
1 | | -# Contributing to Microsoft 365 MCP Server |
| 1 | +# Contributing – Production Transformation Track |
2 | 2 |
|
3 | | -Thank you for your interest in contributing to the Microsoft 365 MCP Server project. |
| 3 | +This repository exists to document and maintain the enterprise hardening of |
| 4 | +[m365-mcp-server](https://github.com/nikolanovoselec/m365-mcp-server). |
| 5 | +All feature development, protocol changes, or Microsoft Graph enhancements should |
| 6 | +continue to land in the upstream project. Contributions here must keep both |
| 7 | +repositories aligned while focusing on production deployment, security controls, |
| 8 | +and operational resilience. |
4 | 9 |
|
5 | | -## Development Setup |
| 10 | +## Contribution Areas |
6 | 11 |
|
7 | | -### Prerequisites |
| 12 | +- Documentation covering Access, AI Gateway, or security posture updates |
| 13 | +- Production configuration changes (`wrangler.toml`, bindings, secret handling) |
| 14 | +- Operational scripts, validation checklists, or monitoring improvements |
| 15 | +- Bug fixes specific to the hardened environment (e.g., gateway error translation) |
8 | 16 |
|
9 | | -- Node.js 18+ |
10 | | -- Microsoft 365 Business/Enterprise account with admin access |
11 | | -- Cloudflare Workers account |
12 | | -- Git |
| 17 | +## Workflow |
13 | 18 |
|
14 | | -### Local Development |
| 19 | +1. Sync the latest changes from upstream `m365-mcp-server`. |
| 20 | +2. Apply or adjust production-specific patches in this repository. |
| 21 | +3. Run validation locally (`npm run validate`). |
| 22 | +4. Document notable adjustments in `OPERATIONS.md` and/or `TECHNICAL.md`. |
| 23 | +5. Submit a pull request summarising: |
| 24 | + - Upstream baseline commit (if relevant) |
| 25 | + - Production changes introduced |
| 26 | + - Validation steps performed (Access, OAuth, AI Gateway) |
15 | 27 |
|
16 | | -1. Fork and clone the repository |
17 | | -2. Install dependencies: `npm install` |
18 | | -3. Copy configuration files: |
19 | | - ```bash |
20 | | - cp .dev.vars.example .dev.vars |
21 | | - cp wrangler.example.toml wrangler.toml |
22 | | - ``` |
23 | | -4. Configure your Microsoft 365 and Cloudflare credentials |
24 | | -5. Start development server: `npm run dev` |
| 28 | +## Local Environment |
25 | 29 |
|
26 | | -## Code Standards |
| 30 | +Use the upstream repository for feature development workflows. When verifying |
| 31 | +production changes locally, mock AI Gateway calls or use a dedicated staging |
| 32 | +gateway to avoid polluting production telemetry. |
27 | 33 |
|
28 | | -### TypeScript |
| 34 | +```bash |
| 35 | +npm install |
| 36 | +npm run validate |
| 37 | +wrangler deploy --env staging |
| 38 | +``` |
29 | 39 |
|
30 | | -- Follow existing TypeScript configurations |
31 | | -- Ensure type safety with `npm run type-check` |
32 | | -- Use proper error handling patterns |
| 40 | +Secrets should never be committed or stored in `.dev.vars` when working inside this |
| 41 | +repository. Prefer `wrangler secret` even for staging environments. |
33 | 42 |
|
34 | | -### Code Quality |
| 43 | +## Code & Documentation Standards |
35 | 44 |
|
36 | | -- Run linting: `npm run lint` |
37 | | -- Format code: `npm run format` |
38 | | -- Follow existing code style and patterns |
| 45 | +- Follow existing TypeScript, ESLint, and Prettier configurations. |
| 46 | +- Keep comments concise; favour documentation for detailed explanations. |
| 47 | +- Maintain professional tone and ensure docs link back to upstream material when needed. |
39 | 48 |
|
40 | | -### Documentation |
| 49 | +## Review Expectations |
41 | 50 |
|
42 | | -- Update relevant documentation for new features |
43 | | -- Include code examples where appropriate |
44 | | -- Maintain professional tone in all documentation |
| 51 | +- Pull requests must include evidence of AI Gateway and Access validation. |
| 52 | +- Changes affecting security boundaries require explicit testing notes. |
| 53 | +- Ensure backwards compatibility with existing Access policies and gateway routes. |
45 | 54 |
|
46 | | -## Testing |
47 | | - |
48 | | -Currently, the project has minimal testing infrastructure. When contributing: |
49 | | - |
50 | | -- Manually test all changes thoroughly |
51 | | -- Verify OAuth flows work correctly |
52 | | -- Test Microsoft Graph API integrations |
53 | | -- Ensure no breaking changes to existing functionality |
54 | | - |
55 | | -## Submission Process |
56 | | - |
57 | | -### Pull Requests |
58 | | - |
59 | | -1. Create a feature branch from `main` |
60 | | -2. Make your changes with clear, focused commits |
61 | | -3. Update documentation as needed |
62 | | -4. Test your changes thoroughly |
63 | | -5. Submit a pull request with: |
64 | | - - Clear description of changes |
65 | | - - Motivation for the changes |
66 | | - - Testing steps performed |
67 | | - |
68 | | -### Commit Messages |
69 | | - |
70 | | -- Use clear, descriptive commit messages |
71 | | -- Focus on what the change accomplishes |
72 | | -- Keep messages concise but informative |
73 | | - |
74 | | -## Code of Conduct |
75 | | - |
76 | | -### Professional Standards |
77 | | - |
78 | | -- Maintain professional communication |
79 | | -- Respect other contributors' work and opinions |
80 | | -- Focus on constructive feedback and solutions |
81 | | -- Follow project coding standards consistently |
82 | | - |
83 | | -### Security Considerations |
84 | | - |
85 | | -- Never commit secrets or credentials |
86 | | -- Use placeholder values in examples |
87 | | -- Follow security best practices |
88 | | -- Report security issues privately |
89 | | - |
90 | | -## Areas for Contribution |
91 | | - |
92 | | -### High Priority |
93 | | - |
94 | | -- Unit and integration test implementation |
95 | | -- Additional Microsoft Graph API tools |
96 | | -- Error handling improvements |
97 | | -- Performance optimizations |
98 | | - |
99 | | -### Medium Priority |
100 | | - |
101 | | -- Documentation improvements |
102 | | -- Code quality enhancements |
103 | | -- Development workflow improvements |
104 | | -- Example applications |
105 | | - |
106 | | -### Low Priority |
107 | | - |
108 | | -- Advanced features and extensions |
109 | | -- Alternative authentication methods |
110 | | -- Additional platform integrations |
111 | | - |
112 | | -## Getting Help |
113 | | - |
114 | | -- Review existing documentation in this repository |
115 | | -- Check existing issues and discussions |
116 | | -- Create an issue for questions or bug reports |
117 | | -- Provide detailed information when reporting issues |
118 | | - |
119 | | -## License |
120 | | - |
121 | | -By contributing to this project, you agree that your contributions will be licensed under the same MIT License that covers the project. |
| 55 | +Thank you for helping maintain the production-ready posture of the Microsoft 365 MCP Server. |
0 commit comments