@structured-world/gitlab-mcp 6.42.1 → 6.43.1
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/README.md +2 -1
- package/README.md.in +120 -0
- package/dist/src/cli/inject-tool-refs.d.ts +8 -1
- package/dist/src/cli/inject-tool-refs.js +53 -0
- package/dist/src/cli/inject-tool-refs.js.map +1 -1
- package/dist/structured-world-gitlab-mcp-6.43.1.tgz +0 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/dist/structured-world-gitlab-mcp-6.42.1.tgz +0 -0
package/README.md
CHANGED
|
@@ -25,7 +25,7 @@ A [Model Context Protocol](https://modelcontextprotocol.io) server that connects
|
|
|
25
25
|
}
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
**Requirements:** Node.js >= 24
|
|
28
|
+
**Requirements:** Node.js >= 24
|
|
29
29
|
|
|
30
30
|
## Highlights
|
|
31
31
|
|
|
@@ -97,6 +97,7 @@ docker run -i --rm -e GITLAB_TOKEN=your_token \
|
|
|
97
97
|
| `USE_REFS` | `true` | Branch & tag management |
|
|
98
98
|
| `USE_MEMBERS` | `true` | Team members |
|
|
99
99
|
| `USE_SEARCH` | `true` | Cross-project search |
|
|
100
|
+
| `USE_ITERATIONS` | `true` | Iteration planning (sprints) |
|
|
100
101
|
|
|
101
102
|
## Contributing
|
|
102
103
|
|
package/README.md.in
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# GitLab MCP Server
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@structured-world/gitlab-mcp) [](https://www.npmjs.com/package/@structured-world/gitlab-mcp) [](LICENSE) [](https://github.com/structured-world/gitlab-mcp/actions) [](https://codecov.io/gh/structured-world/gitlab-mcp) [](https://gitlab-mcp.sw.foundation/coverage/)
|
|
4
|
+
|
|
5
|
+
A [Model Context Protocol](https://modelcontextprotocol.io) server that connects AI agents to the GitLab API — __TOOL_COUNT__ tools across __ENTITY_COUNT__ entity types with CQRS architecture, OAuth 2.1, and multiple transport modes.
|
|
6
|
+
|
|
7
|
+
[](https://gitlab-mcp.sw.foundation/downloads/gitlab-mcp-latest.mcpb)
|
|
8
|
+
[](vscode:mcp/install?%7B%22name%22%3A%22gitlab-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40structured-world%2Fgitlab-mcp%22%5D%7D)
|
|
9
|
+
[](vscode-insiders:mcp/install?%7B%22name%22%3A%22gitlab-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40structured-world%2Fgitlab-mcp%22%5D%7D)
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
{
|
|
15
|
+
"mcpServers": {
|
|
16
|
+
"gitlab": {
|
|
17
|
+
"command": "npx",
|
|
18
|
+
"args": ["-y", "@structured-world/gitlab-mcp"],
|
|
19
|
+
"env": {
|
|
20
|
+
"GITLAB_TOKEN": "your_gitlab_token",
|
|
21
|
+
"GITLAB_API_URL": "https://gitlab.com"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**Requirements:** Node.js >= 24
|
|
29
|
+
|
|
30
|
+
## Highlights
|
|
31
|
+
|
|
32
|
+
- **__TOOL_COUNT__ tools** across __ENTITY_COUNT__ entity types — projects, merge requests, pipelines, work items, wiki, and more
|
|
33
|
+
- **CQRS architecture** — `browse_*` for queries, `manage_*` for commands
|
|
34
|
+
- **Multiple transports** — stdio, SSE, StreamableHTTP
|
|
35
|
+
- **OAuth 2.1** — Per-user authentication via Claude Custom Connector
|
|
36
|
+
- **Read-only mode** — Safe operation for production environments
|
|
37
|
+
- **Auto-discovery** — Detects GitLab config from git remotes
|
|
38
|
+
- **Fine-grained control** — Enable/disable tool groups, filter actions, customize descriptions
|
|
39
|
+
- **Docker support** — `ghcr.io/structured-world/gitlab-mcp:latest`
|
|
40
|
+
|
|
41
|
+
## Documentation
|
|
42
|
+
|
|
43
|
+
Full documentation is available at **[gitlab-mcp.sw.foundation](https://gitlab-mcp.sw.foundation)**
|
|
44
|
+
|
|
45
|
+
| Section | Description |
|
|
46
|
+
|---------|-------------|
|
|
47
|
+
| [Installation](https://gitlab-mcp.sw.foundation/guide/installation/npm) | npm, Docker, VS Code, Codex |
|
|
48
|
+
| [Configuration](https://gitlab-mcp.sw.foundation/guide/configuration) | Environment variables, feature flags |
|
|
49
|
+
| [Tool Reference](https://gitlab-mcp.sw.foundation/tools/) | All __TOOL_COUNT__ tools with parameters |
|
|
50
|
+
| [OAuth Setup](https://gitlab-mcp.sw.foundation/security/oauth) | Team authentication with Claude |
|
|
51
|
+
| [TLS/HTTPS](https://gitlab-mcp.sw.foundation/advanced/tls) | Production deployment with SSL |
|
|
52
|
+
| [Customization](https://gitlab-mcp.sw.foundation/advanced/customization) | Tool descriptions, action filtering |
|
|
53
|
+
| [CLI Tools](https://gitlab-mcp.sw.foundation/cli/list-tools) | Browse and export tool documentation |
|
|
54
|
+
|
|
55
|
+
### Auto-generated Tool Reference
|
|
56
|
+
|
|
57
|
+
For the complete tool reference with parameters:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# View locally
|
|
61
|
+
yarn list-tools --detail
|
|
62
|
+
|
|
63
|
+
# Generate documentation
|
|
64
|
+
yarn list-tools --export --toc > docs/TOOLS.md
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
See [docs/TOOLS.md](docs/TOOLS.md) for the auto-generated reference.
|
|
68
|
+
|
|
69
|
+
## Docker
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# HTTP mode
|
|
73
|
+
docker run -e PORT=3002 -e GITLAB_TOKEN=your_token -p 3333:3002 \
|
|
74
|
+
ghcr.io/structured-world/gitlab-mcp:latest
|
|
75
|
+
|
|
76
|
+
# stdio mode
|
|
77
|
+
docker run -i --rm -e GITLAB_TOKEN=your_token \
|
|
78
|
+
ghcr.io/structured-world/gitlab-mcp:latest
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Feature Flags
|
|
82
|
+
|
|
83
|
+
| Flag | Default | Tools Enabled |
|
|
84
|
+
|------|---------|---------------|
|
|
85
|
+
| `USE_LABELS` | `true` | Label management |
|
|
86
|
+
| `USE_MRS` | `true` | Merge requests |
|
|
87
|
+
| `USE_FILES` | `true` | File operations |
|
|
88
|
+
| `USE_VARIABLES` | `true` | CI/CD variables |
|
|
89
|
+
| `USE_WORKITEMS` | `true` | Issues, epics, tasks |
|
|
90
|
+
| `USE_WEBHOOKS` | `true` | Webhook management |
|
|
91
|
+
| `USE_SNIPPETS` | `true` | Code snippets |
|
|
92
|
+
| `USE_INTEGRATIONS` | `true` | 50+ integrations |
|
|
93
|
+
| `USE_GITLAB_WIKI` | `true` | Wiki pages |
|
|
94
|
+
| `USE_MILESTONE` | `true` | Milestones |
|
|
95
|
+
| `USE_PIPELINE` | `true` | Pipelines & CI/CD |
|
|
96
|
+
| `USE_RELEASES` | `true` | Release management |
|
|
97
|
+
| `USE_REFS` | `true` | Branch & tag management |
|
|
98
|
+
| `USE_MEMBERS` | `true` | Team members |
|
|
99
|
+
| `USE_SEARCH` | `true` | Cross-project search |
|
|
100
|
+
| `USE_ITERATIONS` | `true` | Iteration planning (sprints) |
|
|
101
|
+
|
|
102
|
+
## Contributing
|
|
103
|
+
|
|
104
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, testing, and PR guidelines.
|
|
105
|
+
|
|
106
|
+
## Support the Project
|
|
107
|
+
|
|
108
|
+
<div align="center">
|
|
109
|
+
|
|
110
|
+

|
|
111
|
+
|
|
112
|
+
USDT (TRC-20): `TFDsezHa1cBkoeZT5q2T49Wp66K8t2DmdA`
|
|
113
|
+
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
## License
|
|
117
|
+
|
|
118
|
+
Apache License 2.0 — see [LICENSE](LICENSE) for details.
|
|
119
|
+
|
|
120
|
+
Based on [zereight/gitlab-mcp](https://github.com/zereight/gitlab-mcp) (MIT). See [LICENSE.MIT](LICENSE.MIT).
|
|
@@ -21,6 +21,13 @@ declare function extractActions(schema: JsonSchemaProperty): ActionInfo[];
|
|
|
21
21
|
declare function generateActionsTable(actions: ActionInfo[]): string;
|
|
22
22
|
declare function findMarkers(content: string): MarkerMatch[];
|
|
23
23
|
declare function processFile(filePath: string, toolSchemas: Map<string, JsonSchemaProperty>, content?: string): boolean;
|
|
24
|
+
interface CountPlaceholders {
|
|
25
|
+
toolCount: number;
|
|
26
|
+
entityCount: number;
|
|
27
|
+
readonlyToolCount: number;
|
|
28
|
+
}
|
|
29
|
+
declare function replaceCountPlaceholders(filePath: string, counts: CountPlaceholders): boolean;
|
|
30
|
+
declare function countEntities(projectRoot: string): number;
|
|
24
31
|
export declare function main(): void;
|
|
25
|
-
export { extractActions, generateActionsTable, findMarkers, processFile };
|
|
32
|
+
export { extractActions, generateActionsTable, findMarkers, processFile, replaceCountPlaceholders, countEntities, };
|
|
26
33
|
export type { JsonSchemaProperty, ActionInfo, MarkerMatch };
|
|
@@ -39,6 +39,8 @@ exports.extractActions = extractActions;
|
|
|
39
39
|
exports.generateActionsTable = generateActionsTable;
|
|
40
40
|
exports.findMarkers = findMarkers;
|
|
41
41
|
exports.processFile = processFile;
|
|
42
|
+
exports.replaceCountPlaceholders = replaceCountPlaceholders;
|
|
43
|
+
exports.countEntities = countEntities;
|
|
42
44
|
const fs = __importStar(require("fs"));
|
|
43
45
|
const path = __importStar(require("path"));
|
|
44
46
|
const registry_manager_js_1 = require("../registry-manager.js");
|
|
@@ -148,6 +150,27 @@ function processFile(filePath, toolSchemas, content) {
|
|
|
148
150
|
}
|
|
149
151
|
return false;
|
|
150
152
|
}
|
|
153
|
+
function replaceCountPlaceholders(filePath, counts) {
|
|
154
|
+
const content = fs.readFileSync(filePath, "utf8");
|
|
155
|
+
const result = content
|
|
156
|
+
.replace(/__TOOL_COUNT__/g, String(counts.toolCount))
|
|
157
|
+
.replace(/__ENTITY_COUNT__/g, String(counts.entityCount))
|
|
158
|
+
.replace(/__READONLY_TOOL_COUNT__/g, String(counts.readonlyToolCount));
|
|
159
|
+
if (result !== content) {
|
|
160
|
+
fs.writeFileSync(filePath, result, "utf8");
|
|
161
|
+
return true;
|
|
162
|
+
}
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
function countEntities(projectRoot) {
|
|
166
|
+
const entitiesDir = path.join(projectRoot, "src", "entities");
|
|
167
|
+
if (!fs.existsSync(entitiesDir))
|
|
168
|
+
return 0;
|
|
169
|
+
return fs
|
|
170
|
+
.readdirSync(entitiesDir, { withFileTypes: true })
|
|
171
|
+
.filter(d => d.isDirectory() && fs.existsSync(path.join(entitiesDir, d.name, "registry.ts")))
|
|
172
|
+
.length;
|
|
173
|
+
}
|
|
151
174
|
function main() {
|
|
152
175
|
let projectRoot = process.cwd();
|
|
153
176
|
while (!fs.existsSync(path.join(projectRoot, "package.json"))) {
|
|
@@ -167,6 +190,36 @@ function main() {
|
|
|
167
190
|
for (const tool of allTools) {
|
|
168
191
|
toolSchemas.set(tool.name, tool.inputSchema);
|
|
169
192
|
}
|
|
193
|
+
const toolCount = allTools.length;
|
|
194
|
+
const entityCount = countEntities(projectRoot);
|
|
195
|
+
const readonlyToolCount = allTools.filter(t => t.name.startsWith("browse_") || t.name === "manage_context").length;
|
|
196
|
+
console.log(` Tool count: ${toolCount}, Entity count: ${entityCount}, Read-only: ${readonlyToolCount}`);
|
|
197
|
+
const counts = { toolCount, entityCount, readonlyToolCount };
|
|
198
|
+
const docsDir = path.join(projectRoot, "docs");
|
|
199
|
+
let templateCount = 0;
|
|
200
|
+
if (fs.existsSync(docsDir)) {
|
|
201
|
+
function processTemplates(dir) {
|
|
202
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
203
|
+
const fullPath = path.join(dir, entry.name);
|
|
204
|
+
if (entry.isDirectory() && !["node_modules", ".vitepress", "dist"].includes(entry.name)) {
|
|
205
|
+
processTemplates(fullPath);
|
|
206
|
+
}
|
|
207
|
+
else if (entry.isFile() &&
|
|
208
|
+
(entry.name.endsWith(".md.in") || entry.name.endsWith(".txt.in"))) {
|
|
209
|
+
const outputPath = fullPath.replace(/\.in$/, "");
|
|
210
|
+
fs.copyFileSync(fullPath, outputPath);
|
|
211
|
+
replaceCountPlaceholders(outputPath, counts);
|
|
212
|
+
templateCount++;
|
|
213
|
+
const relPath = path.relative(projectRoot, outputPath);
|
|
214
|
+
console.log(` Generated: ${relPath} (from ${entry.name})`);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
processTemplates(docsDir);
|
|
219
|
+
if (templateCount > 0) {
|
|
220
|
+
console.log(` Generated ${templateCount} file(s) from .in templates`);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
170
223
|
const mdFiles = fs
|
|
171
224
|
.readdirSync(docsToolsDir)
|
|
172
225
|
.filter(f => f.endsWith(".md"))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-tool-refs.js","sourceRoot":"","sources":["../../../src/cli/inject-tool-refs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"inject-tool-refs.js","sourceRoot":"","sources":["../../../src/cli/inject-tool-refs.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|