Skip to content

Commit d0e6fc0

Browse files
committed
docs: add comprehensive project documentation and contribution guidelines
This commit introduces several key documentation updates: - Create CONTRIBUTING.md with detailed contribution guidelines - Update README.md with improved project overview and structure - Add getting-started.md with step-by-step setup instructions - Enhance package READMEs with consistent formatting and badges - Provide clear usage examples and configuration details for MCP DevTools
1 parent a7d8b97 commit d0e6fc0

File tree

6 files changed

+629
-141
lines changed

6 files changed

+629
-141
lines changed

CONTRIBUTING.md

Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
# Contributing to MCP DevTools
2+
3+
Thank you for your interest in contributing to MCP DevTools! This document provides guidelines and instructions for contributing to this project.
4+
5+
## Table of Contents
6+
7+
- [Code of Conduct](#code-of-conduct)
8+
- [Getting Started](#getting-started)
9+
- [Development Workflow](#development-workflow)
10+
- [Pull Request Process](#pull-request-process)
11+
- [Coding Standards](#coding-standards)
12+
- [Commit Guidelines](#commit-guidelines)
13+
- [Testing](#testing)
14+
- [Documentation](#documentation)
15+
- [Release Process](#release-process)
16+
17+
## Code of Conduct
18+
19+
By participating in this project, you are expected to uphold our Code of Conduct:
20+
21+
- Be respectful and inclusive
22+
- Use welcoming and inclusive language
23+
- Be collaborative and constructive
24+
- Focus on what is best for the community
25+
- Show empathy towards other community members
26+
27+
## Getting Started
28+
29+
### Prerequisites
30+
31+
- [Node.js](https://nodejs.org/) (v14 or later)
32+
- [pnpm](https://pnpm.io/) for package management
33+
34+
### Setup
35+
36+
1. Fork the repository on GitHub
37+
2. Clone your fork locally:
38+
```bash
39+
git clone https://github.com/YOUR-USERNAME/mcp-devtools.git
40+
cd mcp-devtools
41+
```
42+
3. Install dependencies:
43+
```bash
44+
pnpm install
45+
```
46+
4. Build the packages:
47+
```bash
48+
pnpm build
49+
```
50+
51+
## Development Workflow
52+
53+
1. Create a new branch for your feature or bugfix:
54+
```bash
55+
git checkout -b feature/your-feature-name
56+
```
57+
2. Make your changes, following the [coding standards](#coding-standards)
58+
59+
3. For development with auto-rebuild:
60+
61+
```bash
62+
pnpm dev
63+
```
64+
65+
4. Test your changes:
66+
67+
```bash
68+
pnpm test
69+
```
70+
71+
5. Lint your code:
72+
73+
```bash
74+
pnpm lint
75+
```
76+
77+
6. Commit your changes following the [commit guidelines](#commit-guidelines)
78+
79+
## Pull Request Process
80+
81+
1. Update the README.md and documentation with details of changes, if applicable
82+
2. Ensure all tests pass and code linting is clean
83+
3. Submit a pull request to the `main` branch of the original repository
84+
4. The maintainers will review your PR and provide feedback
85+
5. Once approved, your PR will be merged
86+
87+
## Coding Standards
88+
89+
- Follow the existing code style
90+
- Use TypeScript for all new code
91+
- Ensure code is properly typed
92+
- Follow the principle of [clean code](https://github.com/ryanmcdermott/clean-code-javascript)
93+
- Use meaningful variable and function names
94+
- Write comments for non-obvious code
95+
- Keep functions small and focused on a single responsibility
96+
97+
### TypeScript Style Guide
98+
99+
- Use interfaces for object types
100+
- Use proper access modifiers for class members
101+
- Avoid using `any` type where possible
102+
- Use arrow functions for callbacks
103+
- Use async/await instead of Promise chains when appropriate
104+
105+
## Commit Guidelines
106+
107+
This project uses [Conventional Commits](https://www.conventionalcommits.org/) to automate versioning and changelog generation. Please format your commit messages following this pattern:
108+
109+
```
110+
<type>[optional scope]: <description>
111+
112+
[optional body]
113+
114+
[optional footer(s)]
115+
```
116+
117+
Types:
118+
119+
- `feat`: A new feature
120+
- `fix`: A bug fix
121+
- `docs`: Documentation changes
122+
- `style`: Changes that don't affect the code's meaning (formatting, etc.)
123+
- `refactor`: Code changes that neither fix bugs nor add features
124+
- `perf`: Performance improvements
125+
- `test`: Adding or fixing tests
126+
- `chore`: Changes to the build process or auxiliary tools
127+
128+
Examples:
129+
130+
```
131+
feat(jira): add comment creation endpoint
132+
fix(http-client): resolve timeout issue
133+
docs: update README with new setup instructions
134+
```
135+
136+
Breaking changes should be indicated by adding an exclamation mark after the type/scope and describing the breaking change in the body of the commit message:
137+
138+
```
139+
feat!: redesign http-client API
140+
141+
BREAKING CHANGE: The http-client API has been completely redesigned to improve usability.
142+
```
143+
144+
## Testing
145+
146+
- Write tests for all new features and bug fixes
147+
- Ensure all existing tests pass before submitting a PR
148+
- Follow the existing testing patterns in the codebase
149+
- Aim for high test coverage, especially for critical functionality
150+
151+
To run tests:
152+
153+
```bash
154+
# Run all tests
155+
pnpm test
156+
157+
# Run specific tests
158+
pnpm test -- --grep="pattern"
159+
```
160+
161+
## Documentation
162+
163+
- Update documentation for any changed functionality
164+
- Document all public APIs
165+
- Ensure README.md is kept up-to-date
166+
- Add JSDoc comments to functions and classes
167+
- Include code examples where appropriate
168+
169+
## Release Process
170+
171+
This repository is set up with automated release management using release-please and GitHub Actions for publishing packages to npmjs.org.
172+
173+
### Beta Status
174+
175+
All published packages are currently in beta status (0.x.x versions) and use the `beta` npm tag. During this phase:
176+
177+
- Breaking changes may occur in minor version updates
178+
- Install the packages using: `npm install @mcp-devtools/package-name@beta`
179+
- When the project reaches stability, we will release version 1.0.0
180+
181+
## Need Help?
182+
183+
If you need help with contributing, please:
184+
185+
- Check the existing [issues](https://github.com/modelcontextprotocol/mcp-devtools/issues) on GitHub
186+
- Open a new issue if your question isn't already addressed
187+
- Reach out to the maintainers through the project's communication channels
188+
189+
Thank you for contributing to MCP DevTools!

README.md

Lines changed: 59 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,95 @@
11
# MCP DevTools
22

3+
![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)
4+
[![Beta Status](https://img.shields.io/badge/status-beta-orange)](https://github.com/modelcontextprotocol/mcp-devtools)
5+
36
MCP (Model Context Protocol) DevTools is a collection of packages that enable AI assistants to interact with external tools and services through the Model Context Protocol.
47

5-
## Overview
8+
## ✨ Highlights
69

7-
This monorepo contains packages that implement the Model Context Protocol, providing tools that enable AI assistants to access and manipulate data from external services. While initially offering Jira integration, this repository is designed as a general-purpose collection of MCP tools that will expand over time to support various services and use cases.
10+
- 🔌 **Seamless Integration**: Connect AI assistants to external services and tools
11+
- 🛠 **Extensible Framework**: Easily create new integrations with the Model Context Protocol
12+
- 🔍 **Powerful Interactions**: Enable AI to access and manipulate data from external services
13+
- 📊 **Jira Integration**: Robust Jira integration with comprehensive functionality
14+
- 🚀 **Developer-Friendly**: Simple setup with detailed documentation for the best developer experience
815

916
> **Note**: This project is currently in beta (0.x.x versions). APIs may change between minor versions during the beta phase.
1017
11-
## Packages
12-
13-
### Core Packages (Internal Use Only)
14-
15-
- **[@mcp-core/typescript-config](./core/typescript-config/README.md)** - Shared TypeScript configuration
16-
- **[@mcp-core/http-client](./core/http-client/README.md)** - HTTP client for API requests
17-
18-
These core packages are for internal use only and are not published to npm.
18+
## 📦 Available Packages
1919

20-
### MCP Servers (Published Packages)
20+
| Package | Description | Status |
21+
| ----------------------------------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
22+
| [@mcp-devtools/jira](./packages/jira/README.md) | Jira MCP server integration | [![npm version](https://img.shields.io/npm/v/@mcp-devtools/jira.svg)](https://www.npmjs.com/package/@mcp-devtools/jira) |
2123

22-
- **[@mcp-devtools/jira](./packages/jira/README.md)** - Jira MCP server integration
24+
## 🚀 Quick Start
2325

24-
Only the MCP server packages under the `@mcp-devtools` scope are published to npm.
26+
To use MCP DevTools with Cursor IDE:
2527

26-
## Using MCP Tools
27-
28-
MCP tools in this repository can be integrated with AI assistants that support the Model Context Protocol. Here's how to use them in different environments:
29-
30-
To use MCP tools with Cursor IDE:
28+
```bash
29+
# Configure in Cursor settings (recommended)
30+
# Settings > Cursor Settings > MCP
31+
# Add a new MCP server with:
32+
# Name: Jira
33+
# Type: command
34+
# Command: env JIRA_URL=https://[YOUR_WORKSPACE].atlassian.net JIRA_API_MAIL=[YOUR_EMAIL] JIRA_API_KEY=[YOUR_API_KEY] npx -y @mcp-devtools/jira
35+
```
3136

32-
1. Configure the MCP server in Cursor settings
33-
2. Access the tool functionality directly through the Cursor IDE chat
37+
Once configured, interact with Jira through chat commands:
3438

35-
### Jira Configuration
39+
```
40+
get task SCRUM-1
41+
```
3642

37-
#### 1. General configuration via Cursor Settings (RECOMMENDED)
43+
## 📖 Documentation
3844

39-
To use the Jira MCP server with Cursor IDE, configure the server in your Cursor settings:
45+
- [Jira Package Documentation](./packages/jira/README.md)
46+
- [Getting Started Guide](./docs/getting-started.md)
47+
- [Contributing Guidelines](./CONTRIBUTING.md)
4048

41-
1. Open Cursor IDE
42-
2. Navigate to Settings (or CTRL+SHIFT+P) > Cursor Settings > MCP
43-
3. Add a new MCP server with the following configuration:
49+
## 🧩 Repository Structure
4450

45-
- Server name: `Jira`
46-
- Type: `command`
47-
- Command: `env JIRA_URL=https://[YOUR_WORKSPACE].atlassian.net JIRA_API_MAIL=[YOUR_EMAIL] JIRA_API_KEY=[YOUR_API_KEY] npx -y @mcp-devtools/jira`
51+
```
52+
mcp-devtools/
53+
├── core/ # Infrastructure and utility packages
54+
│ ├── typescript-config/ # Shared TypeScript configuration
55+
│ └── http-client/ # HTTP client utilities
56+
57+
├── packages/ # Functional MCP server packages
58+
│ └── jira/ # Jira integration MCP server
59+
│ └── README.md # Package documentation
60+
61+
└── ...
62+
```
4863

49-
#### 2. Project-wide configuration via .cursor/mcp.json (NOT RECOMMENDED)
64+
## 🛠 Development
5065

51-
> [!WARNING]
52-
> This approach is not recommended as it might leak your secrets to other users when committing to the git repository.
66+
```bash
67+
# Install dependencies
68+
pnpm install
5369

54-
For project-specific Jira configuration, you can create a `.cursor/mcp.json` file in your project root.
55-
This allows you to maintain separate MCP server configurations for different projects:
70+
# Build all packages
71+
pnpm build
5672

57-
```json
58-
{
59-
"mcpServers": {
60-
"@mcp-devtools/jira": {
61-
"command": "env JIRA_URL=https://[YOUR_WORKSPACE].atlassian.net JIRA_API_MAIL=[YOUR_EMAIL] JIRA_API_KEY=[YOUR_API_KEY] npx",
62-
"args": ["-y", "@mcp-devtools/jira"]
63-
}
64-
}
65-
}
73+
# Development with auto-rebuild
74+
pnpm dev
6675
```
6776

68-
### Using Jira MCP in Chat
77+
## 🤝 Contributing
6978

70-
Once configured, you can interact with Jira through chat commands:
79+
Contributions are welcome! Please check our [Contributing Guidelines](./CONTRIBUTING.md) for details.
7180

72-
```bash
73-
get task [ticket id]
74-
# example
75-
get task SCRUM-1
76-
```
81+
## 📄 License
7782

78-
Available commands:
83+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
7984

80-
- `get task [ticket id]` - Retrieve details of a specific Jira ticket
81-
- `search tasks [query]` - Search for Jira tickets matching a query
82-
- `update task [ticket id] [field] [value]` - Update a field on a ticket
83-
- `get my tasks` - List tickets assigned to you
85+
## 🆘 Support
8486

85-
For more detailed information on all available commands, refer to the [Jira package documentation](./packages/jira/README.md).
87+
- **GitHub Issues**: For bug reports and feature requests
88+
- **Discussions**: For questions and community support
8689

8790
## Project Structure
8891

8992
```
90-
9193
mcp-devtools/
9294
├── core/ # Infrastructure and utility packages
9395
│ ├── typescript-config/ # Shared TypeScript configuration
@@ -97,7 +99,6 @@ mcp-devtools/
9799
│ └── jira/ # Jira integration MCP server
98100
├── package.json # Root package configuration
99101
└── pnpm-workspace.yaml # Workspace configuration
100-
101102
```
102103

103104
## Development

0 commit comments

Comments
 (0)