@trishchuk/codex-mcp-tool 1.0.4 → 1.0.6
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 +29 -2
- package/dist/index.js +1 -1
- package/dist/tools/ask-codex.tool.js +11 -11
- package/dist/tools/ask-codex.tool.js.map +1 -1
- package/dist/tools/brainstorm.tool.js +15 -15
- package/dist/tools/brainstorm.tool.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -110,6 +110,25 @@ After updating the configuration, restart your terminal session.
|
|
|
110
110
|
|
|
111
111
|
## Usage Examples
|
|
112
112
|
|
|
113
|
+
### Model Selection
|
|
114
|
+
|
|
115
|
+
```javascript
|
|
116
|
+
// Use the default gpt-5-codex model
|
|
117
|
+
"explain the architecture of @src/"
|
|
118
|
+
|
|
119
|
+
// Use gpt-5 for fast general purpose reasoning
|
|
120
|
+
"use codex with model gpt-5 to analyze @config.json"
|
|
121
|
+
|
|
122
|
+
// Use o3 for deep reasoning tasks
|
|
123
|
+
"use codex with model o3 to analyze complex algorithm in @algorithm.py"
|
|
124
|
+
|
|
125
|
+
// Use o4-mini for quick tasks
|
|
126
|
+
"use codex with model o4-mini to add comments to @utils.js"
|
|
127
|
+
|
|
128
|
+
// Use codex-1 for software engineering
|
|
129
|
+
"use codex with model codex-1 to refactor @legacy-code.js"
|
|
130
|
+
```
|
|
131
|
+
|
|
113
132
|
### With File References (using @ syntax)
|
|
114
133
|
|
|
115
134
|
- `ask codex to analyze @src/main.ts and explain what it does`
|
|
@@ -153,9 +172,16 @@ These tools are designed to be used by the AI assistant.
|
|
|
153
172
|
|
|
154
173
|
#### Core Tools
|
|
155
174
|
|
|
156
|
-
- **`ask-codex`**: Sends a prompt to Codex via `codex exec`.
|
|
175
|
+
- **`ask-codex`**: Sends a prompt to Codex via `codex exec`.
|
|
157
176
|
- Supports `@` file references for including file content
|
|
158
|
-
- Optional `model` parameter
|
|
177
|
+
- Optional `model` parameter - available models:
|
|
178
|
+
- `gpt-5-codex` (default, optimized for coding)
|
|
179
|
+
- `gpt-5` (general purpose, fast reasoning)
|
|
180
|
+
- `o3` (smartest, deep reasoning)
|
|
181
|
+
- `o4-mini` (fast & efficient)
|
|
182
|
+
- `codex-1` (o3-based for software engineering)
|
|
183
|
+
- `codex-mini-latest` (low-latency code Q&A)
|
|
184
|
+
- `gpt-4.1` (also available)
|
|
159
185
|
- `sandbox=true` enables `--full-auto` mode
|
|
160
186
|
- `changeMode=true` returns structured OLD/NEW edits
|
|
161
187
|
- Supports approval policies and sandbox modes
|
|
@@ -163,6 +189,7 @@ These tools are designed to be used by the AI assistant.
|
|
|
163
189
|
- **`brainstorm`**: Generate novel ideas with structured methodologies.
|
|
164
190
|
- Multiple frameworks: divergent, convergent, SCAMPER, design-thinking, lateral
|
|
165
191
|
- Domain-specific context (software, business, creative, research, product, marketing)
|
|
192
|
+
- Supports same models as `ask-codex` (default: `gpt-5-codex`)
|
|
166
193
|
- Configurable idea count and analysis depth
|
|
167
194
|
- Includes feasibility, impact, and innovation scoring
|
|
168
195
|
- Example: `brainstorm prompt:"ways to improve code review process" domain:"software" methodology:"scamper"`
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import { PROTOCOL } from "./constants.js";
|
|
|
7
7
|
import { getToolDefinitions, getPromptDefinitions, executeTool, toolExists, getPromptMessage } from "./tools/index.js";
|
|
8
8
|
const server = new Server({
|
|
9
9
|
name: "codex-cli-mcp",
|
|
10
|
-
version: "1.0.
|
|
10
|
+
version: "1.0.6",
|
|
11
11
|
}, {
|
|
12
12
|
capabilities: {
|
|
13
13
|
tools: {},
|
|
@@ -4,14 +4,14 @@ import { processChangeModeOutput } from '../utils/changeModeRunner.js';
|
|
|
4
4
|
import { STATUS_MESSAGES } from '../constants.js';
|
|
5
5
|
const askCodexArgsSchema = z.object({
|
|
6
6
|
prompt: z.string().min(1).describe("Task or question. Use @ to include files (e.g., '@largefile.ts explain')."),
|
|
7
|
-
model: z.string().optional().describe("
|
|
7
|
+
model: z.string().optional().describe("Model: gpt-5-codex (default, best for coding), gpt-5 (fast, general), o3 (smartest, deep reasoning), o4-mini (cheapest, quick tasks), codex-1 (software engineering), codex-mini-latest (low-latency), gpt-4.1"),
|
|
8
8
|
sandbox: z.boolean().default(false).describe("Quick automation mode: enables workspace-write + on-failure approval. Alias for fullAuto."),
|
|
9
|
-
fullAuto: z.boolean().optional().describe("Full automation
|
|
10
|
-
approvalPolicy: z.enum(['never', 'on-request', 'on-failure', 'untrusted']).optional().describe("
|
|
11
|
-
sandboxMode: z.enum(['read-only', 'workspace-write', 'danger-full-access']).optional().describe("
|
|
12
|
-
yolo: z.boolean().optional().describe("
|
|
13
|
-
cd: z.string().optional().describe("Working directory
|
|
14
|
-
changeMode: z.boolean().default(false).describe("Return structured OLD/NEW
|
|
9
|
+
fullAuto: z.boolean().optional().describe("Full automation mode"),
|
|
10
|
+
approvalPolicy: z.enum(['never', 'on-request', 'on-failure', 'untrusted']).optional().describe("Approval: never, on-request, on-failure, untrusted"),
|
|
11
|
+
sandboxMode: z.enum(['read-only', 'workspace-write', 'danger-full-access']).optional().describe("Access: read-only, workspace-write, danger-full-access"),
|
|
12
|
+
yolo: z.boolean().optional().describe("⚠️ Bypass all safety (dangerous)"),
|
|
13
|
+
cd: z.string().optional().describe("Working directory"),
|
|
14
|
+
changeMode: z.boolean().default(false).describe("Return structured OLD/NEW edits for refactoring"),
|
|
15
15
|
chunkIndex: z.preprocess((val) => {
|
|
16
16
|
if (typeof val === 'number')
|
|
17
17
|
return val;
|
|
@@ -20,15 +20,15 @@ const askCodexArgsSchema = z.object({
|
|
|
20
20
|
return isNaN(parsed) ? undefined : parsed;
|
|
21
21
|
}
|
|
22
22
|
return undefined;
|
|
23
|
-
}, z.number().min(1).optional()).describe("
|
|
24
|
-
chunkCacheKey: z.string().optional().describe("
|
|
23
|
+
}, z.number().min(1).optional()).describe("Chunk index (1-based)"),
|
|
24
|
+
chunkCacheKey: z.string().optional().describe("Cache key for continuation"),
|
|
25
25
|
});
|
|
26
26
|
export const askCodexTool = {
|
|
27
27
|
name: 'ask-codex',
|
|
28
|
-
description: "Execute Codex CLI
|
|
28
|
+
description: "Execute Codex CLI with file analysis (@syntax), model selection, and safety controls. Supports changeMode.",
|
|
29
29
|
zodSchema: askCodexArgsSchema,
|
|
30
30
|
prompt: {
|
|
31
|
-
description: "Execute Codex CLI with
|
|
31
|
+
description: "Execute Codex CLI with optional changeMode",
|
|
32
32
|
},
|
|
33
33
|
category: 'utility',
|
|
34
34
|
execute: async (args, onProgress) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask-codex.tool.js","sourceRoot":"","sources":["../../src/tools/ask-codex.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2EAA2E,CAAC;IAC/G,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"ask-codex.tool.js","sourceRoot":"","sources":["../../src/tools/ask-codex.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -77,26 +77,26 @@ ${domain ? `Given the ${domain} domain, I'll apply the most effective combinatio
|
|
|
77
77
|
return methodologies[methodology] || methodologies['auto'];
|
|
78
78
|
}
|
|
79
79
|
const brainstormArgsSchema = z.object({
|
|
80
|
-
prompt: z.string().min(1).describe("
|
|
81
|
-
model: z.string().optional().describe("
|
|
82
|
-
approvalPolicy: z.enum(['never', 'on-request', 'on-failure', 'untrusted']).optional().describe("
|
|
83
|
-
sandboxMode: z.enum(['read-only', 'workspace-write', 'danger-full-access']).optional().describe("
|
|
84
|
-
fullAuto: z.boolean().optional().describe("Full automation
|
|
85
|
-
yolo: z.boolean().optional().describe("
|
|
86
|
-
cd: z.string().optional().describe("Working directory
|
|
87
|
-
methodology: z.enum(['divergent', 'convergent', 'scamper', 'design-thinking', 'lateral', 'auto']).default('auto').describe("
|
|
88
|
-
domain: z.string().optional().describe("Domain
|
|
89
|
-
constraints: z.string().optional().describe("
|
|
90
|
-
existingContext: z.string().optional().describe("Background
|
|
91
|
-
ideaCount: z.number().int().positive().default(12).describe("Number of ideas
|
|
92
|
-
includeAnalysis: z.boolean().default(true).describe("Include feasibility
|
|
80
|
+
prompt: z.string().min(1).describe("Brainstorming challenge or question"),
|
|
81
|
+
model: z.string().optional().describe("Model: gpt-5-codex (default), gpt-5, o3, o4-mini, codex-1, codex-mini-latest, gpt-4.1"),
|
|
82
|
+
approvalPolicy: z.enum(['never', 'on-request', 'on-failure', 'untrusted']).optional().describe("Approval: never, on-request, on-failure, untrusted"),
|
|
83
|
+
sandboxMode: z.enum(['read-only', 'workspace-write', 'danger-full-access']).optional().describe("Access: read-only, workspace-write, danger-full-access"),
|
|
84
|
+
fullAuto: z.boolean().optional().describe("Full automation mode"),
|
|
85
|
+
yolo: z.boolean().optional().describe("⚠️ Bypass all safety (dangerous)"),
|
|
86
|
+
cd: z.string().optional().describe("Working directory"),
|
|
87
|
+
methodology: z.enum(['divergent', 'convergent', 'scamper', 'design-thinking', 'lateral', 'auto']).default('auto').describe("Framework: divergent, convergent, scamper, design-thinking, lateral, auto (default)"),
|
|
88
|
+
domain: z.string().optional().describe("Domain: software, business, creative, research, product, marketing, etc."),
|
|
89
|
+
constraints: z.string().optional().describe("Limitations: budget, time, technical, legal, etc."),
|
|
90
|
+
existingContext: z.string().optional().describe("Background info or previous attempts"),
|
|
91
|
+
ideaCount: z.number().int().positive().default(12).describe("Number of ideas (default: 12, range: 5-30)"),
|
|
92
|
+
includeAnalysis: z.boolean().default(true).describe("Include feasibility/impact analysis"),
|
|
93
93
|
});
|
|
94
94
|
export const brainstormTool = {
|
|
95
95
|
name: "brainstorm",
|
|
96
|
-
description: "Generate
|
|
96
|
+
description: "Generate creative ideas using structured frameworks with domain context and feasibility analysis.",
|
|
97
97
|
zodSchema: brainstormArgsSchema,
|
|
98
98
|
prompt: {
|
|
99
|
-
description: "
|
|
99
|
+
description: "Create structured brainstorming with chosen methodology and analysis",
|
|
100
100
|
},
|
|
101
101
|
category: 'utility',
|
|
102
102
|
execute: async (args, onProgress) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brainstorm.tool.js","sourceRoot":"","sources":["../../src/tools/brainstorm.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,SAAS,qBAAqB,CAAC,MAQ9B;IACC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAEzG,+BAA+B;IAC/B,IAAI,qBAAqB,GAAG,0BAA0B,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAE5E,IAAI,cAAc,GAAG;;gBAEP,MAAM;;;EAGpB,qBAAqB;;;EAGrB,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;EACjC,WAAW,CAAC,CAAC,CAAC,gBAAgB,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;EAChD,eAAe,CAAC,CAAC,CAAC,eAAe,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE;;;WAG9C,SAAS;;EAElB,eAAe,CAAC,CAAC,CAAC;6DACyC,CAAC,CAAC,CAAC,EAAE;;;;;EAKhE,eAAe,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,EAAE;;OAEpD,CAAC;IAEN,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CAAC,WAAmB,EAAE,MAAe;IACtE,MAAM,aAAa,GAA2B;QAC5C,WAAW,EAAE;;;;;oDAKmC;QAEhD,YAAY,EAAE;;;;;gDAK8B;QAE5C,SAAS,EAAE;;;;;;;mDAOoC;QAE/C,iBAAiB,EAAE;;;;;+DAKwC;QAE3D,SAAS,EAAE;;;;;yCAK0B;QAErC,MAAM,EAAE;EACV,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,wDAAwD,CAAC,CAAC,CAAC,qDAAqD;;;iDAG7F;KAC9C,CAAC;IAEF,OAAO,aAAa,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"brainstorm.tool.js","sourceRoot":"","sources":["../../src/tools/brainstorm.tool.ts"],"names":[],"mappings":"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"}
|