@mohammadhprp/system-prompt 0.12.1 → 0.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/framework/agents/README.md +0 -1
- package/framework/commands/mr.md +8 -9
- package/framework/mcps/README.md +0 -3
- package/framework/skills/README.md +3 -2
- package/framework/skills/glab/SKILL.md +222 -0
- package/framework/skills/glab/references/commands-detailed.md +616 -0
- package/framework/skills/glab/references/quick-reference.md +145 -0
- package/framework/skills/glab/references/troubleshooting.md +669 -0
- package/framework/skills/improve/SKILL.md +137 -0
- package/framework/skills/improve/examples.md +19 -0
- package/framework/skills/improve/references/audit-playbook.md +130 -0
- package/framework/skills/improve/references/closing-the-loop.md +96 -0
- package/framework/skills/improve/references/plan-template.md +197 -0
- package/framework/skills/jira-cli/SKILL.md +260 -0
- package/framework/skills/jira-cli/references/commands-detailed.md +268 -0
- package/framework/skills/jira-cli/references/quick-reference.md +111 -0
- package/framework/skills/jira-cli/references/troubleshooting.md +114 -0
- package/framework/styles/README.md +9 -4
- package/framework/styles/factory/DESIGN.md +360 -0
- package/framework/styles/factory/README.md +32 -0
- package/framework/styles/factory/assets/preview.jpg +0 -0
- package/framework/styles/huly/DESIGN.md +449 -0
- package/framework/styles/huly/README.md +32 -0
- package/framework/styles/huly/assets/preview.jpg +0 -0
- package/framework/styles/notion/DESIGN.md +423 -0
- package/framework/styles/notion/README.md +32 -0
- package/framework/styles/notion/assets/preview.jpg +0 -0
- package/package.json +1 -1
- package/src/catalog.js +6 -6
- package/framework/agents/backend-architect.md +0 -146
- package/framework/mcps/github-mcp/README.md +0 -51
- package/framework/mcps/github-mcp/capabilities.md +0 -83
- package/framework/mcps/github-mcp/configs/.env.example +0 -1
- package/framework/mcps/github-mcp/configs/opencode.json +0 -13
- package/framework/mcps/github-mcp/install.md +0 -60
- package/framework/mcps/github-mcp/troubleshooting.md +0 -79
- package/framework/mcps/gitlab-mcp/README.md +0 -53
- package/framework/mcps/gitlab-mcp/capabilities.md +0 -216
- package/framework/mcps/gitlab-mcp/configs/.env.example +0 -2
- package/framework/mcps/gitlab-mcp/configs/opencode.json +0 -13
- package/framework/mcps/gitlab-mcp/install.md +0 -99
- package/framework/mcps/gitlab-mcp/troubleshooting.md +0 -116
- package/framework/mcps/jira-mcp/README.md +0 -52
- package/framework/mcps/jira-mcp/capabilities.md +0 -79
- package/framework/mcps/jira-mcp/configs/.env.example +0 -2
- package/framework/mcps/jira-mcp/configs/opencode.json +0 -13
- package/framework/mcps/jira-mcp/install.md +0 -94
- package/framework/mcps/jira-mcp/troubleshooting.md +0 -113
- package/framework/skills/gitlab-mcp/SKILL.md +0 -83
- package/framework/skills/gitlab-mcp/examples.md +0 -31
- package/framework/skills/gitlab-mcp/references/code-review.md +0 -110
- package/framework/skills/gitlab-mcp/references/issues.md +0 -141
- package/framework/skills/gitlab-mcp/references/merge-requests.md +0 -120
- package/framework/skills/gitlab-mcp/references/pipelines.md +0 -67
- package/framework/skills/gitlab-mcp/references/search.md +0 -17
- package/framework/skills/gitlab-mcp/references/webhooks.md +0 -32
- package/framework/skills/gitlab-mcp/references/work-items.md +0 -50
- package/framework/skills/jira-mcp/SKILL.md +0 -57
- package/framework/skills/jira-mcp/examples.md +0 -31
- package/framework/skills/jira-mcp/references/comments.md +0 -27
- package/framework/skills/jira-mcp/references/issues.md +0 -97
- package/framework/skills/jira-mcp/references/projects.md +0 -39
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
# GitLab MCP Troubleshooting
|
|
2
|
-
|
|
3
|
-
## Server won't start
|
|
4
|
-
|
|
5
|
-
**Problem**
|
|
6
|
-
|
|
7
|
-
The AI client reports that `gitlab` failed to start.
|
|
8
|
-
|
|
9
|
-
**Cause**
|
|
10
|
-
|
|
11
|
-
The client cannot run `zereight-mcp-gitlab`, Node.js is not installed, or the npm package is not installed globally.
|
|
12
|
-
|
|
13
|
-
**Solution**
|
|
14
|
-
|
|
15
|
-
- Run `zereight-mcp-gitlab` manually to verify the server starts.
|
|
16
|
-
- Check Node.js is installed: `node --version` (requires >= 18).
|
|
17
|
-
- Run `npm install -g @zereight/mcp-gitlab` to install globally.
|
|
18
|
-
- If no global install, use `command: "npx"` with `args: ["-y", "@zereight/mcp-gitlab"]` instead.
|
|
19
|
-
|
|
20
|
-
## Authentication errors
|
|
21
|
-
|
|
22
|
-
**Problem**
|
|
23
|
-
|
|
24
|
-
The server starts but returns authentication errors on tool calls.
|
|
25
|
-
|
|
26
|
-
**Cause**
|
|
27
|
-
|
|
28
|
-
The Personal Access Token is missing, expired, or has insufficient scopes.
|
|
29
|
-
|
|
30
|
-
**Solution**
|
|
31
|
-
|
|
32
|
-
- Verify the token is set in `GITLAB_PERSONAL_ACCESS_TOKEN` or passed via `--token`.
|
|
33
|
-
- Confirm the token has the required scopes (`api` for full access, `read_api` for read-only).
|
|
34
|
-
- Generate a new token in GitLab: **Settings → Access Tokens → Personal Access Tokens**.
|
|
35
|
-
- Confirm the API URL is correct: `https://gitlab.com/api/v4` (SaaS) or `https://your-instance/api/v4` (self-hosted).
|
|
36
|
-
|
|
37
|
-
## Configuration errors
|
|
38
|
-
|
|
39
|
-
**Problem**
|
|
40
|
-
|
|
41
|
-
The MCP server is not listed, or the client ignores the config file.
|
|
42
|
-
|
|
43
|
-
**Cause**
|
|
44
|
-
|
|
45
|
-
The config file is in the wrong location, the JSON is invalid, or the client expects a different configuration wrapper.
|
|
46
|
-
|
|
47
|
-
**Solution**
|
|
48
|
-
|
|
49
|
-
- Validate the JSON with `python -m json.tool <file>` or another JSON parser.
|
|
50
|
-
- Confirm the client-specific config location in the client's documentation.
|
|
51
|
-
- Keep the server name as `gitlab`.
|
|
52
|
-
- Ensure environment variables are set correctly in the config.
|
|
53
|
-
|
|
54
|
-
## Permission errors
|
|
55
|
-
|
|
56
|
-
**Problem**
|
|
57
|
-
|
|
58
|
-
Tools return 403 Forbidden or insufficient permissions.
|
|
59
|
-
|
|
60
|
-
**Cause**
|
|
61
|
-
|
|
62
|
-
The authenticated user does not have the required GitLab project or group permissions.
|
|
63
|
-
|
|
64
|
-
**Solution**
|
|
65
|
-
|
|
66
|
-
- Verify the user has at least Developer role in the target project or group.
|
|
67
|
-
- Check if the project is in a subgroup that inherits different permissions.
|
|
68
|
-
- Use `list_projects` to confirm which projects the token can access.
|
|
69
|
-
|
|
70
|
-
## Rate limiting
|
|
71
|
-
|
|
72
|
-
**Problem**
|
|
73
|
-
|
|
74
|
-
Tools return 429 Too Many Requests errors.
|
|
75
|
-
|
|
76
|
-
**Cause**
|
|
77
|
-
|
|
78
|
-
GitLab API rate limits have been exceeded.
|
|
79
|
-
|
|
80
|
-
**Solution**
|
|
81
|
-
|
|
82
|
-
- Reduce the frequency of tool calls.
|
|
83
|
-
- For self-hosted GitLab, check `gitlab.rb` rate limit settings.
|
|
84
|
-
- Wait for the rate limit window to reset before retrying.
|
|
85
|
-
|
|
86
|
-
## Version mismatch
|
|
87
|
-
|
|
88
|
-
**Problem**
|
|
89
|
-
|
|
90
|
-
Some tools are missing or behave differently than documented.
|
|
91
|
-
|
|
92
|
-
**Cause**
|
|
93
|
-
|
|
94
|
-
The installed npm package version is outdated.
|
|
95
|
-
|
|
96
|
-
**Solution**
|
|
97
|
-
|
|
98
|
-
- Update to the latest version: `npm update -g @zereight/mcp-gitlab`.
|
|
99
|
-
- Check the installed version: `npm list -g @zereight/mcp-gitlab`.
|
|
100
|
-
- Refer to the [CHANGELOG](https://github.com/zereight/gitlab-mcp/blob/main/CHANGELOG.md) for breaking changes.
|
|
101
|
-
|
|
102
|
-
## Read-only mode blocking writes
|
|
103
|
-
|
|
104
|
-
**Problem**
|
|
105
|
-
|
|
106
|
-
Write tools return errors when `GITLAB_PERMISSION_MODE=readonly`.
|
|
107
|
-
|
|
108
|
-
**Cause**
|
|
109
|
-
|
|
110
|
-
Read-only mode explicitly blocks all create, update, and delete operations.
|
|
111
|
-
|
|
112
|
-
**Solution**
|
|
113
|
-
|
|
114
|
-
- Set `GITLAB_PERMISSION_MODE=modify` to allow updates while blocking deletes.
|
|
115
|
-
- Set `GITLAB_PERMISSION_MODE=full` for unrestricted access.
|
|
116
|
-
- Use `GITLAB_TOOLS` allow-list to enable specific write tools in read-only mode.
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# Jira MCP
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
Jira MCP is a Model Context Protocol (MCP) server for interacting with self-hosted Jira instances using Personal Access Token (PAT) authentication. It provides tools for creating, reading, updating, and deleting issues, searching with JQL, managing comments and assignments, and inspecting projects.
|
|
6
|
-
|
|
7
|
-
Official source:
|
|
8
|
-
|
|
9
|
-
- [GitHub: edrich13/mcp-jira-server](https://github.com/edrich13/mcp-jira-server)
|
|
10
|
-
|
|
11
|
-
## Features
|
|
12
|
-
|
|
13
|
-
- Personal Access Token authentication for self-hosted Jira.
|
|
14
|
-
- Create, read, update, and delete Jira issues.
|
|
15
|
-
- Search issues using JQL (Jira Query Language).
|
|
16
|
-
- Add and view comments.
|
|
17
|
-
- Manage issue assignments.
|
|
18
|
-
- List projects and issue types.
|
|
19
|
-
- Transition issues between statuses.
|
|
20
|
-
- Get current user information.
|
|
21
|
-
|
|
22
|
-
## Supported AI Clients
|
|
23
|
-
|
|
24
|
-
Jira MCP works with any MCP-compatible AI client. The server is started via `npx` and communicates over stdio.
|
|
25
|
-
|
|
26
|
-
- OpenCode
|
|
27
|
-
|
|
28
|
-
## When to Use
|
|
29
|
-
|
|
30
|
-
Use Jira MCP when an AI coding agent needs to interact with a self-hosted Jira instance.
|
|
31
|
-
|
|
32
|
-
Good fits:
|
|
33
|
-
|
|
34
|
-
- Creating and updating Jira issues from an AI agent.
|
|
35
|
-
- Searching for issues with JQL queries.
|
|
36
|
-
- Adding comments and managing issue assignments.
|
|
37
|
-
- Inspecting project metadata and issue types.
|
|
38
|
-
- Tracking work and status transitions.
|
|
39
|
-
|
|
40
|
-
Avoid using it with Jira Cloud (SaaS) — this server is designed for self-hosted Jira instances only.
|
|
41
|
-
|
|
42
|
-
## Requirements
|
|
43
|
-
|
|
44
|
-
- Node.js 18 or higher available on `PATH`.
|
|
45
|
-
- A self-hosted Jira instance (e.g., `https://jira.domain.com`).
|
|
46
|
-
- A Jira Personal Access Token with appropriate permissions.
|
|
47
|
-
|
|
48
|
-
## Related Skills
|
|
49
|
-
|
|
50
|
-
Relevant skills in this repository:
|
|
51
|
-
|
|
52
|
-
- [`backend-best-practices`](../../skills/backend-best-practices/SKILL.md): backend best practices for debugging and testing.
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
# Jira MCP Capabilities
|
|
2
|
-
|
|
3
|
-
## What It Can Do
|
|
4
|
-
|
|
5
|
-
12 tools for interacting with self-hosted Jira instances.
|
|
6
|
-
|
|
7
|
-
### Issues
|
|
8
|
-
|
|
9
|
-
| Tool | Description |
|
|
10
|
-
| --- | --- |
|
|
11
|
-
| `jira_get_issue` | Get details of a specific issue by key (e.g. "PROJ-123") |
|
|
12
|
-
| `jira_search_issues` | Search for issues using JQL with optional max results |
|
|
13
|
-
| `jira_create_issue` | Create a new issue with project, summary, type, description, priority, assignee, labels, components, and custom fields |
|
|
14
|
-
| `jira_update_issue` | Update an existing issue — summary, description, assignee, priority, labels, status, and custom fields |
|
|
15
|
-
| `jira_delete_issue` | Delete an issue permanently |
|
|
16
|
-
| `jira_assign_issue` | Assign an issue to a user |
|
|
17
|
-
|
|
18
|
-
### Comments
|
|
19
|
-
|
|
20
|
-
| Tool | Description |
|
|
21
|
-
| --- | --- |
|
|
22
|
-
| `jira_add_comment` | Add a comment to an issue |
|
|
23
|
-
| `jira_get_comments` | Get all comments from an issue |
|
|
24
|
-
|
|
25
|
-
### Projects
|
|
26
|
-
|
|
27
|
-
| Tool | Description |
|
|
28
|
-
| --- | --- |
|
|
29
|
-
| `jira_get_projects` | List all available projects |
|
|
30
|
-
| `jira_get_project` | Get details of a specific project |
|
|
31
|
-
| `jira_get_issue_types` | Get available issue types for a project |
|
|
32
|
-
|
|
33
|
-
### User
|
|
34
|
-
|
|
35
|
-
| Tool | Description |
|
|
36
|
-
| --- | --- |
|
|
37
|
-
| `jira_get_current_user` | Get information about the currently authenticated user |
|
|
38
|
-
|
|
39
|
-
## What It Cannot Do
|
|
40
|
-
|
|
41
|
-
- It does not work with Jira Cloud (SaaS) — designed for self-hosted instances only.
|
|
42
|
-
- It cannot authenticate with OAuth, API tokens, or cookie-based auth — PAT only.
|
|
43
|
-
- It cannot create, update, or delete Jira projects.
|
|
44
|
-
- It cannot manage Jira users, groups, or permissions.
|
|
45
|
-
- It cannot access Jira boards, sprints, or agile features.
|
|
46
|
-
- It cannot attach files to issues.
|
|
47
|
-
- It cannot operate without a valid PAT and accessible Jira instance.
|
|
48
|
-
|
|
49
|
-
## Best Practices
|
|
50
|
-
|
|
51
|
-
- Never commit your PAT to version control. Use environment variables or client config files with restricted permissions.
|
|
52
|
-
- Use tokens with minimal required permissions.
|
|
53
|
-
- Set expiration dates for tokens and rotate them regularly.
|
|
54
|
-
- Use `jira_get_issue_types` before creating issues to confirm valid types for the project.
|
|
55
|
-
- Use `jira_get_current_user` first to verify authentication is working.
|
|
56
|
-
- Use JQL with specific project keys to scope searches and reduce response size.
|
|
57
|
-
- For Jira instances behind SSO proxies, set `JIRA_USER_AGENT` to a whitelisted value.
|
|
58
|
-
|
|
59
|
-
## Common Workflows
|
|
60
|
-
|
|
61
|
-
### Find and update issues
|
|
62
|
-
|
|
63
|
-
1. Call `jira_search_issues` with a JQL query to find relevant issues.
|
|
64
|
-
2. Call `jira_get_issue` on a specific key to read full details.
|
|
65
|
-
3. Call `jira_update_issue` to change status, assignee, or priority.
|
|
66
|
-
4. Call `jira_add_comment` to leave a note about the change.
|
|
67
|
-
|
|
68
|
-
### Create a new issue
|
|
69
|
-
|
|
70
|
-
1. Call `jira_get_projects` to list available projects.
|
|
71
|
-
2. Call `jira_get_issue_types` for the target project.
|
|
72
|
-
3. Call `jira_create_issue` with project key, summary, issue type, and optional fields.
|
|
73
|
-
4. Call `jira_assign_issue` to assign it to a team member.
|
|
74
|
-
|
|
75
|
-
### Track work progress
|
|
76
|
-
|
|
77
|
-
1. Call `jira_search_issues` with `assignee = currentUser() AND status != Done`.
|
|
78
|
-
2. Call `jira_get_issue` on each key to review details.
|
|
79
|
-
3. Call `jira_update_issue` to transition statuses as work progresses.
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
# Jira MCP Installation
|
|
2
|
-
|
|
3
|
-
## Requirements
|
|
4
|
-
|
|
5
|
-
- Node.js 18 or higher available on `PATH`.
|
|
6
|
-
- A self-hosted Jira instance.
|
|
7
|
-
- A Jira Personal Access Token.
|
|
8
|
-
- An MCP-compatible AI client.
|
|
9
|
-
|
|
10
|
-
## Creating a Personal Access Token
|
|
11
|
-
|
|
12
|
-
1. Log in to your self-hosted Jira instance.
|
|
13
|
-
2. Click your profile icon → **Profile** or **Account Settings**.
|
|
14
|
-
3. Navigate to **Personal Access Tokens** or **Security**.
|
|
15
|
-
4. Click **Create token**, give it a name, set an expiration date, and copy the token immediately.
|
|
16
|
-
|
|
17
|
-
## Installation
|
|
18
|
-
|
|
19
|
-
The server can be used directly with `npx` — no build step required.
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
npx -y mcp-jira-server
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
Or install globally:
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
npm install -g mcp-jira-server
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Configuration
|
|
32
|
-
|
|
33
|
-
| Field | Value |
|
|
34
|
-
| --- | --- |
|
|
35
|
-
| Server name | `jira` |
|
|
36
|
-
| Command | `npx` (or `mcp-jira-server` if installed globally) |
|
|
37
|
-
| Args | `-y`, `mcp-jira-server` |
|
|
38
|
-
| Env | `JIRA_BASE_URL`, `JIRA_PAT` |
|
|
39
|
-
|
|
40
|
-
### Config file examples
|
|
41
|
-
|
|
42
|
-
Use the examples in [`configs/`](./configs/) as client-specific starting points:
|
|
43
|
-
|
|
44
|
-
| Client | Example | Typical location |
|
|
45
|
-
| --- | --- | --- |
|
|
46
|
-
| OpenCode | [`configs/opencode.json`](./configs/opencode.json) | OpenCode MCP configuration. |
|
|
47
|
-
|
|
48
|
-
### OpenCode
|
|
49
|
-
|
|
50
|
-
Copy [`configs/opencode.json`](./configs/opencode.json) into your OpenCode project root or user config directory, replace the placeholder URL and token, and restart the OpenCode agent.
|
|
51
|
-
|
|
52
|
-
## Verification
|
|
53
|
-
|
|
54
|
-
Run the MCP server command directly:
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
npx -y mcp-jira-server
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
Then verify from your AI client:
|
|
61
|
-
|
|
62
|
-
- The `jira` MCP server is listed.
|
|
63
|
-
- The server starts without errors.
|
|
64
|
-
- Tools are visible to the agent.
|
|
65
|
-
|
|
66
|
-
Recommended first prompt:
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
Get my current Jira user information
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
## Updating
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
npx -y mcp-jira-server@latest
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
Or update global install:
|
|
79
|
-
|
|
80
|
-
```bash
|
|
81
|
-
npm update -g mcp-jira-server
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## Uninstalling
|
|
85
|
-
|
|
86
|
-
1. Remove the MCP entry from AI client configuration files.
|
|
87
|
-
2. Uninstall the package: `npm uninstall -g mcp-jira-server`.
|
|
88
|
-
|
|
89
|
-
## Common Issues
|
|
90
|
-
|
|
91
|
-
- **Server does not start**: run `npx -y mcp-jira-server` manually. Ensure Node.js >= 18 is installed.
|
|
92
|
-
- **Authentication errors**: verify the PAT is valid and not expired. Confirm `JIRA_BASE_URL` has no trailing slash.
|
|
93
|
-
- **Connection refused**: check if the Jira instance is accessible and the URL is correct.
|
|
94
|
-
- **API requests redirect to SSO login**: your Jira may be behind a reverse proxy. Set `JIRA_USER_AGENT` to a whitelisted User-Agent string.
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
# Jira MCP Troubleshooting
|
|
2
|
-
|
|
3
|
-
## Server won't start
|
|
4
|
-
|
|
5
|
-
**Problem**
|
|
6
|
-
|
|
7
|
-
The AI client reports that `jira` failed to start.
|
|
8
|
-
|
|
9
|
-
**Cause**
|
|
10
|
-
|
|
11
|
-
The client cannot run `npx`, Node.js is not installed, or the npm package is unavailable.
|
|
12
|
-
|
|
13
|
-
**Solution**
|
|
14
|
-
|
|
15
|
-
- Run `npx -y mcp-jira-server` manually to verify the server starts.
|
|
16
|
-
- Check Node.js is installed: `node --version` (requires >= 18).
|
|
17
|
-
- Check network access if the package has not been cached locally.
|
|
18
|
-
- Ensure the config file contains the correct command and args.
|
|
19
|
-
|
|
20
|
-
## Authentication errors
|
|
21
|
-
|
|
22
|
-
**Problem**
|
|
23
|
-
|
|
24
|
-
The server starts but returns authentication errors on tool calls.
|
|
25
|
-
|
|
26
|
-
**Cause**
|
|
27
|
-
|
|
28
|
-
The Personal Access Token is missing, expired, or has insufficient permissions.
|
|
29
|
-
|
|
30
|
-
**Solution**
|
|
31
|
-
|
|
32
|
-
- Verify `JIRA_PAT` is set correctly in the environment.
|
|
33
|
-
- Confirm the token has not expired.
|
|
34
|
-
- Generate a new token in Jira if needed.
|
|
35
|
-
- Verify `JIRA_BASE_URL` is correct and has no trailing slash.
|
|
36
|
-
|
|
37
|
-
## Connection refused
|
|
38
|
-
|
|
39
|
-
**Problem**
|
|
40
|
-
|
|
41
|
-
Tools return connection errors.
|
|
42
|
-
|
|
43
|
-
**Cause**
|
|
44
|
-
|
|
45
|
-
The Jira instance is not accessible from the current machine.
|
|
46
|
-
|
|
47
|
-
**Solution**
|
|
48
|
-
|
|
49
|
-
- Verify the Jira URL is reachable: `curl https://jira.domain.com`.
|
|
50
|
-
- Check network connectivity and firewall rules.
|
|
51
|
-
- Confirm the URL format: `https://jira.domain.com` (no trailing slash).
|
|
52
|
-
|
|
53
|
-
## Configuration errors
|
|
54
|
-
|
|
55
|
-
**Problem**
|
|
56
|
-
|
|
57
|
-
The MCP server is not listed, or the client ignores the config file.
|
|
58
|
-
|
|
59
|
-
**Cause**
|
|
60
|
-
|
|
61
|
-
The config file is in the wrong location, the JSON is invalid, or the client expects a different configuration wrapper.
|
|
62
|
-
|
|
63
|
-
**Solution**
|
|
64
|
-
|
|
65
|
-
- Validate the JSON with `python -m json.tool <file>` or another JSON parser.
|
|
66
|
-
- Confirm the client-specific config location in the client's documentation.
|
|
67
|
-
- Keep the server name as `jira`.
|
|
68
|
-
- Ensure environment variables are set correctly in the config.
|
|
69
|
-
|
|
70
|
-
## API requests redirect to SSO login
|
|
71
|
-
|
|
72
|
-
**Problem**
|
|
73
|
-
|
|
74
|
-
API requests return HTML login pages instead of JSON responses despite a valid PAT.
|
|
75
|
-
|
|
76
|
-
**Cause**
|
|
77
|
-
|
|
78
|
-
The Jira instance is behind a reverse proxy (oauth2-proxy, nginx, etc.) that filters requests by User-Agent and redirects API clients to SSO login.
|
|
79
|
-
|
|
80
|
-
**Solution**
|
|
81
|
-
|
|
82
|
-
- Set the `JIRA_USER_AGENT` environment variable to a whitelisted User-Agent string.
|
|
83
|
-
- Contact your system administrator to get the allowed User-Agent value.
|
|
84
|
-
|
|
85
|
-
## "Issue type not found" errors
|
|
86
|
-
|
|
87
|
-
**Problem**
|
|
88
|
-
|
|
89
|
-
Creating an issue fails with "issue type not found".
|
|
90
|
-
|
|
91
|
-
**Cause**
|
|
92
|
-
|
|
93
|
-
The issue type name does not exist in the target project.
|
|
94
|
-
|
|
95
|
-
**Solution**
|
|
96
|
-
|
|
97
|
-
- Call `jira_get_issue_types` with the project key to list valid types.
|
|
98
|
-
- Use an exact match from the returned list.
|
|
99
|
-
|
|
100
|
-
## "Cannot find module" errors
|
|
101
|
-
|
|
102
|
-
**Problem**
|
|
103
|
-
|
|
104
|
-
The server fails with module resolution errors when using a source build.
|
|
105
|
-
|
|
106
|
-
**Cause**
|
|
107
|
-
|
|
108
|
-
Dependencies are not installed or the project is not built.
|
|
109
|
-
|
|
110
|
-
**Solution**
|
|
111
|
-
|
|
112
|
-
- Run `npm install` and `npm run build` in the project directory.
|
|
113
|
-
- Use the `npx` command instead of a local build.
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: gitlab-mcp
|
|
3
|
-
description: Use this skill when working with the GitLab MCP server tools for merge requests, issues, repositories, pipelines, work items, webhooks, search, and related GitLab workflows.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# gitlab-mcp
|
|
7
|
-
|
|
8
|
-
GitLab MCP server providing 173 tools: 171 tools across 16 toolsets, plus `execute_graphql` and the always-available `discover_tools` meta-tool.
|
|
9
|
-
|
|
10
|
-
## Toolsets
|
|
11
|
-
|
|
12
|
-
| Toolset | Default | Enable with |
|
|
13
|
-
|---------------------------|---------|------------------------------------------------------|
|
|
14
|
-
| merge_requests (41 tools) | yes | - |
|
|
15
|
-
| issues (23 tools) | yes | - |
|
|
16
|
-
| repositories (7 tools) | yes | - |
|
|
17
|
-
| branches (6 tools) | yes | - |
|
|
18
|
-
| projects (8 tools) | yes | - |
|
|
19
|
-
| labels (5 tools) | yes | - |
|
|
20
|
-
| ci (2 tools) | yes | - |
|
|
21
|
-
| users (5 tools) | yes | - |
|
|
22
|
-
| pipelines (19 tools) | no | `USE_PIPELINE=true` or `GITLAB_TOOLSETS=pipelines` |
|
|
23
|
-
| milestones (9 tools) | no | `USE_MILESTONE=true` or `GITLAB_TOOLSETS=milestones` |
|
|
24
|
-
| wiki (10 tools) | no | `USE_GITLAB_WIKI=true` or `GITLAB_TOOLSETS=wiki` |
|
|
25
|
-
| releases (7 tools) | no | `GITLAB_TOOLSETS=releases` |
|
|
26
|
-
| tags (5 tools) | no | `GITLAB_TOOLSETS=tags` |
|
|
27
|
-
| workitems (18 tools) | no | `GITLAB_TOOLSETS=workitems` |
|
|
28
|
-
| webhooks (3 tools) | no | `GITLAB_TOOLSETS=webhooks` |
|
|
29
|
-
| search (3 tools) | no | `GITLAB_TOOLSETS=search` |
|
|
30
|
-
|
|
31
|
-
Enable all: `GITLAB_TOOLSETS=all`. Use `GITLAB_TOOLS` to enable individual tools outside their toolset. `discover_tools` can activate opt-in categories for the current session.
|
|
32
|
-
|
|
33
|
-
## Key Workflows
|
|
34
|
-
|
|
35
|
-
### Code Review (see references/code-review.md)
|
|
36
|
-
|
|
37
|
-
1. `list_merge_request_changed_files` - get file paths only (no diffs)
|
|
38
|
-
2. `get_merge_request_file_diff` - get diffs for 3-5 files per call (batch)
|
|
39
|
-
3. `create_merge_request_thread` or `create_draft_note` - leave review comments
|
|
40
|
-
4. `bulk_publish_draft_notes` - publish all drafts at once
|
|
41
|
-
|
|
42
|
-
### MR Lifecycle (see references/merge-requests.md)
|
|
43
|
-
|
|
44
|
-
`create_merge_request` -> review -> `approve_merge_request` -> `merge_merge_request`
|
|
45
|
-
|
|
46
|
-
### Issue Management (see references/issues.md)
|
|
47
|
-
|
|
48
|
-
`create_issue` -> `create_issue_link` -> `create_issue_note` -> `update_issue`
|
|
49
|
-
|
|
50
|
-
### Work Items (see references/work-items.md)
|
|
51
|
-
|
|
52
|
-
`list_work_items` -> `get_work_item` -> `update_work_item` -> `create_work_item_note`
|
|
53
|
-
|
|
54
|
-
### Webhooks & Search
|
|
55
|
-
|
|
56
|
-
- Webhooks: see references/webhooks.md
|
|
57
|
-
- Code search: see references/search.md
|
|
58
|
-
|
|
59
|
-
### File Operations
|
|
60
|
-
|
|
61
|
-
- Read: `get_file_contents`, `get_repository_tree`
|
|
62
|
-
- Write: `create_or_update_file` (single file), `push_files` (multiple files in one commit)
|
|
63
|
-
|
|
64
|
-
## Parameter Hints
|
|
65
|
-
|
|
66
|
-
- **project_id**: numeric ID or URL-encoded path (`group/subgroup/project`)
|
|
67
|
-
- **MR lookup**: provide `mergeRequestIid` OR `branchName` (not both)
|
|
68
|
-
- **list_issues**: default scope = created by current user. Use `scope: "all"` for all issues
|
|
69
|
-
- **list_merge_requests**: without project_id returns user's MRs across all projects
|
|
70
|
-
- **emoji reactions**: merge request, issue, and work item reaction tools use GitLab emoji names like `thumbsup`, `rocket`, or `eyes`
|
|
71
|
-
- **work items**: status and custom fields require GitLab Premium/Ultimate features
|
|
72
|
-
- **execute_graphql**: escape double quotes in query strings
|
|
73
|
-
|
|
74
|
-
## Destructive Tools (require caution)
|
|
75
|
-
|
|
76
|
-
`delete_issue`, `delete_label`, `delete_wiki_page`, `delete_group_wiki_page`, `delete_milestone`, `delete_release`, `delete_tag`, `delete_merge_request_note`, `delete_merge_request_discussion_note`, `delete_draft_note`, `delete_issue_link`, `delete_merge_request_emoji_reaction`, `delete_merge_request_note_emoji_reaction`, `delete_issue_emoji_reaction`, `delete_issue_note_emoji_reaction`, `delete_work_item_emoji_reaction`, `delete_work_item_note_emoji_reaction`, `merge_merge_request`, `push_files`
|
|
77
|
-
|
|
78
|
-
## Advanced
|
|
79
|
-
|
|
80
|
-
- **Dynamic discovery**: `discover_tools` lists and activates opt-in toolsets at runtime
|
|
81
|
-
- **GraphQL**: `execute_graphql` for queries not covered by REST tools
|
|
82
|
-
- **Zoekt search**: `search_code`, `search_project_code`, `search_group_code` (requires advanced search enabled)
|
|
83
|
-
- **Work Items**: GraphQL-based alternative to issues (Premium/Ultimate features)
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# GitLab MCP Examples
|
|
2
|
-
|
|
3
|
-
## Example 1: Review Merge Request Diffs
|
|
4
|
-
|
|
5
|
-
Review a merge request with multiple file changes. Good agent behavior:
|
|
6
|
-
|
|
7
|
-
- Use `list_merge_request_changed_files` to get the list of changed files (no diff).
|
|
8
|
-
- Use `get_merge_request_file_diff` with 3-5 files at a time to review diffs in batches.
|
|
9
|
-
- Use `get_merge_request_approval_state` to check who has approved.
|
|
10
|
-
- Use `create_merge_request_thread` to leave inline feedback on specific lines.
|
|
11
|
-
- Use `approve_merge_request` and `merge_merge_request` when the review passes.
|
|
12
|
-
|
|
13
|
-
## Example 2: Investigate Pipeline Failure
|
|
14
|
-
|
|
15
|
-
A CI pipeline failed on the main branch. Good agent behavior:
|
|
16
|
-
|
|
17
|
-
- Use `list_pipelines` to find the latest failed pipeline for the target branch.
|
|
18
|
-
- Use `list_pipeline_jobs` to identify which job failed.
|
|
19
|
-
- Use `get_pipeline_job_output` with pagination to read the failure logs.
|
|
20
|
-
- Use `get_pipeline_job` to inspect the job's environment and timing.
|
|
21
|
-
- Summarize the root cause and propose a fix based on the log output.
|
|
22
|
-
|
|
23
|
-
## Example 3: Create and Manage an Issue
|
|
24
|
-
|
|
25
|
-
Track a bug report discovered during development. Good agent behavior:
|
|
26
|
-
|
|
27
|
-
- Use `create_issue` with project key, summary, description, and labels.
|
|
28
|
-
- Use `create_issue_note` to add reproduction steps as a comment.
|
|
29
|
-
- Use `update_issue` to set assignee and priority.
|
|
30
|
-
- Use `create_branch` to start work from the issue branch naming convention.
|
|
31
|
-
- Use `create_merge_request` when the fix is ready, linking the MR to the issue.
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
# Code Review Workflow
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
Efficient code review uses a 2-step approach: list files first, then fetch diffs in batches.
|
|
6
|
-
This avoids loading the entire diff payload at once.
|
|
7
|
-
|
|
8
|
-
## Step 1: List Changed Files
|
|
9
|
-
|
|
10
|
-
```
|
|
11
|
-
list_merge_request_changed_files
|
|
12
|
-
project_id: "my-group/my-project"
|
|
13
|
-
mergeRequestIid: 42
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
Returns file paths with metadata:
|
|
17
|
-
|
|
18
|
-
- `new_path`, `old_path` - file locations
|
|
19
|
-
- `new_file`, `deleted_file`, `renamed_file` - change type flags
|
|
20
|
-
|
|
21
|
-
Use `excluded_file_patterns` to skip generated files:
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
excluded_file_patterns: ["*.lock", "*.min.js", "dist/**"]
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Step 2: Batch Diff Retrieval
|
|
28
|
-
|
|
29
|
-
```
|
|
30
|
-
get_merge_request_file_diff
|
|
31
|
-
project_id: "my-group/my-project"
|
|
32
|
-
mergeRequestIid: 42
|
|
33
|
-
file_paths: ["src/api.ts", "src/utils.ts", "src/types.ts"]
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
**Batch 3-5 files per call** for optimal balance between API calls and response size.
|
|
37
|
-
For large MRs (20+ files), prioritize reviewing:
|
|
38
|
-
|
|
39
|
-
1. Source code files first (skip configs, lockfiles)
|
|
40
|
-
2. New files before modified files
|
|
41
|
-
3. Core logic before tests
|
|
42
|
-
|
|
43
|
-
## Step 3: Leave Comments
|
|
44
|
-
|
|
45
|
-
### Option A: Thread comments (visible immediately)
|
|
46
|
-
|
|
47
|
-
```
|
|
48
|
-
create_merge_request_thread
|
|
49
|
-
project_id: "my-group/my-project"
|
|
50
|
-
mergeRequestIid: 42
|
|
51
|
-
body: "Consider using a const here"
|
|
52
|
-
position:
|
|
53
|
-
new_path: "src/api.ts"
|
|
54
|
-
new_line: 15
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Reply to existing threads:
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
create_merge_request_discussion_note
|
|
61
|
-
project_id: "my-group/my-project"
|
|
62
|
-
mergeRequestIid: 42
|
|
63
|
-
discussion_id: "abc123"
|
|
64
|
-
body: "Good point, updated"
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### Option B: Draft notes (batch review)
|
|
68
|
-
|
|
69
|
-
Create drafts, then publish all at once:
|
|
70
|
-
|
|
71
|
-
```
|
|
72
|
-
create_draft_note -> create_draft_note -> create_draft_note
|
|
73
|
-
... repeat for each comment ...
|
|
74
|
-
bulk_publish_draft_notes
|
|
75
|
-
project_id: "my-group/my-project"
|
|
76
|
-
mergeRequestIid: 42
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
This mimics GitHub's "pending review" pattern - all comments appear simultaneously.
|
|
80
|
-
|
|
81
|
-
## Step 4: Resolve Threads
|
|
82
|
-
|
|
83
|
-
```
|
|
84
|
-
resolve_merge_request_thread
|
|
85
|
-
project_id: "my-group/my-project"
|
|
86
|
-
mergeRequestIid: 42
|
|
87
|
-
discussion_id: "abc123"
|
|
88
|
-
resolved: true
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## Alternative: Full Diff Methods
|
|
92
|
-
|
|
93
|
-
For small MRs where batching is unnecessary:
|
|
94
|
-
|
|
95
|
-
- `get_merge_request_diffs` - all diffs at once (can be large)
|
|
96
|
-
- `list_merge_request_diffs` - paginated diffs
|
|
97
|
-
|
|
98
|
-
For comparing arbitrary refs:
|
|
99
|
-
|
|
100
|
-
- `get_branch_diffs` - compare two branches or commits
|
|
101
|
-
- `get_commit_diff` - single commit changes
|
|
102
|
-
|
|
103
|
-
## Version Comparison
|
|
104
|
-
|
|
105
|
-
Track review progress across force-pushes:
|
|
106
|
-
|
|
107
|
-
```
|
|
108
|
-
list_merge_request_versions -> get versions list
|
|
109
|
-
get_merge_request_version -> get specific version details
|
|
110
|
-
```
|