Skip to main content
Glama

CI Version Python License MCP

One Grok teammate. Every coding agent.

Install UniGrok Core once, connect every MCP-capable IDE, and use @grok from any project. Start with a no-key local model, a Grok Build login, an optional xAI API key, or any combination of those routes.

http://localhost:4765/mcp

This clone, the commands below, and the service they start on port 4765 are the complete public offering. Private provider coordination and operator infrastructure are not part of UniGrok Core.

Get running in three minutes

You need Docker Desktop and Git. Choose at least one inference route:

  1. No-key local model — Docker Model Runner plus a compatible local model.

  2. Grok Build login — subscription or available free-tier CLI access.

  3. xAI developer API key (console.x.ai) — optional and metered; adds provider-hosted files, media, search, and code execution.

UniGrok discovers the routes that are actually ready. A local-only installation stays local and reports unsupported cloud-only capabilities honestly.

In a hurry? npx @djtelicloud/unigrok prints these setup steps in your terminal. (A full launcher that runs the setup for you is planned; today UniGrok installs via Docker, below.)

1. Download and build

git clone https://github.com/djtelicloud/grok-mcp-server.git
cd grok-mcp-server
docker compose build

2. Choose an inference route

No paid key or CLI login. Enable Docker Model Runner, pull a pinned Gemma model, and start it locally:

docker desktop enable model-runner
docker model pull ai/gemma3:4B-Q4_K_M
docker model run --detach ai/gemma3:4B-Q4_K_M

This route uses Docker Desktop's private container endpoint and no API key. Leave host-side TCP support disabled: Docker Model Runner's API is unauthenticated, and enabling --tcp can expose it beyond localhost on some installations. The pinned model supplies bounded local text assistance; UniGrok does not pretend that it provides cloud search, media generation, or a separately certified code role.

Grok Build. Log in once — the device login runs inside the container and stores the session in a private Docker volume:

docker compose run --rm grok-cli-auth

Want the Grok CLI on your own machine too? It is optional:

curl -fsSL https://x.ai/cli/install.sh | bash

xAI API key (optional, metered). Adds provider-hosted files, vision, image/video, search, code execution, and bounded recovery. Keep the key in the service environment only — never in IDE MCP JSON:

export XAI_API_KEY='<your key>'

Any one route works alone. Configure more than one if you want bounded, receipted recovery between compatible routes.

3. Start UniGrok

docker compose up -d grok-mcp
curl --fail --silent http://127.0.0.1:4765/readyz

You are ready when the response says "status":"ready". On Windows PowerShell, prefer curl.exe -fsS http://127.0.0.1:4765/readyz if the curl alias is unreliable.

Multi-step agentic work (Ground pack)

UniGrok’s agent tool is leaf labor. Your IDE or automation remains the orchestrator.

For multi-step work, put a short Mission Brief in task (goal, options, constraints, done-when, return shape). Retry at most a few times with the same goal and an appended finding if a try fails. Prefer densified returns: WHAT / WHY / DELTA / NEXT.

Offline / free local path: when subscription or API is unavailable, Core can still use a staged local model route (Docker Model Runner or loopback OpenAI-compatible runtime). See Local model routes. Relay resolved_plane and cost receipts; disable web/X tools for true offline briefs; fail closed for cloud-only media.

After onboarding, see skills using-unigrok and mission-brief-harness (installed by grok_mcp_onboard_client with consent). Contributors: after GitHub auth (website or local gh auth login), install that public Ground pack once — step-by-step in CONTRIBUTING.md. Day-1 is Core + Ground pack only (not a second labor Docker seat, not extra operator nodes). Heavier capacity is a separate maintainer grant when someone runs an approved extra node under their map.

Official GitHub contributors (optional)

UniGrok can detect whether the authenticated caller is one of your official GitHub contributors. This never trusts X-Client-ID alone.

Service environment (examples):

# Fast path: explicit allowlist of GitHub logins
export UNIGROK_GITHUB_CONTRIBUTOR_ALLOWLIST='djtelicloud,curtisfratianne'

# And/or live GitHub API checks (service token — never put a user PAT in IDE MCP JSON)
export UNIGROK_GITHUB_TOKEN='ghp_…'   # or GITHUB_TOKEN
export UNIGROK_GITHUB_CONTRIBUTOR_REPOS='djtelicloud/grok-mcp-server,your-org/your-other-repo'
export UNIGROK_GITHUB_CONTRIBUTOR_ORGS='your-org'

# Local single-operator bind (optional)
export UNIGROK_GITHUB_LOGIN='djtelicloud'

grok_mcp_status and grok_mcp_discover_self return an affiliation object: is_official_contributor (true/false/null), source, and whether a login was detected. Use this for soft UX (contributor tips, onboard tone) — not as a secret vault.

Optional local bearer protection is available for /mcp and /v1:

export UNIGROK_LOCAL_MCP_TOKEN="$(python -c 'import secrets; print(secrets.token_urlsafe(32))')"
docker compose up -d --force-recreate grok-mcp
printf '%s\n' "$UNIGROK_LOCAL_MCP_TOKEN"

Store that bearer in the IDE's secret-backed MCP header configuration. A SHA-256 digest can be supplied as UNIGROK_LOCAL_MCP_TOKEN_SHA256 instead of retaining plaintext in the service environment. Health and readiness endpoints remain unauthenticated.

New to Grok-powered coding? Cursor (referral link) is an easy on-ramp — set up a Grok plane above whenever you're ready.

Related MCP server: Toolport

Connect your IDE

Paste this into Cursor, Claude Code, VS Code, Codex, Antigravity, or any MCP-capable coding agent:

Configure an MCP server named grok for this machine.

- Transport: Streamable HTTP
- URL: http://localhost:4765/mcp
- Send a stable X-Client-ID header for this IDE, such as cursor or claude-code
- When local bearer protection is enabled, send its Authorization header from the IDE's
  secret store
- Never place XAI_API_KEY in the IDE configuration; credentials stay in UniGrok
- Reload MCP servers, then call grok_mcp_discover_self
- Use UniGrok's agent tool whenever I say @grok

The config filename varies by IDE, but every client connects to the same local URL.

Try it in 60 seconds

Start a fresh conversation in any project and try:

@grok research the best current approach for this feature, then give me a short plan.
@grok remember that this project prefers small modules and tests before refactors.
@grok continue session "my-project" and challenge the implementation plan.

That is it — type @grok, and UniGrok picks the route, model, effort, and recovery for you. Every answer comes back with a plane and cost receipt.

Why vibe coders use UniGrok

What you get

One tool, agent — say what you want; routing, effort, and recovery are automatic

🎚️

Levels that scale — from a quick answer up to a parallel review swarm, picked for you

💸

A real zero-key route — a compatible Docker Model Runner model can serve local text without a paid provider key

🧾

Receipts on every answer — plane, cost, route, and fallback, so nothing is hidden

🧠

Sessions and memory — named sessions and facts you control, kept locally

🎨

Images, video, vision, files, web + X search when you add an API key

🤖

PR reviews on comment — a maintainer types @grok review on a pull request and a read-only Grok review answers

🔐

One credential boundary — keys live in UniGrok, not in every project

What's new in 1.1

Levels that scale with the job

Pass a level when you care how hard Grok thinks:

  • noneminimallowmediumhighxhigh — one call, native Grok efforts

  • max — a silent deep-reasoning harness under the hood

  • ultra — a parallel hive: draft, persona votes, then a merge

Leave level unset and UniGrok picks the rung for you. In local Compose, unclear tasks use CLI-first router votes. Hard tasks auto-engage deeper reasoning; a typo fix never pays for a swarm. Receipts expose any bounded API fallback used when those votes are inconclusive.

Jobs that survive restarts

On persistent local Compose, Mission V2 tasks keep their mission ledger across service restarts and resume with the same continue_token; terminal reattach returns the durable winner without rerunning the model. Generic durable jobs keep results recorded before restart. If a generic job was interrupted before a result was recorded, it returns lost: the provider outcome is unknown, so inspect state before retrying a metered or mutating operation.

Three routes, one simple entry point

The normal @grok service discovers a compatible local runtime automatically. It prefers a ready Grok Build login, can use a service-owned API key when authorized, and uses the local route when remote routes are unavailable. See Local model routes for the integrated route and the optional named helper.

flowchart TD
    T["{ task: Your request }"] --> R["Live route discovery"]
    R -->|"no-key local"| G["Local Gemma route"]
    R -->|"Grok Build ready"| D["Subscription / free-tier work"]
    R -->|"API explicitly configured"| M["Metered specialists"]
    G --> O["Result + model / plane / cost receipt"]
    D --> O
    M --> O
  • agent makes web, X search, and code tools available when the selected route supports them.

  • A ready Grok Build login remains the preferred remote lead.

  • With no remote credential, a compatible local runtime provides bounded local text help at cost_usd: 0.

  • UniGrok selects models, planes, reasoning effort, and recovery automatically.

  • Clear tasks route heuristically; otherwise three bounded, CLI-first intent votes select shape. If too few votes parse, an API semantic fallback may run (256 output tokens by default, configurable from 64–1024). Direct work remains subscription-first; specialists and bounded recovery use API as needed.

  • Supplying XAI_API_KEY is the service owner's opt-in to API use.

  • Set UNIGROK_ENABLE_METERED_API=false for an immediate API kill switch.

Install once, keep projects clean

UniGrok is a global local service. It does not copy itself into every repository and it never receives hidden access to your workspace.

On first use, UniGrok can offer an optional host-native integration pack through grok_mcp_onboard_client:

MCP connects → install globally? → IDE previews owned files → user approves → reload
                                      ↓
                         project guidance still overrides it
  • Global is recommended: install a namespaced skill/plugin in the IDE's user scope.

  • Project creates only a plan for project-local guidance.

  • Not now and Never ask again are explicit choices.

  • UniGrok never writes these files itself. The calling IDE uses its normal permissions, shows conflicts, and must not overwrite user-modified files blindly.

The current project-guidance conventions are:

AGENTS.md
.agents/rules/<rule-name>.md
.agents/workflows/<workflow-name>.md
.agents/skills/<skill-name>/SKILL.md

Project customizations take priority over the global UniGrok baseline. UniGrok provides the instructions and templates but remains workspace-neutral.

Safe by design

  • The service binds to 127.0.0.1 by default.

  • Optional local bearer authentication protects /mcp and /v1, accepts direct loopback/private-container peers, rejects forwarding headers, and bounds failure state.

  • CLI OAuth and the xAI API key stay on the server side.

  • The CLI runs in an empty disposable workspace with local file, shell, Git, edit, external MCP, memory, and subagent access disabled.

  • Project text reaches Grok only when the calling IDE deliberately sends bounded workspace_context.

  • Local durable payloads are recursively secret-redacted before SQLite storage. Mission answer projections are additionally capped at 100 KB.

  • Named-session turns and context packs are written only after Mission V2 CommitDone; rejected drafts never enter session memory, and repeated terminal reattach is idempotent.

  • In persistent local Compose, terminal runtime rows default to 24-hour retention (configurable 1–720 hours), while named sessions and remembered facts persist until explicitly deleted. Hosted state is instance-local as documented below.

  • Media accepts public HTTPS URLs; uploads accept caller-supplied bytes, never local filesystem paths.

  • Ask for an image or video without an API key and UniGrok says so plainly — it never fabricates a media link.

See SECURITY.md for the complete public runtime boundary.

Go deeper when you need it

I want to…

Read

Understand the service and state machines

Public architecture

See every tool and routing rule

Technical reference

Use the integrated local route or named local helper

Local model routes

Drive agent from an IDE agent

Technical reference

Auth with GitHub, then install the public Ground pack

Contributing

Develop or acceptance-test UniGrok

Development guide

See what has limited soak and how to report a miss

Known limits

See what changed between versions

Changelog

Report a security issue

Security policy

License

MIT

Available Tools

47 tools
agentA

Run the unified UniGrok agent on any task. This is the headline entry point — use it by default for anything nontrivial instead of picking a specialized tool.

It auto-routes across Grok models (planning model for reasoning-heavy tasks, coding model otherwise), gives the model its full action space on every request — xAI server-side web search, X search, and sandboxed code execution plus local file, git, and test tools — and lets the model decide for itself whether to act. Pass a session name and it remembers prior turns, including tool observations, so multi-step work continues across calls. When the client requests progress (MCP progressToken), depth and tool progress is reported live via the injected FastMCP context.

Args: task: The goal, question, or task for the agent. session: Optional session name. Persists conversation history and tool traces so later calls can continue the work. mode: "auto" (default) self-routes; "fast" forces a single toolless completion for trivial prompts; "reasoning" pins the planning model; "thinking" runs the agent loop plus a schema-enforced reflection review for the hardest tasks (slowest, most expensive); "research" runs multi-agent research on the planning model (agent_count from UNIGROK_RESEARCH_AGENT_COUNT, 4 or 16) with inline citations requested — sources come back under citations. model: Optional Grok model id. Leave unset to let routing choose. require_reasoning_level: Minimum required Grok reasoning level (low, medium, high).

Returns: AgentResult containing execution metadata and responses.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoauto
taskYes
modelNo
sessionNo
require_reasoning_levelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
whyNoRouter decision trace (Grok-native).
textNoHuman-formatted output (includes footers, citations, cost summary).
modelYesActual executing model ID (e.g. 'grok-4.5').
planeNo
routeYesHigh-level route (fast/agentic/research/etc.).
traceNoMulti-agent step trace (for grok_agent research mode).
tokensNoTotal tokens consumed.
profileNoInternal routing profile.
cost_usdNoExact USD cost from xAI billing metadata.
degradedNoTrue if fallback occurred.
responseYesRaw model output or primary content.
citationsNoNative xAI/X citations with URL + snippet.
latency_secNo
finish_reasonNo
reasoning_effortNoGrok 4.5+ native reasoning level.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes auto-routing across Grok models, session memory, progress reporting, mode behaviors including multi-agent research, and available action spaces, all beyond the empty annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear sections and front-loaded purpose, though slightly verbose; every sentence adds value but could be tightened slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all aspects: parameters, behavior, return types (AgentResult), multi-step capabilities, and progress reporting, making it fully self-contained given the complexity and existing output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds detailed meaning to all parameters (task, session, mode with enum descriptions, model, require_reasoning_level) despite 0% schema coverage, compensating fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it runs the unified UniGrok agent on any task and positions it as the default for nontrivial tasks, distinguishing it from specialized sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use by default for nontrivial tasks instead of specialized tools, and describes modes (auto, fast, reasoning, thinking, research) with their appropriate contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chatA

Send a text prompt to a Grok model and return its reply.

Absorbs the old agentic_chat tool: the ReAct AgentLoop is now the default route, so the model has its tool surface and self-directs. Set enable_agentic=False to force a single toolless completion.

Args: prompt: User message to send to the model. session: Optional session name. Persists conversation history. model: Grok model id (defaults to grok-build-0.1). system_prompt: Optional system instruction prepended to the conversation. agent_count: 4 or 16. Only valid with grok-4.20-multi-agent. enable_agentic: If True (default), runs through the ReAct AgentLoop. require_reasoning_level: Minimum required Grok reasoning level (low, medium, high).

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNogrok-build-0.1
promptYes
sessionNo
agent_countNo
system_promptNo
enable_agenticNo
require_reasoning_levelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
textNoHuman-formatted output (includes footers, citations, cost summary).
modelYesActual executing model ID (e.g. 'grok-4.5').
planeNo
routeYesHigh-level route (fast/agentic/research/etc.).
tokensNoTotal tokens consumed.
profileNoInternal routing profile.
sessionNoPersistent session name.
cost_usdNoExact USD cost from xAI billing metadata.
responseYesRaw model output or primary content.
citationsNoNative xAI/X citations with URL + snippet.
latency_secNo
response_idNoServer-side stateful ID for continuation.
finish_reasonNo
reasoning_effortNoGrok 4.5+ native reasoning level.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Discloses that the model self-directs with tool surface by default, and that setting enable_agentic=False forces a toolless completion. Mentions reasoning level requirement. Does not address rate limits or auth, but for a chat tool these are less critical.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a multi-line docstring with a concise one-sentence summary upfront. The args list is well-structured. Every sentence adds value, though could be more terse. Still, it is efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (Has output schema: true), the description need not explain return values. It covers all parameters, modes, and behavioral notes (agentic vs toolless, reasoning levels). Mentions multi-agent constraint. Sufficient for a chat tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must compensate. It explains each parameter: prompt (user message), session (persists history), model (Grok model id), system_prompt (prepended instruction), agent_count (4 or 16, only with grok-4.20-multi-agent), enable_agentic (default True), require_reasoning_level (enum values). Adds significant meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Send a text prompt to a Grok model and return its reply,' using a specific verb and resource. It distinguishes from siblings like chat_with_files and chat_with_vision by focusing on text input. The absorption of the old agentic_chat tool is also noted, adding clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear guidance on when to use agentic vs non-agentic mode via enable_agentic parameter. Mentions default model and session persistence. Does not explicitly exclude use cases or list alternatives, but sibling tool names imply other tools for file/vision. Lacks when-not-to-use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chat_with_filesA

Chat with Grok using one or more previously uploaded files as context.

Args: prompt: Question or instruction about the attached files. file_ids: IDs returned by xai_upload_file. session: Optional session name for persistent local history. model: Grok model id (default grok-4.3). system_prompt: Optional system instruction prepended to the conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNogrok-4.3
promptYes
sessionNo
file_idsYes
system_promptNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
textNoHuman-formatted output (includes footers, citations, cost summary).
modelYesActual executing model ID (e.g. 'grok-4.5').
planeNo
routeYesHigh-level route (fast/agentic/research/etc.).
tokensNoTotal tokens consumed.
profileNoInternal routing profile.
sessionNoPersistent session name.
cost_usdNoExact USD cost from xAI billing metadata.
responseYesRaw model output or primary content.
citationsNoNative xAI/X citations with URL + snippet.
latency_secNo
response_idNoServer-side stateful ID for continuation.
finish_reasonNo
reasoning_effortNoGrok 4.5+ native reasoning level.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavior. It describes the tool as chat with file context, but lacks details on side effects (none expected), prerequisites (files must be uploaded first), or potential errors. Adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Docstring format with concise function line and parameter list. Efficient, though parameter descriptions could be integrated into the main description for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, parameters, and usage. With an output schema present, return values need not be explained. Lacks mention of prerequisites (file upload) and sibling differentiation, but overall adequate for a straightforward chat tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but description explains all 5 parameters in detail: 'file_ids: IDs returned by xai_upload_file', 'session: Optional session name for persistent local history', etc. Adds significant value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action ('Chat with Grok') and resource ('previously uploaded files as context'). Distinguishes from sibling tools like 'chat' (no files) and 'chat_with_vision' (vision input).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use case: when you have uploaded files and want to query Grok about them. However, no explicit when-not-to-use or mention of alternatives like 'chat' for file-less conversations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chat_with_visionA

Analyze one or more images with a Grok vision model.

Args: prompt: Question or instruction about the image(s). session: Optional session name for persistent history in chats. model: Vision-capable Grok model (default grok-4.3). image_paths: Local image file paths to analyze. image_urls: Public image URLs to analyze. detail: Image detail level. One of "auto", "low", or "high".

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNogrok-4.3
detailNoauto
promptYes
sessionNo
image_urlsNo
image_pathsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
textNoHuman-formatted output (includes footers, citations, cost summary).
modelYesActual executing model ID (e.g. 'grok-4.5').
planeNo
routeYesHigh-level route (fast/agentic/research/etc.).
tokensNoTotal tokens consumed.
profileNoInternal routing profile.
sessionNoPersistent session name.
cost_usdNoExact USD cost from xAI billing metadata.
responseYesRaw model output or primary content.
citationsNoNative xAI/X citations with URL + snippet.
latency_secNo
response_idNoServer-side stateful ID for continuation.
finish_reasonNo
reasoning_effortNoGrok 4.5+ native reasoning level.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It mentions session persistence for history and detail levels but does not cover rate limits, error handling, file size/format constraints, or whether the tool is stateful or read-only. The model default is noted, but safety implications are absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, starting with a clear purpose sentence followed by parameter definitions in a bullet-like format. Every line adds value, no redundant statements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, output schema exists but not shown), the description covers basic parameter semantics but lacks context on file size limits, supported image formats, behavior with both paths and URLs, and what the output looks like. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description adds significant meaning: prompt is 'Question or instruction about the image(s)', session is 'for persistent history', model is 'Vision-capable Grok model (default grok-4.3)', image_paths and image_urls are distinguished, and detail specifies allowed values. This goes well beyond the schema's type-only definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Analyze one or more images with a Grok vision model.' It uses a specific verb (analyze) and resource (images with vision model), distinguishing it from siblings like 'chat' (no vision) or 'chat_with_files' (general file handling).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as 'chat' or 'chat_with_files'. There is no mention of prerequisites, exclusions, or scenarios where this tool is preferred. The description only lists parameters without contextual advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clear_chat_historyA
Destructive

Delete the history mapping and cascades messages for a chat session.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionNodefault

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true. The description adds specific context: it deletes 'history mapping' and 'cascades messages', clarifying what gets destroyed. This adds value beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no fluff. However, it could be structured to separate the effect from parameter context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema and one optional parameter, the description is adequate for the main effect but lacks parameter explanation. It does not leverage the output schema to describe return values, but that is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description mentions 'for a chat session' but does not describe the single 'session' parameter's meaning, format, or default value. It fails to add value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool deletes history mapping and cascades messages for a chat session. This is a specific verb-resource combination that distinguishes it from siblings like get_chat_history or list_chat_sessions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for clearing chat history but does not explicitly state when to use this tool versus alternatives like delete_stateful_response. No when-not or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

db_vacuumA
Destructive

Perform database compacting and optimization (VACUUM).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds minimal behavioral context beyond the destructiveHint annotation. It does not explain effects like locking, performance impact, or that it permanently reclaims disk space, which would help the agent understand consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. It conveys the core purpose efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and an existing output schema, the description is mostly adequate. However, it lacks context on side effects or operational considerations (e.g., when to run), which would improve completeness for a possibly long-running operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the description cannot add parameter details. Following the guideline (0 params = baseline 4), the description adequately states the tool's action without needing parameter elaboration.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs database compacting and optimization, specifically naming the VACUUM operation. It uses a specific verb ('perform') and resource ('database'), and there are no sibling database tools, so no confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It does not mention prerequisites, frequency, or scenarios where vacuum is appropriate, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_stateful_responseA
Destructive

Delete a stored chat completion from xAI's servers.

Args: response_id: ID of the stored response to remove.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description aligns with the destructiveHint annotation and adds context about deletion from servers. It does not detail irreversible consequences, but the annotation carries the burden for destructive behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two short sentences, no redundant information, and a front-loaded purpose statement. Every sentence is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple deletion tool with one parameter and annotations present, the description is complete. The existence of an output schema means return values are not required in the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides a clear definition for the 'response_id' parameter ('ID of the stored response to remove'), which compensates for the 0% schema description coverage. This adds value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Delete') and the resource ('stored chat completion from xAI's servers'), making the purpose unambiguous. It distinguishes from siblings like 'retrieve_stateful_response' by focusing on deletion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly provide when-to-use or when-not-to-use guidance. It relies on the tool name to imply context, but no alternatives or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

distill_sessionA

Distill a chat session's stored history into durable knowledge facts.

Submits a background job (same lifecycle as research jobs — poll get_research_job(job_id)) that summarizes the session into 3-8 standalone facts on the cheap coding model and saves them to the knowledge memory with source='session:'.

Args: session: Name of a stored chat session.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It discloses that the tool runs a background job, summarizes on a cheap coding model, and saves facts to knowledge memory. It does not mention potential side effects (e.g., overwriting), but overall provides sufficient behavioral context for a safe read-like operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a one-sentence summary, followed by details on the background job and parameter. No redundant sentences; every part adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter) and the presence of an output schema (context signal), the description covers all necessary aspects: purpose, background job mechanism, output format, and parameter semantics. It is complete for an AI agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning beyond the input schema by explaining the session parameter as 'Name of a stored chat session.' Since schema coverage is 0%, this additional context is crucial and adequately clarifies the parameter's role.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Distill a chat session's stored history into durable knowledge facts.' This is a specific verb+resource combination. It distinguishes itself from sibling tools like remember_fact and forget_fact by focusing on summarizing chat sessions into facts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains that it submits a background job similar to research jobs and suggests polling with get_research_job. It also mentions the output format (3-8 facts with source='session:<name>'). While it doesn't explicitly state when not to use it, the context is clear enough for an AI agent to infer appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extend_videoA

Extend an existing video with a follow-up prompt.

Args: prompt: What should happen in the extended segment. video_url: Public URL of the source video (.mp4, 2–15 s). model: Video model (default grok-imagine-video). duration: Length of the extension in seconds (2–10, default 6).

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNogrok-imagine-video
promptYes
durationNo
video_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
textNoHuman-formatted output (includes footers, citations, cost summary).
modelYesActual executing model ID (e.g. 'grok-4.5').
planeNo
routeYesHigh-level route (fast/agentic/research/etc.).
imagesNoGrok Imagine image URLs.
tokensNoTotal tokens consumed.
profileNoInternal routing profile.
summaryNoLegacy/duplicate formatted summary of the media generation.
cost_usdNoExact USD cost from xAI billing metadata.
responseYesRaw model output or primary content.
citationsNoNative xAI/X citations with URL + snippet.
video_urlNo
latency_secNo
duration_secNo
finish_reasonNo
imagine_paramsNoOriginal prompt + seed for reproducibility.
reasoning_effortNoGrok 4.5+ native reasoning level.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It adds constraints: video_url must be .mp4 (2-15 s), duration 2-10 seconds, and a default model. However, it does not disclose side effects, authorization needs, rate limits, or output behavior. The description provides moderate transparency beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at 7 lines, with a clear opening sentence followed by structured Args bullet points. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all parameters with constraints and defaults, and an output schema exists to explain return values. Still, it could mention typical errors or prerequisites (e.g., video must be generated by this system). Overall, it is complete given the schema and parameter count.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds rich meaning beyond the input schema, which has 0% description coverage. It explains 'prompt' as 'what should happen in the extended segment,' 'video_url' as 'Public URL... (.mp4, 2–15 s),' 'model' with default, and 'duration' with range (2–10, default 6). This fully compensates for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Extend an existing video with a follow-up prompt.' It uses a specific verb ('Extend') and resource ('existing video'), distinguishing it from sibling tools like generate_video which likely creates new videos from scratch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description lists parameters but does not specify context, prerequisites, or situations where another tool (e.g., generate_video) would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forget_factA
Destructive

Permanently delete one fact from the workspace knowledge memory.

Args: fact_id: The id returned by remember_fact or search_knowledge.

ParametersJSON Schema
NameRequiredDescriptionDefault
fact_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation already indicates 'destructiveHint: true', and the description reinforces this by stating 'Permanently delete'. It adds the behavioral trait that deletion is irreversible. This aligns with annotations and provides additional context about permanence, which is valuable for an AI agent considering consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences that front-load the purpose and effectively explain the parameter source. Every word serves a purpose with no redundancy or fluff, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (delete one fact) and the presence of output schema and destructiveHint annotation, the description covers the essential aspects: what the tool does and how to identify the fact. It could mention error handling (e.g., if fact_id doesn't exist), but that is minor. Overall, it is sufficiently complete for correct use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage for 'fact_id', but the description compensates by explaining that the ID is 'returned by `remember_fact` or `search_knowledge`'. This adds meaningful context beyond the schema, telling the agent where to obtain the parameter value, which is crucial for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Permanently delete one fact from the workspace knowledge memory.' It clearly specifies the verb (delete) and resource (fact from knowledge memory). It also distinguishes from sibling tools like 'remember_fact' (add) and 'search_knowledge' (search), making it clear this is the deletion counterpart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: to delete a specific fact. It explicitly tells the agent that the 'fact_id' should come from 'remember_fact' or 'search_knowledge', offering guidance on parameter source. While it does not explicitly state when not to use, the context is sufficient for appropriate selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_imageA

Generate new images or edit existing ones with Grok Imagine.

Args: prompt: Image description or edit instruction. model: Image model (grok-imagine-image or grok-imagine-image-pro). image_paths: Local image files used as edit sources or references. image_urls: Public image URLs used as edit sources or references. n: Number of images to generate (1–10). image_format: "url" (default) or "base64". aspect_ratio: Aspect ratio like "16:9", "1:1", or "9:16". resolution: "1k" or "2k".

Returns: MediaResult containing image metadata and URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
nNo
modelNogrok-imagine-image
promptYes
image_urlsNo
resolutionNo
image_pathsNo
aspect_ratioNo
image_formatNourl

Output Schema

ParametersJSON Schema
NameRequiredDescription
textNoHuman-formatted output (includes footers, citations, cost summary).
modelYesActual executing model ID (e.g. 'grok-4.5').
planeNo
routeYesHigh-level route (fast/agentic/research/etc.).
imagesNoGrok Imagine image URLs.
tokensNoTotal tokens consumed.
profileNoInternal routing profile.
summaryNoLegacy/duplicate formatted summary of the media generation.
cost_usdNoExact USD cost from xAI billing metadata.
responseYesRaw model output or primary content.
citationsNoNative xAI/X citations with URL + snippet.
video_urlNo
latency_secNo
duration_secNo
finish_reasonNo
imagine_paramsNoOriginal prompt + seed for reproducibility.
reasoning_effortNoGrok 4.5+ native reasoning level.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It fails to mention any behavioral traits such as rate limits, authentication needs, or potential side effects. The description only covers parameters and return type.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured as a docstring with an Args section and a Returns section. It is clear and informative, though slightly verbose with all parameters listed individually.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (8 parameters, 1 required) and the presence of an output schema, the description covers the basics but lacks details on error handling, constraints (e.g., allowed aspect ratios), or behavior when parameters are omitted. The return type is mentioned but not fully described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description thoroughly explains all 8 parameters, including their types and default values. It adds significant meaning beyond the schema, particularly for complex parameters like aspect_ratio and resolution.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Generate new images or edit existing ones with Grok Imagine'. It distinguishes from sibling tools like generate_video by focusing on image generation/editing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While the description explains what the tool does, it does not provide explicit guidance on when to use it versus alternatives (e.g., generate_video) or when not to use it. Usage context is implied but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_videoA

Generate or edit videos with Grok Imagine.

Args: prompt: Video description, or the edit instruction for video editing. model: Video model (default grok-imagine-video). image_path: Local image to use as the starting frame. image_url: Public image URL to use as the starting frame. video_path: Local video to edit (max 20 MB, .mp4, ≤ 8.7s). video_url: Public video URL to edit (.mp4, ≤ 8.7s). reference_image_paths: Local images used as style/subject references. reference_image_urls: Public image URLs used as style/subject references. duration: Video length in seconds (1–15, ignored when editing). aspect_ratio: Aspect ratio like "16:9" or "9:16". resolution: "480p" or "720p".

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNogrok-imagine-video
promptYes
durationNo
image_urlNo
video_urlNo
image_pathNo
resolutionNo
video_pathNo
aspect_ratioNo
reference_image_urlsNo
reference_image_pathsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
textNoHuman-formatted output (includes footers, citations, cost summary).
modelYesActual executing model ID (e.g. 'grok-4.5').
planeNo
routeYesHigh-level route (fast/agentic/research/etc.).
imagesNoGrok Imagine image URLs.
tokensNoTotal tokens consumed.
profileNoInternal routing profile.
summaryNoLegacy/duplicate formatted summary of the media generation.
cost_usdNoExact USD cost from xAI billing metadata.
responseYesRaw model output or primary content.
citationsNoNative xAI/X citations with URL + snippet.
video_urlNo
latency_secNo
duration_secNo
finish_reasonNo
imagine_paramsNoOriginal prompt + seed for reproducibility.
reasoning_effortNoGrok 4.5+ native reasoning level.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses some behavioral details like file size and duration constraints for video editing. However, it lacks information on permissions, rate limits, side effects, or whether the operation is synchronous, which are important for an agent deciding to invoke the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured as a bulleted list of parameters, which is easy to parse. It is somewhat lengthy but every line adds value. It could be slightly more concise by grouping similar parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers parameter details comprehensively but omits broader context like the output format, error handling, or prerequisites. Since an output schema exists, the agent might infer return values, but the description should ideally mention what the tool returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning beyond the schema for all 11 parameters, such as clarifying that 'prompt' can be a video description or edit instruction, and specifying constraints like 'max 20 MB, .mp4, ≤ 8.7s' for video_path. Schema coverage is 0%, so the description carries the full burden and does so well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Generate or edit videos with Grok Imagine,' providing a specific verb and resource. It distinguishes itself from sibling tools like 'extend_video' and 'generate_image' by focusing on video generation and editing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it or recommend other tools for specific scenarios, leaving the agent to infer based on sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_chat_historyB
Read-only

Return the most recent messages for a local chat session from SQLite.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sessionNodefault

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds context that the data is local and stored in SQLite, complementing the readOnlyHint annotation. However, it does not clarify the ordering of messages or the effect of the limit parameter on the retrieval behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence of 13 words conveys the essential purpose without extraneous detail, making it highly efficient and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the output schema likely covers return values, the lack of parameter documentation and usage guidance leaves the agent underinformed for a tool with optional parameters and no sibling differentiation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, and the description does not explain either parameter ('limit' or 'session'). The agent must infer their meaning from names alone, which is insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the most recent messages for a local chat session from SQLite, using a specific verb and resource that distinguishes it from sibling tools like 'clear_chat_history' or 'chat'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'stateful_chat' or 'search_knowledge'. The description does not mention prerequisites or scenarios where the tool is inappropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_research_jobA
Read-only

Fetch the status and result of a deferred research job.

Statuses: queued/running (in flight), done (result and cost_usd present), error (error present), not_found, or stale — a queued/running job whose updated_at is older than UNIGROK_JOB_TIMEOUT_SEC, meaning the task that owned it did not survive a server restart and the job will never finish on its own.

Args: job_id: ID returned by submit_research_job.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Rich behavioral detail beyond annotations: explains all possible statuses ('queued','running','done','error','not_found','stale'), their associated fields (result, cost_usd, error), and the 'stale' timeout mechanism. Aligns perfectly with readOnlyHint annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear first sentence, bulleted status explanations, and minimal redundancy. Every sentence adds value. No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description covers input semantics, output status semantics, and edge cases ('stale'). Complete for a status-checking tool with one parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description provides crucial context: 'job_id: ID returned by submit_research_job.' While minimal, it tells the agent exactly where to obtain the parameter. Could add format details, but sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch the status and result of a deferred research job,' specifying the verb and resource. It distinguishes from siblings like 'list_research_jobs' and 'submit_research_job' by focusing on a single job's status, but does not explicitly contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage after submitting a job to check status/result ('ID returned by submit_research_job'), but provides no explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives like 'list_research_jobs' or 'submit_research_job'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_apply_patchB
Destructive

Apply a unified diff patch. Requires local git write mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
patchYes
repo_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as destructive (destructiveHint=true). The description adds that it writes to the git repo, providing marginal context beyond the annotation, but does not detail potential side effects like file overwrites or merge conflicts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loades the core action and a key requirement. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description lacks usage context for a destructive git operation. It omits error conditions, conflict behavior, and how this tool relates to other git operations like git_commit. The brief description is insufficient for reliable agent decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description adds no parameter information. The two parameters (patch, repo_path) are left entirely to the agent to infer from names, with no explanation of format, defaults, or behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Apply a unified diff patch', a specific verb+resource pair. It clearly distinguishes from sibling git diff/show/commit tools which deal with creating or viewing diffs rather than applying them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Only a prerequisite is given ('Requires local git write mode'), with no guidance on when to use this tool over alternatives or when not to use it. No exclusions or explicit context are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_commitA
Destructive

Commit explicit paths only. Requires local git write mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYes
messageYes
repo_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation destructiveHint=true already indicates this is a destructive operation. The description adds only that write mode is required, which is a shallow addition. It does not clarify what happens during a commit (e.g., creating history, irreversible without force) beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (two sentences) with no extraneous words. Every part is necessary and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple commit tool with an output schema present, the description covers the essential behavior (committing paths) and a key prerequisite (write mode). Slightly more detail about the commit flow could be added, but it is largely adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden. The description mentions 'paths' but does not explain the message or optional repo_path parameters. It adds minimal meaning beyond the schema property names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool commits files ('Commit explicit paths only'), which is a specific verb-resource pair. It distinguishes from sibling git tools like git_apply_patch or git_create_branch by focusing on committing specific paths.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions a prerequisite ('Requires local git write mode') but does not explicitly tell when to use this tool versus alternatives like git_apply_patch. The usage context is implied but not fully articulated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_create_branchB

Create and switch to a new branch. Requires local git write mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathNo
branch_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool creates and switches to a new branch and requires write mode, but it does not explain error handling (e.g., branch already exists), side effects of switching, or other behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at two sentences, front-loading the core action and adding a critical prerequisite. Every sentence serves a clear purpose with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, exists output schema), the description is still incomplete. It lacks parameter details and deeper behavioral context (e.g., how switching works with uncommitted changes), which an agent needs for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description adds no meaning to the parameters (repo_path, branch_name). The agent gets no guidance on format, default behavior, or relationship between parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create and switch to a new branch') with a specific verb and resource, and this tool is distinct from sibling git tools (e.g., git_commit, git_diff) that handle different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a prerequisite ('Requires local git write mode') but offers no explicit guidance on when to use this tool versus alternatives, or when not to use it. Usage context is implied but not elaborated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_current_branchB
Read-only

Return the active branch name.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation readOnlyHint=true already indicates the tool is non-destructive. The description adds no further behavioral details (e.g., error handling, behavior when repo_path is null). Since annotations cover the safety profile, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the purpose. Every word is necessary, with no redundancy or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool and the existence of an output schema, the description still lacks context about when it might fail (e.g., not in a git repo) and the role of the optional parameter. The tool is small but the description is minimal.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one parameter (repo_path) with 0% schema description coverage, and the tool description does not mention or explain it. This leaves the agent without understanding its purpose or default behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Return the active branch name' uses a specific verb and resource, clearly distinguishing it from sibling tools like git_create_branch or git_commit. It immediately conveys the tool's core function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., other git tools or methods to get branch info). There is no mention of prerequisites or context such as requiring an active git repository.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_diffB
Read-only

Return the current git diff, optionally for staged changes or one path.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
cachedNo
repo_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description aligns with a read-only operation. It adds no extra behavioral context beyond that, such as whether the diff includes context lines or how large diffs are handled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence of 12 words. No fluff, every word contributes to the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists and only three optional parameters, the description is minimally sufficient. However, it lacks detail on the behavior of repo_path and could mention that the diff is against the working tree.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description partially compensates by linking 'staged changes' to cached and 'one path' to path. However, it does not explain the repo_path parameter, leaving its purpose ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a git diff, with options for staged changes or a specific path. This verb+resource combination distinguishes it from sibling git tools like git_log, git_show, and git_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like git_status or git_log. The description does not specify prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_logB
Read-only

Return a short one-line git history.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
repo_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so safety is clear. The description adds the 'short one-line' character, which is a useful behavioral detail beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no extra words, front-loads the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool is simple but description omits any mention of output format, parameter defaults, or use cases. Given low complexity, it should at least hint at parameters or output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Description does not mention any of the two parameters (limit, repo_path). Schema description coverage is 0%, so the description should compensate but fails to provide any parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Return a short one-line git history' clearly states the verb (return) and resource (git history), and the 'one-line' qualifier distinguishes it from more verbose logs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus siblings like git_diff or git_status. The description only states what it does, not its appropriate usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_showB
Read-only

Return git show for a validated commit-ish ref.

ParametersJSON Schema
NameRequiredDescriptionDefault
commitNoHEAD
repo_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, and description mentions validation of the commit-ish ref, but does not disclose what validation entails or any other behavioral traits beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no superfluous words, but it could benefit from slightly more detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the parameters and existence of an output schema, the description is minimal; it does not elaborate on validation, output format, or how to use repo_path, leaving gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description adds no meaning to the parameters 'commit' (default HEAD) and 'repo_path' (optional). It fails to compensate for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns `git show` output for a validated commit-ish ref, which is specific and distinguishes it from sibling tools like git_diff, git_log, and git_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when the git show output for a specific commit is needed, but lacks explicit guidance on when not to use it or mention of alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_statusB
Read-only

Return git status --porcelain for the current repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so read-only behavior is covered. The description adds that output is in `--porcelain` format and applies to the 'current repository', but does not explain how the optional repo_path parameter affects behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that conveys the core purpose. However, it sacrifices necessary details about parameters, balancing brevity with completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with an output schema, the description covers the main output but fails to document the repo_path parameter. This is a moderate gap given the low schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not mention the repo_path parameter at all. The agent must guess its meaning from the name and optionality, which is insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns `git status --porcelain`, specifying the verb and output. It implicitly distinguishes from siblings like git_commit or git_diff by focusing on status, but lacks explicit differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like git_diff or git_log. The description does not mention prerequisites or exclusions, leaving the agent to infer context from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

grok_agentA

Unified @grok Entry Point: run the thinking route — the ReAct AgentLoop wrapped in a schema-enforced reflection loop — with explicit retry and budget caps.

Args: prompt: Task or question for the agent. session: Optional session name for persistent history in chats. model: Grok model id (default grok-4.3). system_prompt: Optional system instruction prepended to the conversation. max_iterations: Strict cap on reviewer-driven correction retries (default 5). cost_limit: Total budget in USD before hard abort (default 0.50).

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNogrok-4.3
promptYes
sessionNo
cost_limitNo
system_promptNo
max_iterationsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
whyNoRouter decision trace (Grok-native).
textNoHuman-formatted output (includes footers, citations, cost summary).
modelYesActual executing model ID (e.g. 'grok-4.5').
planeNo
routeYesHigh-level route (fast/agentic/research/etc.).
traceNoMulti-agent step trace (for grok_agent research mode).
tokensNoTotal tokens consumed.
profileNoInternal routing profile.
cost_usdNoExact USD cost from xAI billing metadata.
degradedNoTrue if fallback occurred.
responseYesRaw model output or primary content.
citationsNoNative xAI/X citations with URL + snippet.
latency_secNo
finish_reasonNo
reasoning_effortNoGrok 4.5+ native reasoning level.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the iterative nature ('reviewer-driven correction retries'), budget caps ('cost_limit'), and retry caps ('max_iterations'). This gives good insight into behavior, though it does not mention permissions, side effects, or resource cleanup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at one sentence plus parameter bullet points, and the key summary is front-loaded. It could be slightly trimmed, but it is well-structured and easy to read.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, no annotations) and the existence of an output schema, the description covers the tool's purpose, parameters, and the retry/budget mechanism. It is mostly complete, though it omits behavior when parameters are omitted or the response format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates fully with detailed parameter explanations. Each parameter is described with its role and default, e.g., 'session: Optional session name for persistent history in chats' and 'max_iterations: Strict cap on reviewer-driven correction retries (default 5).' This adds significant meaning beyond the schema's type/default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Unified @grok Entry Point: run the thinking route — the ReAct AgentLoop wrapped in a schema-enforced reflection loop — with explicit retry and budget caps.' This provides a specific verb and resource, distinguishing it as the main agent entry point for grok. However, it does not explicitly differentiate from the sibling tool 'agent', which may be a simpler agent loop.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks any guidance on when to use this tool versus alternatives. There is no mention of when to use grok_agent over other tools like 'agent', 'chat', or 'stateful_chat'. No exclusions or prerequisites are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

grok_mcp_discover_selfA
Read-only

Exposes OKF bundle information, WebMCP manifests, and tool schemas for zero-configuration agent onboarding.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoStructured payload for web_search / x_search / code_execution.
textNoHuman-formatted output (includes footers, citations, cost summary).
modelYesActual executing model ID (e.g. 'grok-4.5').
planeNo
routeYesHigh-level route (fast/agentic/research/etc.).
tokensNoTotal tokens consumed.
profileNoInternal routing profile.
cost_usdNoExact USD cost from xAI billing metadata.
responseYesRaw model output or primary content.
citationsNoNative xAI/X citations with URL + snippet.
latency_secNo
finish_reasonNo
reasoning_effortNoGrok 4.5+ native reasoning level.

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds that the tool exposes information, consistent with a read-only operation. No additional behavioral traits such as rate limits or authentication needs are disclosed, but the simple nature of the tool means minimal gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that states the tool's purpose without any wasted words. It is front-loaded and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, the presence of an output schema, and annotations indicating safe read-only behavior, the description fully informs the agent what the tool does and when to use it. No additional context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is 100%, so the description does not need to add parameter information. The baseline for 0 parameters is 4, and the description does not add extra but is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool exposes OKF bundle information, WebMCP manifests, and tool schemas, using the specific verb 'exposes' and identifying distinct resources. It differentiates from sibling tools like grok_mcp_status or grok_mcp_restart_container.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'zero-configuration agent onboarding' as a clear use case. It does not explicitly state when not to use or provide alternatives, but the context is clear enough for selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

grok_mcp_restart_containerA
Destructive

Safely restart the UniGrok Docker container by executing docker compose up --build -d. Only works if running in a context where docker compose is available and enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoStructured payload for web_search / x_search / code_execution.
textNoHuman-formatted output (includes footers, citations, cost summary).
modelYesActual executing model ID (e.g. 'grok-4.5').
planeNo
routeYesHigh-level route (fast/agentic/research/etc.).
tokensNoTotal tokens consumed.
profileNoInternal routing profile.
cost_usdNoExact USD cost from xAI billing metadata.
responseYesRaw model output or primary content.
citationsNoNative xAI/X citations with URL + snippet.
latency_secNo
finish_reasonNo
reasoning_effortNoGrok 4.5+ native reasoning level.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation already indicates destructiveHint=true, and the description adds 'safely restart' and the command used. However, it does not elaborate on potential side effects (e.g., temporary service unavailability, data loss) beyond the hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first describes the action, second gives a condition. No redundant words, front-loaded with core purpose, and every sentence provides value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple restart tool with no parameters and an output schema existing, the description covers the main action and constraint. It could mention potential downtime or service impact, but it's adequate for the low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the schema provides no detail, and the description doesn't need parameter explanations. Baseline for no parameters is 4, and the description adds no extra parameter info but is not required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool restarts the UniGrok Docker container using 'docker compose up --build -d', specifying the exact action and resource, distinguishing it from sibling tools like 'grok_mcp_status'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a prerequisite ('Only works if running in a context where docker compose is available and enabled'), informing when to use, but lacks explicit alternatives or when-not-to scenarios, though no similar sibling exists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

grok_mcp_statusA
Read-only

Inspect the current health, versions, CLI auth, and sqlite metrics of the Grok-MCP server.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint: true. The description adds specific behavioral context about what is inspected (health, versions, auth, metrics), going beyond the annotation without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single clear sentence, no waste, front-loaded with the key action and what it inspects.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and the presence of an output schema, the description sufficiently explains the tool's purpose. No gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, schema coverage is 100% trivially. Description adds full context about the tool's action without needing parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool inspects health, versions, CLI auth, and sqlite metrics of the server. It uses a specific verb 'Inspect' and resource 'Grok-MCP server', distinguishing it from siblings focused on chat, files, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when server status information is needed but does not explicitly state when to use or avoid this tool compared to alternatives. No exclusions or context on when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

grok_reflectA
Read-only

Run a structured, tool-free Grok review of an artifact or plan.

Use this when a client needs a deterministic critique shape rather than a full agent run. It calls xAI structured outputs through the shared _parse_structured helper, so the reflection pass cannot invoke local tools and degrades explicitly if structured parsing is unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNogrok-4.3
contextNo
subjectYes
criteriaNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYesWhether the reflection was successful.
textNoHuman-formatted output (includes footers, citations, cost summary).
modelYesActual executing model ID (e.g. 'grok-4.5').
planeNo
routeYesHigh-level route (fast/agentic/research/etc.).
tokensNoTotal tokens consumed.
profileNoInternal routing profile.
cost_usdNoExact USD cost from xAI billing metadata.
critiqueYesStructured Grok reflection output (schema-enforced).
responseYesRaw model output or primary content.
citationsNoNative xAI/X citations with URL + snippet.
latency_secNo
finish_reasonNo
reasoning_effortNoGrok 4.5+ native reasoning level.

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, indicating read-only. The description adds that the tool is 'tool-free', cannot invoke local tools, and degrades explicitly if structured parsing is unavailable, providing transparency beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with purpose, and contains no fluff. Every sentence adds value, including usage guidance and behavioral notes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values don't need explanation. The description covers purpose, usage, and limitations. However, it lacks parameter semantics, which is a gap for a tool with four parameters and zero schema descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must explain parameters but does not mention any of the four parameters (subject, model, context, criteria). It only describes the tool's overall behavior, leaving parameter semantics entirely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Run a structured, tool-free Grok review' and identifies the resource as 'an artifact or plan'. It distinguishes from sibling tools like 'agent' by specifying 'rather than a full agent run' and noting the tool cannot invoke local tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use: 'when a client needs a deterministic critique shape rather than a full agent run'. It also implies when not to use (full agent runs) and warns about the lack of local tools and degradation when structured parsing is unavailable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_chat_sessionsA
Read-only

List all chat sessions stored under the SQLite session store.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is consistent with the readOnlyHint annotation, confirming it is a read-only operation. It adds the detail of storage location (SQLite session store), which is beyond the annotation. No side effects or permissions are needed for such a simple list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that immediately conveys the tool's action and resource. Every word is meaningful, and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no parameters and an output schema is provided, so the description need not explain return values. It adequately captures the core functionality for such a simple tool, though it could optionally mention that it returns session metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so the description does not need to add parameter semantics. The baseline for zero parameters is 4, and the description suffices.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and the resource 'chat sessions', with additional context of the storage ('stored under the SQLite session store'). This uniquely identifies the tool's purpose among siblings, as no other tool lists all sessions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like get_chat_history or clear_chat_history. Without context, an AI agent might not understand the appropriate scenario for listing all sessions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_modelsA
Read-only

List live xAI API model IDs. Lightweight, direct, and fast.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint. Description adds 'live' and 'fast' but no additional behavioral depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: one sentence plus tagline. No waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Minimal but sufficient for a zero-parameter tool with output schema present. Could mention output scope, but not required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters; schema coverage 100%. Description adds no extra param info, but none needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States clearly it lists live xAI API model IDs. Verb+resource is explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies lightweight use case via 'Lightweight, direct, and fast' but lacks explicit context for when to use vs sibling list_models_detailed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_models_detailedA
Read-only

List xAI API models, local Grok CLI models, and .grok model profiles separately.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, and description adds context about separating listing into three categories. No contradiction. Describes behavioral trait beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with core action, no unnecessary words. Every word contributes to meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and presence of output schema, description fully covers what the tool does. No missing information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so baseline 4. Description does not need to add parameter information as there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'List' and clearly identifies the resource: xAI API models, local Grok CLI models, and .grok model profiles. It distinguishes from sibling tool 'list_models' by indicating separate listing by category.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies when to use this tool (when you need models listed separately by type) vs list_models (which likely lists all together). No explicit 'when not to use' or alternative named, but the distinction is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_project_filesC
Read-only

List source code and config files present in the current workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
extensionsNo
max_resultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation readOnlyHint=true already signals a safe read operation. The description adds no behavioral details beyond that, such as performance characteristics, authorization needs, or behavior with large outputs. With annotations covering safety, the description could still provide context but does not.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no redundant information. It is front-loaded with the core action. However, it could be slightly expanded to include parameter hints without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema (which reduces the burden of explaining return values), the description is too minimal for a tool with two parameters and many siblings. It lacks details on filtering behavior, result limits, and when to use this over other list tools, making it incomplete for effective agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, placing the burden on the description. The description does not explain the 'extensions' parameter (for filtering by extension) or 'max_results' (for limiting results). Without these, the agent cannot effectively use the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (list) and resource (source code and config files) in the current workspace, making the purpose unambiguous. However, it does not differentiate from sibling tools like 'xai_list_files' or 'list_models' which also list items; but the specific resource scope helps distinguish it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusion criteria. The agent must infer usage solely from the purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_research_jobsA
Read-only

List the most recent deferred research jobs, newest first.

Args: limit: Maximum number of jobs to return (clamped to 1-100, default 20).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so read-only is covered. The description adds behavioral details: returns newest first and limit is clamped to 1-100. This provides useful context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: one sentence for purpose, then a brief parameter definition. No redundant information, well front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, an output schema exists, and the description covers what is listed, ordering, and parameter details. No additional information is needed for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has no parameter descriptions (0% coverage). The description compensates by explaining 'limit' with its clamping range (1-100) and default value (20), adding significant meaning beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List the most recent deferred research jobs, newest first.' It specifies a specific verb and resource, and the ordering distinguishes it from sibling tools like get_research_job (single) and submit_research_job (creation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Purpose is clear but no explicit guidance on when to use this tool versus alternatives. The sibling tools imply the use case, but no exclusions or conditions are mentioned. A score of 3 indicates adequate but not exceptional guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_local_fileB
Read-only

Read a local project workspace file for code context or diagnostics.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
max_charsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds the behavioral constraint that the tool reads only workspace files (not arbitrary paths), which provides additional context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the core purpose without any extraneous words. It is front-loaded and immediately actionable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema and annotations, the description is adequate but lacks details on path format and max_chars behavior. It covers the essentials but leaves some gaps for optimal use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning no inline descriptions for parameters. The tool description does not explain 'file_path' (e.g., absolute vs relative) or 'max_chars' (e.g., truncation behavior). While parameter names are self-explanatory, the description adds no semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Read' and resource 'local project workspace file', specifying the tool's function. It distinguishes from siblings like 'list_project_files' by indicating direct file reading for code context or diagnostics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided; the description does not specify when to use this tool versus alternatives (e.g., 'list_project_files' for listing, 'remote_code_execution' for running code). Agents must infer context from the tool name and siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remember_factA

Save one durable fact to the local workspace knowledge memory.

Facts are distilled knowledge — decisions, constraints, preferences, verified findings — injected as hints into future prompts that match them. Saving an identical fact again touches the existing row instead of duplicating it.

Args: fact: One self-contained sentence with concrete specifics. scope: 'global' (default, injected everywhere) or a session name for session-scoped knowledge.

ParametersJSON Schema
NameRequiredDescriptionDefault
factYes
scopeNoglobal

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description provides useful behavioral context: facts are injected into future prompts, duplicate facts update rather than duplicate, and scope controls injection. It does not mention auth or error behavior, but the disclosed traits are sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured with a clear header sentence followed by a terse explanation and an Args list. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not shown) and only two parameters, the description covers input semantics and behavior. It could mention error cases or prerequisites, but overall it is sufficiently complete for a simple factual memory tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since the input schema has 0% description coverage, the description's Args section adds essential meaning for both parameters: fact requires a self-contained concrete sentence, scope defaults to 'global' and can be a session name. This fully compensates for missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool saves a durable fact to local workspace knowledge memory. It explains what facts are and notes idempotent behavior on duplicates. However, it does not explicitly differentiate from sibling tools like forget_fact or search_knowledge.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains that facts are distilled knowledge injected into future prompts, implying when to use this tool. It lacks explicit guidance on when not to use it or alternatives (e.g., forget_fact for deletion).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remote_code_executionB

Solve a task by letting Grok write and run Python in xAI's server-side sandbox.

Renamed from code_executor — it invokes xAI's remote code_execution tool; no code runs on this machine.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes
max_turnsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoStructured payload for web_search / x_search / code_execution.
textNoHuman-formatted output (includes footers, citations, cost summary).
modelYesActual executing model ID (e.g. 'grok-4.5').
planeNo
routeYesHigh-level route (fast/agentic/research/etc.).
tokensNoTotal tokens consumed.
profileNoInternal routing profile.
cost_usdNoExact USD cost from xAI billing metadata.
responseYesRaw model output or primary content.
citationsNoNative xAI/X citations with URL + snippet.
latency_secNo
finish_reasonNo
reasoning_effortNoGrok 4.5+ native reasoning level.

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must disclose behavioral traits. It mentions server-side sandbox and that no code runs locally, but omits crucial details like destructiveness, security implications, error handling, or execution limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the main purpose. However, the rename note could be omitted or integrated more concisely. Overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the tool's complexity (code execution) demands more context on security, permissions, execution limits, and error handling. The description is too sparse for complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description does not explain the 'prompt' (what it expects) or 'max_turns' (its meaning and default null). This fails to add value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lets Grok write and run Python in a sandbox, which is specific and differentiates it from sibling tools like 'agent' or 'chat'. It also notes the rename from 'code_executor' for context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for solving tasks via code execution, but lacks explicit when-to-use or when-not-to-use guidance. No alternatives or exclusions are mentioned despite many sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_stateful_responseA
Read-only

Fetch a stored chat completion from xAI by its response ID.

Args: response_id: ID returned by a prior stateful_chat call.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description aligns with annotations (readOnlyHint=true), using 'Fetch' to indicate a read operation. It adds context that the fetched item is a stored chat completion, going beyond the annotation to clarify what is being retrieved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences and an Args block, no wasted words, and the purpose is front-loaded for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one parameter, read-only) and the presence of an output schema, the description adequately covers necessary behavior and context for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for the parameter, but the description adds 'ID returned by a prior stateful_chat call', which clarifies the source and format of the response_id, providing significant additional meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Fetch' and identifies the resource as 'stored chat completion from xAI by its response ID', clearly distinguishing it from sibling tools like stateful_chat (create) and delete_stateful_response (delete).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states that the response_id is from a prior stateful_chat call, indicating when to use this tool. It does not explicitly state when not to use it, but the context of sibling tools provides alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_local_testsC

Run local pytest verification without exposing arbitrary shell execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetNotests
max_secondsNo
max_output_charsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description should disclose behavioral traits. It only mentions safety regarding shell execution, but omits side effects (e.g., test artifacts), resource usage, or network requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at one sentence, but it sacrifices critical details about parameters and usage. It is not overly long, but could be more informative without significant bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters and no annotations, the description is too brief. It lacks parameter descriptions, usage context, and behavioral details, making it incomplete for an agent to use effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description does not explain any parameters (target, max_seconds, max_output_chars). While parameter names are somewhat self-explanatory, the description fails to add necessary context such as expected formats or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Run local pytest verification' with a specific verb and resource. It also distinguishes from siblings by noting 'without exposing arbitrary shell execution', which differentiates it from tools like remote_code_execution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, suitable scenarios, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_knowledgeA
Read-only

Search the workspace knowledge memory for facts matching a query.

Local results are ranked by FTS5 bm25 when available (term-overlap otherwise). With UNIGROK_COLLECTIONS=1 and a capable SDK, matches from the xAI knowledge collection are merged in (origin='collection').

Args: query: Search terms. limit: Maximum number of local facts to return (1-25, default 5).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, confirming no state modification. The description adds valuable behavioral details: ranking method (FTS5 bm25 vs term-overlap), condition for merging xAI collection results, and origin field. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is extremely concise: three sentences plus a two-item parameter list. Front-loaded with core purpose, then ranking and optional collection merging. Every sentence adds value with no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (covers return values), read-only annotation, and only two parameters, the description sufficiently covers search domain, ranking, and optional collection merging. Could be slightly more explicit about local vs. collection result differentiation, but overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 0% description coverage, but the description compensates by explaining 'query' as search terms and 'limit' as maximum local facts with valid range (1-25) and default (5). This adds basic meaning, though lacks query syntax or more detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool searches workspace knowledge memory for facts matching a query, using verb 'search' and resource 'workspace knowledge memory'. It distinguishes itself from siblings like 'remember_fact', 'forget_fact', 'web_search', and 'x_search' by specifying it is local and read-only.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for local knowledge search but does not explicitly state when to use this tool versus alternatives like 'web_search' or 'x_search'. No explicit when-not or alternative tool names are given, leaving the agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stateful_chatA

Continue a server-side stored conversation using xAI's stateful chat.

Args: prompt: User message to append. model: Grok model id (default grok-4.3). response_id: ID of the previous response to continue from. system_prompt: Optional system instruction.

Returns: ChatResult containing execution metadata and responses.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNogrok-4.3
promptYes
response_idNo
system_promptNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
textNoHuman-formatted output (includes footers, citations, cost summary).
modelYesActual executing model ID (e.g. 'grok-4.5').
planeNo
routeYesHigh-level route (fast/agentic/research/etc.).
tokensNoTotal tokens consumed.
profileNoInternal routing profile.
sessionNoPersistent session name.
cost_usdNoExact USD cost from xAI billing metadata.
responseYesRaw model output or primary content.
citationsNoNative xAI/X citations with URL + snippet.
latency_secNo
response_idNoServer-side stateful ID for continuation.
finish_reasonNo
reasoning_effortNoGrok 4.5+ native reasoning level.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses the stateful, server-side stored nature and that a response_id is needed to continue. It also states the return type (ChatResult). While it doesn't detail all side effects or auth needs, it provides essential behavioral context beyond the input schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, with a clear opening sentence defining the tool's purpose, followed by an Args/Returns section. Every sentence serves a purpose, and there is no redundancy or unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers the basic purpose and parameters, it lacks guidance on prerequisites (e.g., obtaining a response_id from a previous call) and does not explain behavior when response_id is null. Given that an output schema exists, the return type is mentioned but not detailed. The completeness is adequate but not fully robust for a stateful tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description compensates by explaining each parameter in the Args block: 'prompt: User message to append,' 'model: Grok model id (default grok-4.3),' 'response_id: ID of the previous response to continue from,' and 'system_prompt: Optional system instruction.' These add meaningful context beyond the schema's type definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Continue a server-side stored conversation using xAI's stateful chat,' which is a specific verb+resource combination. This distinguishes it from sibling tools like 'chat' (which likely starts a new conversation) and 'chat_with_files' by emphasizing the stateful and server-side stored nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly guides when to use this tool by specifying 'continue a server-side stored conversation,' indicating it is for ongoing conversations requiring a response_id. However, it does not explicitly mention alternatives for starting new conversations or when not to use this tool, which would be beneficial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_research_jobA

Submit a long-running research task as a deferred xAI job and return immediately. The job runs in the background with xAI's server-side web search, X search, and code-execution tools attached; poll get_research_job(job_id) for the result.

Args: prompt: The research question or task. model: Optional Grok model id. Leave unset to use the planning model. agent_count: Optional multi-agent fan-out — only 4 or 16 are accepted.

Returns: A dict with job_id (pass it to get_research_job), status ("queued"), and the resolved model.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
promptYes
agent_countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses the deferred nature, background processing with xAI's tools, and the return dict structure. It does not mention error handling or rate limits, but covers key behavioral traits beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a clear intro sentence, bullet-list args, and return section. No unnecessary words; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (3 params, 1 required, output schema present), the description covers the workflow, parameter constraints, and return value. No critical gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema coverage, the description explains each parameter's purpose and constraints: prompt as the research question, model as optional Grok model id (default planning model), agent_count as multi-agent fan-out only accepting 4 or 16. Adds significant meaning over bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it submits a long-running research task as a deferred job and returns immediately, using verbs like 'submit' and 'run in the background'. It distinguishes from siblings like get_research_job (polling) and list_research_jobs (listing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to poll get_research_job for results, implying this is for long-running tasks. It provides context on parameters (model optional, agent_count only 4 or 16) but does not explicitly exclude synchronous alternatives like 'agent' or 'chat'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xai_delete_fileB
Destructive

Delete an uploaded file from xAI.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide destructiveHint=true, and the description confirms deletion. However, it does not disclose permanence, reversibility, or side effects (e.g., impact on ongoing chats). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence is concise and front-loaded, but could incorporate more detail (e.g., permanence) without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple delete tool with an output schema, but lacks information on success confirmation or error conditions. The description is minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description adds no meaning to the file_id parameter (e.g., source or format). The agent must infer from the parameter name alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Delete' and the resource 'uploaded file from xAI', distinguishing it from siblings like xai_get_file or xai_list_files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., checking if file exists first) or preconditions (e.g., file not in use). The description is purely declarative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xai_get_fileC
Read-only

Retrieve metadata of a file uploaded to xAI.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, but the description adds no extra behavioral context (e.g., error handling, permissions, or scope of metadata). Minimal value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words, but slightly oversimplified for a tool with one parameter and no schema descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite an output schema, the description is insufficient. It omits what metadata is returned, how to obtain file_id, and any usage constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not compensate. It only mentions 'file' without clarifying the file_id format, origin, or purpose beyond the name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Retrieve' and resource 'metadata of a file', clearly distinguishing it from sibling tools like xai_delete_file (delete) and xai_get_file_content (get content).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool, prerequisites, or alternatives is provided. The description lacks context about file_id source or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xai_get_file_contentA
Read-only

Download the raw content of an uploaded file from xAI.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes
max_bytesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description is consistent ('download'). However, the description adds minimal behavioral context beyond the annotation, such as the nature of 'raw content' but lacks details on authentication, rate limits, or size limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no fluff. However, it could include more critical details without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, one optional, with output schema), the description adequately indicates the tool's purpose but lacks details on output format, error handling, and the effect of max_bytes. It is minimally complete but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the tool description fails to explain the purpose or format of file_id and max_bytes. The parameter names and default value provide some clues, but the description does not compensate for the missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (download), the resource (raw content of an uploaded file), and the context (from xAI). It distinguishes itself from sibling tools like xai_get_file (metadata) and xai_list_files (listing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for downloading raw file content but provides no explicit guidance on when to use versus alternatives like xai_get_file or when not to use it. Usage is implied but not clearly contextualized.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xai_list_filesA
Read-only

List all files uploaded to xAI from this account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already show readOnlyHint=true. Description adds context that it lists all files from the account. No contradictions. Could mention if output is metadata only, but output schema likely covers that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundant information. Perfectly concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and presence of output schema, description is fully complete for this simple list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so description does not need to add param info. Baseline score of 4 for 0-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states action (List) and resource (files uploaded to xAI from this account). Distinguishes from siblings like xai_get_file and xai_upload_file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage for listing all files, but lacks explicit mention of when not to use or alternatives like xai_get_file vs this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xai_upload_fileA

Upload a local project file to xAI's servers so it can be reference-attached in chats.

Returns: A dict with file_id (pass it to chat_with_files/xai_get_file_content), filename, size_bytes, and a human-readable summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full burden. It states the upload action and returns a dict with specific fields (file_id, filename, etc.). It does not discuss rate limits, file size limits, or overwrite behavior, but is adequate for a simple operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states purpose, second lists return fields. No fluff, information is front-loaded. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one required param, clear output schema described), the description fully covers what the tool does, what it returns, and how to use the result with other tools (e.g., chat_with_files). No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% with no parameter descriptions. The description only says 'Upload a local project file', adding minimal nuance beyond the parameter name 'file_path'. Baseline for 0 param description coverage is 4, but the description does not fully compensate; lacks details like path format or restrictions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb 'upload', the resource 'local project file to xAI's servers', and the purpose 'so it can be reference-attached in chats'. This distinguishes it from sibling tools like xai_get_file_content or xai_list_files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates usage before chatting and notes the returned file_id can be used in chat_with_files or xai_get_file_content. However, it lacks explicit when-not-to-use or alternative scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 47 tool updatesv0.4.1
    • First observedagent
    • First observedchat
    • First observedchat_with_files
    • First observedchat_with_vision
    • First observedclear_chat_history
    • First observeddb_vacuum
    • First observeddelete_stateful_response
    • First observeddistill_session
    • First observedextend_video
    • First observedforget_fact
    • First observedgenerate_image
    • First observedgenerate_video
    • First observedget_chat_history
    • First observedget_research_job
    • First observedgit_apply_patch
    • First observedgit_commit
    • First observedgit_create_branch
    • First observedgit_current_branch
    • First observedgit_diff
    • First observedgit_log
    • First observedgit_show
    • First observedgit_status
    • First observedgrok_agent
    • First observedgrok_mcp_discover_self
    • First observedgrok_mcp_restart_container
    • First observedgrok_mcp_status
    • First observedgrok_reflect
    • First observedlist_chat_sessions
    • First observedlist_models
    • First observedlist_models_detailed
    • First observedlist_project_files
    • First observedlist_research_jobs
    • First observedread_local_file
    • First observedremember_fact
    • First observedremote_code_execution
    • First observedretrieve_stateful_response
    • First observedrun_local_tests
    • First observedsearch_knowledge
    • First observedstateful_chat
    • First observedsubmit_research_job
    • First observedweb_search
    • First observedx_search
    • First observedxai_delete_file
    • First observedxai_get_file
    • First observedxai_get_file_content
    • First observedxai_list_files
    • First observedxai_upload_file

TDQS

B3.1/5.0

Scored across 47 tools

Disambiguation2/5

Many tools have overlapping purposes, such as multiple chat/agent tools (`agent`, `chat`, `grok_agent`, `stateful_chat`) and multiple model listing tools (`list_models`, `list_models_detailed`). While descriptions attempt to differentiate, the overlap is significant and would likely cause misselection.

Naming Consistency2/5

Tool names are inconsistent in style: some are short single words (`agent`, `chat`), while others use long snake_case phrases (`grok_mcp_discover_self`, `remote_code_execution`). No clear pattern emerges, mixing verbs and nouns.

Tool Count2/5

47 tools is excessively high for a single MCP server. While the server covers many domains (chat, git, knowledge, media, etc.), the tool set would be more coherent if split into specialized servers. The count feels unwieldy.

Completeness4/5

The server covers a wide range of functionality including chat, agent, file management, web/X search, code execution, research jobs, knowledge memory, git operations, and media generation. Minor gaps exist (e.g., missing git push/pull, knowledge update), but overall it is fairly complete for its domain.

Maintenance

ActivityMaintained
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    One local gateway for all your MCP servers — shared by every AI coding tool (Claude, Cursor, VS Code, Codex). Set up each server once; keys stay in the OS keychain; lazy discovery keeps agent context small. Local-first, open source.
    4
    130
    211
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for integrating xAI's Grok model into OpenAI Codex Desktop/GUI, enabling direct Grok calls via chat completions or responses with OAuth or API key authentication.
    9
    MIT