gitlab-mcp 1.1.0 → 1.2.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/LICENSE +21 -0
- package/README.md +12 -1
- package/dist/config/dotenv.d.ts +2 -0
- package/dist/config/dotenv.js +40 -0
- package/dist/config/dotenv.js.map +1 -0
- package/dist/config/env.d.ts +55 -0
- package/dist/config/env.js +164 -0
- package/dist/config/env.js.map +1 -0
- package/dist/http-app.d.ts +45 -0
- package/dist/http-app.js +550 -0
- package/dist/http-app.js.map +1 -0
- package/dist/http.d.ts +2 -0
- package/dist/http.js +65 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +65 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/auth-context.d.ts +9 -0
- package/dist/lib/auth-context.js +9 -0
- package/dist/lib/auth-context.js.map +1 -0
- package/dist/lib/gitlab-client.d.ts +331 -0
- package/dist/lib/gitlab-client.js +1025 -0
- package/dist/lib/gitlab-client.js.map +1 -0
- package/dist/lib/logger.d.ts +2 -0
- package/dist/lib/logger.js +13 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/network.d.ts +3 -0
- package/dist/lib/network.js +38 -0
- package/dist/lib/network.js.map +1 -0
- package/dist/lib/oauth.d.ts +29 -0
- package/dist/lib/oauth.js +220 -0
- package/dist/lib/oauth.js.map +1 -0
- package/dist/lib/output.d.ts +14 -0
- package/dist/lib/output.js +38 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/policy.d.ts +25 -0
- package/dist/lib/policy.js +48 -0
- package/dist/lib/policy.js.map +1 -0
- package/dist/lib/request-runtime.d.ts +26 -0
- package/dist/lib/request-runtime.js +323 -0
- package/dist/lib/request-runtime.js.map +1 -0
- package/dist/lib/sanitize.d.ts +1 -0
- package/dist/lib/sanitize.js +21 -0
- package/dist/lib/sanitize.js.map +1 -0
- package/dist/lib/session-capacity.d.ts +8 -0
- package/dist/lib/session-capacity.js +7 -0
- package/dist/lib/session-capacity.js.map +1 -0
- package/dist/server/build-server.d.ts +3 -0
- package/dist/server/build-server.js +13 -0
- package/dist/server/build-server.js.map +1 -0
- package/dist/tools/gitlab.d.ts +9 -0
- package/dist/tools/gitlab.js +2576 -0
- package/dist/tools/gitlab.js.map +1 -0
- package/dist/tools/health.d.ts +2 -0
- package/dist/tools/health.js +21 -0
- package/dist/tools/health.js.map +1 -0
- package/dist/tools/mr-code-context.d.ts +38 -0
- package/dist/tools/mr-code-context.js +330 -0
- package/dist/tools/mr-code-context.js.map +1 -0
- package/{src/types/context.ts → dist/types/context.d.ts} +5 -6
- package/dist/types/context.js +2 -0
- package/dist/types/context.js.map +1 -0
- package/docs/architecture.md +10 -10
- package/docs/configuration.md +12 -7
- package/docs/mcp-integration-testing-best-practices.md +981 -0
- package/package.json +13 -1
- package/.dockerignore +0 -7
- package/.editorconfig +0 -9
- package/.env.example +0 -75
- package/.github/workflows/nodejs.yml +0 -31
- package/.github/workflows/npm-publish.yml +0 -31
- package/.husky/pre-commit +0 -1
- package/.nvmrc +0 -1
- package/.prettierrc.json +0 -6
- package/Dockerfile +0 -20
- package/docker-compose.yml +0 -10
- package/eslint.config.js +0 -23
- package/scripts/get-oauth-token.example.sh +0 -15
- package/src/config/env.ts +0 -171
- package/src/http.ts +0 -620
- package/src/index.ts +0 -77
- package/src/lib/auth-context.ts +0 -19
- package/src/lib/gitlab-client.ts +0 -1810
- package/src/lib/logger.ts +0 -17
- package/src/lib/network.ts +0 -45
- package/src/lib/oauth.ts +0 -287
- package/src/lib/output.ts +0 -51
- package/src/lib/policy.ts +0 -78
- package/src/lib/request-runtime.ts +0 -376
- package/src/lib/sanitize.ts +0 -25
- package/src/lib/session-capacity.ts +0 -14
- package/src/server/build-server.ts +0 -17
- package/src/tools/gitlab.ts +0 -3135
- package/src/tools/health.ts +0 -27
- package/src/tools/mr-code-context.ts +0 -473
- package/tests/auth-context.test.ts +0 -102
- package/tests/gitlab-client.test.ts +0 -672
- package/tests/graphql-guard.test.ts +0 -121
- package/tests/integration/agent-loop.integration.test.ts +0 -558
- package/tests/integration/server.integration.test.ts +0 -543
- package/tests/mr-code-context.test.ts +0 -600
- package/tests/oauth.test.ts +0 -43
- package/tests/output.test.ts +0 -186
- package/tests/policy.test.ts +0 -324
- package/tests/request-runtime.test.ts +0 -252
- package/tests/sanitize.test.ts +0 -123
- package/tests/session-capacity.test.ts +0 -49
- package/tests/upload-reference.test.ts +0 -88
- package/tsconfig.build.json +0 -11
- package/tsconfig.json +0 -21
- package/vitest.config.ts +0 -12
|
@@ -3,11 +3,10 @@ import type { OutputFormatter } from "../lib/output.js";
|
|
|
3
3
|
import type { ToolPolicyEngine } from "../lib/policy.js";
|
|
4
4
|
import type { GitLabClient } from "../lib/gitlab-client.js";
|
|
5
5
|
import type { Logger } from "pino";
|
|
6
|
-
|
|
7
6
|
export interface AppContext {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
env: AppEnv;
|
|
8
|
+
logger: Logger;
|
|
9
|
+
gitlab: GitLabClient;
|
|
10
|
+
policy: ToolPolicyEngine;
|
|
11
|
+
formatter: OutputFormatter;
|
|
13
12
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/types/context.ts"],"names":[],"mappings":""}
|
package/docs/architecture.md
CHANGED
|
@@ -9,7 +9,7 @@ gitlab-mcp is structured as a layered MCP server with clear separation between t
|
|
|
9
9
|
```
|
|
10
10
|
┌──────────────────────────────────────────────────────┐
|
|
11
11
|
│ Transport Layer │
|
|
12
|
-
│ index.ts (stdio) │ http.ts (HTTP/SSE)
|
|
12
|
+
│ index.ts (stdio) │ http.ts (HTTP/SSE) │
|
|
13
13
|
└─────────┬──────────┴──────────┬──────────────────────┘
|
|
14
14
|
│ │
|
|
15
15
|
│ ┌────────────────▼────────────────────┐
|
|
@@ -21,20 +21,20 @@ gitlab-mcp is structured as a layered MCP server with clear separation between t
|
|
|
21
21
|
│ └────────────────┬────────────────────┘
|
|
22
22
|
│ │
|
|
23
23
|
┌─────────▼─────────────────────▼──────────────────────┐
|
|
24
|
-
│ MCP Server Factory
|
|
25
|
-
│ build-server.ts
|
|
24
|
+
│ MCP Server Factory │
|
|
25
|
+
│ build-server.ts │
|
|
26
26
|
│ ┌──────────────────────────────────────────────┐ │
|
|
27
|
-
│ │ registerHealthTool()
|
|
28
|
-
│ │ registerGitLabTools() ──▶ Policy filtering
|
|
27
|
+
│ │ registerHealthTool() │ │
|
|
28
|
+
│ │ registerGitLabTools() ──▶ Policy filtering │ │
|
|
29
29
|
│ └──────────────────────────────────────────────┘ │
|
|
30
30
|
└───────────────────────┬──────────────────────────────┘
|
|
31
31
|
│
|
|
32
32
|
┌───────────────────────▼──────────────────────────────┐
|
|
33
|
-
│ AppContext
|
|
34
|
-
│ ┌──────────┐ ┌───────────┐ ┌──────────────────┐
|
|
35
|
-
│ │ env │ │ logger │ │ gitlab (Client)
|
|
36
|
-
│ │ (AppEnv) │ │ (Pino) │ │
|
|
37
|
-
│ └──────────┘ └───────────┘ └──────────────────┘
|
|
33
|
+
│ AppContext │
|
|
34
|
+
│ ┌──────────┐ ┌───────────┐ ┌──────────────────┐ │
|
|
35
|
+
│ │ env │ │ logger │ │ gitlab (Client) │ │
|
|
36
|
+
│ │ (AppEnv) │ │ (Pino) │ │ │ │
|
|
37
|
+
│ └──────────┘ └───────────┘ └──────────────────┘ │
|
|
38
38
|
│ ┌──────────────────┐ ┌─────────────────────────┐ │
|
|
39
39
|
│ │ policy (Engine) │ │ formatter (Output) │ │
|
|
40
40
|
│ └──────────────────┘ └─────────────────────────┘ │
|
package/docs/configuration.md
CHANGED
|
@@ -2,16 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
All configuration is done through environment variables. The server validates all values at startup using [Zod](https://zod.dev/) schemas and will fail fast with descriptive errors if any value is invalid.
|
|
4
4
|
|
|
5
|
-
You can set variables in a `.env` file (loaded automatically via `dotenv`) or pass them directly as environment variables.
|
|
5
|
+
You can set variables in a `.env` file (loaded automatically via `dotenv`) or pass them directly as environment variables. To load a different file, use `--env-file`:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
node dist/index.js --env-file .env.local
|
|
9
|
+
node dist/http.js --env-file=.env.production
|
|
10
|
+
```
|
|
6
11
|
|
|
7
12
|
## Core Settings
|
|
8
13
|
|
|
9
|
-
| Variable | Type | Default
|
|
10
|
-
| -------------------- | ------------------------------------------------------------------------ |
|
|
11
|
-
| `NODE_ENV` | `development` \| `test` \| `production` | `development`
|
|
12
|
-
| `LOG_LEVEL` | `fatal` \| `error` \| `warn` \| `info` \| `debug` \| `trace` \| `silent` | `info`
|
|
13
|
-
| `MCP_SERVER_NAME` | string | `gitlab-mcp`
|
|
14
|
-
| `MCP_SERVER_VERSION` | string | `
|
|
14
|
+
| Variable | Type | Default | Description |
|
|
15
|
+
| -------------------- | ------------------------------------------------------------------------ | ---------------------- | -------------------------------------------------------- |
|
|
16
|
+
| `NODE_ENV` | `development` \| `test` \| `production` | `development` | Runtime environment. Affects error detail mode defaults. |
|
|
17
|
+
| `LOG_LEVEL` | `fatal` \| `error` \| `warn` \| `info` \| `debug` \| `trace` \| `silent` | `info` | Pino log level. |
|
|
18
|
+
| `MCP_SERVER_NAME` | string | `gitlab-mcp` | Server name reported in MCP handshake. |
|
|
19
|
+
| `MCP_SERVER_VERSION` | string | `package.json` version | Server version reported in MCP handshake. |
|
|
15
20
|
|
|
16
21
|
## GitLab API
|
|
17
22
|
|