git:20260824.f9f3e9d to git:20260902.c132496

1 added, 1 removed. Audit A to A.

# Ask LLM
> MCP servers for AI-to-AI collaboration: bridge your AI client with Codex, Claude, Grok, Antigravity, Ollama, and Gemini.
Ask LLM provides Model Context Protocol (MCP) servers that let any MCP-compatible AI client (Claude Code, Claude Desktop, Cursor, Warp, Copilot, and 40+ others) consult external LLM providers. The core pattern: your primary AI delegates research, reviews, or brainstorming to other AI providers via standard MCP tool calls: "the other model reads, your AI edits."
## Packages
- `@ask-llm/codex-mcp`: MCP server for OpenAI Codex CLI. Default model: gpt-5.6-sol → gpt-5.6-terra on quota.
- `@ask-llm/claude-mcp`: MCP server for Anthropic Claude Code CLI, intended for Codex and other non-Claude hosts. Default: opus → sonnet. Native sessions; Read/Glob/Grep-only tools.
- `@ask-llm/grok-mcp`: MCP server for Grok through the metered xAI Responses API. Default API ID: `grok-4.6`; explicit `xai-api` or `grok-cli` harness; high effort; no harness/model/provider fallback.
- `@ask-llm/antigravity-mcp`: MCP server for Google Antigravity CLI (`agy` ≥1.1.5). Subscription-backed second opinion. Default model: `gemini-3.1-pro` → `gemini-3.5-flash` on rate limit, both at high effort.
- `@ask-llm/ollama-mcp`: MCP server for local Ollama. No API keys, fully private. Default model: qwen3.8:27b (no fallback).
- - `@ask-llm/gemini-mcp`: MCP server for Google Gemini CLI. 1M+ token context. Default model: gemini-3.1-pro-preview → gemini-3.6-flash on quota. (Enterprise-gated since 2026-06-18.)
+ - `@ask-llm/gemini-mcp`: MCP server for Google Gemini CLI. 1M+ token context. Default model: gemini-3.1-pro-preview → gemini-3.7-flash on quota. (Enterprise-gated since 2026-06-18.)
- `@ask-llm/mcp`: Unified server: auto-detects installed providers and registers all available tools.
- `@ask-llm/plugin`: Canonical Claude Code + Cursor Agent + Pi host package. One skill corpus; Claude marketplace agents/hooks; Cursor Plugin Agent Skills + `mcp.json`; Pi native provider tools and consent-gated lifecycle extension.
## Installation
Each server is installed via npx or globally via npm:
```
claude mcp add codex -- npx -y @ask-llm/codex-mcp
claude mcp add grok -e XAI_API_KEY="$XAI_API_KEY" -- npx -y @ask-llm/grok-mcp
claude mcp add antigravity -- npx -y @ask-llm/antigravity-mcp
claude mcp add ollama -- npx -y @ask-llm/ollama-mcp
claude mcp add gemini -- npx -y @ask-llm/gemini-mcp
claude mcp add ask-llm -- npx -y @ask-llm/mcp
# Reverse path: Codex asks Claude
codex mcp add claude -- npx -y @ask-llm/claude-mcp
```
## Tools
| Tool | Package | Parameters | Description |
|------|---------|------------|-------------|
| ask-codex | @ask-llm/codex-mcp | prompt (required), model (optional), reasoningEffort (optional), sessionId (optional), includeDirs (optional), preferred (optional) | Send prompts to Codex CLI. Omit sessionId for an ephemeral call, pass sessionId: "" to create a fresh persisted thread, or pass a non-empty returned ID to resume. includeDirs applies only to fresh calls and is not forwarded on resume. Defaults to gpt-5.6-sol at medium effort with gpt-5.6-terra quota fallback; /codex-review and /brainstorm use high. |
| ask-codex-edit | @ask-llm/codex-mcp | prompt (required), model (optional), sessionId (optional), includeDirs (optional) | Get read-only structured code edits from Codex (`--output-schema`). Omit sessionId for an ephemeral call, pass sessionId: "" to create a fresh persisted thread, or pass a non-empty returned ID to resume. includeDirs applies only to fresh calls and is not forwarded on resume. |
| ask-claude | @ask-llm/claude-mcp | prompt (required), model (optional), sessionId (optional), includeDirs (optional) | Send a read-only second-opinion request to Claude Code CLI. Not available from a Claude Code host because nested sessions are unsupported. |
| ask-grok | @ask-llm/grok-mcp | prompt (required), model (optional), harness (optional: xai-api or grok-cli), reasoningEffort (optional) | Metered Grok consultation through xAI. Exact model is sent unchanged; no fallback. Requires XAI_API_KEY. |
| ask-antigravity | @ask-llm/antigravity-mcp | prompt (required), includeDirs (optional) | Subscription-backed second opinion via Google Antigravity (`agy`). Model is env-controlled (ASK_ANTIGRAVITY_MODEL), not a per-call param. |
| ask-ollama | @ask-llm/ollama-mcp | prompt (required), model (optional), sessionId (optional) | Send prompts to a local Ollama model. |
| ask-gemini | @ask-llm/gemini-mcp | prompt (required), model (optional), sessionId (optional) | Send prompts to Gemini CLI. Use @ syntax for files. sessionId resumes a conversation. |
| ask-gemini-edit | @ask-llm/gemini-mcp | prompt (required), model (optional), includeDirs (optional) | Get structured OLD/NEW code edit blocks from Gemini. |
| fetch-chunk | @ask-llm/gemini-mcp | cacheKey (required), chunkIndex (required) | Retrieve subsequent chunks from cached large responses. |
| ask-llm | @ask-llm/mcp | prompt (required), provider (required), model (optional), sessionId (optional), harness (optional, grok only), includeDirs (optional: codex/claude/antigravity), reasoningEffort (optional: codex/grok) | Route a prompt to a chosen installed provider (codex/claude/grok/antigravity/ollama/gemini). Unsupported includeDirs/reasoningEffort combinations fail validation instead of being stripped; resumed Codex threads reject includeDirs. |
| ask-cursor-agent | @ask-llm/mcp | provider (required), model (required exact Cursor ID), prompt (required), includeDirs (optional, relative `--add-dir` roots), sessionId (optional; reuse the returned Cursor conversation ID to `--resume`) | Model-neutral Cursor harness in read-only ask mode; no force, trust, spend changes, or fallback. |
| multi-llm | @ask-llm/mcp | prompt (required), providers (optional) | Dispatch one prompt to multiple providers in parallel; returns a structured report. |
| get-usage-stats | all packages | (none) | Session usage aggregation (tokens, calls) for the provider. |
| diagnose | @ask-llm/mcp | (none) | Environment diagnostics: which provider CLIs are installed and reachable. |
| ping | all packages | message (optional) | Test MCP server connectivity. Ollama's ping also lists installed models. |
Note: every `includeDirs` parameter accepts **relative paths only**: no `..`, absolute paths, or `~` (rejected by schema validation).
## Claude Code, Cursor Agent, and Pi Host Package
For Cursor Agent: `agent --plugin-dir ./packages/claude-plugin` from a source checkout loads `.cursor-plugin/plugin.json` (Agent Skills exposing exactly `/codex-pair` and `/grok-pair`; explicit empty `agents`/`commands`/`hooks`; `mcp.json` registering only the unified `ask-llm` server, with `@ask-llm/codex-mcp`/`@ask-llm/grok-mcp` as optional user installs); no Claude hooks, namespaces, or the `-ack`/`-pause`/`-resume` toggles. Guide: https://lykhoyda.github.io/ask-llm/plugin/cursor
For Pi: `pi install npm:@ask-llm/plugin`. Invoke `/skill:<name>`; Pi gets native `ask-codex`, `ask-gemini`, `ask-grok`, `ask-ollama`, `ask-antigravity`, model-neutral `ask-cursor-agent`, and deterministic `ask-multi` tools because Pi has no built-in MCP client. `fable-review`, `grok-pair`, blocking Stop-gate parity, and asynchronous one-shot print pairing are intentionally unsupported. Pi codex-pair requires marker + project trust + user-owned allowlist consent.
## Claude Code Plugin
Install the plugin for review skills, brainstorm agents, and automated hooks:
```
/plugin marketplace add Lykhoyda/ask-llm
/plugin install ask-llm@ask-llm-plugins
```
Skills: /multi-review, /fable-review, /sol-review, /codex-review, /grok-review, /antigravity-review, /ollama-review, /gemini-review, /brainstorm, /brainstorm-all, /compare, /codex-verify, /codex-image, /grok-pair, /codex-pair (+ -ack, -pause, -resume)
codex-pair (flagship): opt-in continuous review. Codex reviews every file edit as Claude makes it, gated on a .codex-pair/context.md marker (zero cost without it). Debounced per-edit reviews, HIGH/MED verdicts surface on the next turn, opt-in Stop gate blocks turn-end on unaddressed HIGH findings. Full page: https://lykhoyda.github.io/ask-llm/plugin/codex-pair
Plugin pages: https://lykhoyda.github.io/ask-llm/plugin/overview, https://lykhoyda.github.io/ask-llm/plugin/cursor, https://lykhoyda.github.io/ask-llm/plugin/codex-pair, https://lykhoyda.github.io/ask-llm/plugin/skills, https://lykhoyda.github.io/ask-llm/plugin/hooks, https://lykhoyda.github.io/ask-llm/plugin/agents
## Links
- Source: https://github.com/Lykhoyda/ask-llm
- Docs: https://lykhoyda.github.io/ask-llm/
- Full reference for AI agents: https://lykhoyda.github.io/ask-llm/llms-full.txt
- npm (codex): https://www.npmjs.com/package/@ask-llm/codex-mcp
- npm (claude): https://www.npmjs.com/package/@ask-llm/claude-mcp
- npm (grok): https://www.npmjs.com/package/@ask-llm/grok-mcp
- npm (antigravity): https://www.npmjs.com/package/@ask-llm/antigravity-mcp
- npm (ollama): https://www.npmjs.com/package/@ask-llm/ollama-mcp
- npm (gemini): https://www.npmjs.com/package/@ask-llm/gemini-mcp
- npm (unified): https://www.npmjs.com/package/@ask-llm/mcp