consult-llm-mcp 1.4.2 → 1.4.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.
- package/README.md +13 -9
- package/dist/llm.js +1 -1
- package/dist/llm.test.js +6 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -239,7 +239,7 @@ This is useful when:
|
|
|
239
239
|
|
|
240
240
|
</details>
|
|
241
241
|
|
|
242
|
-
## Web
|
|
242
|
+
## Web mode
|
|
243
243
|
|
|
244
244
|
When you want Claude Code to prepare the prompt but send it through an LLM web
|
|
245
245
|
UI yourself (ChatGPT, Claude.ai, Gemini, etc.), ask it to "use consult LLM with
|
|
@@ -260,7 +260,7 @@ wherever you like.
|
|
|
260
260
|
See the "Using web mode..." example above for a concrete transcript of this
|
|
261
261
|
flow.
|
|
262
262
|
|
|
263
|
-
## Gemini CLI
|
|
263
|
+
## Gemini CLI mode
|
|
264
264
|
|
|
265
265
|
Use Gemini's local CLI when you want to take advantage of Google's free quota or
|
|
266
266
|
keep prompts off the API by enabling CLI mode so consult-llm spawns the `gemini`
|
|
@@ -283,7 +283,7 @@ binary locally rather than sending the prompt through the API.
|
|
|
283
283
|
use). It will call `consult_llm` with the Gemini model, assemble the
|
|
284
284
|
prompt, and shell out to the CLI automatically.
|
|
285
285
|
|
|
286
|
-
## Codex CLI
|
|
286
|
+
## Codex CLI mode
|
|
287
287
|
|
|
288
288
|
Use OpenAI's Codex CLI when you want to use OpenAI models locally through the
|
|
289
289
|
CLI instead of making API calls.
|
|
@@ -304,7 +304,7 @@ CLI instead of making API calls.
|
|
|
304
304
|
call `consult_llm` with the specified model, assemble the prompt, and shell
|
|
305
305
|
out to the Codex CLI automatically.
|
|
306
306
|
|
|
307
|
-
### Configuring
|
|
307
|
+
### Configuring reasoning effort
|
|
308
308
|
|
|
309
309
|
When using Codex CLI mode, you can control the reasoning effort level using the
|
|
310
310
|
`CODEX_REASONING_EFFORT` environment variable:
|
|
@@ -325,7 +325,7 @@ longer to complete. This is passed to the Codex CLI as
|
|
|
325
325
|
|
|
326
326
|
## Configuration
|
|
327
327
|
|
|
328
|
-
### Environment
|
|
328
|
+
### Environment variables
|
|
329
329
|
|
|
330
330
|
- `OPENAI_API_KEY` - Your OpenAI API key (required for OpenAI models in API
|
|
331
331
|
mode)
|
|
@@ -344,7 +344,7 @@ longer to complete. This is passed to the Codex CLI as
|
|
|
344
344
|
- `CODEX_REASONING_EFFORT` - Configure reasoning effort for Codex CLI (optional)
|
|
345
345
|
- See [Codex CLI Mode](#codex-cli-mode) for details and available options
|
|
346
346
|
|
|
347
|
-
### Custom
|
|
347
|
+
### Custom system prompt
|
|
348
348
|
|
|
349
349
|
You can customize the system prompt used when consulting LLMs by creating a
|
|
350
350
|
`SYSTEM_PROMPT.md` file in `~/.consult-llm-mcp/`:
|
|
@@ -359,7 +359,7 @@ request, so changes take effect immediately without restarting the server.
|
|
|
359
359
|
|
|
360
360
|
To revert to the default prompt, simply delete the `SYSTEM_PROMPT.md` file.
|
|
361
361
|
|
|
362
|
-
## MCP
|
|
362
|
+
## MCP tool: consult_llm
|
|
363
363
|
|
|
364
364
|
The server provides a single tool called `consult_llm` for asking powerful AI
|
|
365
365
|
models complex questions.
|
|
@@ -387,7 +387,7 @@ models complex questions.
|
|
|
387
387
|
directory)
|
|
388
388
|
- **base_ref** (optional): Git reference to compare against (defaults to HEAD)
|
|
389
389
|
|
|
390
|
-
## Supported
|
|
390
|
+
## Supported models
|
|
391
391
|
|
|
392
392
|
- **o3**: OpenAI's reasoning model ($2/$8 per million tokens)
|
|
393
393
|
- **gemini-2.5-pro**: Google's Gemini 2.5 Pro ($1.25/$10 per million tokens)
|
|
@@ -468,7 +468,7 @@ CRITICAL: When asking, don't present options, this will bias the answer.
|
|
|
468
468
|
Claude Code seems to know pretty well when to use this MCP even without this
|
|
469
469
|
instruction however.
|
|
470
470
|
|
|
471
|
-
## Example
|
|
471
|
+
## Example skill
|
|
472
472
|
|
|
473
473
|
Here's an example [Claude Code skill](https://code.claude.com/docs/en/skills)
|
|
474
474
|
that uses the `consult_llm` MCP tool to create commands like "ask gemini" or
|
|
@@ -531,6 +531,10 @@ When consulting with external LLMs:
|
|
|
531
531
|
Save this as `~/.claude/skills/consult-llm/SKILL.md` and you can then use it by
|
|
532
532
|
typing "ask gemini about X" or "ask codex about X" in Claude Code.
|
|
533
533
|
|
|
534
|
+
This one is not strictly necessary either, Claude (or other agent) can infer
|
|
535
|
+
from the schema that "Ask gemini" should call this MCP, but it might be helpful
|
|
536
|
+
in case you want to have more precise control over how the agent calls this MCP.
|
|
537
|
+
|
|
534
538
|
## Development
|
|
535
539
|
|
|
536
540
|
To work on the MCP server locally and use your development version:
|
package/dist/llm.js
CHANGED
|
@@ -124,7 +124,7 @@ const geminiCliConfig = {
|
|
|
124
124
|
const codexCliConfig = {
|
|
125
125
|
cliName: 'codex',
|
|
126
126
|
buildArgs: (model, fullPrompt) => {
|
|
127
|
-
const args = ['exec', '-m', model];
|
|
127
|
+
const args = ['exec', '--skip-git-repo-check', '-m', model];
|
|
128
128
|
if (config.codexReasoningEffort) {
|
|
129
129
|
args.push('-c', `model_reasoning_effort="${config.codexReasoningEffort}"`);
|
|
130
130
|
}
|
package/dist/llm.test.js
CHANGED
|
@@ -105,11 +105,12 @@ describe('CLI executor', () => {
|
|
|
105
105
|
expect(args?.[0]).toBe('codex');
|
|
106
106
|
const cliArgs = args?.[1];
|
|
107
107
|
expect(cliArgs[0]).toBe('exec');
|
|
108
|
-
expect(cliArgs[1]).toBe('-
|
|
109
|
-
expect(cliArgs[2]).toBe('
|
|
110
|
-
expect(cliArgs[3]).
|
|
111
|
-
expect(cliArgs[
|
|
112
|
-
expect(cliArgs[
|
|
108
|
+
expect(cliArgs[1]).toBe('--skip-git-repo-check');
|
|
109
|
+
expect(cliArgs[2]).toBe('-m');
|
|
110
|
+
expect(cliArgs[3]).toBe('gpt-5.1');
|
|
111
|
+
expect(cliArgs[4]).toContain('system');
|
|
112
|
+
expect(cliArgs[4]).toContain('user');
|
|
113
|
+
expect(cliArgs[4]).toContain('Files: @');
|
|
113
114
|
const result = await promise;
|
|
114
115
|
expect(result.response).toBe('result');
|
|
115
116
|
expect(result.usage).toBeNull();
|