ai-cli-mcp 2.3.1 → 2.3.3

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.
@@ -2,9 +2,9 @@ name: Node.js CI
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [ main ]
5
+ branches: [ develop ]
6
6
  pull_request:
7
- branches: [ main ]
7
+ branches: [ develop ]
8
8
 
9
9
  jobs:
10
10
  build:
@@ -0,0 +1,49 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - develop
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ release:
13
+ name: Release
14
+ runs-on: ubuntu-latest
15
+ permissions:
16
+ contents: write # to create release and push changelog
17
+ issues: write # to comment on released issues
18
+ pull-requests: write # to comment on released PRs
19
+ id-token: write # for OIDC trusted publishing
20
+ steps:
21
+ - name: Checkout
22
+ uses: actions/checkout@v4
23
+ with:
24
+ fetch-depth: 0
25
+ fetch-tags: true
26
+ persist-credentials: false
27
+
28
+ - name: Setup Node.js
29
+ uses: actions/setup-node@v4
30
+ with:
31
+ node-version: '24'
32
+ registry-url: 'https://registry.npmjs.org'
33
+
34
+ - name: Install dependencies
35
+ run: npm clean-install
36
+
37
+ - name: Build
38
+ run: npm run build
39
+
40
+ - name: Run tests
41
+ run: npm test
42
+
43
+ - name: Verify provenance attestations
44
+ run: npm audit signatures
45
+
46
+ - name: Release
47
+ env:
48
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
49
+ run: npx semantic-release
@@ -1,43 +1,20 @@
1
- name: Tests
1
+ name: test
2
2
 
3
3
  on:
4
- push:
5
- branches: [ main ]
6
4
  pull_request:
7
- branches: [ main ]
8
5
 
9
6
  jobs:
10
7
  test:
11
- runs-on: macos-latest
12
- strategy:
13
- matrix:
14
- node-version: [20.x, 22.x]
15
-
8
+ runs-on: ubuntu-latest
16
9
  steps:
17
- - uses: actions/checkout@v4
18
-
19
- - name: Use Node.js ${{ matrix.node-version }}
20
- uses: actions/setup-node@v4
21
- with:
22
- node-version: ${{ matrix.node-version }}
23
-
24
- - name: Install dependencies
25
- run: npm ci
26
-
27
- - name: Build
28
- run: npm run build
29
-
30
- - name: Run unit tests only
31
- run: npm run test:unit
32
-
33
- - name: Run all tests with coverage
34
- run: npm run test:coverage
35
-
36
- - name: Upload coverage to Codecov
37
- uses: codecov/codecov-action@v4
38
- if: matrix.node-version == '20.x'
39
- with:
40
- token: ${{ secrets.CODECOV_TOKEN }}
41
- file: ./coverage/coverage-final.json
42
- flags: unittests
43
- name: codecov-umbrella
10
+ - name: Checkout
11
+ uses: actions/checkout@v4
12
+ - name: Setup Node
13
+ uses: actions/setup-node@v4
14
+ with:
15
+ node-version: '20'
16
+ cache: 'npm'
17
+ - name: Install
18
+ run: npm ci
19
+ - name: Test
20
+ run: npm test
package/.mcp.json ADDED
@@ -0,0 +1,10 @@
1
+ {
2
+ "mcpServers": {
3
+ "acm-dev": {
4
+ "command": "npm",
5
+ "args": [
6
+ "start"
7
+ ]
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "branches": ["develop"],
3
+ "plugins": [
4
+ "@semantic-release/commit-analyzer",
5
+ "@semantic-release/release-notes-generator",
6
+ ["@semantic-release/changelog", {
7
+ "changelogFile": "CHANGELOG.md"
8
+ }],
9
+ "@semantic-release/npm",
10
+ ["@semantic-release/github", {
11
+ "assets": []
12
+ }],
13
+ ["@semantic-release/git", {
14
+ "assets": ["CHANGELOG.md", "package.json", "package-lock.json"],
15
+ "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
16
+ }]
17
+ ]
18
+ }
package/CHANGELOG.md CHANGED
@@ -1,3 +1,152 @@
1
+ ## [2.3.3](https://github.com/mkXultra/claude-code-mcp/compare/v2.3.2...v2.3.3) (2026-01-20)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * trigger release with correct version ([a0af8cf](https://github.com/mkXultra/claude-code-mcp/commit/a0af8cf25c8d3a1fd3ca7ef26d22f85981cc6f2f))
7
+
8
+ # 1.0.0 (2026-01-20)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * add fetch-tags to checkout for semantic-release ([33b8650](https://github.com/mkXultra/claude-code-mcp/commit/33b8650bbeb77169c083256f82534ded14f6ecd2))
14
+ * Apply npm pkg fix for bin path ([e47140d](https://github.com/mkXultra/claude-code-mcp/commit/e47140d6beebacc60ca1cf55903608f9f207ff94))
15
+ * Remove commented-out debug logs from server.ts ([1ef44bb](https://github.com/mkXultra/claude-code-mcp/commit/1ef44bb280fea68dc874fb0d978fea682ddbb681))
16
+ * retry release after tag cleanup ([825838b](https://github.com/mkXultra/claude-code-mcp/commit/825838b05b7e6a10ae01d7bc7bb9179a8d6095bc))
17
+ * rm not use param ([ad9670c](https://github.com/mkXultra/claude-code-mcp/commit/ad9670cfe04507e40abab2427702b680b00353db))
18
+ * trigger release for semantic-release setup ([5e117ee](https://github.com/mkXultra/claude-code-mcp/commit/5e117ee31583ccef2e49c820c815c19716abe392))
19
+ * update tests to match current implementation ([2aa7758](https://github.com/mkXultra/claude-code-mcp/commit/2aa775813678d0a9da7150411fd9a1429ff7736f))
20
+ * use VITEST env check for test detection and add createTestClient helper ([84fa153](https://github.com/mkXultra/claude-code-mcp/commit/84fa1535aa2c50acf9d5a9650bf881df7ff8d470))
21
+
22
+
23
+ ### Features
24
+
25
+ * Add CHANGELOG and finalize server ([c50a6bb](https://github.com/mkXultra/claude-code-mcp/commit/c50a6bbb5d7dd8d849b1877e19e97a5aedd63493))
26
+ * add CWD to code prompt and bump version to 1.1.0 ([b62c9c2](https://github.com/mkXultra/claude-code-mcp/commit/b62c9c2c802f84d0d4eb80e970d08ef25a1a9c40))
27
+ * add Gemini CLI support to MCP server ([a9942bc](https://github.com/mkXultra/claude-code-mcp/commit/a9942bc3b0410f5cb45e99108d1b13c252cc5655))
28
+ * Add GitHub Actions CI workflow for build checks ([#2](https://github.com/mkXultra/claude-code-mcp/issues/2)) ([613c0cb](https://github.com/mkXultra/claude-code-mcp/commit/613c0cb855b408d83c661a2317db328548dc72e8))
29
+ * add process cleanup tool and simplify list output ([cc03323](https://github.com/mkXultra/claude-code-mcp/commit/cc03323df9a24be3c4dcbb6fa1f41d2056b942e4))
30
+ * add semantic-release with npm trusted publishing ([ffdf7c8](https://github.com/mkXultra/claude-code-mcp/commit/ffdf7c876060c96cfaf58a74573bda462552fd83))
31
+ * add wait tool ,support gemini 3.9 and continue conversation gemini ([5d249ca](https://github.com/mkXultra/claude-code-mcp/commit/5d249ca7c36a6ea2eea26fd15b4796b2721d19f3))
32
+ * Codex セッション再開機能とMCP設定ファイルの追加 ([d02b329](https://github.com/mkXultra/claude-code-mcp/commit/d02b329a69df0fcfef65e16609cbb78dc582f1ff))
33
+ * Finalize server with dynamic path finding and JSON output ([6c3c410](https://github.com/mkXultra/claude-code-mcp/commit/6c3c4106f4c5f6fdc5cc8e25bb3b0ea142d7e015))
34
+ * Integrate CWD parsing from prompt, fix lint errors ([5113edb](https://github.com/mkXultra/claude-code-mcp/commit/5113edba01a905637075a34fe771d0df66aef6e1))
35
+ * Organize screenshots, enhance CI, and clean up Git tracking ([7bbc42d](https://github.com/mkXultra/claude-code-mcp/commit/7bbc42d8df204ff6cb1a704ab812d97ff55a2bda))
36
+ * Refine server, JSON parsing, docs, and metadata ([4ab9a7f](https://github.com/mkXultra/claude-code-mcp/commit/4ab9a7f8ee0d84d730e3f0faba6fed302be23736))
37
+ * Resolve npm link, ESM import, and MCP config issues ([7b0cc83](https://github.com/mkXultra/claude-code-mcp/commit/7b0cc8395eddf25f53835a79d156efee6363bc2a))
38
+ * **server:** Prepend system instruction to Claude prompts for broader file access context ([08b9f2d](https://github.com/mkXultra/claude-code-mcp/commit/08b9f2d0cfb0294758cb05cdfc63ec9e5a414b53))
39
+ * **server:** Release v1.6.0 - Updates timeout, changelog, error handling, and description ([4382617](https://github.com/mkXultra/claude-code-mcp/commit/4382617bf90924e7df66c807240f928fa3b45507))
40
+ * **server:** Release v1.6.0 - Updates timeout, changelog, error handling, and description ([855be94](https://github.com/mkXultra/claude-code-mcp/commit/855be9478cdd2772ff03ea26b2541561422e8599))
41
+ * support codex for gpt5 ([e3111d8](https://github.com/mkXultra/claude-code-mcp/commit/e3111d822c33fd58e6c18adbf8ecd4e31919cf9f))
42
+ * Unify tools into agentic 'code' tool (v1.4.0) ([87c6704](https://github.com/mkXultra/claude-code-mcp/commit/87c6704ea0bed49140e271d56a50cf268dc510e2))
43
+ * update 'code' tool description in server.ts for clarity and power ([dfd2327](https://github.com/mkXultra/claude-code-mcp/commit/dfd2327abff2123fc9b3cccb8d5f6e2cdfc01d1d))
44
+
45
+ # 1.0.0 (2026-01-20)
46
+
47
+
48
+ ### Bug Fixes
49
+
50
+ * Apply npm pkg fix for bin path ([e47140d](https://github.com/mkXultra/claude-code-mcp/commit/e47140d6beebacc60ca1cf55903608f9f207ff94))
51
+ * Remove commented-out debug logs from server.ts ([1ef44bb](https://github.com/mkXultra/claude-code-mcp/commit/1ef44bb280fea68dc874fb0d978fea682ddbb681))
52
+ * retry release after tag cleanup ([825838b](https://github.com/mkXultra/claude-code-mcp/commit/825838b05b7e6a10ae01d7bc7bb9179a8d6095bc))
53
+ * rm not use param ([ad9670c](https://github.com/mkXultra/claude-code-mcp/commit/ad9670cfe04507e40abab2427702b680b00353db))
54
+ * trigger release for semantic-release setup ([5e117ee](https://github.com/mkXultra/claude-code-mcp/commit/5e117ee31583ccef2e49c820c815c19716abe392))
55
+ * update tests to match current implementation ([2aa7758](https://github.com/mkXultra/claude-code-mcp/commit/2aa775813678d0a9da7150411fd9a1429ff7736f))
56
+ * use VITEST env check for test detection and add createTestClient helper ([84fa153](https://github.com/mkXultra/claude-code-mcp/commit/84fa1535aa2c50acf9d5a9650bf881df7ff8d470))
57
+
58
+
59
+ ### Features
60
+
61
+ * Add CHANGELOG and finalize server ([c50a6bb](https://github.com/mkXultra/claude-code-mcp/commit/c50a6bbb5d7dd8d849b1877e19e97a5aedd63493))
62
+ * add CWD to code prompt and bump version to 1.1.0 ([b62c9c2](https://github.com/mkXultra/claude-code-mcp/commit/b62c9c2c802f84d0d4eb80e970d08ef25a1a9c40))
63
+ * add Gemini CLI support to MCP server ([a9942bc](https://github.com/mkXultra/claude-code-mcp/commit/a9942bc3b0410f5cb45e99108d1b13c252cc5655))
64
+ * Add GitHub Actions CI workflow for build checks ([#2](https://github.com/mkXultra/claude-code-mcp/issues/2)) ([613c0cb](https://github.com/mkXultra/claude-code-mcp/commit/613c0cb855b408d83c661a2317db328548dc72e8))
65
+ * add process cleanup tool and simplify list output ([cc03323](https://github.com/mkXultra/claude-code-mcp/commit/cc03323df9a24be3c4dcbb6fa1f41d2056b942e4))
66
+ * add semantic-release with npm trusted publishing ([ffdf7c8](https://github.com/mkXultra/claude-code-mcp/commit/ffdf7c876060c96cfaf58a74573bda462552fd83))
67
+ * add wait tool ,support gemini 3.9 and continue conversation gemini ([5d249ca](https://github.com/mkXultra/claude-code-mcp/commit/5d249ca7c36a6ea2eea26fd15b4796b2721d19f3))
68
+ * Codex セッション再開機能とMCP設定ファイルの追加 ([d02b329](https://github.com/mkXultra/claude-code-mcp/commit/d02b329a69df0fcfef65e16609cbb78dc582f1ff))
69
+ * Finalize server with dynamic path finding and JSON output ([6c3c410](https://github.com/mkXultra/claude-code-mcp/commit/6c3c4106f4c5f6fdc5cc8e25bb3b0ea142d7e015))
70
+ * Integrate CWD parsing from prompt, fix lint errors ([5113edb](https://github.com/mkXultra/claude-code-mcp/commit/5113edba01a905637075a34fe771d0df66aef6e1))
71
+ * Organize screenshots, enhance CI, and clean up Git tracking ([7bbc42d](https://github.com/mkXultra/claude-code-mcp/commit/7bbc42d8df204ff6cb1a704ab812d97ff55a2bda))
72
+ * Refine server, JSON parsing, docs, and metadata ([4ab9a7f](https://github.com/mkXultra/claude-code-mcp/commit/4ab9a7f8ee0d84d730e3f0faba6fed302be23736))
73
+ * Resolve npm link, ESM import, and MCP config issues ([7b0cc83](https://github.com/mkXultra/claude-code-mcp/commit/7b0cc8395eddf25f53835a79d156efee6363bc2a))
74
+ * **server:** Prepend system instruction to Claude prompts for broader file access context ([08b9f2d](https://github.com/mkXultra/claude-code-mcp/commit/08b9f2d0cfb0294758cb05cdfc63ec9e5a414b53))
75
+ * **server:** Release v1.6.0 - Updates timeout, changelog, error handling, and description ([4382617](https://github.com/mkXultra/claude-code-mcp/commit/4382617bf90924e7df66c807240f928fa3b45507))
76
+ * **server:** Release v1.6.0 - Updates timeout, changelog, error handling, and description ([855be94](https://github.com/mkXultra/claude-code-mcp/commit/855be9478cdd2772ff03ea26b2541561422e8599))
77
+ * support codex for gpt5 ([e3111d8](https://github.com/mkXultra/claude-code-mcp/commit/e3111d822c33fd58e6c18adbf8ecd4e31919cf9f))
78
+ * Unify tools into agentic 'code' tool (v1.4.0) ([87c6704](https://github.com/mkXultra/claude-code-mcp/commit/87c6704ea0bed49140e271d56a50cf268dc510e2))
79
+ * update 'code' tool description in server.ts for clarity and power ([dfd2327](https://github.com/mkXultra/claude-code-mcp/commit/dfd2327abff2123fc9b3cccb8d5f6e2cdfc01d1d))
80
+
81
+ # 1.0.0 (2026-01-20)
82
+
83
+
84
+ ### Bug Fixes
85
+
86
+ * Apply npm pkg fix for bin path ([e47140d](https://github.com/mkXultra/claude-code-mcp/commit/e47140d6beebacc60ca1cf55903608f9f207ff94))
87
+ * Remove commented-out debug logs from server.ts ([1ef44bb](https://github.com/mkXultra/claude-code-mcp/commit/1ef44bb280fea68dc874fb0d978fea682ddbb681))
88
+ * rm not use param ([ad9670c](https://github.com/mkXultra/claude-code-mcp/commit/ad9670cfe04507e40abab2427702b680b00353db))
89
+ * trigger release for semantic-release setup ([5e117ee](https://github.com/mkXultra/claude-code-mcp/commit/5e117ee31583ccef2e49c820c815c19716abe392))
90
+ * update tests to match current implementation ([2aa7758](https://github.com/mkXultra/claude-code-mcp/commit/2aa775813678d0a9da7150411fd9a1429ff7736f))
91
+ * use VITEST env check for test detection and add createTestClient helper ([84fa153](https://github.com/mkXultra/claude-code-mcp/commit/84fa1535aa2c50acf9d5a9650bf881df7ff8d470))
92
+
93
+
94
+ ### Features
95
+
96
+ * Add CHANGELOG and finalize server ([c50a6bb](https://github.com/mkXultra/claude-code-mcp/commit/c50a6bbb5d7dd8d849b1877e19e97a5aedd63493))
97
+ * add CWD to code prompt and bump version to 1.1.0 ([b62c9c2](https://github.com/mkXultra/claude-code-mcp/commit/b62c9c2c802f84d0d4eb80e970d08ef25a1a9c40))
98
+ * add Gemini CLI support to MCP server ([a9942bc](https://github.com/mkXultra/claude-code-mcp/commit/a9942bc3b0410f5cb45e99108d1b13c252cc5655))
99
+ * Add GitHub Actions CI workflow for build checks ([#2](https://github.com/mkXultra/claude-code-mcp/issues/2)) ([613c0cb](https://github.com/mkXultra/claude-code-mcp/commit/613c0cb855b408d83c661a2317db328548dc72e8))
100
+ * add process cleanup tool and simplify list output ([cc03323](https://github.com/mkXultra/claude-code-mcp/commit/cc03323df9a24be3c4dcbb6fa1f41d2056b942e4))
101
+ * add semantic-release with npm trusted publishing ([ffdf7c8](https://github.com/mkXultra/claude-code-mcp/commit/ffdf7c876060c96cfaf58a74573bda462552fd83))
102
+ * add wait tool ,support gemini 3.9 and continue conversation gemini ([5d249ca](https://github.com/mkXultra/claude-code-mcp/commit/5d249ca7c36a6ea2eea26fd15b4796b2721d19f3))
103
+ * Codex セッション再開機能とMCP設定ファイルの追加 ([d02b329](https://github.com/mkXultra/claude-code-mcp/commit/d02b329a69df0fcfef65e16609cbb78dc582f1ff))
104
+ * Finalize server with dynamic path finding and JSON output ([6c3c410](https://github.com/mkXultra/claude-code-mcp/commit/6c3c4106f4c5f6fdc5cc8e25bb3b0ea142d7e015))
105
+ * Integrate CWD parsing from prompt, fix lint errors ([5113edb](https://github.com/mkXultra/claude-code-mcp/commit/5113edba01a905637075a34fe771d0df66aef6e1))
106
+ * Organize screenshots, enhance CI, and clean up Git tracking ([7bbc42d](https://github.com/mkXultra/claude-code-mcp/commit/7bbc42d8df204ff6cb1a704ab812d97ff55a2bda))
107
+ * Refine server, JSON parsing, docs, and metadata ([4ab9a7f](https://github.com/mkXultra/claude-code-mcp/commit/4ab9a7f8ee0d84d730e3f0faba6fed302be23736))
108
+ * Resolve npm link, ESM import, and MCP config issues ([7b0cc83](https://github.com/mkXultra/claude-code-mcp/commit/7b0cc8395eddf25f53835a79d156efee6363bc2a))
109
+ * **server:** Prepend system instruction to Claude prompts for broader file access context ([08b9f2d](https://github.com/mkXultra/claude-code-mcp/commit/08b9f2d0cfb0294758cb05cdfc63ec9e5a414b53))
110
+ * **server:** Release v1.6.0 - Updates timeout, changelog, error handling, and description ([4382617](https://github.com/mkXultra/claude-code-mcp/commit/4382617bf90924e7df66c807240f928fa3b45507))
111
+ * **server:** Release v1.6.0 - Updates timeout, changelog, error handling, and description ([855be94](https://github.com/mkXultra/claude-code-mcp/commit/855be9478cdd2772ff03ea26b2541561422e8599))
112
+ * support codex for gpt5 ([e3111d8](https://github.com/mkXultra/claude-code-mcp/commit/e3111d822c33fd58e6c18adbf8ecd4e31919cf9f))
113
+ * Unify tools into agentic 'code' tool (v1.4.0) ([87c6704](https://github.com/mkXultra/claude-code-mcp/commit/87c6704ea0bed49140e271d56a50cf268dc510e2))
114
+ * update 'code' tool description in server.ts for clarity and power ([dfd2327](https://github.com/mkXultra/claude-code-mcp/commit/dfd2327abff2123fc9b3cccb8d5f6e2cdfc01d1d))
115
+
116
+ # 1.0.0 (2026-01-20)
117
+
118
+
119
+ ### Bug Fixes
120
+
121
+ * Apply npm pkg fix for bin path ([e47140d](https://github.com/mkXultra/claude-code-mcp/commit/e47140d6beebacc60ca1cf55903608f9f207ff94))
122
+ * Remove commented-out debug logs from server.ts ([1ef44bb](https://github.com/mkXultra/claude-code-mcp/commit/1ef44bb280fea68dc874fb0d978fea682ddbb681))
123
+ * rm not use param ([ad9670c](https://github.com/mkXultra/claude-code-mcp/commit/ad9670cfe04507e40abab2427702b680b00353db))
124
+ * update tests to match current implementation ([2aa7758](https://github.com/mkXultra/claude-code-mcp/commit/2aa775813678d0a9da7150411fd9a1429ff7736f))
125
+ * use VITEST env check for test detection and add createTestClient helper ([84fa153](https://github.com/mkXultra/claude-code-mcp/commit/84fa1535aa2c50acf9d5a9650bf881df7ff8d470))
126
+
127
+
128
+ ### Features
129
+
130
+ * Add CHANGELOG and finalize server ([c50a6bb](https://github.com/mkXultra/claude-code-mcp/commit/c50a6bbb5d7dd8d849b1877e19e97a5aedd63493))
131
+ * add CWD to code prompt and bump version to 1.1.0 ([b62c9c2](https://github.com/mkXultra/claude-code-mcp/commit/b62c9c2c802f84d0d4eb80e970d08ef25a1a9c40))
132
+ * add Gemini CLI support to MCP server ([a9942bc](https://github.com/mkXultra/claude-code-mcp/commit/a9942bc3b0410f5cb45e99108d1b13c252cc5655))
133
+ * Add GitHub Actions CI workflow for build checks ([#2](https://github.com/mkXultra/claude-code-mcp/issues/2)) ([613c0cb](https://github.com/mkXultra/claude-code-mcp/commit/613c0cb855b408d83c661a2317db328548dc72e8))
134
+ * add process cleanup tool and simplify list output ([cc03323](https://github.com/mkXultra/claude-code-mcp/commit/cc03323df9a24be3c4dcbb6fa1f41d2056b942e4))
135
+ * add semantic-release with npm trusted publishing ([ffdf7c8](https://github.com/mkXultra/claude-code-mcp/commit/ffdf7c876060c96cfaf58a74573bda462552fd83))
136
+ * add wait tool ,support gemini 3.9 and continue conversation gemini ([5d249ca](https://github.com/mkXultra/claude-code-mcp/commit/5d249ca7c36a6ea2eea26fd15b4796b2721d19f3))
137
+ * Codex セッション再開機能とMCP設定ファイルの追加 ([d02b329](https://github.com/mkXultra/claude-code-mcp/commit/d02b329a69df0fcfef65e16609cbb78dc582f1ff))
138
+ * Finalize server with dynamic path finding and JSON output ([6c3c410](https://github.com/mkXultra/claude-code-mcp/commit/6c3c4106f4c5f6fdc5cc8e25bb3b0ea142d7e015))
139
+ * Integrate CWD parsing from prompt, fix lint errors ([5113edb](https://github.com/mkXultra/claude-code-mcp/commit/5113edba01a905637075a34fe771d0df66aef6e1))
140
+ * Organize screenshots, enhance CI, and clean up Git tracking ([7bbc42d](https://github.com/mkXultra/claude-code-mcp/commit/7bbc42d8df204ff6cb1a704ab812d97ff55a2bda))
141
+ * Refine server, JSON parsing, docs, and metadata ([4ab9a7f](https://github.com/mkXultra/claude-code-mcp/commit/4ab9a7f8ee0d84d730e3f0faba6fed302be23736))
142
+ * Resolve npm link, ESM import, and MCP config issues ([7b0cc83](https://github.com/mkXultra/claude-code-mcp/commit/7b0cc8395eddf25f53835a79d156efee6363bc2a))
143
+ * **server:** Prepend system instruction to Claude prompts for broader file access context ([08b9f2d](https://github.com/mkXultra/claude-code-mcp/commit/08b9f2d0cfb0294758cb05cdfc63ec9e5a414b53))
144
+ * **server:** Release v1.6.0 - Updates timeout, changelog, error handling, and description ([4382617](https://github.com/mkXultra/claude-code-mcp/commit/4382617bf90924e7df66c807240f928fa3b45507))
145
+ * **server:** Release v1.6.0 - Updates timeout, changelog, error handling, and description ([855be94](https://github.com/mkXultra/claude-code-mcp/commit/855be9478cdd2772ff03ea26b2541561422e8599))
146
+ * support codex for gpt5 ([e3111d8](https://github.com/mkXultra/claude-code-mcp/commit/e3111d822c33fd58e6c18adbf8ecd4e31919cf9f))
147
+ * Unify tools into agentic 'code' tool (v1.4.0) ([87c6704](https://github.com/mkXultra/claude-code-mcp/commit/87c6704ea0bed49140e271d56a50cf268dc510e2))
148
+ * update 'code' tool description in server.ts for clarity and power ([dfd2327](https://github.com/mkXultra/claude-code-mcp/commit/dfd2327abff2123fc9b3cccb8d5f6e2cdfc01d1d))
149
+
1
150
  # Changelog
2
151
 
3
152
  All notable changes to this project will be documented in this file.
@@ -123,4 +272,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
123
272
  - Set default execution timeout for `claude-code-cli` to 5 minutes (300,000 ms).
124
273
 
125
274
  ---
126
- *Older versions might not have detailed changelog entries.*
275
+ *Older versions might not have detailed changelog entries.*
package/README.md CHANGED
@@ -18,7 +18,7 @@ This MCP server provides tools that can be used by LLMs to interact with AI CLI
18
18
  - Run Claude CLI with all permissions bypassed (using `--dangerously-skip-permissions`)
19
19
  - Execute Codex CLI with automatic approval mode (using `--full-auto`)
20
20
  - Execute Gemini CLI with automatic approval mode (using `-y`)
21
- - Support multiple AI models: Claude (sonnet, opus, haiku), Codex (gpt-5-low, gpt-5-medium, gpt-5-high), and Gemini (gemini-2.5-pro, gemini-2.5-flash)
21
+ - Support multiple AI models: Claude (sonnet, opus, haiku), Codex (gpt-5.2-codex, gpt-5.1-codex-mini, gpt-5.1-codex-max, gpt-5.2, gpt-5.1, gpt-5.1-codex, gpt-5-codex, gpt-5-codex-mini, gpt-5), and Gemini (gemini-2.5-pro, gemini-2.5-flash, gemini-3-pro-preview)
22
22
  - Manage background processes with PID tracking
23
23
  - Parse and return structured outputs from both tools
24
24
 
@@ -153,7 +153,7 @@ This server exposes the following tools:
153
153
 
154
154
  ### `run`
155
155
 
156
- Executes a prompt using either Claude CLI or Codex CLI. The appropriate CLI is automatically selected based on the model name.
156
+ Executes a prompt using Claude CLI, Codex CLI, or Gemini CLI. The appropriate CLI is automatically selected based on the model name.
157
157
 
158
158
  **Arguments:**
159
159
  - `prompt` (string, optional): The prompt to send to the AI agent. Either `prompt` or `prompt_file` is required.
@@ -161,9 +161,10 @@ Executes a prompt using either Claude CLI or Codex CLI. The appropriate CLI is a
161
161
  - `workFolder` (string, required): The working directory for the CLI execution. Must be an absolute path.
162
162
  - `model` (string, optional): The model to use:
163
163
  - Claude models: "sonnet", "opus", "haiku"
164
- - Codex models: "gpt-5-low", "gpt-5-medium", "gpt-5-high"
165
- - Gemini models: "gemini-2.5-pro", "gemini-2.5-flash"
166
- - `session_id` (string, optional): Optional session ID to resume a previous session. Supported for: haiku, sonnet, opus.
164
+ - Codex models: "gpt-5.2-codex", "gpt-5.1-codex-mini", "gpt-5.1-codex-max", "gpt-5.2", "gpt-5.1", "gpt-5.1-codex", "gpt-5-codex", "gpt-5-codex-mini", "gpt-5"
165
+ - Gemini models: "gemini-2.5-pro", "gemini-2.5-flash", "gemini-3-pro-preview"
166
+ - `reasoning_effort` (string, optional): Codex only. Sets `model_reasoning_effort` (allowed: "low", "medium", "high").
167
+ - `session_id` (string, optional): Optional session ID to resume a previous session. Supported for: haiku, sonnet, opus, gemini-2.5-pro, gemini-2.5-flash, gemini-3-pro-preview.
167
168
 
168
169
  ### `list_processes`
169
170
 
@@ -202,7 +203,8 @@ Terminates a running AI agent process by PID.
202
203
  "arguments": {
203
204
  "prompt": "Create a REST API with Express.js",
204
205
  "workFolder": "/Users/username/my_project",
205
- "model": "gpt-5-high"
206
+ "model": "gpt-5.2-codex",
207
+ "reasoning_effort": "high"
206
208
  }
207
209
  }
208
210
  ```
@@ -345,8 +347,8 @@ This will open a web interface where you can:
345
347
  2. Test each tool with different parameters
346
348
  3. Test different AI models including:
347
349
  - Claude models: `sonnet`, `opus`, `haiku`
348
- - Codex models: `gpt-5-low`, `gpt-5-medium`, `gpt-5-high`
349
- - Gemini models: `gemini-2.5-pro`, `gemini-2.5-flash`
350
+ - Codex models: `gpt-5.2-codex`, `gpt-5.1-codex-mini`, `gpt-5.1-codex-max`, `gpt-5.2`, `gpt-5.1`, `gpt-5.1-codex`, `gpt-5-codex`, `gpt-5-codex-mini`, `gpt-5`
351
+ - Gemini models: `gemini-2.5-pro`, `gemini-2.5-flash`, `gemini-3-pro-preview`
350
352
 
351
353
  Example test: Select the `run` tool and provide:
352
354
  - `prompt`: "What is 2+2?"
@@ -371,4 +373,4 @@ Submit issues and pull requests to the [GitHub repository](https://github.com/mk
371
373
 
372
374
  ## License
373
375
 
374
- MIT
376
+ MIT
@@ -2,22 +2,17 @@ import { describe, it, expect, beforeEach, afterEach, afterAll } from 'vitest';
2
2
  import { mkdtempSync, rmSync, readFileSync, existsSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
4
  import { tmpdir } from 'node:os';
5
- import { MCPTestClient } from './utils/mcp-client.js';
5
+ import { createTestClient } from './utils/mcp-client.js';
6
6
  import { getSharedMock, cleanupSharedMock } from './utils/persistent-mock.js';
7
7
  describe('Claude Code MCP E2E Tests', () => {
8
8
  let client;
9
9
  let testDir;
10
- const serverPath = 'dist/server.js';
11
10
  beforeEach(async () => {
12
11
  // Ensure mock exists
13
12
  await getSharedMock();
14
13
  // Create a temporary directory for test files
15
14
  testDir = mkdtempSync(join(tmpdir(), 'claude-code-test-'));
16
- // Initialize MCP client with debug mode and custom binary name using absolute path
17
- client = new MCPTestClient(serverPath, {
18
- MCP_CLAUDE_DEBUG: 'true',
19
- CLAUDE_CLI_NAME: '/tmp/claude-code-test-mock/claudeMocked',
20
- });
15
+ client = createTestClient();
21
16
  await client.connect();
22
17
  });
23
18
  afterEach(async () => {
@@ -57,6 +52,10 @@ describe('Claude Code MCP E2E Tests', () => {
57
52
  type: 'string',
58
53
  description: expect.stringContaining('sonnet'),
59
54
  },
55
+ reasoning_effort: {
56
+ type: 'string',
57
+ description: expect.stringContaining('model_reasoning_effort'),
58
+ },
60
59
  session_id: {
61
60
  type: 'string',
62
61
  description: expect.stringContaining('session ID'),
@@ -198,9 +197,7 @@ describe('Integration Tests (Local Only)', () => {
198
197
  beforeEach(async () => {
199
198
  testDir = mkdtempSync(join(tmpdir(), 'claude-code-integration-'));
200
199
  // Initialize client without mocks for real Claude testing
201
- client = new MCPTestClient('dist/server.js', {
202
- MCP_CLAUDE_DEBUG: 'true',
203
- });
200
+ client = createTestClient({ claudeCliName: '' });
204
201
  });
205
202
  afterEach(async () => {
206
203
  if (client) {
@@ -2,22 +2,17 @@ import { describe, it, expect, beforeEach, afterEach, afterAll } from 'vitest';
2
2
  import { mkdtempSync, rmSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
4
  import { tmpdir } from 'node:os';
5
- import { MCPTestClient } from './utils/mcp-client.js';
5
+ import { createTestClient } from './utils/mcp-client.js';
6
6
  import { getSharedMock, cleanupSharedMock } from './utils/persistent-mock.js';
7
7
  describe('Claude Code Edge Cases', () => {
8
8
  let client;
9
9
  let testDir;
10
- const serverPath = 'dist/server.js';
11
10
  beforeEach(async () => {
12
11
  // Ensure mock exists
13
12
  await getSharedMock();
14
13
  // Create test directory
15
14
  testDir = mkdtempSync(join(tmpdir(), 'claude-code-edge-'));
16
- // Initialize client with custom binary name using absolute path
17
- client = new MCPTestClient(serverPath, {
18
- MCP_CLAUDE_DEBUG: 'true',
19
- CLAUDE_CLI_NAME: '/tmp/claude-code-test-mock/claudeMocked',
20
- });
15
+ client = createTestClient();
21
16
  await client.connect();
22
17
  });
23
18
  afterEach(async () => {
@@ -80,10 +75,7 @@ describe('Claude Code Edge Cases', () => {
80
75
  describe('Error Recovery', () => {
81
76
  it('should handle Claude CLI not found gracefully', async () => {
82
77
  // Create a client with a different binary name that doesn't exist
83
- const errorClient = new MCPTestClient(serverPath, {
84
- MCP_CLAUDE_DEBUG: 'true',
85
- CLAUDE_CLI_NAME: 'non-existent-claude',
86
- });
78
+ const errorClient = createTestClient({ claudeCliName: 'non-existent-claude' });
87
79
  await errorClient.connect();
88
80
  await expect(errorClient.callTool('run', {
89
81
  prompt: 'Test prompt',
@@ -108,7 +100,10 @@ describe('Claude Code Edge Cases', () => {
108
100
  }));
109
101
  const results = await Promise.allSettled(promises);
110
102
  const successful = results.filter(r => r.status === 'fulfilled');
111
- expect(successful.length).toBeGreaterThan(0);
103
+ const failures = results
104
+ .filter((r) => r.status === 'rejected')
105
+ .map((r) => r.reason?.message ?? String(r.reason));
106
+ expect(successful.length, `Concurrent run failures: ${failures.join(' | ')}`).toBeGreaterThan(0);
112
107
  });
113
108
  });
114
109
  describe('Large Prompts', () => {
@@ -501,6 +501,78 @@ describe('ClaudeCodeServer Unit Tests', () => {
501
501
  // Verify spawn was called with -r flag
502
502
  expect(mockSpawn).toHaveBeenCalledWith(expect.any(String), expect.arrayContaining(['-r', 'test-session-123', '-p', 'test prompt']), expect.any(Object));
503
503
  });
504
+ it('should handle session_id parameter for Codex using exec resume', async () => {
505
+ mockHomedir.mockReturnValue('/home/user');
506
+ mockExistsSync.mockReturnValue(true);
507
+ // Set up Server mock
508
+ setupServerMock();
509
+ const module = await import('../server.js');
510
+ // @ts-ignore
511
+ const { ClaudeCodeServer } = module;
512
+ const server = new ClaudeCodeServer();
513
+ const mockServerInstance = vi.mocked(Server).mock.results[0].value;
514
+ // Find the CallToolRequest handler
515
+ const callToolCall = mockServerInstance.setRequestHandler.mock.calls.find((call) => call[0].name === 'callTool');
516
+ const handler = callToolCall[1];
517
+ // Create mock process
518
+ const mockProcess = new EventEmitter();
519
+ mockProcess.pid = 12350;
520
+ mockProcess.stdout = new EventEmitter();
521
+ mockProcess.stderr = new EventEmitter();
522
+ mockProcess.stdout.on = vi.fn();
523
+ mockProcess.stderr.on = vi.fn();
524
+ mockProcess.kill = vi.fn();
525
+ mockSpawn.mockReturnValue(mockProcess);
526
+ const result = await handler({
527
+ params: {
528
+ name: 'run',
529
+ arguments: {
530
+ prompt: 'test prompt',
531
+ workFolder: '/tmp',
532
+ model: 'gpt-5.2',
533
+ session_id: 'codex-session-456'
534
+ }
535
+ }
536
+ });
537
+ // Verify spawn was called with 'exec resume' subcommand for Codex
538
+ expect(mockSpawn).toHaveBeenCalledWith(expect.any(String), expect.arrayContaining(['exec', 'resume', 'codex-session-456']), expect.any(Object));
539
+ });
540
+ it('should handle session_id parameter for Gemini using -r flag', async () => {
541
+ mockHomedir.mockReturnValue('/home/user');
542
+ mockExistsSync.mockReturnValue(true);
543
+ // Set up Server mock
544
+ setupServerMock();
545
+ const module = await import('../server.js');
546
+ // @ts-ignore
547
+ const { ClaudeCodeServer } = module;
548
+ const server = new ClaudeCodeServer();
549
+ const mockServerInstance = vi.mocked(Server).mock.results[0].value;
550
+ // Find the CallToolRequest handler
551
+ const callToolCall = mockServerInstance.setRequestHandler.mock.calls.find((call) => call[0].name === 'callTool');
552
+ const handler = callToolCall[1];
553
+ // Create mock process
554
+ const mockProcess = new EventEmitter();
555
+ mockProcess.pid = 12351;
556
+ mockProcess.stdout = new EventEmitter();
557
+ mockProcess.stderr = new EventEmitter();
558
+ mockProcess.stdout.on = vi.fn();
559
+ mockProcess.stderr.on = vi.fn();
560
+ mockProcess.kill = vi.fn();
561
+ mockSpawn.mockReturnValue(mockProcess);
562
+ const result = await handler({
563
+ params: {
564
+ name: 'run',
565
+ arguments: {
566
+ prompt: 'test prompt',
567
+ workFolder: '/tmp',
568
+ model: 'gemini-2.5-pro',
569
+ session_id: 'gemini-session-789'
570
+ }
571
+ }
572
+ });
573
+ // Verify spawn was called with -r flag for Gemini
574
+ expect(mockSpawn).toHaveBeenCalledWith(expect.any(String), expect.arrayContaining(['-r', 'gemini-session-789']), expect.any(Object));
575
+ });
504
576
  it('should handle prompt_file parameter', async () => {
505
577
  mockHomedir.mockReturnValue('/home/user');
506
578
  mockExistsSync.mockImplementation((path) => {
@@ -102,3 +102,20 @@ export class MCPTestClient extends EventEmitter {
102
102
  return response.result?.tools || [];
103
103
  }
104
104
  }
105
+ /**
106
+ * Default server path
107
+ */
108
+ const DEFAULT_SERVER_PATH = 'dist/server.js';
109
+ /**
110
+ * Create a test client with standard configuration
111
+ * Automatically unsets VITEST env so the server actually starts
112
+ */
113
+ export function createTestClient(options = {}) {
114
+ const { serverPath = DEFAULT_SERVER_PATH, claudeCliName = process.env.TEST_CLAUDE_CLI_NAME || '/tmp/claude-code-test-mock/claudeMocked', debug = true, env = {}, } = options;
115
+ return new MCPTestClient(serverPath, {
116
+ VITEST: '', // Unset so server starts
117
+ MCP_CLAUDE_DEBUG: debug ? 'true' : '',
118
+ CLAUDE_CLI_NAME: claudeCliName,
119
+ ...env,
120
+ });
121
+ }
@@ -2,12 +2,14 @@ import { ClaudeMock } from './claude-mock.js';
2
2
  import { existsSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
4
  let sharedMock = null;
5
+ const workerId = process.env.VITEST_WORKER_ID || process.env.VITEST_POOL_ID || process.pid.toString();
6
+ const mockName = `claudeMocked-${workerId}`;
7
+ const mockPath = join('/tmp', 'claude-code-test-mock', mockName);
5
8
  export async function getSharedMock() {
6
9
  if (!sharedMock) {
7
- sharedMock = new ClaudeMock('claudeMocked');
10
+ sharedMock = new ClaudeMock(mockName);
8
11
  }
9
12
  // Always ensure mock exists
10
- const mockPath = join('/tmp', 'claude-code-test-mock', 'claudeMocked');
11
13
  if (!existsSync(mockPath)) {
12
14
  console.error(`[DEBUG] Mock not found at ${mockPath}, creating it...`);
13
15
  await sharedMock.setup();
@@ -15,6 +17,7 @@ export async function getSharedMock() {
15
17
  else {
16
18
  console.error(`[DEBUG] Mock already exists at ${mockPath}`);
17
19
  }
20
+ process.env.TEST_CLAUDE_CLI_NAME = mockPath;
18
21
  return sharedMock;
19
22
  }
20
23
  export async function cleanupSharedMock() {