consult-llm-mcp 1.4.2 → 1.4.4

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 CHANGED
@@ -24,8 +24,8 @@ This SQL query is timing out on large datasets. Can you help optimize it? Ask Ge
24
24
 
25
25
  ## Features
26
26
 
27
- - Query powerful AI models (o3, Gemini 2.5 Pro, DeepSeek Reasoner, GPT-5.1
28
- Codex) with relevant files as context
27
+ - Query powerful AI models (o3, Gemini 2.5 Pro, Gemini 3 Pro Preview, DeepSeek
28
+ Reasoner, GPT-5.1 Codex) with relevant files as context
29
29
  - Direct queries with optional file context
30
30
  - Include git changes for code review and analysis
31
31
  - Comprehensive logging with cost estimation
@@ -239,7 +239,7 @@ This is useful when:
239
239
 
240
240
  </details>
241
241
 
242
- ## Web Mode
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 Mode
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 Mode
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 Reasoning Effort
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 Variables
328
+ ### Environment variables
329
329
 
330
330
  - `OPENAI_API_KEY` - Your OpenAI API key (required for OpenAI models in API
331
331
  mode)
@@ -333,8 +333,9 @@ longer to complete. This is passed to the Codex CLI as
333
333
  mode)
334
334
  - `DEEPSEEK_API_KEY` - Your DeepSeek API key (required for DeepSeek models)
335
335
  - `CONSULT_LLM_DEFAULT_MODEL` - Override the default model (optional)
336
- - Options: `o3` (default), `gemini-2.5-pro`, `deepseek-reasoner`,
337
- `gpt-5.1-codex-max`, `gpt-5.1-codex`, `gpt-5.1-codex-mini`, `gpt-5.1`
336
+ - Options: `o3` (default), `gemini-2.5-pro`, `gemini-3-pro-preview`,
337
+ `deepseek-reasoner`, `gpt-5.1-codex-max`, `gpt-5.1-codex`,
338
+ `gpt-5.1-codex-mini`, `gpt-5.1`
338
339
  - `GEMINI_MODE` - Choose between API or CLI mode for Gemini models (optional)
339
340
  - Options: `api` (default), `cli`
340
341
  - CLI mode uses the system-installed `gemini` CLI tool
@@ -344,7 +345,7 @@ longer to complete. This is passed to the Codex CLI as
344
345
  - `CODEX_REASONING_EFFORT` - Configure reasoning effort for Codex CLI (optional)
345
346
  - See [Codex CLI Mode](#codex-cli-mode) for details and available options
346
347
 
347
- ### Custom System Prompt
348
+ ### Custom system prompt
348
349
 
349
350
  You can customize the system prompt used when consulting LLMs by creating a
350
351
  `SYSTEM_PROMPT.md` file in `~/.consult-llm-mcp/`:
@@ -359,7 +360,7 @@ request, so changes take effect immediately without restarting the server.
359
360
 
360
361
  To revert to the default prompt, simply delete the `SYSTEM_PROMPT.md` file.
361
362
 
362
- ## MCP Tool: consult_llm
363
+ ## MCP tool: consult_llm
363
364
 
364
365
  The server provides a single tool called `consult_llm` for asking powerful AI
365
366
  models complex questions.
@@ -372,8 +373,8 @@ models complex questions.
372
373
  - All files are added as context with file paths and code blocks
373
374
 
374
375
  - **model** (optional): LLM model to use
375
- - Options: `o3` (default), `gemini-2.5-pro`, `deepseek-reasoner`,
376
- `gpt-5.1-codex`, `gpt-5.1-codex-mini`, `gpt-5.1`
376
+ - Options: `o3` (default), `gemini-2.5-pro`, `gemini-3-pro-preview`,
377
+ `deepseek-reasoner`, `gpt-5.1-codex`, `gpt-5.1-codex-mini`, `gpt-5.1`
377
378
 
378
379
  - **web_mode** (optional): Copy prompt to clipboard instead of querying LLM
379
380
  - Default: `false`
@@ -387,10 +388,12 @@ models complex questions.
387
388
  directory)
388
389
  - **base_ref** (optional): Git reference to compare against (defaults to HEAD)
389
390
 
390
- ## Supported Models
391
+ ## Supported models
391
392
 
392
393
  - **o3**: OpenAI's reasoning model ($2/$8 per million tokens)
393
394
  - **gemini-2.5-pro**: Google's Gemini 2.5 Pro ($1.25/$10 per million tokens)
395
+ - **gemini-3-pro-preview**: Google's Gemini 3 Pro Preview ($2/$12 per million
396
+ tokens for prompts ≤200k tokens, $4/$18 for prompts >200k tokens)
394
397
  - **deepseek-reasoner**: DeepSeek's reasoning model ($0.55/$2.19 per million
395
398
  tokens)
396
399
  - **gpt-5.1-codex**: OpenAI's Codex model optimized for coding
@@ -468,7 +471,7 @@ CRITICAL: When asking, don't present options, this will bias the answer.
468
471
  Claude Code seems to know pretty well when to use this MCP even without this
469
472
  instruction however.
470
473
 
471
- ## Example Skill
474
+ ## Example skill
472
475
 
473
476
  Here's an example [Claude Code skill](https://code.claude.com/docs/en/skills)
474
477
  that uses the `consult_llm` MCP tool to create commands like "ask gemini" or
@@ -531,6 +534,10 @@ When consulting with external LLMs:
531
534
  Save this as `~/.claude/skills/consult-llm/SKILL.md` and you can then use it by
532
535
  typing "ask gemini about X" or "ask codex about X" in Claude Code.
533
536
 
537
+ This one is not strictly necessary either, Claude (or other agent) can infer
538
+ from the schema that "Ask gemini" should call this MCP, but it might be helpful
539
+ in case you want to have more precise control over how the agent calls this MCP.
540
+
534
541
  ## Development
535
542
 
536
543
  To work on the MCP server locally and use your development version:
package/dist/config.d.ts CHANGED
@@ -6,6 +6,7 @@ declare const Config: z.ZodObject<{
6
6
  defaultModel: z.ZodOptional<z.ZodEnum<{
7
7
  o3: "o3";
8
8
  "gemini-2.5-pro": "gemini-2.5-pro";
9
+ "gemini-3-pro-preview": "gemini-3-pro-preview";
9
10
  "deepseek-reasoner": "deepseek-reasoner";
10
11
  "gpt-5.1-codex-max": "gpt-5.1-codex-max";
11
12
  "gpt-5.1-codex": "gpt-5.1-codex";
@@ -36,7 +37,7 @@ export declare const config: {
36
37
  openaiApiKey?: string | undefined;
37
38
  geminiApiKey?: string | undefined;
38
39
  deepseekApiKey?: string | undefined;
39
- defaultModel?: "o3" | "gemini-2.5-pro" | "deepseek-reasoner" | "gpt-5.1-codex-max" | "gpt-5.1-codex" | "gpt-5.1-codex-mini" | "gpt-5.1" | undefined;
40
+ defaultModel?: "o3" | "gemini-2.5-pro" | "gemini-3-pro-preview" | "deepseek-reasoner" | "gpt-5.1-codex-max" | "gpt-5.1-codex" | "gpt-5.1-codex-mini" | "gpt-5.1" | undefined;
40
41
  codexReasoningEffort?: "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
41
42
  };
42
43
  export {};
package/dist/llm-cost.js CHANGED
@@ -7,6 +7,10 @@ const MODEL_PRICING = {
7
7
  inputCostPerMillion: 1.25,
8
8
  outputCostPerMillion: 10.0,
9
9
  },
10
+ 'gemini-3-pro-preview': {
11
+ inputCostPerMillion: 2.0,
12
+ outputCostPerMillion: 12.0,
13
+ },
10
14
  'deepseek-reasoner': {
11
15
  inputCostPerMillion: 0.55,
12
16
  outputCostPerMillion: 2.19,
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('-m');
109
- expect(cliArgs[2]).toBe('gpt-5.1');
110
- expect(cliArgs[3]).toContain('system');
111
- expect(cliArgs[3]).toContain('user');
112
- expect(cliArgs[3]).toContain('Files: @');
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();
package/dist/schema.d.ts CHANGED
@@ -2,6 +2,7 @@ import { z } from 'zod/v4';
2
2
  export declare const SupportedChatModel: z.ZodEnum<{
3
3
  o3: "o3";
4
4
  "gemini-2.5-pro": "gemini-2.5-pro";
5
+ "gemini-3-pro-preview": "gemini-3-pro-preview";
5
6
  "deepseek-reasoner": "deepseek-reasoner";
6
7
  "gpt-5.1-codex-max": "gpt-5.1-codex-max";
7
8
  "gpt-5.1-codex": "gpt-5.1-codex";
@@ -15,6 +16,7 @@ export declare const ConsultLlmArgs: z.ZodObject<{
15
16
  model: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
16
17
  o3: "o3";
17
18
  "gemini-2.5-pro": "gemini-2.5-pro";
19
+ "gemini-3-pro-preview": "gemini-3-pro-preview";
18
20
  "deepseek-reasoner": "deepseek-reasoner";
19
21
  "gpt-5.1-codex-max": "gpt-5.1-codex-max";
20
22
  "gpt-5.1-codex": "gpt-5.1-codex";
package/dist/schema.js CHANGED
@@ -2,6 +2,7 @@ import { z } from 'zod/v4';
2
2
  export const SupportedChatModel = z.enum([
3
3
  'o3',
4
4
  'gemini-2.5-pro',
5
+ 'gemini-3-pro-preview',
5
6
  'deepseek-reasoner',
6
7
  'gpt-5.1-codex-max',
7
8
  'gpt-5.1-codex',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "consult-llm-mcp",
3
- "version": "1.4.2",
3
+ "version": "1.4.4",
4
4
  "description": "MCP server for consulting powerful AI models",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",