Search / io.github.Lykhoyda/ask-llm
ask-llm
L0· runs locallyUnified MCP server for Gemini, Codex, Claude, Grok, Ollama, and Antigravity
v1.2.1 · active · repository · descriptor JSON · versions
Search / io.github.Lykhoyda/ask-llm
L0· runs locallyUnified MCP server for Gemini, Codex, Claude, Grok, Ollama, and Antigravity
v1.2.1 · active · repository · descriptor JSON · versions
{
"mcpServers": {
"ask-llm": {
"command": "npx",
"args": [
"-y",
"@ask-llm/[email protected]"
],
"env": {
"XAI_API_KEY": "${XAI_API_KEY}",
"ASK_GROK_HARNESS": "xai-api",
"ASK_GROK_REASONING_EFFORT": "high",
"ASK_GROK_MAX_OUTPUT_TOKENS": "16384",
"ASK_GROK_TIMEOUT_MS": "600000",
"CURSOR_API_KEY": "${CURSOR_API_KEY}",
"ASK_CURSOR_TIMEOUT_MS": "600000",
"ASK_CLAUDE_MODEL": "opus",
"ASK_CLAUDE_FALLBACK_MODEL": "sonnet",
"ASK_CLAUDE_TIMEOUT_MS": "600000",
"OLLAMA_HOST": "http://localhost:11434",
"ASK_ANTIGRAVITY_TIMEOUT_MS": "300000",
"ASK_ANTIGRAVITY_SANDBOX": "1",
"GMCPT_TIMEOUT_MS": "300000",
"GMCPT_LOG_LEVEL": "warn"
}
}
}
}claude mcp add ask-llm -e "XAI_API_KEY=${XAI_API_KEY}" -e "ASK_GROK_HARNESS=xai-api" -e "ASK_GROK_REASONING_EFFORT=high" -e "ASK_GROK_MAX_OUTPUT_TOKENS=16384" -e "ASK_GROK_TIMEOUT_MS=600000" -e "CURSOR_API_KEY=${CURSOR_API_KEY}" -e "ASK_CURSOR_TIMEOUT_MS=600000" -e "ASK_CLAUDE_MODEL=opus" -e "ASK_CLAUDE_FALLBACK_MODEL=sonnet" -e "ASK_CLAUDE_TIMEOUT_MS=600000" -e "OLLAMA_HOST=http://localhost:11434" -e "ASK_ANTIGRAVITY_TIMEOUT_MS=300000" -e "ASK_ANTIGRAVITY_SANDBOX=1" -e "GMCPT_TIMEOUT_MS=300000" -e "GMCPT_LOG_LEVEL=warn" -- npx -y @ask-llm/[email protected][mcp_servers.ask-llm]
command = "npx"
args = ["-y", "@ask-llm/[email protected]"]
env = { "XAI_API_KEY" = "${XAI_API_KEY}", "ASK_GROK_HARNESS" = "xai-api", "ASK_GROK_REASONING_EFFORT" = "high", "ASK_GROK_MAX_OUTPUT_TOKENS" = "16384", "ASK_GROK_TIMEOUT_MS" = "600000", "CURSOR_API_KEY" = "${CURSOR_API_KEY}", "ASK_CURSOR_TIMEOUT_MS" = "600000", "ASK_CLAUDE_MODEL" = "opus", "ASK_CLAUDE_FALLBACK_MODEL" = "sonnet", "ASK_CLAUDE_TIMEOUT_MS" = "600000", "OLLAMA_HOST" = "http://localhost:11434", "ASK_ANTIGRAVITY_TIMEOUT_MS" = "300000", "ASK_ANTIGRAVITY_SANDBOX" = "1", "GMCPT_TIMEOUT_MS" = "300000", "GMCPT_LOG_LEVEL" = "warn" }
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ask-llm": {
"type": "local",
"command": [
"npx",
"-y",
"@ask-llm/[email protected]"
],
"enabled": true,
"environment": {
"XAI_API_KEY": "{env:XAI_API_KEY}",
"ASK_GROK_HARNESS": "xai-api",
"ASK_GROK_REASONING_EFFORT": "high",
"ASK_GROK_MAX_OUTPUT_TOKENS": "16384",
"ASK_GROK_TIMEOUT_MS": "600000",
"CURSOR_API_KEY": "{env:CURSOR_API_KEY}",
"ASK_CURSOR_TIMEOUT_MS": "600000",
"ASK_CLAUDE_MODEL": "opus",
"ASK_CLAUDE_FALLBACK_MODEL": "sonnet",
"ASK_CLAUDE_TIMEOUT_MS": "600000",
"OLLAMA_HOST": "http://localhost:11434",
"ASK_ANTIGRAVITY_TIMEOUT_MS": "300000",
"ASK_ANTIGRAVITY_SANDBOX": "1",
"GMCPT_TIMEOUT_MS": "300000",
"GMCPT_LOG_LEVEL": "warn"
}
}
}
}{
"mcpServers": {
"ask-llm": {
"command": "npx",
"args": [
"-y",
"@ask-llm/[email protected]"
],
"env": {
"XAI_API_KEY": "${XAI_API_KEY}",
"ASK_GROK_HARNESS": "xai-api",
"ASK_GROK_REASONING_EFFORT": "high",
"ASK_GROK_MAX_OUTPUT_TOKENS": "16384",
"ASK_GROK_TIMEOUT_MS": "600000",
"CURSOR_API_KEY": "${CURSOR_API_KEY}",
"ASK_CURSOR_TIMEOUT_MS": "600000",
"ASK_CLAUDE_MODEL": "opus",
"ASK_CLAUDE_FALLBACK_MODEL": "sonnet",
"ASK_CLAUDE_TIMEOUT_MS": "600000",
"OLLAMA_HOST": "http://localhost:11434",
"ASK_ANTIGRAVITY_TIMEOUT_MS": "300000",
"ASK_ANTIGRAVITY_SANDBOX": "1",
"GMCPT_TIMEOUT_MS": "300000",
"GMCPT_LOG_LEVEL": "warn"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=ask-llm&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBhc2stbGxtL21jcEAxLjIuMSJdLCJlbnYiOnsiWEFJX0FQSV9LRVkiOiIke1hBSV9BUElfS0VZfSIsIkFTS19HUk9LX0hBUk5FU1MiOiJ4YWktYXBpIiwiQVNLX0dST0tfUkVBU09OSU5HX0VGRk9SVCI6ImhpZ2giLCJBU0tfR1JPS19NQVhfT1VUUFVUX1RPS0VOUyI6IjE2Mzg0IiwiQVNLX0dST0tfVElNRU9VVF9NUyI6IjYwMDAwMCIsIkNVUlNPUl9BUElfS0VZIjoiJHtDVVJTT1JfQVBJX0tFWX0iLCJBU0tfQ1VSU09SX1RJTUVPVVRfTVMiOiI2MDAwMDAiLCJBU0tfQ0xBVURFX01PREVMIjoib3B1cyIsIkFTS19DTEFVREVfRkFMTEJBQ0tfTU9ERUwiOiJzb25uZXQiLCJBU0tfQ0xBVURFX1RJTUVPVVRfTVMiOiI2MDAwMDAiLCJPTExBTUFfSE9TVCI6Imh0dHA6Ly9sb2NhbGhvc3Q6MTE0MzQiLCJBU0tfQU5USUdSQVZJVFlfVElNRU9VVF9NUyI6IjMwMDAwMCIsIkFTS19BTlRJR1JBVklUWV9TQU5EQk9YIjoiMSIsIkdNQ1BUX1RJTUVPVVRfTVMiOiIzMDAwMDAiLCJHTUNQVF9MT0dfTEVWRUwiOiJ3YXJuIn19"
}{
"servers": {
"ask-llm": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@ask-llm/[email protected]"
],
"env": {
"XAI_API_KEY": "${XAI_API_KEY}",
"ASK_GROK_HARNESS": "xai-api",
"ASK_GROK_REASONING_EFFORT": "high",
"ASK_GROK_MAX_OUTPUT_TOKENS": "16384",
"ASK_GROK_TIMEOUT_MS": "600000",
"CURSOR_API_KEY": "${CURSOR_API_KEY}",
"ASK_CURSOR_TIMEOUT_MS": "600000",
"ASK_CLAUDE_MODEL": "opus",
"ASK_CLAUDE_FALLBACK_MODEL": "sonnet",
"ASK_CLAUDE_TIMEOUT_MS": "600000",
"OLLAMA_HOST": "http://localhost:11434",
"ASK_ANTIGRAVITY_TIMEOUT_MS": "300000",
"ASK_ANTIGRAVITY_SANDBOX": "1",
"GMCPT_TIMEOUT_MS": "300000",
"GMCPT_LOG_LEVEL": "warn"
}
}
}
}{
"mcpServers": {
"ask-llm": {
"command": "npx",
"args": [
"-y",
"@ask-llm/[email protected]"
],
"env": {
"XAI_API_KEY": "${XAI_API_KEY}",
"ASK_GROK_HARNESS": "xai-api",
"ASK_GROK_REASONING_EFFORT": "high",
"ASK_GROK_MAX_OUTPUT_TOKENS": "16384",
"ASK_GROK_TIMEOUT_MS": "600000",
"CURSOR_API_KEY": "${CURSOR_API_KEY}",
"ASK_CURSOR_TIMEOUT_MS": "600000",
"ASK_CLAUDE_MODEL": "opus",
"ASK_CLAUDE_FALLBACK_MODEL": "sonnet",
"ASK_CLAUDE_TIMEOUT_MS": "600000",
"OLLAMA_HOST": "http://localhost:11434",
"ASK_ANTIGRAVITY_TIMEOUT_MS": "300000",
"ASK_ANTIGRAVITY_SANDBOX": "1",
"GMCPT_TIMEOUT_MS": "300000",
"GMCPT_LOG_LEVEL": "warn"
}
}
}
}extensions:
"ask-llm":
enabled: true
name: "ask-llm"
type: stdio
cmd: "npx"
args:
- "-y"
- "@ask-llm/[email protected]"
envs:
"XAI_API_KEY": "${XAI_API_KEY}"
"ASK_GROK_HARNESS": "xai-api"
"ASK_GROK_REASONING_EFFORT": "high"
"ASK_GROK_MAX_OUTPUT_TOKENS": "16384"
"ASK_GROK_TIMEOUT_MS": "600000"
"CURSOR_API_KEY": "${CURSOR_API_KEY}"
"ASK_CURSOR_TIMEOUT_MS": "600000"
"ASK_CLAUDE_MODEL": "opus"
"ASK_CLAUDE_FALLBACK_MODEL": "sonnet"
"ASK_CLAUDE_TIMEOUT_MS": "600000"
"OLLAMA_HOST": "http://localhost:11434"
"ASK_ANTIGRAVITY_TIMEOUT_MS": "300000"
"ASK_ANTIGRAVITY_SANDBOX": "1"
"GMCPT_TIMEOUT_MS": "300000"
"GMCPT_LOG_LEVEL": "warn"
timeout: 300
Placeholders to fill from your own secret store: ${XAI_API_KEY}, ${CURSOR_API_KEY}. The registry never accepts secret values.
This is a local package: the command runs on your machine.
Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)auth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)stability.changes, stability.rug_pulltool list unknowndeps.known_vulns, deps.mcp_sdk_version, deps.resolvabledeps.dev does not know @ask-llm/[email protected]No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo ~liveness-unmeasured +updated-7d-ago -duplicate-repo(7 names)
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
@ask-llm/[email protected] npmthis version is not known to the dependency resolver
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
@ask-llm/mcp | npm | 1.2.1 | – | XAI_API_KEY, CURSOR_API_KEY |
No tools observed. Local packages are never executed by the registry.
Schemas: list_tools.
6 other active names share this repository: io.github.Lykhoyda/ask-antigravity, io.github.Lykhoyda/ask-claude, io.github.Lykhoyda/ask-codex, io.github.Lykhoyda/ask-gemini, io.github.Lykhoyda/ask-grok, io.github.Lykhoyda/ask-ollama
{
"name": "io.github.Lykhoyda/ask-llm",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "1.2.1",
"packages": [
{
"version": "1.2.1",
"transport": {
"type": "stdio"
},
"identifier": "@ask-llm/mcp",
"registryType": "npm",
"environmentVariables": [
{
"name": "XAI_API_KEY",
"format": "string",
"isSecret": true,
"description": "xAI API key for metered Grok requests; Ask LLM never enables billing or credits"
},
{
"name": "ASK_GROK_HARNESS",
"format": "string",
"default": "xai-api",
"description": "Explicit Grok harness: xai-api (default) or grok-cli; no failover"
},
{
"name": "ASK_GROK_MODEL",
"format": "string",
"description": "Exact selected-harness model override (API default grok-4.7; CLI default grok-4.7; no fallback)"
},
{
"name": "ASK_GROK_REASONING_EFFORT",
"format": "string",
"default": "high",
"description": "Grok reasoning effort: low, medium, high, or xhigh (default: high)"
},
{
"name": "ASK_GROK_MAX_OUTPUT_TOKENS",
"format": "string",
"default": "16384",
"description": "xAI API output-token ceiling to bound accidental spend (default: 16384)"
},
{
"name": "ASK_GROK_TIMEOUT_MS",
"format": "string",
"default": "600000",
"description": "Timeout for xAI API requests in milliseconds (default: 600000)"
},
{
"name": "CURSOR_API_KEY",
"format": "string",
"isSecret": true,
"description": "Optional Cursor CLI credential for ask-cursor-agent; alternative to agent login"
},
{
"name": "ASK_CURSOR_TIMEOUT_MS",
"format": "string",
"default": "600000",
"description": "Timeout for model-neutral Cursor Agent harness calls (default: 600000)"
},
{
"name": "ASK_CLAUDE_MODEL",
"format": "string",
"default": "opus",
"description": "Default Claude model alias or full model name (default: opus)"
},
{
"name": "ASK_CLAUDE_FALLBACK_MODEL",
"format": "string",
"default": "sonnet",
"description": "Claude CLI fallback when Opus is overloaded or unavailable (default: sonnet)"
},
{
"name": "ASK_CLAUDE_TIMEOUT_MS",
"format": "string",
"default": "600000",
"description": "Timeout for Claude CLI execution in milliseconds (default: 600000 = 10 minutes)"
},
{
"name": "OLLAMA_HOST",
"format": "string",
"default": "http://localhost:11434",
"description": "Ollama server address (default: http://localhost:11434)"
},
{
"name": "ASK_ANTIGRAVITY_TIMEOUT_MS",
"format": "string",
"default": "300000",
"description": "Timeout for Antigravity (agy) execution in milliseconds (default: 300000 = 5 minutes)"
},
{
"name": "ASK_ANTIGRAVITY_SANDBOX",
"format": "string",
"default": "1",
"description": "Set to '0' to drop agy's --sandbox flag if it blocks --add-dir context reads (default: sandbox on)"
},
{
"name": "GMCPT_TIMEOUT_MS",
"format": "string",
"default": "300000",
"description": "Timeout for CLI execution in milliseconds (default: 300000 = 5 minutes)"
},
{
"name": "GMCPT_LOG_LEVEL",
"format": "string",
"default": "warn",
"description": "Log verbosity: debug, info, warn, error (default: warn)"
}
]
}
],
"repository": {
"url": "https://github.com/Lykhoyda/ask-llm",
"source": "github"
},
"description": "Unified MCP server for Gemini, Codex, Claude, Grok, Ollama, and Antigravity"
}