{"id":47745476,"url":"https://github.com/lykhoyda/ask-llm","last_synced_at":"2026-05-28T16:01:15.009Z","repository":{"id":340157121,"uuid":"1161931627","full_name":"Lykhoyda/ask-llm","owner":"Lykhoyda","description":"MCP server for AI-to-AI collaboration — bridge Claude with Gemini, Codex, and other LLMs for code review, second opinions, and plan debate","archived":false,"fork":false,"pushed_at":"2026-05-26T20:39:54.000Z","size":2541,"stargazers_count":10,"open_issues_count":23,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-26T21:14:25.191Z","etag":null,"topics":["ai","claude","claude-ai","claude-code","claude-mcp","gemini","gemini-mcp","mcp"],"latest_commit_sha":null,"homepage":"https://lykhoyda.github.io/ask-llm/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lykhoyda.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":null,"governance":null,"roadmap":"docs/ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-19T17:23:57.000Z","updated_at":"2026-05-26T20:38:57.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Lykhoyda/ask-llm","commit_stats":null,"previous_names":["lykhoyda/claude-ask-gemini-mcp","lykhoyda/ask-llm"],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/Lykhoyda/ask-llm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lykhoyda%2Fask-llm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lykhoyda%2Fask-llm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lykhoyda%2Fask-llm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lykhoyda%2Fask-llm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lykhoyda","download_url":"https://codeload.github.com/Lykhoyda/ask-llm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lykhoyda%2Fask-llm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33615490,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","claude","claude-ai","claude-code","claude-mcp","gemini","gemini-mcp","mcp"],"created_at":"2026-04-03T00:49:03.973Z","updated_at":"2026-05-28T16:01:14.988Z","avatar_url":"https://github.com/Lykhoyda.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ask LLM\n\n\u003cdiv align=\"center\"\u003e\n\n[![CI](https://img.shields.io/github/actions/workflow/status/Lykhoyda/ask-llm/ci.yml?branch=main\u0026label=CI\u0026logo=github)](https://github.com/Lykhoyda/ask-llm/actions/workflows/ci.yml)\n[![Release](https://img.shields.io/github/actions/workflow/status/Lykhoyda/ask-llm/release.yml?branch=main\u0026label=release\u0026logo=npm)](https://github.com/Lykhoyda/ask-llm/actions/workflows/release.yml)\n[![GitHub Release](https://img.shields.io/github/v/release/Lykhoyda/ask-llm?logo=github\u0026label=release)](https://github.com/Lykhoyda/ask-llm/releases)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\n| Package | Type | Version | Downloads |\n|---------|------|---------|-----------|\n| [`ask-gemini-mcp`](https://www.npmjs.com/package/ask-gemini-mcp) | MCP Server | [![npm](https://img.shields.io/npm/v/ask-gemini-mcp)](https://www.npmjs.com/package/ask-gemini-mcp) | [![downloads](https://img.shields.io/npm/dt/ask-gemini-mcp)](https://www.npmjs.com/package/ask-gemini-mcp) |\n| [`ask-codex-mcp`](https://www.npmjs.com/package/ask-codex-mcp) | MCP Server | [![npm](https://img.shields.io/npm/v/ask-codex-mcp)](https://www.npmjs.com/package/ask-codex-mcp) | [![downloads](https://img.shields.io/npm/dt/ask-codex-mcp)](https://www.npmjs.com/package/ask-codex-mcp) |\n| [`ask-ollama-mcp`](https://www.npmjs.com/package/ask-ollama-mcp) | MCP Server | [![npm](https://img.shields.io/npm/v/ask-ollama-mcp)](https://www.npmjs.com/package/ask-ollama-mcp) | [![downloads](https://img.shields.io/npm/dt/ask-ollama-mcp)](https://www.npmjs.com/package/ask-ollama-mcp) |\n| [`ask-llm-mcp`](https://www.npmjs.com/package/ask-llm-mcp) | MCP Server | [![npm](https://img.shields.io/npm/v/ask-llm-mcp)](https://www.npmjs.com/package/ask-llm-mcp) | [![downloads](https://img.shields.io/npm/dt/ask-llm-mcp)](https://www.npmjs.com/package/ask-llm-mcp) |\n| [`@ask-llm/plugin`](https://github.com/Lykhoyda/ask-llm/tree/main/packages/claude-plugin) | Claude Code Plugin | [![GitHub](https://img.shields.io/github/v/release/Lykhoyda/ask-llm?label=latest)](https://github.com/Lykhoyda/ask-llm/releases) | `/plugin install` |\n\n**MCP servers + Claude Code plugin for AI-to-AI collaboration**\n\n\u003c/div\u003e\n\nMCP servers that bridge your AI client with multiple LLM providers for AI-to-AI collaboration. Works with Claude Code, Claude Desktop, Cursor, Warp, Copilot, and [40+ other MCP clients](https://modelcontextprotocol.io/clients). Leverage Gemini's 1M+ token context, Codex's GPT-5.5, or local Ollama models — all via standard [MCP](https://modelcontextprotocol.io/).\n\n## Why?\n\n- **Get a second opinion** — Ask another AI to review your coding approach before committing\n- **Debate plans** — Send architecture proposals for critique and alternative suggestions\n- **Review changes** — Have multiple AIs analyze diffs to catch issues your primary AI might miss\n- **Massive context** — Gemini reads entire codebases (1M+ tokens) that would overflow other models\n- **Local \u0026 private** — Use Ollama for reviews where no data leaves your machine\n\n## Quick Start\n\n### Claude Code\n\n```bash\n# All-in-one — auto-detects installed providers\nclaude mcp add --scope user ask-llm -- npx -y ask-llm-mcp\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eOr install providers individually\u003c/summary\u003e\n\n```bash\nclaude mcp add --scope user gemini -- npx -y ask-gemini-mcp\nclaude mcp add --scope user codex -- npx -y ask-codex-mcp\nclaude mcp add --scope user ollama -- npx -y ask-ollama-mcp\n```\n\n\u003c/details\u003e\n\n### Claude Desktop\n\nAdd to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"ask-llm\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ask-llm-mcp\"]\n    }\n  }\n}\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eOr install providers individually\u003c/summary\u003e\n\n```json\n{\n  \"mcpServers\": {\n    \"gemini\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ask-gemini-mcp\"]\n    },\n    \"codex\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ask-codex-mcp\"]\n    },\n    \"ollama\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ask-ollama-mcp\"]\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eCursor, Codex CLI, OpenCode, and other clients\u003c/summary\u003e\n\n**Cursor** (`.cursor/mcp.json`):\n```json\n{\n  \"mcpServers\": {\n    \"ask-llm\": { \"command\": \"npx\", \"args\": [\"-y\", \"ask-llm-mcp\"] }\n  }\n}\n```\n\n**Codex CLI** (`~/.codex/config.toml`):\n```toml\n[mcp_servers.ask-llm]\ncommand = \"npx\"\nargs = [\"-y\", \"ask-llm-mcp\"]\n```\n\n**Any MCP Client** (STDIO transport):\n```json\n{ \"command\": \"npx\", \"args\": [\"-y\", \"ask-llm-mcp\"] }\n```\n\nReplace `ask-llm-mcp` with `ask-gemini-mcp`, `ask-codex-mcp`, or `ask-ollama-mcp` for a single provider.\n\n\u003c/details\u003e\n\n## Claude Code Plugin\n\nThe **Ask LLM plugin** adds multi-provider code review, brainstorming, and automated hooks directly into Claude Code:\n\n```\n/plugin marketplace add Lykhoyda/ask-llm\n/plugin install ask-llm@ask-llm-plugins\n```\n\n### What You Get\n\n| Feature | Description |\n|:---|:---|\n| \u003cnobr\u003e`/multi-review`\u003c/nobr\u003e | Parallel Gemini + Codex review with 4-phase validation pipeline and consensus highlighting |\n| \u003cnobr\u003e`/gemini-review`\u003c/nobr\u003e | Gemini-only review with confidence filtering |\n| \u003cnobr\u003e`/codex-review`\u003c/nobr\u003e | Codex-only review with confidence filtering |\n| \u003cnobr\u003e`/ollama-review`\u003c/nobr\u003e | Local review — no data leaves your machine |\n| \u003cnobr\u003e`/brainstorm`\u003c/nobr\u003e | Multi-LLM brainstorm: Claude Opus researches the topic against real files in parallel with external providers (Gemini/Codex/Ollama), then synthesizes all findings with verified findings weighted higher |\n| \u003cnobr\u003e`/compare`\u003c/nobr\u003e | Side-by-side raw responses from multiple providers, no synthesis — for when you want to see how each provider phrases the same answer |\n| \u003cnobr\u003e**`codex-pair` hook**\u003c/nobr\u003e | Opt-in continuous review — runs Codex against every Edit/Write/MultiEdit when a `.codex-pair/context.md` marker is present in the project |\n\nThe review agents use a 4-phase pipeline inspired by [Anthropic's code-review plugin](https://github.com/anthropics/claude-code/tree/main/plugins/code-review): context gathering, prompt construction with explicit false-positive exclusions, synthesis, and source-level validation of each finding.\n\nSee the [plugin docs](https://lykhoyda.github.io/ask-llm/plugin/overview) for details.\n\n## Prerequisites\n\n- **[Node.js](https://nodejs.org/)** v20.0.0 or higher (LTS)\n- **At least one provider:**\n  - [Gemini CLI](https://github.com/google-gemini/gemini-cli) — `npm install -g @google/gemini-cli \u0026\u0026 gemini login`\n  - [Codex CLI](https://github.com/openai/codex) — installed and authenticated\n  - [Ollama](https://ollama.com) — running locally with a model pulled (`ollama pull qwen2.5-coder:7b`)\n\n## MCP Tools\n\n| Tool | Package | Purpose |\n|------|---------|---------|\n| `ask-gemini` | ask-gemini-mcp | Send prompts to Gemini CLI with `@` file syntax. 1M+ token context. Live progressive output via `stream-json` |\n| `ask-gemini-edit` | ask-gemini-mcp | Get structured OLD/NEW code edit blocks from Gemini |\n| `fetch-chunk` | ask-gemini-mcp | Retrieve chunks from cached large responses |\n| `ask-codex` | ask-codex-mcp | Send prompts to Codex CLI. GPT-5.5 with mini fallback. Native session resume via `sessionId` |\n| `ask-ollama` | ask-ollama-mcp | Send prompts to local Ollama. Fully private, zero cost. Server-side conversation replay via `sessionId` |\n| `ask-llm` | ask-llm-mcp | Unified orchestrator — pick provider per call. Fan out to all installed providers |\n| `multi-llm` | ask-llm-mcp | Dispatch the same prompt to multiple providers in parallel; returns per-provider responses + usage in one call |\n| `get-usage-stats` | all | Per-session token totals, fallback counts, breakdowns by provider/model — all in-memory, no persistence |\n| `diagnose` | ask-llm-mcp | Self-diagnosis: Node version, PATH resolution, provider CLI presence + versions. Read-only |\n| `ping` | all | Connection test — verify MCP setup |\n\nAll `ask-*` tools accept an optional `sessionId` parameter for multi-turn conversations and now return a structured `AskResponse` (provider, response, model, sessionId, usage) via MCP `outputSchema` alongside the human-readable text. The orchestrator (`ask-llm-mcp`) also exposes `usage://current-session` as an MCP Resource for live JSON snapshots.\n\n### Usage Examples\n\n```\nask gemini to review the changes in @src/auth.ts for security issues\nask codex to suggest a better algorithm for @src/sort.ts\nask ollama to explain @src/config.ts (runs locally, no data sent anywhere)\nuse gemini to summarize @. the current directory\nuse multi-llm to compare what gemini and codex think about this approach\n```\n\n## CLI Subcommands\n\nThe orchestrator binary (`ask-llm-mcp`) supports two CLI modes alongside the default MCP server:\n\n```bash\n# Interactive multi-provider REPL — switch providers, persist sessions, see usage live\nnpx ask-llm-mcp repl\n\n# Diagnose your setup — Node version, PATH, provider CLI versions, env vars\nnpx ask-llm-mcp doctor          # human-readable\nnpx ask-llm-mcp doctor --json   # machine-readable, exit 1 on error\n```\n\nThe REPL ships sessions per provider (`/provider gemini`, `/provider codex`, `/new`, `/sessions`, `/usage`) and inherits all the executor behavior (quota fallback, stream-json output for Gemini, native session resume).\n\n## Models\n\n| Provider | Default | Fallback |\n|----------|---------|----------|\n| Gemini | `gemini-3.1-pro-preview` | `gemini-3-flash-preview` (on quota) |\n| Codex | `gpt-5.5` | `gpt-5.5-mini` (on quota) |\n| Ollama | `qwen2.5-coder:7b` | `qwen2.5-coder:1.5b` (if not found) |\n\nAll providers automatically fall back to a lighter model on errors.\n\n## Documentation\n\n- **Docs site:** [lykhoyda.github.io/ask-llm](https://lykhoyda.github.io/ask-llm/)\n- **AI-readable:** [llms.txt](https://lykhoyda.github.io/ask-llm/llms.txt) | [llms-full.txt](https://lykhoyda.github.io/ask-llm/llms-full.txt)\n\n## Contributing\n\nContributions are welcome! See [open issues](https://github.com/Lykhoyda/ask-llm/issues) for things to work on.\n\n## License\n\nMIT License. See [LICENSE](LICENSE) for details.\n\n**Disclaimer:** This is an unofficial, third-party tool and is not affiliated with, endorsed, or sponsored by Google or OpenAI.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flykhoyda%2Fask-llm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flykhoyda%2Fask-llm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flykhoyda%2Fask-llm/lists"}