novyx-mcp
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@novyx-mcpdraft_memory: Deploy fails if REDIS_URL unset in staging"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
novyx-mcp
Governed actions, shared memory, audit, and rollback for MCP clients such as Claude Desktop, Cursor, and Claude Code. Works locally with zero config (SQLite) for memory and policy-evaluation workflows, or connects to Novyx Cloud for policy-as-code, approval workflows, governance dashboards, Runtime v2, threat intelligence, defense tracking, replay, and eval baselines.
What To Try First
Use Novyx MCP when coding agents need reviewable shared memory instead of untracked context sprawl:
draft_memory(
observation="Deploys fail if REDIS_URL is unset in staging",
tags=["ops", "staging"],
importance=8,
branch_id="staging-fixes"
)
memory_branch("staging-fixes")
draft_diff("drf_abc123")
merge_branch("staging-fixes")That workflow keeps agent memory reviewable before it becomes permanent. The
same server also exposes governed-action tools (action_submit,
list_pending, approve_action, explain_action) when you connect it to
Novyx Cloud.
Related MCP server: flaiwheel
Install
pip install novyx-mcpConfiguration
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"novyx-memory": {
"command": "python",
"args": ["-m", "novyx_mcp"],
"env": {
"NOVYX_API_KEY": "nram_your_key_here"
}
}
}
}Cursor
Add to your Cursor MCP settings:
{
"mcpServers": {
"novyx-memory": {
"command": "python",
"args": ["-m", "novyx_mcp"],
"env": {
"NOVYX_API_KEY": "nram_your_key_here"
}
}
}
}Claude Code
claude mcp add novyx-memory -- python -m novyx_mcpSet the NOVYX_API_KEY environment variable before starting Claude Code. Omit it to use local mode (SQLite, zero config).
CLAUDE.md Integration
After installing and configuring the MCP server above, add this to your project's CLAUDE.md so Claude Code uses Novyx automatically:
## Shared Memory (Novyx MCP)
You have access to novyx-mcp tools for shared memory, knowledge graph, audit,
rollback, replay, and context spaces. Use them when relevant. Store decisions
and status at the end of tasks. Check for context from other agents before
starting new work.This turns isolated Claude Code sessions into a coordinated team — each session stores what it learned and checks what other sessions have done before starting work.
Canonical Workflow: Draft, Review, Merge
This is the highest-signal Novyx workflow for coding agents:
The agent learns something important, but uses
draft_memory(..., branch_id="feature-x")instead of writing directly.Review the whole branch with
memory_branch("feature-x").Use
draft_diffwhen one draft needs a closer look.Merge the whole branch with
merge_branch("feature-x"), or reject it withreject_branch("feature-x").
Example:
draft_memory(
observation="Deploys fail if REDIS_URL is unset in staging",
tags=["ops", "staging"],
importance=8,
branch_id="staging-fixes"
)
memory_branch("staging-fixes")
draft_diff("drf_abc123")
merge_branch("staging-fixes")This keeps agent memory reviewable instead of letting every session write directly into permanent state.
Available Tools
Memory-only tools work in local SQLite mode (zero config, no API key). Cloud-only governance and runtime tools require a Novyx API key.
Core Memory (20 tools)
Store, recall, supersede, and audit individual memories.
Tool | Description |
| Store a memory observation with tags, importance, context, TTL |
| Semantic search using natural language |
| List stored memories with optional tag filtering |
| Total count, average importance, conflict count |
| Health score, stale memory count, contradiction count |
| Delete a memory by UUID |
| Replace a memory with a new version, preserving history |
| Create a directed link between two memories |
| Remove a link between memories |
| Retrieve all links for a memory |
| Add a knowledge graph triple (subject → predicate → object) |
| Query knowledge graph triples with filters |
| Remove a knowledge graph triple |
| Knowledge graph entity CRUD |
| List edges between memories or entities |
| Get the cryptographic audit trail |
| Export and verify the audit chain |
Memory Drafts & Branches (8 tools)
Stage memory changes for review before committing.
Tool | Description |
| Create a reviewable draft before writing to canonical memory |
| List open, merged, or rejected drafts |
| Show field-level changes before merging a draft |
| Merge or reject an individual draft |
| Review a whole branch/session of drafts at once |
| Merge or reject every open draft in a branch |
Rollback (3 tools)
Time-travel restore — undo agent mistakes.
Tool | Description |
| Rollback memory to a point in time (supports dry run) |
| Preview what a rollback would change |
| List all prior rollback operations |
Context Spaces (10 tools)
Multi-agent collaboration — shared memory with fine-grained permissions.
Tool | Description |
| Context space CRUD |
| List spaces you own or have access to |
| Search or list memories within a space |
| Disabled: cross-tenant invitation redemption is not available yet |
| List spaces shared with you |
| Accept invites or revoke access |
| Get the current context state for a space |
Novyx Control — Governance (10 tools)
Policy-as-code, approval workflows, and governed actions. New in Phase 1-5 (v2.5.0).
Tool | Description | Tier |
| Create a custom YAML policy with regex rules and severities | Starter+ |
| List all active policies (built-in + custom) | All |
| Disable a custom policy | Starter+ |
| Check the current Control policy profile | All |
| Submit an action for policy evaluation | All |
| Get the status of a submitted action | All |
| List recent governed actions | All |
| Get the full causal chain for an action | All |
| List actions awaiting human approval | All |
| Approve or deny a pending action | All |
Runtime v2 — Agent Orchestration (25 tools)
First-class agents, missions, capability packs, checkpoints, and human interventions.
Category | Tools |
Agents |
|
Missions |
|
Capabilities |
|
Checkpoints |
|
Interventions |
|
Capabilities require Starter+. Checkpoints require Pro+. Interventions require Enterprise.
Threat Intelligence (11 tools — Pro+)
Detect, signature, and correlate adversarial activity across agents.
Tool | Description |
| Subscribe to the threat intelligence feed |
| Log a threat observation |
| Match an event against known signatures |
| Create or query a threat signature |
| Apply a mitigation for a known threat |
| Trending threats over time |
| Aggregate threat statistics |
| Correlate a single event across the chain |
| Detect coordinated multi-agent attack patterns |
| Detect long-running threat campaigns |
| Find signatures related to a given threat |
Defense Tracking (7 tools)
Deploy and tune automated defensive rules.
Tool | Description |
| Deploy a new defense rule |
| List all active defenses |
| Remove a defense rule |
| Get AI-recommended defenses for current threats |
| Measure how effective a defense has been |
| Log a successful block by a defense |
| Aggregate defense performance stats |
Replay (7 tools — Pro+)
Time-travel debugging — inspect how memory changed over time.
Tool | Description |
| Chronological timeline of memory operations |
| Reconstruct memory state at a point in time |
| Trace the full lifecycle of a single memory |
| Compare memory state between two points |
| Replay a single memory's history |
| Show how a memory drifted over time |
| Replay a recall query as it would have answered then |
Eval (7 tools)
Memory health evaluation and CI/CD gates.
Tool | Description | Tier |
| Run a full memory health evaluation | All |
| Get historical eval scores | All |
| Detect drift since the last baseline | All |
| Pass/fail gate for CI/CD pipelines | Pro+ |
| Baseline CRUD |
Cortex (5 tools — Pro+)
Autonomous memory intelligence — consolidation, reinforcement, and insights.
Tool | Description |
| Check cortex configuration and last run stats |
| Get/update cortex configuration |
| Trigger a cortex cycle (consolidation + reinforcement) |
| Get AI-generated insights from memory patterns (Enterprise) |
Traces (4 tools)
Sentinel trace logging for full agent step audits.
Tool | Description |
| Start a new trace |
| Append a step to a trace |
| Finalize a trace |
| Cryptographically verify a trace |
Operational (3 tools)
Tool | Description |
| Aggregated stats — usage, pressure, governance counts |
| Status of any active streams |
| Introspect the MCP tool surface — status, category, description per tool (new in 2.7.0) |
Available Resources
URI | Description |
| List all stored memories |
| Get a specific memory by UUID |
| Memory statistics |
| Usage and plan information |
| List all context spaces |
| Get a specific context space |
Available Prompts
Prompt | Description |
| Recall relevant memories and format them as context (takes a |
| List all memories for a session (takes a |
| Recall memories from a specific context space (takes |
Get an API Key
Sign up at novyxlabs.com to get your API key. The free tier includes 5,000 memories and 5,000 API calls per month, including the draft-review-merge workflow.
License
MIT - Copyright 2026 Novyx Labs
Available Tools
120 toolsaction_historyBRead-only
List recent Control actions with their status.
Shows submitted, pending, approved, denied, executed, and failed actions.
Args: limit: Maximum actions to return (default 20).
Returns: JSON string with action list.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the agent knows it's safe. The description adds that it shows various statuses (submitted, pending, etc.), which provides some behavioral insight but nothing about authentication, rate limits, or how 'recent' is defined. It adds modest 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, with a clear front-loaded purpose, and structured Args/Returns sections. Every sentence adds value with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the simple parameter and return type. However, it omits details like how 'recent' is defined (timeframe?), and no output schema is provided to clarify the return format. For a read-only list tool, it is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since schema description coverage is 0%, the description fully compensates by explaining the 'limit' parameter: 'Maximum actions to return (default 20).' This adds clear meaning beyond the schema's mere existence.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'recent Control actions with their status', making it specific. However, it does not explicitly differentiate from sibling tools like 'action_status' or 'audit', though the purpose is sufficiently clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., action_status for a single action, audit for overall history). The description does not exclude any contexts or mention 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.
action_statusARead-only
Get the status of a specific Control action.
Returns full action details including policy decision, approval status, execution result, and evidence (Novyx trace, certificate).
Args: action_id: The action ID (e.g. act_xxx).
Returns: JSON string with action details.
| Name | Required | Description | Default |
|---|---|---|---|
| action_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true; the description adds specific return details (policy decision, approval status, execution result, evidence) beyond annotations, providing useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, front-loaded with the core purpose, and uses clear argument/return sections with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter retrieval tool with an output schema, the description covers the main purpose and return details. Minor gap: does not specify where to obtain action_id or that it only applies to Control actions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description compensates by explaining action_id ('The action ID (e.g. act_xxx)'), though it lacks format constraints or source guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the status of a specific Control action, distinguishing it from siblings like action_history (list actions) and action_submit (create actions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies using it when you need the status of a specific action, but does not explicitly state when not to use it or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
action_submitA
Submit an action to Novyx Control for governed execution.
The action is evaluated against your tenant's policy profile. If approval is required, it will be queued for human review; otherwise executed immediately.
Args: connector: Target connector (github, slack, linear, pagerduty, http). operation: Operation name (e.g. issues/create, messages/send). payload: JSON string with the full action envelope.
Returns: JSON string with action ID, status, and policy decision.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | ||
| connector | Yes | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint false; description adds policy evaluation and return fields. Does not disclose error handling, side effects, or authentication needs. Adequate but could be richer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, well-structured with purpose, explanation, Args, and Returns sections. Front-loaded with main point. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, input, approval flow, and return fields. Output schema exists so return details are not required. Lacks error scenarios or prerequisites, but complete enough for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 0% but description's Args section explains each parameter thoroughly, including example values for connector and operation, and format for payload. Adds significant meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'submit' and resource 'action' with explicit context of governed execution and policy evaluation. Distinguishes from siblings like approve_action or check_policy by emphasizing the submission process.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context on policy evaluation and approval routing but does not explicitly state when to use alternatives or when not to use the tool. Implicit guidance, but lacks clear exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_tripleA
Add a knowledge graph triple (subject -> predicate -> object).
Entities are auto-created by name if they don't exist.
Args: subject: The subject entity name. predicate: The relationship predicate. object_name: The object entity name.
Returns: JSON string with the created triple details.
| Name | Required | Description | Default |
|---|---|---|---|
| subject | Yes | ||
| predicate | Yes | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint: false. The description adds value by disclosing that entities are auto-created if they don't exist—a key behavioral trait not covered by annotations. It does not mention failure cases or permissions, but the auto-creation detail is useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded: the main purpose is stated in the first sentence, followed by a concise note on auto-creation and a clearly structured parameter list. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 string params, no enums, output schema exists), the description covers essential aspects: what it does, parameter meanings, and return type. It does not elaborate on constraints (e.g., allowed predicates) but is sufficient for a basic create operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 3 required string parameters with no descriptions (coverage 0%). Description compensates by explaining each parameter: 'subject: The subject entity name.', 'predicate: The relationship predicate.', 'object_name: The object entity name.' This adds meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Add a knowledge graph triple (subject -> predicate -> object).' It uses a specific verb 'Add' and a clear resource 'knowledge graph triple.' Among siblings like 'delete_triple' and 'query_triples', this tool is uniquely identified as creation, distinguishing it well.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when adding a triple, but does not provide explicit guidance on when not to use it or alternative tools. It lacks context like prerequisites (e.g., requiring a space) or cases where existing triples might conflict.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approve_actionA
Approve a pending agent action in Novyx Control.
Approves the action and triggers its execution against the target connector (GitHub, Slack, Linear, PagerDuty, or HTTP).
Args: approval_id: The approval ID (e.g. apr_act_xxx). approver_id: Your operator ID (e.g. usr_operator_default). reason: Optional reason for approval.
Returns: JSON string with the executed action details.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| approval_id | Yes | ||
| approver_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide destructiveHint: false, leaving the description to cover behavioral traits. The description states it triggers execution and returns a JSON string, but does not disclose potential side effects, permissions needed, or failure modes. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with 'Args' and 'Returns' sections, making it scannable. It uses clear, concise language without unnecessary repetition, though slightly longer than minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, output schema exists), the description covers purpose, parameters, return format, and target connectors. It does not discuss error scenarios or prerequisites, but the presence of an output schema reduces the need for detailed return descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% parameter descriptions, so the description compensates by explaining each parameter with examples (e.g., 'approval_id: The approval ID (e.g. apr_act_xxx)'). Adds meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Approve a pending agent action'), the context ('Novyx Control'), and the effect ('triggers its execution against the target connector'), with specific connectors listed. This distinguishes it from sibling tools like action_submit or action_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used for approving pending actions, but provides no explicit guidance on when to use it versus alternatives (e.g., action_submit for new actions), nor does it state when not to use it. Lacks explicit exclusions or comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auditARead-only
Get the audit trail of memory operations.
Args: limit: Maximum number of audit entries to return (default 20). operation: Optional filter by operation type (CREATE, UPDATE, DELETE, ROLLBACK).
Returns: JSON string with audit trail entries.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| operation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, and the description adds minimal extra behavioral context (returns JSON string). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, front-loaded with purpose, and each sentence (including the parameter list and return line) adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with two optional params, readOnly annotation, and an output schema, the description covers purpose, parameters, and return format completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description bears full burden. It explicitly describes both parameters with default values and example values, adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the audit trail of memory operations' with a specific verb and resource. It distinguishes from siblings like audit_export and audit_verify by specifying the target.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Siblings include related tools like audit_export and audit_verify, but the description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_exportARead-only
Export the full audit log.
Downloads the complete audit trail in the specified format. Requires Pro tier or Novyx Cloud.
Args: format: Export format — "json", "csv", or "jsonl" (default: json).
Returns: JSON string with exported audit data.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the description adds value by noting the requirement and that it downloads the full audit log. However, it does not disclose potential limitations (e.g., file size, synchronous behavior, rate limits).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise: two sentences for purpose, one for requirements, and a clear Args/Returns section. No superfluous information, front-loaded with essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple export tool with one parameter, the description covers purpose, requirement, parameter semantics, and return format. It is mostly complete, though it could mention error conditions (e.g., invalid format or insufficient permissions) and why to choose this over 'audit'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds the allowed values ('json', 'csv', 'jsonl') and default for the 'format' parameter, which are absent from the schema (string type without enum). This fully compensates for the schema's lack of description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool exports the full audit log with a specific verb (Export/Downloads) and resource (audit log). It distinguishes itself from the sibling 'audit' tool by focusing on downloading the complete trail rather than viewing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While it mentions a requirement (Pro tier/Novyx Cloud), it does not explicitly guide when to use this tool over siblings like 'audit' or 'audit_verify'. The usage context is implied but not contrasted with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_verifyARead-only
Verify the integrity of the audit trail.
Checks the cryptographic hash chain (cloud) or entry consistency (local) to confirm no audit entries have been tampered with.
Returns: JSON string with verification result.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond the readOnlyHint annotation by detailing the verification mechanism (cryptographic hash chain vs entry consistency) and specifying the return format (JSON string). It does not contradict annotations and provides moderate behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two short paragraphs. The first sentence clearly states the purpose, and the subsequent lines provide necessary detail without redundancy. Every sentence contributes meaningfully.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and a simple output, the description is mostly complete. It explains what the tool does and how it works, though it could mention potential performance implications or clarify the output schema further. The presence of an output schema mitigates this need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, and schema coverage is 100%. Per guidelines, baseline is 3. The description adds no parameter-specific information, but this is acceptable given the parameterless nature of the tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Verify the integrity of the audit trail.' It explains the verification method (cryptographic hash chain or entry consistency) and differentiates itself from sibling tools like 'audit' and 'audit_export' through its focus on integrity checking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives. It lacks explicit context such as when verification is appropriate or prerequisites. No exclusion criteria or alternative tool mentions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_missionCDestructive
Cancel a mission.
| Name | Required | Description | Default |
|---|---|---|---|
| mission_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. Description adds no additional behavioral context such as irreversibility, permissions, or side effects. It does not contradict annotations but fails to elaborate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (three words). While it contains no filler, it sacrifices necessary detail. It is appropriately sized for a simple tool but could include a brief note on effect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the destructive annotation and single required parameter, the description is insufficient. It does not explain what 'cancel' entails, any prerequisites, or what happens upon cancellation. The presence of an output schema is not leveraged.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description provides no information about the sole parameter mission_id. No format, example, or semantics are given, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb-resource pair ('Cancel a mission'). However, it does not distinguish from sibling tools like delete_mission or pause_mission, which could overlap in functionality. The purpose is clear but lacks differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., delete_mission, pause_mission). The description is minimal and does not provide context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_policyARead-only
Check the current Control policy profile.
Shows which connectors require approval, risk tier rules, and auto-approve settings.
Args: connector: Optional connector to check (e.g. github, slack). environment: Environment to check against (default: production).
Returns: JSON string with policy profile and whether the connector requires approval.
| Name | Required | Description | Default |
|---|---|---|---|
| connector | No | ||
| environment | No | production |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description aligns by stating 'check'. The description additionally reveals the return format (JSON string with policy profile and approval status), which adds 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, uses clear headings (Args, Returns), and every sentence adds value. No wasted words, well-organized for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (read-only, two optional params, known output schema), the description covers all needed context: what it does, parameters, and return value. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining both parameters: connector (optional, with examples) and environment (with default). This provides essential meaning beyond the schema's titles and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks the current Control policy profile and enumerates specific details it shows (connector approval, risk tier rules, auto-approve settings). This distinguishes it from sibling tools like create_policy, delete_policy, and list_policies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for inspecting policy state but does not explicitly state when to use versus alternatives. It provides optional arguments, giving context for filtering, but lacks exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
context_nowARead-only
Get a snapshot of your current memory context.
Returns recent memories, stats, and audit activity — a quick overview of what your agent knows right now.
Returns: JSON string with context snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true. The description adds specific behavioral details: returns recent memories, stats, and audit activity – extending beyond the annotation. No contradictions detected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise: two sentences plus a return note. Front-loaded with the core purpose. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and a readOnly annotation, the description is mostly complete. It explains the return value is a JSON string with snapshot details. Missing formal output schema, but context signals indicate one exists externally.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is effectively 100%. The description adds no parameter info (none needed). Baseline 4 for 0 parameters is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets a 'snapshot of your current memory context' with recent memories, stats, and audit activity. It distinguishes from siblings like 'recall' or 'list_memories' by emphasizing a quick overview, but does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it's for a quick overview of current memory context, but lacks explicit guidance on when to use this vs alternatives like 'memory_stats' or 'list_memories'. No when-not-to-use or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coordinated_attack_checkBRead-only
Check if multiple threat events are part of a coordinated attack.
Analyzes timing and pattern similarity across events. Requires Pro tier or Novyx Cloud.
Args: threat_events: JSON string with array of threat events to analyze. time_window_hours: Optional time window for correlation (default: auto).
Returns: JSON string with is_coordinated boolean.
| Name | Required | Description | Default |
|---|---|---|---|
| threat_events | Yes | ||
| time_window_hours | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, and the description's 'Check if...' is consistent. The description adds detail about the analysis approach (timing, pattern similarity) but no additional behavioral traits like concurrency limits or data handling. With annotations covering safety, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections (purpose, analysis, requirements, args, returns) and is reasonably concise. The first sentence clearly states the purpose. A slight redundancy exists (e.g., the analysis line repeats the purpose), but overall it earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter check tool with no output schema, the description covers the input format, return type (JSON boolean), and basic analysis logic. It omits error conditions and edge cases, but is sufficiently complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It specifies that 'threat_events' is a JSON string of an array and 'time_window_hours' is optional with default 'auto'. This adds meaning beyond the schema's types and titles, though more detail on expected JSON format would improve it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks if multiple threat events are part of a coordinated attack, with a specific verb and resource. It lacks explicit differentiation from sibling tools like 'correlate_threat' and 'detect_campaign', but the analysis of timing and pattern similarity provides some distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as 'correlate_threat' or 'detect_campaign'. The description only mentions a prerequisite (Pro tier or Novyx Cloud), but does not specify contexts or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
correlate_threatARead-only
Check if a threat correlates with attacks on other tenants.
Cross-references the threat fingerprint against the network database. Requires Pro tier or Novyx Cloud.
Args: threat_event: JSON string describing the threat to correlate.
Returns: JSON string with correlation result and matching signatures.
| Name | Required | Description | Default |
|---|---|---|---|
| threat_event | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the description's 'Check if a threat correlates' is consistent with a read operation. The description adds context about cross-referencing the threat fingerprint against the network database, but does not disclose other behavioral traits like rate limits or error handling. The annotation already covers the safety profile, so the description adds moderate extra value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (5 lines) and front-loaded with a clear one-line summary. It is structured with a purpose statement, a cross-referencing detail, prerequisites, and an args/returns section. Every sentence serves a purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a single parameter, annotations indicating read-only, and an output schema (existence assumed), the description adequately covers the tool's purpose, input, and return. It lacks details on error conditions or format of the output, but the presence of an output schema mitigates the need for deep explanation. Minor gaps prevent a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (parameter description is just 'Threat Event'), but the description states that 'threat_event' is a 'JSON string describing the threat to correlate.' This adds semantic meaning beyond the schema, though it does not detail the expected structure or required fields. The description partially compensates for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Check if a threat correlates with attacks on other tenants.' This uses a specific verb ('check') and resource ('threat correlation'), and distinguishes it from sibling tools like 'threat_match' (likely local) and 'threat_mitigate' (likely remediation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite ('Requires Pro tier or Novyx Cloud'), but does not provide explicit guidance on when to use this tool versus alternatives such as 'threat_match' or 'threat_record'. The context of cross-tenant correlation is implied, but no when-to-use or when-not-to-use rules are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_configARead-only
Get the current Cortex configuration.
Shows consolidation thresholds, reinforcement decay rates, and cycle schedule. Requires Pro tier or Novyx Cloud.
Returns: JSON string with Cortex configuration.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true; the description adds value by listing the specific configuration elements (thresholds, decay rates, schedule) and the required access tier, going 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no fluff, front-loaded with the core purpose, and each sentence adds necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, an output schema, and annotations, the description fully covers what the tool does, what it returns, and access requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters; schema coverage is 100%, so baseline is 4. The description does not need to add parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and resource 'Cortex configuration', clearly distinguishing it from sibling tools like cortex_update_config (update) and cortex_status (status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a prerequisite (Pro tier or Novyx Cloud) but does not provide explicit when-to-use or when-not-to-use guidance relative to alternatives like cortex_update_config.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_insightsARead-only
List auto-generated memory insights.
Cortex detects patterns across your memories and generates insights automatically. Requires Enterprise tier or Novyx Cloud.
Args: limit: Maximum insights to return (default 20).
Returns: JSON string with generated insights.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so no contradiction. The description adds that insights are 'auto-generated' and requires an Enterprise tier, which provides some behavioral context. However, it does not disclose any error conditions, pagination behavior, or performance characteristics beyond the default limit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with three short sentences plus a structured 'Args' and 'Returns' section. Every sentence adds value, and the purpose is front-loaded. No redundant or wasteful wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and an output schema, the description covers the core functionality, return format, and access requirement. It does not discuss error handling or limits beyond the default, but given the low complexity, this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description explicitly documents the sole parameter 'limit' with its purpose ('Maximum insights to return') and default value (20), adding significant meaning beyond the raw schema. This compensates well for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List auto-generated memory insights', specifying the verb 'List' and the resource 'auto-generated memory insights'. This distinguishes it from sibling tools like 'list_memories' which list user memories, and 'recall' which queries memories. The 'auto-generated' qualifier adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite ('Requires Enterprise tier or Novyx Cloud') but does not provide guidance on when to use this tool versus alternatives such as 'list_memories' or 'recall'. There is no explicit statement of context or exclusions, making it insufficient for an agent to decide between related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_runA
Manually trigger a Cortex cycle.
Runs consolidation (merge duplicate memories) and reinforcement (boost frequently recalled memories, decay forgotten ones). Normally runs automatically every 6 hours. Requires Pro tier or Novyx Cloud.
Returns: JSON string with cycle results (consolidated, reinforced counts).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation (false), the description details the safe operations performed (consolidation and reinforcement) and the requirement for a specific tier. It could further mention any rate limits or cooldown, but current info is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: two short paragraphs with clear bullet points. Every sentence adds value with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, clear purpose) and the presence of annotations and output schema mention, the description fully covers what an agent needs to decide to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist in the schema (100% coverage), so the description adds no param info. With zero parameters, a baseline score of 4 is appropriate as there is nothing to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'trigger' and the resource 'Cortex cycle'. It explains the two operations (consolidation and reinforcement) and distinguishes from sibling tools like cortex_status or cortex_config.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It mentions the normal automatic schedule and a prerequisite (Pro tier or Novyx Cloud), providing context for when manual use is appropriate. However, it does not explicitly state when not to use it or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_statusARead-only
Get Cortex autonomous intelligence status.
Shows whether Cortex is enabled, last run time, and consolidation/reinforcement stats. Requires Pro tier or Novyx Cloud.
Returns: JSON string with Cortex status and last run info.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. The description adds behavioral details beyond that, such as 'last run time' and 'consolidation/reinforcement stats', and notes the return type. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences) and front-loaded with the main action. Every sentence adds value: purpose, details, requirement, and return format. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status retrieval tool with no parameters, the description is complete. It covers the output (JSON string with status and last run info) and prerequisites. The output schema is available for return values, so additional detail is not needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100%. The description does not need to add parameter info. Baseline for 0 parameters is 4, and the description is appropriately minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get Cortex autonomous intelligence status.' It specifies what is shown (enabled, last run time, consolidation/reinforcement stats) and the return format (JSON string). This is specific and distinguishes it from sibling tools like cortex_config or cortex_run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear prerequisite: 'Requires Pro tier or Novyx Cloud.' This helps the agent understand when the tool is usable. However, it does not explicitly mention when not to use it or provide alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_update_configA
Update Cortex configuration.
Tune how Cortex consolidates, reinforces, and decays memories. Requires Pro tier or Novyx Cloud.
Args: consolidation_threshold: Similarity threshold for merging duplicates (0.0-1.0). reinforcement_boost: How much to boost frequently recalled memories. decay_rate: How fast forgotten memories fade.
Returns: JSON string with updated Cortex configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| decay_rate | No | ||
| reinforcement_boost | No | ||
| consolidation_threshold | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only include destructiveHint=false. The description adds the behavioral trait of being a mutation (update) and the tier requirement. For a simple config update, this is sufficient; no additional side effects are noted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a one-line purpose, a brief explanation of the tool's functionality, a prerequisite line, and formatted argument descriptions. Every sentence adds value without excess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three optional parameters and an output schema (not shown but indicated as existing), the description covers the essential semantics. It could mention default behaviors when params are null, but the current level is adequate for a config update tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description fully compensates. Each parameter has a clear explanation: consolidation_threshold (range 0.0-1.0), reinforcement_boost (how it affects recall), decay_rate (fade speed). This adds the meaning the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update Cortex configuration' and specifies the resources affected (memories consolidation, reinforcement, decay). This distinguishes it from sibling tools like cortex_config (likely read-only) and cortex_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It mentions the prerequisite 'Requires Pro tier or Novyx Cloud', which guides usage. However, it does not explicitly state when to use this tool versus alternatives like cortex_config for reading. The inference is clear but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_agentA
Create a first-class agent entity in the Novyx Runtime.
Novyx is provider-agnostic — you must specify which LLM backend the agent uses. Use "litellm" to reach models not directly supported (Gemini, Mistral, Cohere, local Ollama, etc.).
Args: name: Human-readable agent name. provider: LLM provider (required): "openai", "anthropic", or "litellm". model: LLM model name (required, e.g. "gpt-4o", "claude-sonnet-4-6"). agent_id: Custom agent ID (auto-generated if omitted). description: Agent description. instructions: System prompt / instructions. capabilities: List of enabled capability pack names. memory_scope: Memory scope for the agent (e.g. "private", "shared"). policy_profile: JSON string of policy profile configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| model | Yes | ||
| agent_id | No | ||
| provider | Yes | ||
| description | No | ||
| capabilities | No | ||
| instructions | No | ||
| memory_scope | No | ||
| policy_profile | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only give destructiveHint=false. The description adds that it creates an entity and explains provider behavior, but does not disclose side effects, permissions, or behavior on duplicate agent_id.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Main purpose is front-loaded, and the Args list is structured logically. The litellm context is useful but adds length; minor redundancy in describing requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, parameters, and provider guidance. Output schema exists, so return values need not be described. Missing edge-case behavior (e.g., conflict handling) but acceptable given annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description's Args section adds meaning by describing each parameter (e.g., provider options, model examples). However, some descriptions like 'policy_profile: JSON string' are brief, lacking format details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Create a first-class agent entity', using a specific verb and resource. It distinguishes from sibling tools like update_agent, delete_agent, get_agent, and list_agents by focusing on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance on when to use different providers, especially litellm for unsupported models. However, it does not explicitly state when not to use this tool or compare to siblings like update_agent for modifications.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_capabilityA
Register a capability pack (tool bundle with governance).
Args: name: Capability pack name. description: Description. tools: Tool definitions with schemas. risk_levels: Risk level per tool {tool_name: "low"|"medium"|"high"|"critical"}. approval_requirements: JSON string of approval requirements per risk level. memory_behavior: JSON string of memory behavior configuration. eval_rules: JSON string of evaluation rules.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| tools | No | ||
| eval_rules | No | ||
| description | No | ||
| risk_levels | No | ||
| memory_behavior | No | ||
| approval_requirements | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide destructiveHint=false. Description adds governance details (risk levels, approval, memory, eval) but omits side effects, permissions, or validation behavior. Moderate transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with clear purpose. Uses docstring style (Args:) but is somewhat lengthy with 7 parameters. Efficient but not maximally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core purpose and parameter meanings. No return value explanation needed due to output schema. Missing prerequisites or error cases, but sufficient for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 0%. Description lists all parameters with brief explanations but lacks format details (e.g., JSON string specifics). Provides basic meaning but not rich enough to fully compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Register a capability pack' with governance. Distinguishes from siblings like get/update/delete_capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives mentioned. Description implies usage for registering capability packs but lacks context on when to prefer this over other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_checkpointA
Create a checkpoint for a mission (rollback point).
Args: mission_id: Mission to checkpoint. label: Human-readable label. metadata: JSON string of additional metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | ||
| metadata | No | ||
| mission_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not contradict annotations (destructiveHint=false). It adds 'rollback point' context but does not disclose other behavioral traits such as whether an existing checkpoint with the same label is overwritten, permission requirements, or error handling. Annotations already indicate non-destructive nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with no unnecessary words. It front-loads the core purpose and follows with a clear parameter list. Every sentence is meaningful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no enums, and an output schema exists, the description covers the essentials. It could mention the return value or error scenarios, but the presence of an output schema reduces the need. Adequate for a simple create operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond schema titles: it clarifies 'mission_id: Mission to checkpoint', 'label: Human-readable label', and 'metadata: JSON string of additional metadata' (the schema allows both string and object but description specifies JSON string). This compensates for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a checkpoint') and the resource ('for a mission') with explicit mention of 'rollback point'. It distinguishes well from siblings like 'get_checkpoint', 'list_checkpoints', 'rollback_to_checkpoint'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage context (creating a rollback point) but does not explicitly state when to use vs. alternatives like 'create_mission' or 'rollback'. It provides clear context but lacks exclusion or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_interventionA
Record a supervisor intervention (approve, reject, pause, escalate, etc).
Args: intervention_type: One of: approve, reject, pause, escalate, reroute, annotate, rollback_request. mission_id: Related mission. action_id: Related action. agent_id: Related agent. rationale: Why this intervention was made. metadata: JSON string of additional metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| metadata | No | ||
| action_id | No | ||
| rationale | No | ||
| mission_id | No | ||
| intervention_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide destructiveHint: false. The description says 'Record' implying a write operation, but does not disclose side effects, whether it overwrites existing data, required permissions, or if the intervention triggers automated actions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the purpose, followed by a clear bullet list of parameters. Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool creates a record and has an output schema (not shown), the description sufficiently covers input but omits success/error behavior or return value expectations. It is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description provides essential meaning for all 6 parameters, including a list of acceptable values for intervention_type. However, it could provide more detail, e.g., format constraints for metadata or whether parameters are optional in certain contexts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Record a supervisor intervention' and lists specific intervention types (approve, reject, pause, escalate), distinguishing it from siblings like 'get_intervention' and 'list_interventions'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Does not mention that this creates a new intervention record or advise against using it for retrieval (which would be handled by sibling tools).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_missionB
Create a mission (bounded job) for an agent.
Args: agent_id: Agent to assign this mission to. goal: What the mission should accomplish. constraints: Constraints on execution. success_criteria: How to determine success. allowed_capabilities: Capability packs allowed.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | ||
| agent_id | Yes | ||
| constraints | No | ||
| success_criteria | No | ||
| allowed_capabilities | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only reiterates the creation action, adding no behavioral insight beyond the annotation `destructiveHint: false`. It omits disclosures about side effects, required permissions, or post-creation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using one introductory sentence followed by a clear bullet list of arguments. Every word serves a purpose, though the list format is slightly redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters and an output schema, the description fails to explain the return value, prerequisites (e.g., agent existence), or how to handle optional parameters. It does not leverage sibling tool context to guide usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds brief explanations for all five parameters, covering the 0% schema coverage. However, the explanations are minimal (e.g., 'Constraints on execution') and lack specificity about format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'mission (bounded job)', making the tool's purpose unambiguous. It effectively distinguishes from sibling tools like cancel_mission and update_mission.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., create vs update). The description lacks any context about prerequisites or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_policyA
Create a custom governance policy for your agent's actions.
Define rules with regex patterns and severity levels. Policies are evaluated alongside built-in policies on every action submission. Requires Starter plan.
Args: name: Policy name (alphanumeric, underscores, hyphens). E.g. "pii_protection". description: Human-readable description of what this policy enforces. rules: List of rule dicts. Each rule needs: - match: regex pattern to detect (e.g. "(ssn|social.security)") - severity: "critical", "high", "medium", or "low" - reason: (optional) violation message template, use {match} for matched text - context_requires: (optional) additional regex that must also match - confidence: (optional) 0.0-1.0, default 0.85 step_types: Which step types to evaluate (default: ["ACTION"]). whitelisted_domains: Domains to skip evaluation for.
Returns: JSON string confirming policy creation with version number.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| rules | No | ||
| step_types | No | ||
| description | No | ||
| whitelisted_domains | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint=false, which is consistent. The description adds that policies are evaluated on every action submission and requires a plan. However, it does not disclose whether policies can be overwritten or any side effects of creation, which limits transparency for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured: an introductory sentence followed by parameter details in a bullet-like format. Every sentence adds value, and the purpose is front-loaded. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, nested structures) and the presence of an output schema, the description covers all aspects: purpose, parameters, return format, and plan requirement. Lacks mention of error handling or limits on number of policies, but is sufficient for agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by detailing all parameters: name, description, rules (with sub-fields like match, severity, reason, etc.), step_types, and whitelisted_domains. Examples are given (e.g., 'pii_protection').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Create a custom governance policy for your agent's actions.' The verb 'create' and noun 'policy' are specific, and it distinguishes from sibling tools like check_policy (evaluate an action) and list_policies (list existing policies).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides clear context: policies are evaluated alongside built-in policies on every action submission, and requires Starter plan. However, it does not explicitly state when not to use this tool or compare to alternatives like check_policy or delete_policy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_spaceA
Create a shared context space for multi-agent collaboration.
Spaces let multiple agents share memories with fine-grained permissions. The creator is the owner and can grant read/write access to other agents or tenants.
Args: name: Name for the space. description: Optional description of the space's purpose. allowed_agents: Optional list of agent IDs that can access this space. tags: Optional tags for the space.
Returns: JSON string with the created space details including space_id.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| tags | No | ||
| description | No | ||
| allowed_agents | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint=false, indicating non-destructive. The description adds that the creator is the owner with permission grants, which is useful context. However, it does not disclose any additional behavioral traits like rate limits or side effects beyond the basic creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a two-sentence purpose followed by a bulleted Args list. No extraneous information, and front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 params, 1 required, output schema exists), the description covers purpose, parameters, and return value (JSON with space_id). It lacks error handling or uniqueness notes but is sufficiently complete for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by listing each parameter with brief explanations (e.g., 'Optional description of the space's purpose'). While not deeply detailed, it adds meaning beyond the schema's type and name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'create' and the resource 'shared context space' for multi-agent collaboration. It distinguishes from sibling tools like share_space, update_space, list_spaces, and delete_space by focusing specifically on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks explicit guidance on when to use this tool versus alternatives like share_space or update_space. It does not provide when-not-to-use instructions or mention any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashboardARead-only
Get a full dashboard overview.
Combines stats, spaces, and recent activity into a single response. Use for periodic status checks or reporting.
Returns: JSON string with dashboard data.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only. Description adds value by specifying the components (stats, spaces, recent activity) and return format, no contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences plus a return note, all front-loaded with purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and existing output schema, description fully covers usage and return value. Complete for a simple retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so baseline 4 applies. Description mentions return format which is helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a full dashboard overview' with a specific verb and resource, and distinguishes it from siblings as a composite aggregation tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends use for 'periodic status checks or reporting,' providing clear context. Could mention when not to use, but sufficient for a simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
defense_deployA
Deploy a defense rule against a threat signature.
Automatically blocks, rate-limits, quarantines, or alerts on matching threats. Requires Pro tier or Novyx Cloud.
Args: signature_id: The threat signature to defend against. rule_type: Defense type — block, rate_limit, quarantine, or alert_only. rule_config: Optional JSON string with rule configuration.
Returns: JSON string with the deployed defense details.
| Name | Required | Description | Default |
|---|---|---|---|
| rule_type | Yes | ||
| rule_config | No | ||
| signature_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=false, and description correctly indicates it's a write operation (deploying a rule). No contradiction, but description does not add behavioral context beyond what annotations and the action description imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise with about 4 lines. Front-loaded with purpose, then prerequisites and parameter explanations. Could be slightly more streamlined but generally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists (context signal true), the description's note about return value (JSON string with details) suffices. For a creation tool with 3 parameters, it covers essential aspects but omits error handling or idempotency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well by explaining each parameter: signature_id as threat signature, rule_type as defense type with enumerated values, and rule_config as optional JSON string. Adds meaning beyond schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it deploys a defense rule against a threat signature, listing the action types (block, rate-limit, quarantine, alert_only). It distinguishes from sibling tools like defense_list or defense_remove.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 vs alternatives. The description mentions a prerequisite (Pro tier or Novyx Cloud) but does not specify when not to use it or provide context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
defense_effectivenessARead-only
Measure the effectiveness of a deployed defense.
Returns a 0-1 score based on blocks vs false positives. Requires Pro tier or Novyx Cloud.
Args: defense_id: The defense rule ID to evaluate.
Returns: JSON string with effectiveness score.
| Name | Required | Description | Default |
|---|---|---|---|
| defense_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond the readOnlyHint annotation by explaining the scoring basis ('blocks vs false positives') and the tier requirement. It does not mention any destructive behavior, which is consistent with the read-only hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences with no extraneous words. It is front-loaded with the purpose, then details the return value, requirements, and argument. Very efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 param, read-only, output schema exists), the description covers input, output format, and requirements. A minor gap is lack of error handling, but overall it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since schema description coverage is 0%, the description compensates by explaining 'defense_id: The defense rule ID to evaluate.' This provides necessary meaning beyond the schema's empty description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Measure the effectiveness of a deployed defense' with a specific verb and resource. It distinguishes from siblings by mentioning the 0-1 score based on blocks vs false positives, which is unique among defense tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite ('Requires Pro tier or Novyx Cloud') but does not provide explicit guidance on when to use this tool versus alternatives like defense_stats. The context is implied but not fully elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
defense_listARead-only
List active auto-deployed defense rules.
Shows all defense rules currently protecting against detected threats. Requires Pro tier or Novyx Cloud.
Args: rule_type: Optional filter — block, rate_limit, quarantine, or alert_only.
Returns: JSON string with active defenses.
| Name | Required | Description | Default |
|---|---|---|---|
| rule_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true; the description adds that it returns a JSON string and requires a tier, providing helpful context without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, uses a clear structure with 'Args:' and 'Returns:', and every sentence adds value. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with an output schema, the description covers purpose, prerequisites, parameter options, and return type completely. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter rule_type is described in detail with allowed values ('block, rate_limit, quarantine, or alert_only'), fully compensating for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List active auto-deployed defense rules', specifying the verb (list) and resource (defense rules). It distinguishes from sibling tools like defense_deploy or defense_remove by focusing on listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context: 'Requires Pro tier or Novyx Cloud' and optional filter, but does not explicitly exclude other tools or give when-not guidance. It is clear enough for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
defense_recommendARead-only
Get a recommended defense strategy for a threat signature.
Returns the suggested rule type, confidence level, and reasoning. Requires Pro tier or Novyx Cloud.
Args: signature_id: The threat signature to get a recommendation for.
Returns: JSON string with recommendation (rule_type, confidence, reasoning).
| Name | Required | Description | Default |
|---|---|---|---|
| signature_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds value by mentioning the tier requirement and the return format. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: first sentence states purpose, then output format, requirement, and finally args/returns. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with an output schema, the description covers the purpose, return fields, and prerequisite. It is fully sufficient for the agent to understand and use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description explains the parameter signature_id as 'The threat signature to get a recommendation for.' This provides necessary context beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool's purpose: 'Get a recommended defense strategy for a threat signature.' It specifies the output (rule_type, confidence, reasoning) and distinguishes from sibling tools like defense_deploy and threat_*.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes a prerequisite ('Requires Pro tier or Novyx Cloud') which guides usage. However, it does not explicitly state when to use this tool versus alternatives or provide when-not scenarios. The context is clear enough given sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
defense_record_blockA
Record that a defense blocked a threat.
Used to track defense performance. Mark false positives to auto-tune rules. Requires Pro tier or Novyx Cloud.
Args: defense_id: The defense rule that blocked the threat. is_false_positive: Whether this block was a false positive (default False).
Returns: JSON string confirming the record.
| Name | Required | Description | Default |
|---|---|---|---|
| defense_id | Yes | ||
| is_false_positive | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint:false, which aligns with the logging nature of the tool. The description adds value by stating that marking false positives triggers auto-tuning, and it discloses a licensing requirement. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the primary purpose, followed by usage context and structured parameter details. It is efficient but the Args section partially repeats schema information; still, it is clear and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 simple parameters and an output schema, the description covers purpose, usage, prerequisites, and parameter meanings. It mentions the return type but could elaborate on error conditions or ID format, though not necessary for clarity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does. For both parameters, it provides full descriptions: defense_id is 'the defense rule that blocked the threat' and is_false_positive explains its boolean nature and default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Record that a defense blocked a threat,' which is a specific verb+resource combination. This clearly distinguishes it from sibling tools like defense_stats or defense_list, which are query or management tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains it is used to track defense performance and auto-tune rules via false positives. It also states the prerequisite of Pro tier or Novyx Cloud. However, it does not explicitly mention when not to use it or compare to alternatives, though no direct alternative exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
defense_removeADestructive
Remove a deployed defense rule.
Stops the defense from blocking/rate-limiting threats. Requires Pro tier or Novyx Cloud.
Args: defense_id: The defense rule ID to remove.
Returns: JSON string confirming removal.
| Name | Required | Description | Default |
|---|---|---|---|
| defense_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint: true. Description adds that it stops defense actions and returns confirmation, but lacks deeper behavioral context like reversibility or error scenarios.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise, front-loaded with action, followed by effect and prerequisite. Uses clear docstring format with no redundant sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple remove tool: states purpose, input, output, and prerequisite. Could mention where to obtain defense_id or note irreversibility, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description explains defense_id as 'The defense rule ID to remove.' This adds basic meaning but lacks format examples or sourcing guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool removes a deployed defense rule with specific verb and resource. Distinguishes from siblings like defense_deploy and defense_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides prerequisite (Pro tier/Novyx Cloud) and effect (stops blocking/rate-limiting), but does not explicitly state when not to use or offer alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
defense_statsBRead-only
Get overall defense statistics.
Shows total defenses, active count, average effectiveness, and block counts. Requires Pro tier or Novyx Cloud.
Returns: JSON string with defense statistics.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only behavior. The description adds that the return is a JSON string, which is helpful but does not disclose other behavioral traits like data freshness or access limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two clear sentences and a return type line. It is front-loaded with the core purpose and efficient, though the requirement line could be more integrated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, a simple output schema, and read-only annotations, the description covers the essential information. However, it could specify the scope (e.g., per workspace or global) for added completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the schema coverage is effectively 100%. The description adds no parameter info, but none is needed, meeting the baseline for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns overall defense statistics with specific fields (total defenses, active count, etc.), distinguishing it from more specific sibling tools like defense_effectiveness or defense_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is a prerequisite (Pro tier or Novyx Cloud), but there is no information on when to use this tool versus alternatives like defense_effectiveness or defense_list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_agentCDestructive
Delete an agent.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The destructiveHint annotation already signals destructive behavior. The description repeats 'delete' without adding further context (e.g., irreversibility, cascading effects). Minimal value added 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no extraneous words. However, it is so minimal that it borders on under-specification. It earns a high conciseness score but loses some for being too sparse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and an output schema, the description lacks details about return values, side effects (e.g., if the agent is being used), or error conditions. It is not complete enough for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for the sole parameter 'agent_id'. The description does not explain what agent_id refers to or how to obtain it, leaving the agent without meaningful guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete an agent' clearly states the action and resource, matching the tool name. It distinguishes from sibling tools like create_agent or update_agent, but could add detail about permanence or scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., delete_capability), or prerequisites like the agent existing. The agent must infer usage solely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_capabilityCDestructive
Delete a capability pack.
| Name | Required | Description | Default |
|---|---|---|---|
| capability_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds no additional behavioral context beyond confirming deletion. It does not mention irreversibility, cascading effects, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) but lacks structure such as clear separation of purpose, usage, or parameter details. It is front-loaded but too brief to be fully effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity, the description is incomplete. It does not mention return values, side effects, or prerequisites. The output schema exists but is not referenced in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No description is provided for the required parameter 'capability_id'. With 0% schema coverage, the description fails to explain what constitutes a capability_id or how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (capability pack). It is specific and differs from sibling tools like create_capability or get_capability, but does not explicitly distinguish itself from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., update_capability, get_capability). No prerequisites or conditions for deletion are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_entityADestructive
Delete a knowledge graph entity and all its triples.
Removes the entity node and every triple where it appears as subject or object.
Args: entity_id: ID of the entity to delete.
Returns: JSON string confirming deletion.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation destructiveHint: true already signals destructiveness. The description adds context about the scope (deleting entity and all associated triples), which is beyond the annotation. It is consistent and useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences plus structured Args and Returns sections. It front- loads the core action and avoids unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one parameter, the description covers purpose, parameter, and return format. It lacks details on error handling or prerequisites but is adequate given the output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description provides a helpful explanation for the only parameter (entity_id) in the Args section, adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deletes a knowledge graph entity and all its triples, distinguishing it from siblings like delete_triple, which only removes a triple. It uses specific verbs ('delete', 'removes') and names the resource ('entity', 'triples').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but provides no guidance on when to use it versus alternatives like delete_triple. It does not mention prerequisites, conditions, or scenarios for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_missionBDestructive
Delete a mission.
| Name | Required | Description | Default |
|---|---|---|---|
| mission_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with annotations (destructiveHint: true) but does not add additional behavioral context such as cascading effects, permissions, or irreversibility. Annotations already flag destructiveness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence efficiently conveys the tool's purpose with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema exists, the description is minimal and omits critical details such as whether deletion is permanent, any side effects, or required permissions. For a destructive tool, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter (mission_id) has no description in the schema or in the tool description. With 0% schema description coverage, the description fails to explain what mission_id is or how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a mission,' which is a specific verb+resource combination. It distinguishes from sibling tools like create_mission, update_mission, cancel_mission, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 cancel_mission. No prerequisites or context for usage are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_policyADestructive
Disable a custom governance policy.
Soft-deletes the policy so it no longer evaluates on action submissions. Built-in policies (FinancialSafety, DataExfiltration) cannot be deleted.
Args: policy_name: Name of the custom policy to disable.
Returns: JSON string confirming policy was disabled.
| Name | Required | Description | Default |
|---|---|---|---|
| policy_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive hint; the description adds that it is a soft-delete and explains the effect (no longer evaluates on action submissions), providing useful behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences plus an Args/Returns section with 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter and a simple return type (JSON string confirmation), the description fully covers purpose, constraints, and return value. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, policy_name, is explained as 'Name of the custom policy to disable', adding context that it must be custom. The schema itself has no descriptions, so the description compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool disables a custom governance policy via soft-delete, using specific verb and resource. It distinguishes from siblings like create_policy and list_policies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states that built-in policies cannot be deleted, providing a clear when-not-to-use rule. Implicitly guides use for custom policies only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_spaceADestructive
Delete a context space (owner only).
Args: space_id: The space ID to delete.
Returns: JSON string indicating success.
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds ownership constraint and return value ('JSON string indicating success') beyond the destructiveHint annotation. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two lines of description plus a docstring for args/returns. Front-loaded purpose statement. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage constraint (ownership), parameter, and return value. Despite simplicity, description is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Provides description for space_id ('The space ID to delete') that adds meaning beyond the input schema, which had no description for the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'delete' and resource 'context space', plus ownership constraint 'owner only'. Distinguishes from sibling tools like create_space and update_space.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Specifies 'owner only' as prerequisite. Implicitly clear when to use, but does not explicitly discuss alternatives or situations to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_tripleBDestructive
Delete a knowledge graph triple.
Removes a subject-predicate-object relationship from the knowledge graph.
Args: triple_id: ID of the triple to delete.
Returns: JSON string confirming deletion.
| Name | Required | Description | Default |
|---|---|---|---|
| triple_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds little beyond the annotations. Annotations already indicate 'destructiveHint: true'. The description confirms deletion but does not disclose additional behavioral traits such as error scenarios, permissions needed, or side effects beyond what is obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with three sentences covering action, parameter, and return value. However, the explanation of a triple could be considered redundant given the tool name, but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an existing output schema, the description covers the basics. However, it omits important context like error handling, the need for the triple to exist, and any potential irreversible consequences beyond the destructive hint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for the single parameter. The description provides a minimal explanation ('ID of the triple to delete') that essentially restates the parameter name. It lacks details on format, source, or validation, failing to compensate adequately for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Delete a knowledge graph triple' and explains the resource ('subject-predicate-object relationship'). The tool name and description are unambiguous, and siblings include 'add_triple' and 'query_triples', making the purpose distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It does not specify when deletion is appropriate, what prerequisites exist (e.g., the triple must exist), 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.
detect_campaignARead-only
Detect an ongoing attack campaign.
Looks for coordinated attack patterns across multiple tenants. Returns campaign details if detected. Requires Pro tier or Novyx Cloud.
Args: hours: Look back window in hours (default 24).
Returns: JSON string with campaign details or campaign_detected: false.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, and description adds multi-tenant scope and tier requirement, but lacks details on detection method or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise with front-loaded purpose, but redundant first two sentences could be merged. Overall clear and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main usage, required tier, parameter, and return value. With output schema present, no need for more detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Describes the 'hours' parameter fully with look-back window and default, adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool detects ongoing attack campaigns across multiple tenants, distinguishing it from other tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides prerequisites (Pro tier or Novyx Cloud) and parameter hint, but no explicit when-not-to-use or alternatives like coordhe attack_check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draft_diffARead-only
Show a field-level diff for a memory draft.
Args: draft_id: Draft identifier returned by draft_memory. compare_to: Optional existing memory UUID to compare against.
Returns: JSON string with changed fields and a merge recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| draft_id | Yes | ||
| compare_to | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate 'readOnlyHint: true', and the description adds that it returns a JSON string with changed fields and a merge recommendation. This provides useful behavioral context beyond the annotation, although it does not disclose any additional constraints (e.g., whether the draft must be active).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, front-loads the main action, and separates Args and Returns in a structured format. Every sentence serves a purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an existing output schema and annotations, the description covers the tool's purpose, parameters, and return value adequately. The tool is not complex, and the description, combined with structured metadata, provides complete contextual information for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description explains 'draft_id' as returned by 'draft_memory' and 'compare_to' as an optional existing memory UUID. This adds essential meaning not present in the schema, though it could specify how 'compare_to' affects the diff (e.g., comparing to a specific version).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'Show a field-level diff for a memory draft,' with specific verb and resource. It differentiates from sibling tools like 'draft_memory' (which creates drafts) and 'merge_draft' (which merges), but does not explicitly contrast them, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as 'merge_draft' or 'reject_draft'. It neither states conditions for use nor precludes other tools, leaving the agent to infer context from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draft_memoryA
Create a reviewable draft without writing to canonical memory.
Args: observation: Proposed memory content. tags: Optional list of tags for categorization. importance: Importance score 1-10 (default 5). context: Optional context string. confidence: Confidence score 0-1 (default 1.0).
Returns: JSON string with the draft, review summary, and similar memories.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| context | No | ||
| branch_id | No | ||
| confidence | No | ||
| importance | No | ||
| observation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool is non-destructive and does not commit to canonical memory, which aligns with the 'destructiveHint: false' annotation. It adds value by explaining the draft behavior, though it does not cover other behavioral aspects like auth or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-line purpose, a bullet-like list of arguments with types/defaults, and a clear return statement. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, combined with the output schema, provides sufficient information for most use cases. It covers the core purpose, parameters (mostly), and return format. The omission of 'branch_id' is a minor gap, but overall completeness is high.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by detailing five of six parameters (observation, tags, importance, context, confidence) including types and defaults. However, 'branch_id' is missing from the description, leaving a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Create a reviewable draft without writing to canonical memory.' It uses a specific verb ('create') and resource ('draft'), and distinguishes it from sibling tools like 'remember' that write to canonical memory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 ('without writing to canonical memory'), implying it's for proposing content for review before committing. However, it does not explicitly name alternative tools or provide 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eval_baseline_createA
Save a recall baseline for regression testing.
Future eval runs will check if this query still returns the expected result. Free: 1 baseline, Starter: 5, Pro: unlimited.
Args: query: The recall query to baseline. expected_observation: Expected top result observation.
Returns: JSON string with the created baseline.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| expected_observation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide destructiveHint: false. Description adds that it saves a baseline and mentions limits, but does not disclose overwrite behavior, idempotency, or error handling. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise docstring with front-loaded purpose, followed by context, limits, and parameter descriptions. No wasted words, well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Describes returned type (JSON string) but no output schema or details on error cases, idempotency, or auth. Adequate for a simple creation tool but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description provides meaningful parameter descriptions (query = recall query, expected_observation = expected top result). Adds value beyond bare schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Save a recall baseline for regression testing' defines exact action and resource. Differentiates from sibling tools like eval_baseline_delete and eval_baselines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains purpose with future regression testing context and plan limits (Free/Starter/Pro). Lacks explicit when-not-to-use or alternatives but sufficient for usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eval_baseline_deleteADestructive
Delete an eval baseline.
Args: baseline_id: The baseline UUID to delete.
Returns: JSON string confirming deletion.
| Name | Required | Description | Default |
|---|---|---|---|
| baseline_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as destructive. Description adds that it returns a JSON string confirming deletion, but lacks details on permissions or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with a one-line summary and clear Args/Returns sections, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple delete tool, but could specify error cases or the confirmation JSON structure. Output schema exists but is not detailed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, baseline_id, with description stating it is a UUID, adding semantic meaning beyond the schema's basic type and title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Delete' and resource 'eval baseline', clearly distinguishing it from sibling tools like 'eval_baseline_create' and 'eval_baselines'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 or prerequisites. Simply states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eval_baselinesARead-only
List all saved eval baselines.
Shows the recall queries and expected observations used for regression testing.
Returns: JSON string with baselines list.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, which this reinforces. The description adds return format (JSON string). No further behavioral details (e.g., no mention of permissions or result size).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences and a return line. No redundant information. Purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool with an output schema, the description explains the tool's purpose, content, and return type. No gaps given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. The description adds meaning by explaining the content of the returned list (recall queries and expected observations), going beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'saved eval baselines'. It defines what baselines are (recall queries and expected observations) and contrasts with siblings eval_baseline_create/eval_baseline_delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing baselines but does not explicitly state when to use it versus alternatives or provide exclusion criteria. Sibling names hint at distinct use cases, but no direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eval_driftARead-only
Detect memory drift over a time period.
Shows how many memories were created, deleted, and updated during the specified period. Useful for monitoring memory churn.
Args: days: Number of days to look back (default 7).
Returns: JSON string with drift metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is transparent. The description adds that it returns a JSON string with drift metrics, but does not elaborate on other behavioral traits such as authentication needs or performance impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three short paragraphs, front-loading the purpose. Every sentence adds value: purpose, explanation, args, returns. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description covers purpose, usage, parameter, and return. It could briefly mention that it's read-only, but annotations already cover that, so completeness is high.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explicitly documents the 'days' parameter with meaning ('Number of days to look back'), default value, and identifies the return format, fully addressing the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Detect memory drift over a time period' and explains it shows counts of created, deleted, and updated memories. This purpose distinguishes it from sibling tools like eval_history or eval_run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Useful for monitoring memory churn,' providing a clear use case. However, it does not explicitly mention when not to use this tool or suggest alternatives among sibling eval tools, so it lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eval_gateARead-only
CI gate — pass or fail based on memory health score.
Use in CI/CD pipelines to block deploys when memory quality degrades.
Args: min_score: Minimum acceptable score (0.0 to 1.0).
Returns: JSON string with gate result (passed/failed) and score.
| Name | Required | Description | Default |
|---|---|---|---|
| min_score | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint: true, so the tool is read-only. The description adds context that it acts as a gate returning a pass/fail result, which is consistent. It does not contradict annotations and provides behavioral context beyond the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: a clear purpose statement, usage context, and concise parameter/return description. It is front-loaded and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema present), the description adequately explains the return format in general terms. It could mention error conditions or detailed result structure, but overall it is complete enough for a gate tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully explains the single parameter 'min_score' as a minimum acceptable score in the range 0.0 to 1.0. This adds complete meaning beyond the schema's type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is a CI gate that passes or fails based on memory health score. It distinguishes from siblings like eval_run by emphasizing CI/CD pipeline use, though it could be more specific about the concept of memory health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use in CI/CD pipelines to block deploys when memory quality degrades. However, it does not mention when not to use this tool or provide alternatives from the sibling list, such as eval_run for general evaluations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eval_historyBRead-only
List past memory evaluation runs.
Track how memory quality has changed over time.
Args: limit: Maximum evaluations to return (default 50).
Returns: JSON string with evaluation history.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only behavior. The description adds that the tool lists and tracks history, but does not disclose details like pagination, ordering, or authorization requirements. Adds modest 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences plus parameter/return notes. Front-loaded with purpose, no wasted words. Ideal for quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return value details are less critical. However, the description does not explain what constitutes an evaluation run or how it relates to other eval tools. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description fully compensates by explaining the 'limit' parameter's purpose and default value. Adds clear meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists past memory evaluation runs and tracks changes over time. However, it does not distinguish it from sibling tools like eval_baselines or eval_run, which also deal with evaluations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 vs alternatives such as eval_run, eval_drift, or eval_baselines. The description implies its use for historical tracking but lacks when-not-to-use or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eval_runARead-only
Run a memory health evaluation.
Scores your memory quality on a 0-1 scale based on staleness, conflicts, and superseded memories. Optionally acts as a CI gate with min_score.
Args: min_score: Optional minimum score threshold. If set, returns pass/fail gate result.
Returns: JSON string with score, breakdown, and optional gate result.
| Name | Required | Description | Default |
|---|---|---|---|
| min_score | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds meaningful behavioral context: what metrics are used (staleness, conflicts, superseded) and the optional gate outcome. No mention of authentication or rate limits, but sufficient for a read-only evaluation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence serves a purpose: main action, scoring details, optional behavior, parameter summary, return format. No filler or redundancy. Front-loaded with the primary function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, read-only, outputs JSON), the description adequately covers what the tool does and what it returns. Lacks only explicit comparison to siblings for full contextual completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the tool description fully explains the single parameter 'min_score': its optional nature, purpose (threshold), and effect (returns pass/fail gate result). This adds significant value beyond the schema's bare type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes a specific verb ('Run') on a clear resource ('memory health evaluation'), with detailed scoring criteria (staleness, conflicts, superseded memories) that distinguishes it from sibling evaluation tools like eval_baseline_create or eval_gate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the primary use case and optional CI gate behavior, but does not explicitly compare to siblings like eval_gate or explain when not to use this tool. Implicit guidance is present but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_actionARead-only
Get the full causal chain for a Control action.
Returns what the agent recalled, what policy fired, what memory state existed at that moment, and the audit trail — all in one call. Requires Novyx Cloud.
Args: action_id: The action UUID to explain.
Returns: JSON string with explanation (memories, policy, audit trail).
| Name | Required | Description | Default |
|---|---|---|---|
| action_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint: true, and the description consistently uses 'Get' and 'explain', confirming readonly behavior. It adds value by detailing what the return includes (memories, policy, audit trail) and the cloud requirement, though it could further specify any idempotency or safety details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized with a clear opening sentence, a descriptive paragraph, and a clear parameter list. It is efficient but could be slightly more concise by combining the return explanation and parameter list into fewer sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter and an output schema exists, the description is fully complete. It covers purpose, parameter semantics, prerequisites, and return format, leaving no gaps for an AI agent to understand invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the only parameter 'action_id' as 'The action UUID to explain', adding meaning beyond the schema. Schema coverage is 0%, but the description fully compensates, providing clear semantics for the required input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get the full causal chain for a Control action.' It specifies the verb 'Get' and the resource 'causal chain', which is distinct from sibling tools like action_history or audit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite ('Requires Novyx Cloud') and outlines what the return contains, offering clear context. However, it does not explicitly state when to use this tool over alternatives like action_history or audit, missing a comparative usage note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forgetADestructive
Delete a memory by its UUID.
Args: memory_id: The UUID of the memory to delete.
Returns: JSON string indicating success or failure.
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true. The description adds the return format ('JSON string indicating success or failure'), which goes beyond the annotation. However, it does not disclose potential side effects (e.g., whether related links are removed). Given the simplicity, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one clear purpose line, then Args and Returns sections. It is front-loaded and contains no superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 parameter, output schema exists), the description covers purpose, parameter, and return format. It could mention prerequisites (e.g., memory must exist) or error handling, but it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no description in schema), so the description must compensate. It explains memory_id as 'The UUID of the memory to delete,' adding format and purpose beyond the schema's 'Memory Id' title. This is sufficient for a single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Delete a memory by its UUID.' This is a specific verb ('Delete') and resource ('memory') with the identifier method ('UUID'). It clearly distinguishes from sibling tools like 'delete_entity' or 'delete_triple' which delete different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. There are many delete/remove tools among siblings (e.g., delete_entity, delete_triple, defense_remove), but no context is given to help select 'forget' over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agentBRead-only
Get an agent by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral details beyond the annotation readOnlyHint: true. It does not describe output format, error handling, or rate limits. The annotation already covers the read-only nature, so the description adds little value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no unnecessary words. It is appropriately concise for a simple retrieval tool, though it could benefit from a slight expansion on usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple tool with one required parameter and an output schema. However, it does not mention possible return values or error conditions. Given the tool's simplicity, it meets minimum viability but has gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description does not compensate by adding format, validation, or examples for agent_id. The parameter name is self-explanatory, but more context could improve understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get an agent by ID' clearly states the verb (get) and resource (agent) with a specific identifier (ID). It distinguishes from siblings like list_agents (multiple) and create/update/delete agents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a specific agent's details are needed, but does not explicitly state when to use this tool versus alternatives like list_agents or get_capability. No when-not-to-use or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_capabilityCRead-only
Get a capability pack by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| capability_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds no additional behavioral context beyond stating it 'gets' a capability, so it does not enhance transparency beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded. However, it is under-specified for a complete understanding, earning a 4 rather than a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, so return value explanation is not required. However, the description lacks context about ID format, error behavior, or prerequisites, making it adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameter descriptions (0% coverage), and the tool description does not elaborate on the capability_id parameter, such as format, example, or constraints. No added meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get a capability pack by ID' uses a specific verb and resource, clearly distinguishing it from sibling tools like create_capability, update_capability, delete_capability, and list_capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as list_capabilities. It lacks any explicit context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_checkpointCRead-only
Get a checkpoint by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| checkpoint_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds no additional behavioral context beyond the obvious read operation, such as what happens if the ID is not found or how results are structured.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no extraneous words. It is appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema exists, reducing the need to describe return values, the description lacks any contextual completeness such as typical use cases, error conditions, or integration with related tools. Given the simplicity of the tool, more context would still be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning the description adds no explanation for the 'checkpoint_id' parameter beyond its existence. With a single required parameter, the description fails to provide any additional semantics like format, constraints, or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a checkpoint by ID', which specifies the verb 'Get' and the resource 'checkpoint'. It distinguishes from sibling tools like 'list_checkpoints' and 'create_checkpoint'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. No context about prerequisites, typical scenarios, or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_entityARead-only
Get a knowledge graph entity and its associated triples.
Args: entity_id: ID of the entity.
Returns: JSON string with entity details and related triples.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, consistent with a read operation. The description adds that it returns associated triples, which is useful context. However, it does not disclose details like depth of triples, pagination, or any limitations beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three lines) with clear sections: purpose, args, returns. No redundant information, and the structure is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single parameter, read-only, output schema present), the description provides sufficient information: it explains what the tool does, its input, and its output format. No additional context is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds basic meaning by stating 'entity_id: ID of the entity.' This clarifies the parameter's purpose, though it remains minimal. Baseline is 3 because schema coverage is low but the description compensates to some extent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('a knowledge graph entity and its associated triples'). It distinguishes from sibling tools like list_entities (which lists entities) and query_triples (which queries triples without an entity context).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving a single entity with its triples, but it does not explicitly state when to use this over alternatives like list_entities or query_triples. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_interventionBRead-only
Get a supervisor intervention by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| intervention_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so description adds no extra behavioral context beyond the obvious 'get' operation. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded, with no wasted words, though it may be too brief to be fully informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and presence of an output schema, the description adequately covers the retrieval purpose, though it lacks parameter details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explain the 'intervention_id' parameter, failing to add meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a supervisor intervention by ID', which is a specific verb and resource, and distinguishes from siblings like 'create_intervention' and 'list_interventions'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Context signals show intervention-related siblings, but description provides no exclusions or preferences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_linksARead-only
Get all links for a memory.
Shows both incoming and outgoing connections in the memory graph.
Args: memory_id: UUID of the memory. relation: Optional relation type filter (e.g. "related", "causes", "supports").
Returns: JSON string with links list.
| Name | Required | Description | Default |
|---|---|---|---|
| relation | No | ||
| memory_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation already indicates readOnlyHint=true, so the description adds value by explaining that it shows both directions of connections. However, it does not disclose any additional behavioral traits like pagination, error handling, or performance implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a one-liner purpose, a clarifying sentence, and a clean Args/Returns structure. Every sentence serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 return description is sufficient. The tool's action is simple and well-explained. It covers parameters, behavior, and return type, leaving no major gaps for a read-only query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well by explaining the memory_id parameter (UUID of the memory) and the relation parameter with example values (e.g., related, causes, supports). This adds meaning beyond the schema's bare property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves all links for a memory, specifying both incoming and outgoing connections. This verb+resource clarity is high, but it does not explicitly distinguish from sibling tools like graph_edges or query_triples, which could also retrieve graph data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., graph_edges, query_triples, link_memories). The description only states what it does, not when it is appropriate or when to avoid it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_missionARead-only
Get a mission by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| mission_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the agent knows it's safe. The description adds no extra behavioral context (e.g., auth needs, payload size). It's adequate but doesn't exceed annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, complete sentence. No wasted words. Front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 param, readOnly, output schema exists), the description covers the essential purpose. It could mention the return format, but with an output schema, that's optional. Minor gap: no mention of null handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, yet the description provides no semantic detail about the 'mission_id' parameter (format, example, source). The schema has only a type and title. The description should compensate but doesn't.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get a mission by ID' – a clear verb+resource+method. It distinguishes from siblings like 'list_missions' and 'cancel_mission' by specifying retrieval by ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'list_missions' (for multiple) or 'get_mission' (presumably similar but no differentiation). No when-not-to-use or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
graph_edgesARead-only
Query the memory graph edges with filters.
Browse the relationship graph between memories. Use to understand how memories are connected.
Args: memory_id: Optional UUID to filter edges involving a specific memory. relation: Optional relation type filter. direction: "outgoing", "incoming", or "both" (default). limit: Maximum edges to return (default 100).
Returns: JSON string with matching edges.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| relation | No | ||
| direction | No | both | |
| memory_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true. Description adds that it 'Queries' and 'Returns: JSON string', consistent with read-only behavior. No additional behavioral traits disclosed, but no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a short intro and a clear list of arguments. Every sentence adds value, and the structure is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (not shown), the description covers the return type and basic usage. For a query tool with optional filters, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema coverage, the description includes a docstring explaining all four parameters (memory_id, relation, direction, limit), providing meaning beyond the schema's type-only information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it queries graph edges with filters and uses the verb 'Query' and noun 'memory graph edges'. It distinguishes itself by focusing on edges, but does not explicitly differentiate from sibling tools like query_triples or recall.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Use to understand how memories are connected' gives usage context, but no explicit when-to-use or when-not-to-use guidance relative to similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_memoriesB
Create a directed link between two memories.
Args: source_id: UUID of the source memory. target_id: UUID of the target memory. relation: Type of relationship (default 'related').
Returns: JSON string with the created link details.
| Name | Required | Description | Default |
|---|---|---|---|
| relation | No | related | |
| source_id | Yes | ||
| target_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only have destructiveHint=false. Description does not disclose what happens if source or target don't exist, if existing links are overwritten, or any permission requirements. Output schema exists but description just says returns JSON string.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is short but includes structured Args and Returns sections. Every sentence is necessary, but could be slightly more organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, return explanation is sufficient. However, missing information about error handling, link directionality, and behavior for missing IDs makes it incomplete for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description adds brief explanations for all three parameters (source_id, target_id, relation) beyond the schema, which has 0% description coverage. However, it does not specify allowed values for relation (no enum) or format of UUIDs. Adds some value but limited.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Create a directed link between two memories', using a specific verb and resource. It distinguishes from siblings like unlink (removes link) and add_triple (adds graph triple).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Does not mention prerequisites (e.g., memories must exist) or when not to use it (e.g., for deleting use unlink).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_agentsARead-only
List all agents for the current tenant.
Args: status: Filter by status (active, paused, archived). limit: Max results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
ReadOnlyHint annotation already indicates safety. Description adds tenant scope but no behavioral details like pagination, ordering, or side effects of listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise single-line purpose plus parameter docs. No redundancy, though could be slightly more structured with bullets.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a listing tool with output schema. Covers parameters and scope. Missing pagination details but sufficient for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% descriptions; the description provides meaning for both parameters: status values (active/paused/archived) and limit as 'max results'. This fully compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List all agents for the current tenant' with a specific verb and resource. Distinguishes from siblings like get_agent (single) and create_agent (creation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this vs. alternatives (e.g., get_agent for single agent). Lacks context about when filtering vs. retrieval is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_capabilitiesCRead-only
List registered capability packs.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds 'registered' implying non-dynamic listing, but annotations already provide readOnlyHint. No extra behavioral info like order or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (4 words) but under-specified for a tool with parameters. Conciseness is good but sacrifices necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 does not mention what the output contains or any edge cases. Missing parameter explanation reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has one parameter 'status' with 0% description coverage, and the tool description offers no explanation of its meaning or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'list' and resource 'capability packs', distinguishing it from siblings like get_capability (single fetch) or create_capability (creation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 get_capability or other list tools. Missing context on filtering or pagination.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_checkpointsCRead-only
List checkpoints for a mission.
| Name | Required | Description | Default |
|---|---|---|---|
| mission_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, which the description aligns with (listing is read-only). However, the description adds no extra behavioral info such as pagination, error handling, or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence, which is concise but lacks substance. It is not verbose, but extreme brevity sacrifices informativeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 parameter, output schema present by context), the description is minimal but functional. It does not explain the output format, which may be covered by the output schema, so this is adequate but leaves room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It only mentions 'for a mission' but does not clarify what mission_id represents or how to obtain it, failing to add meaning beyond the schema's property title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states verb 'list' and resource 'checkpoints' with scope 'for a mission', clearly indicating the tool's function. It implicitly distinguishes from siblings like create_checkpoint and get_checkpoint, though not explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., get_checkpoint for a single checkpoint). No prerequisites or context provided beyond the parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_entitiesARead-only
List knowledge graph entities.
Entities are the nodes in your knowledge graph — subjects and objects of triples.
Args: limit: Maximum entities to return (default 100). offset: Pagination offset. entity_type: Optional type filter.
Returns: JSON string with entities list.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| entity_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds that it returns a JSON string, but does not disclose additional behaviors like pagination limits or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (6 lines), front-loaded with purpose, and uses a clear Args/Returns structure without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description adequately covers all parameters and return format, providing sufficient information for the 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description thoroughly explains all three parameters: limit (default 100), offset (pagination), and entity_type (optional filter), fully compensating for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists knowledge graph entities and explains entities as nodes, distinguishing it from sibling tools like get_entity, query_triples, and graph_edges.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing entities with optional filters, but does not explicitly contrast with alternatives. However, the context of siblings provides differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_interventionsCRead-only
List supervisor interventions.
Args: mission_id: Filter by mission. agent_id: Filter by agent. intervention_type: Filter by type. limit: Max results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| agent_id | No | ||
| mission_id | No | ||
| intervention_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, so the description adds no additional behavioral context beyond that. It does not mention pagination, ordering, or any side effects, which are common for list tools. The description is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, structured as a header followed by a bullet-like list of parameters. Each sentence is purposeful and provides necessary information without fluff. It is well-organized and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 and optional parameters, the description covers the essential functionality. However, it lacks context on result ordering, pagination behavior (despite a limit parameter), and the scope of 'supervisor interventions'. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the tool description must compensate. It provides one-line explanations for each parameter (e.g., 'Filter by mission.'), which adds meaning beyond the property names. However, descriptions are brief and lack details like accepted formats or constraints, but they are sufficient for basic understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List supervisor interventions,' which is a specific verb and resource. It distinguishes from sibling tools 'get_intervention' (singular) and 'create_intervention' (create). However, it does not elaborate on what an intervention is, but the intent is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'get_intervention' or 'create_intervention'. There is no mention of typical use cases or exclusions, 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.
list_memoriesARead-only
List stored memories with optional tag filtering.
Args: limit: Maximum number of memories to return (default 50). tags: Optional tag filter to narrow results.
Returns: JSON string with the list of memories.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds minimal behavioral context beyond stating 'List stored memories,' which is consistent. It does not discuss side effects, rate limits, or pagination, but given the annotations, the bar is met at a basic level.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a clear purpose statement, an Args section, and a Returns line. Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two optional parameters and an output schema, the description adequately covers usage and return format. However, it omits details like whether results are ordered, pagination behavior, or limitations (e.g., maximum limit). Still, it is largely complete given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains both parameters: 'limit' (maximum number, default 50) and 'tags' (optional filter). This adds meaningful semantics beyond the bare schema, though it could specify the tag format (e.g., comma-separated).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List stored memories with optional tag filtering,' which uses a specific verb ('List') and resource ('stored memories'). It distinguishes the tool from siblings like 'list_agents' or 'list_capabilities' by specifying the resource type and the optional filtering capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. There is no mention of when to use 'list_memories' instead of related tools like 'remember' or 'draft_memory', nor any context about prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_missionsARead-only
List missions for the current tenant.
Args: agent_id: Filter by agent. status: Filter by status (queued, running, paused, completed, failed). limit: Max results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No | ||
| agent_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true. The description adds tenant scoping and filtering options, which are useful but not significantly beyond what the annotations and schema convey. No contradictions found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the main purpose, followed by a structured list of parameters. It avoids unnecessary verbosity, though could be slightly more structured with parameter formatting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 and simple optional parameters, the description is mostly complete. It covers purpose, tenant scope, and parameter details, but omits mention of default behavior (e.g., returns all missions when no filters) or pagination hints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description lists all three parameters with clear explanations: 'Filter by agent', 'Filter by status (queued, running, paused, completed, failed)', and 'Max results'. This adds meaningful semantics beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List missions for the current tenant' with a specific verb and resource. It is easily distinguished from sibling tools like create_mission, get_mission, or delete_mission, providing clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving missions but lacks explicit when-to-use guidance or comparisons with alternatives. No mention of when not to use it or how it differs from other list tools, resulting in 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.
list_pendingARead-only
List pending Control approval requests.
Shows actions submitted by agents that require human approval before execution. Requires Novyx Control to be configured (NOVYX_CONTROL_URL + NOVYX_CONTROL_API_KEY).
Args: limit: Maximum approvals to return (default 20).
Returns: JSON string with pending approvals list.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the readOnlyHint annotation, stating it lists requests. It adds context about requiring human approval and configuration requirements, but no additional behavioral context beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact with 6 sentences, front-loaded with purpose, and includes structured Args/Returns sections. Slightly verbose but earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 param, read-only, output schema exists), the description sufficiently covers the resource, configuration requirement, parameter, and return type. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description defines 'limit' as 'Maximum approvals to return (default 20)', adding meaningful context beyond the schema's type and default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List pending Control approval requests' and explains that it shows actions submitted by agents requiring human approval. This is specific and distinguishes from siblings like 'approve_action'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that Novyx Control must be configured, but does not provide explicit guidance on when to use this tool versus alternatives or when not to use it. Implied usage for listing pending approvals is clear but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_policiesARead-only
List all active Control policies (built-in + custom).
Shows which policies are enforced on action submissions, including tenant-defined custom policies created via create_policy.
Args: enabled_only: If True (default), only show enabled policies.
Returns: JSON string with list of policies, their source (builtin/custom), and status.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true; description adds details on return fields (source, status) and parameter behavior, with no contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise, well-structured sentences with no fluff; front-loaded purpose and clear separation of arguments and returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter, annotations, and output schema, the description provides sufficient context: scope, parameter details, and return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description fully compensates by explaining the 'enabled_only' parameter, its default, and effect, adding meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List all active Control policies (built-in + custom)', specifying the verb and resource, and distinguishes from sibling tools like check_policy and create_policy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes context (listing policies for action submissions, including custom ones from create_policy) and parameter, but lacks explicit when-not-to-use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_spacesARead-only
List all context spaces you can access.
Returns spaces you own and spaces shared with you.
Returns: JSON string with list of spaces and their memory counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds that it returns a JSON string with spaces and memory counts, providing more behavioral detail 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with main action, no unnecessary words. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 0-parameter tool with output schema and read-only annotation, the description provides all needed context: what it returns and its scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so baseline score of 4. Description correctly omits parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List all context spaces you can access' with specific verb 'list' and resource 'context spaces'. It differentiates from sibling space tools (create, delete, update) by indicating it returns both owned and shared spaces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is clearly implied: listing all accessible spaces. No explicit when-not or alternatives provided, but not critical for a simple listing tool with no parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_branchBRead-only
Get grouped review information for a branch/session of drafts.
| Name | Required | Description | Default |
|---|---|---|---|
| branch_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set readOnlyHint=true, so description doesn't need to reiterate. It adds 'grouped review information' but doesn't disclose other traits like what gets destroyed or auth needs. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, very concise. Could expand slightly for clarity without losing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, return values are covered. But description is minimal; could be more complete regarding what 'grouped review information' entails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description should compensate. It only implies branch_id by mentioning 'branch/session' but provides no format, examples, or additional meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'get grouped review information' for a branch/session of drafts. The verb 'get' and noun 'grouped review information' indicate a read operation. It distinguishes from siblings like memory_drafts or merge_branch by focusing on review grouping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 merge_branch or reject_branch. No context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_draftsBRead-only
List current memory drafts.
Args: status: Optional filter by status (draft, merged, rejected).
Returns: JSON string with draft records.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| branch_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the read-only nature is already known. The description adds only that it returns a JSON string, which is minimal. No disclosure of optional behavior, rate limits, or other traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with the purpose stated in the first sentence. The Args and Returns sections are clearly formatted with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple (list with two optional filters), the description does not cover pagination, ordering, or the return format beyond 'JSON string'. The output schema exists but is not referenced. The missing parameter documentation reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description bears full responsibility. It mentions the 'status' parameter with possible values but omits 'branch_id' entirely. This is insufficient for a 2-parameter tool with no schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List current memory drafts' with a specific verb and resource. It distinguishes from sibling tools like 'list_memories' which lists all memories, and from 'draft_diff', 'merge_draft', etc., which involve actions on drafts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. It does not mention when not to use, nor does it contrast with similar tools like 'list_memories' or 'draft_memory'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_healthARead-only
Check the health of your agent's memory.
Returns a health score (0-100), stale memory count, conflict count, and contradiction count. Use this to monitor memory quality over time.
Returns: JSON string with health score and breakdown.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the description's safety disclosure is not needed. However, it adds valuable behavioral context by detailing the returned fields (health score, counts) and that it returns a JSON string, going beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences plus a 'Returns' line. Every sentence adds value, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters and an output schema present, the description fully covers the tool's purpose and return values. No additional information is necessary for an agent to understand when and how to use this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description does not need to add parameter info, and the baseline score for zero parameters is 4 given the simplicity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks the health of the agent's memory, listing specific return fields (health score, stale memory count, conflict count, contradiction count). This distinguishes it from siblings like 'tool_health' which likely focuses on tool rather than memory health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly suggests using this tool 'to monitor memory quality over time,' providing clear context. However, it does not mention when not to use it or list alternative monitoring tools (e.g., 'memory_stats'), which would make it even stronger.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_statsARead-only
Get memory statistics for the current account.
Returns: JSON string with total memories, average importance, tag distribution, etc.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint already indicates no side effects. The description adds value by specifying the return format (JSON string) and example fields, although it uses 'etc.' which slightly reduces completeness. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two sentences. It front-loads the primary purpose and immediately follows with the return value description. Every sentence adds unique value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, annotations cover read-only behavior, and an output schema exists (not shown but indicated), the description provides sufficient context to understand what the tool returns and its scope, making it complete for agent selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to add parameter-level semantics. The baseline for zero parameters is 4, and the description adequately covers the tool's operation without requiring further parameter clarification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'Get' and the resource 'memory statistics for the current account'. It provides concrete details about the returned data (total memories, average importance, tag distribution), which distinguishes it from siblings like 'memory_health' or 'list_memories'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for obtaining memory statistics of the current account, but it does not provide explicit guidance on when to use this tool over alternatives (e.g., 'memory_health') or state any exclusions, such as 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.
merge_branchA
Merge all open drafts in a branch/session.
| Name | Required | Description | Default |
|---|---|---|---|
| branch_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavior information (merging all open drafts) beyond the annotation of destructiveHint: false. However, it does not disclose side effects, reversibility, or requirements. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no extraneous words. It is front-loaded with the action, but may be too terse for complex tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (single param, output schema exists), the description provides minimal additional context. It does not mention effects on drafts, idempotency, or expected output, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter (branch_id) with 0% description coverage. The tool description does not explain what branch_id is or how to obtain it, leaving ambiguity for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (merge) and the resource (all open drafts in a branch/session). It uses a specific verb and distinguishes from sibling tools like merge_draft, reject_draft, and reject_branch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for merging open drafts but does not explicitly state when to use this tool versus alternatives like merge_draft. No when-not or context for exclusion is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merge_draftA
Merge a reviewed draft into canonical memory.
Args: draft_id: Draft identifier returned by draft_memory. supersede_memory_id: Optional older memory to mark as superseded.
Returns: JSON string describing the merged memory.
| Name | Required | Description | Default |
|---|---|---|---|
| draft_id | Yes | ||
| supersede_memory_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=false, indicating non-destructive behavior. The description adds no further behavioral context beyond the merge operation itself. For a tool that modifies canonical memory, more detail on state changes would be helpful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one main sentence followed by clear, bullet-style parameter explanations. Every sentence earns its place with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only 2 parameters and an output schema, the description is largely complete. It explains parameters and returns, but lacks elaboration on what 'merge' entails (e.g., overwrite vs update). Still sufficient for a well-annotated tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds meaning by explaining draft_id as 'Draft identifier returned by draft_memory' and supersede_memory_id as 'Optional older memory to mark as superseded.' This provides useful context beyond the JSON schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Merge a reviewed draft into canonical memory.' This clearly distinguishes it from sibling tools like draft_memory (which creates drafts) and reject_draft.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by referencing draft_id from draft_memory, but it does not explicitly state when to use this tool versus alternatives like reject_draft or memory_branch. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_missionB
Pause a running mission.
| Name | Required | Description | Default |
|---|---|---|---|
| mission_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description implies non-destructive reversible action, consistent with destructiveHint=false. Adds constraint that mission must be running, but lacks details on side effects or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at 5 words, front-loaded. However, it sacrifices completeness; could be slightly expanded with key details without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimal information for a tool with one parameter and an output schema. Does not explain required input or behavior when mission is not running. Incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description adds no information about the 'mission_id' parameter. The schema itself only provides a title, leaving the agent without guidance on the parameter's semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Pause' and the resource 'running mission'. It differentiates from sibling tools like 'resume_mission' and 'cancel_mission' by specifying temporal stopping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 cancel or resume. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_triplesARead-only
Query knowledge graph triples with optional filters.
At least one filter should be provided. Returns all matching triples.
Args: subject: Filter by subject entity name. predicate: Filter by relationship predicate. object_name: Filter by object entity name.
Returns: JSON string with matching triples.
| Name | Required | Description | Default |
|---|---|---|---|
| subject | No | ||
| predicate | No | ||
| object_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the description adds limited behavioral context beyond 'Returns all matching triples.' There is no mention of limits, pagination, or error handling, but the description does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a front-loaded purpose and clearly labeled sections for parameters and returns. The use of 'Args:' and 'Returns:' adds structure without significant redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 adequately covers parameter semantics and essential usage. It lacks some behavioral details (e.g., what happens if no filters are provided) but is sufficient for a simple query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides clear, independent explanations for each parameter (subject, predicate, object_name), adding meaning beyond the schema's names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Query') and resource ('knowledge graph triples') with optional filters. It distinguishes from sibling tools like add_triple and delete_triple, though it could more explicitly differentiate from similar query tools like graph_edges.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'At least one filter should be provided,' which is a usage guideline, but it does not mention when not to use the tool or compare it to alternatives like get_links or graph_edges.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recallARead-only
Search memories semantically using natural language.
Args: query: Natural language search query. limit: Maximum number of results to return (default 5). tags: Optional tag filter. min_score: Minimum similarity score 0-1 (default 0). explain: If true, include scoring breakdown for each result showing why it scored the way it did.
Returns: JSON string with matching memories and their scores.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| limit | No | ||
| query | Yes | ||
| explain | No | ||
| min_score | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare 'readOnlyHint': true, so the description's claim of 'Search' is consistent. However, the description adds no additional behavioral traits (e.g., rate limits, auth needs, side effects). It moderately benefits from the annotation but does not exceed it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the purpose, and structured as a docstring with Args and Returns. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 5 parameters, the description covers all inputs and basic return format. It lacks details on pagination behavior (though limit is given) and sorting, but overall it is complete enough for typical usage. The output schema is not provided, but the description summarizes return values adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the detailed Args block explains each parameter's purpose, defaults, and behavior (e.g., 'explain' returns scoring breakdown). This adds significant meaning beyond the schema's bare types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs semantic search on memories using natural language. It specifies the verb 'search', resource 'memories', and method 'semantically', distinguishing it from siblings like 'list_memories' (exact listing) and 'remember' (storing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives (e.g., 'list_memories' for exact match or 'query_triples' for structured queries). It implies semantic search but lacks direct guidance on when-not-to-use or comparisons with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reject_branchBDestructive
Reject all open drafts in a branch/session.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| branch_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds scope ('all open drafts') beyond destructiveHint annotation. However, does not explain whether drafts are deleted, archived, or if branch is affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Could benefit from structured parameter details, but remains concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists but description says nothing about return values. For a destructive tool, lacks explanation of consequences. Given sibling complexity, description is overly minimal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and description does not mention parameters. Two parameters (branch_id, reason) are left undocumented in description, failing to compensate for lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states action 'Reject' and resource 'all open drafts in a branch/session'. Distinguishes from siblings like reject_draft (single draft) and merge_branch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when to use or alternatives. Siblings include reject_draft for single drafts, but description does not differentiate. destructiveHint annotation implies caution, but no usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reject_draftADestructive
Reject a draft without creating a memory.
Args: draft_id: Draft identifier returned by draft_memory. reason: Optional reason for rejection.
Returns: JSON string with the rejected draft state.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| draft_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide 'destructiveHint: true', indicating destructive behavior. The description adds that the tool does not create a memory and returns the rejected draft state. However, it lacks details on required permissions, side effects on related data, or the meaning of rejection in the broader context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two sentences plus structured Args/Returns. However, the Args/Returns section could be trimmed or integrated into the main description to reduce redundancy. Still, it is well front-loaded with the key purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has two parameters, is destructive, and has an output schema, the description covers basic semantics but omits important context such as prerequisites for rejection, the relationship to memory drafts, and details about the output structure. The presence of an output schema does not compensate for the lack of description of what the returned JSON contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description fills a critical gap. It explains that 'draft_id' is the identifier returned by 'draft_memory' and that 'reason' is optional for rejection. This adds meaningful context beyond the bare schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Reject a draft without creating a memory', specifying the verb 'reject' and the resource 'draft'. It distinguishes from sibling tools like 'merge_draft' or 'draft_memory' by implying that this tool only rejects without additional side effects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It only mentions that rejecting does not create a memory, which indirectly hints at a difference, but does not clarify scenarios where this should be preferred over other draft-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rememberA
Store a memory observation in Novyx.
Args: observation: The memory content to store. tags: Optional list of tags for categorization. importance: Importance score 1-10 (default 5). context: Optional context string. ttl_seconds: Optional time-to-live in seconds. Memory auto-expires after this duration.
Returns: JSON string with the stored memory UUID and details.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| context | No | ||
| importance | No | ||
| observation | Yes | ||
| ttl_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the annotations (which only indicate non-destructive). It mentions auto-expiry via TTL and explains return value, but does not cover potential side effects like overwriting or authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose, followed by a clean parameter list and return description. Every sentence is necessary and no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple memory storage tool, the description covers key aspects: purpose, parameters, and return. It could elaborate on uniqueness or constraints, but is fairly complete given the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining each parameter's meaning, including importance range (1-10) and TTL unit (seconds). This adds value over the schema's bare titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Store a memory observation in Novyx,' which is a specific verb and resource. It distinguishes from sibling tools like 'forget' (delete) and 'recall' (retrieve) by focusing on storage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives such as 'draft_memory' or 'link_memories'. The description does not address scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_diffARead-only
Diff memory state between two timestamps.
Shows what was added, removed, and modified in a time range. Requires Pro tier or Novyx Cloud.
Args: start: Start timestamp (ISO). end: End timestamp (ISO).
Returns: JSON string with added, removed, and modified memories.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | ||
| start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, so the read-only nature is covered. Description adds requirements and return format, but no additional behavioral traits (e.g., no mention of pagination, limits, or side effects). With annotations, this is adequate but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: 4 sentences total, front-loaded with purpose, followed by requirements and parameter details. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple diff tool with readOnlyHint and output schema available, the description covers purpose, parameters, and return type. Could mention example output structure or limits, but overall complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description carries full burden. It explicitly documents both parameters ('start: Start timestamp (ISO)', 'end: End timestamp (ISO)'), adding type and format meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it diffs memory state between timestamps, showing added/removed/modified. Distinguishes from siblings like draft_diff by focusing on memory state over time, though not explicitly contrasting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions a prerequisite (Pro tier or Novyx Cloud) but provides no guidance on when to use this vs alternatives like replay_memory, draft_diff, or replay_timeline. Lacks when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_lifecycleARead-only
Full biography of a single memory.
Shows creation, every update, every recall, every link, and deletion. Use this to understand why a memory exists and how it evolved. Requires Pro tier or Novyx Cloud.
Args: memory_id: UUID of the memory to inspect.
Returns: JSON string with the memory's full lifecycle events.
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds valuable context: it notes the tool requires a Pro tier or Novyx Cloud account and returns a JSON string. This goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, well-structured with an Args and Returns section. Every sentence adds value, and it is front-loaded with the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter, existing annotations, and an output schema, the description covers purpose, usage, parameter details, return format, and access requirements. It is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It does so by specifying that memory_id is a 'UUID of the memory to inspect,' adding detail beyond the schema's type (string).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Full biography of a single memory.' It details what events are shown (creation, updates, recalls, links, deletion), distinguishing it from siblings like replay_recall or replay_diff.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use the tool: 'Use this to understand why a memory exists and how it evolved.' However, it does not explicitly state when not to use it or mention alternatives among the many replay_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_memoryARead-only
Get the full history of a single memory.
Shows every operation that affected this memory — creation, updates, links, supersedes — in chronological order.
Args: memory_id: UUID of the memory.
Returns: JSON string with chronological event list.
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 'shows' operations, confirming read-only behavior. It lists operation types (creation, updates, links, supersedes) but lacks other behavioral details like pagination or limits. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences plus Args/Returns), front-loaded with the primary purpose, and organized with clear sections. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description's mention of return format is sufficient. It covers the essential context for a single-memory history tool. However, it could mention that it applies to a single memory only, as opposed to a list of memories.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for the single parameter memory_id. The description provides a brief but clear explanation ('UUID of the memory'), compensating for the missing schema documentation. However, it remains minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get the full history of a single memory' and specifics about operations shown. However, it does not explicitly distinguish from sibling tools like replay_snapshot or replay_lifecycle, which may cause confusion for an AI agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use for full chronological history, but no explicit guidance on when to use this tool versus alternatives such as replay_recall or replay_diff. No when-not-to-use or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_memory_driftARead-only
Detect memory drift between two timestamps.
Compares memory state at two points in time and shows what changed. Requires Pro tier or Novyx Cloud.
Args: from_ts: Start ISO timestamp. to_ts: End ISO timestamp.
Returns: JSON string with drift analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| to_ts | Yes | ||
| from_ts | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, and the description adds context about requiring Pro tier and returning a JSON string. No contradiction, and it provides useful behavioral details 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences plus bullet-like arg/return explanations. Every sentence is informative and there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 simple params and an output schema, the description covers purpose, parameters, return type, and requirement. It is complete enough for correct invocation, though it could elaborate on what 'drift analysis' contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description fully compensates by explaining that from_ts and to_ts are ISO timestamps. This adds meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Detect' and resource 'memory drift', and explains it compares memory state between two timestamps. This clearly distinguishes it from sibling tools like replay_diff, replay_timeline, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use (detect drift between timestamps) and mentions a prerequisite (Pro tier/Novyx Cloud), but does not provide guidance on when not to use or how it differs from similar tools like eval_drift or replay_diff.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_recallARead-only
Time-travel recall — what would search have returned at a past timestamp?
Reconstructs the memory state at a historical point and runs a semantic search against it. Powerful for understanding how agent context evolved. Requires Pro tier or Novyx Cloud.
Args: query: Search query. at: ISO timestamp to search at. limit: Maximum results (default 5).
Returns: JSON string with historical search results.
| Name | Required | Description | Default |
|---|---|---|---|
| at | Yes | ||
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnlyHint=true, and the description confirms it is a read-only operation by describing memory state reconstruction and search. It adds the requirement for a specific tier, which is useful behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, front-loading the core concept, then providing a brief explanation, requirements, and parameter list. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema (not shown but indicated), the high-level return description 'JSON string with historical search results' is sufficient. The description fully conveys what the tool does, its parameters, and prerequisites, making it complete for agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining each parameter: 'query: Search query', 'at: ISO timestamp to search at', 'limit: Maximum results (default 5)'. This adds essential meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Time-travel recall — what would search have returned at a past timestamp?' It explains that it reconstructs memory state and runs semantic search at a historical point, distinguishing it from siblings like 'recall' or other replay tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for usage ('Powerful for understanding how agent context evolved') and mentions requirements ('Requires Pro tier or Novyx Cloud'). However, it does not explicitly state when not to use it or compare to alternative tools, missing the highest score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_snapshotARead-only
Reconstruct memory state at a specific point in time.
Returns all memories and their link graph as they existed at timestamp T. Requires Pro tier or Novyx Cloud.
Args: at: ISO timestamp to reconstruct state at. limit: Maximum memories to return (default 500).
Returns: JSON string with memory snapshot and edges.
| Name | Required | Description | Default |
|---|---|---|---|
| at | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds context by specifying it reconstructs state, returns all memories and link graph, and requires a specific tier. No contradictions and provides helpful behavioral info 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three clear sentences: purpose, requirement, and structured argument/return info. No unnecessary words, front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters, an output schema exists, and annotations are present, the description covers purpose, parameters, prerequisite, and return type adequately. Could mention more about edge cases but sufficient for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains both parameters (at as ISO timestamp, limit with default 500) while the input schema lacks descriptions. This adds significant meaning beyond the schema's field definitions, improving usability.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reconstructs memory state at a specific point in time, specifying it returns memories and link graph as they existed at timestamp T. This is a specific verb-resource combination and distinguishes it from siblings like replay_memory or replay_recall.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite (Pro tier or Novyx Cloud) but does not provide explicit guidance on when to use this tool versus alternatives. Usage is implied but not compared to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_timelineARead-only
Get the full timeline of memory operations. The tape you scrub through.
Shows every create, update, delete, and rollback event with timestamps. Requires Pro tier or Novyx Cloud.
Args: since: Start of time range (ISO timestamp). until: End of time range (ISO timestamp). operations: Comma-separated filter: create, update, delete, rollback. limit: Maximum entries to return (default 100).
Returns: JSON string with timeline entries.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| since | No | ||
| until | No | ||
| operations | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's claim of read-only is consistent. It adds that it returns JSON string with timestamps, but does not disclose potential limitations like the default limit of 100 implying partial results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with an engaging opener, clear parameter list, and return type. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, parameters, return type, and prerequisite. However, it lacks details about pagination behavior beyond the limit parameter and the exact structure of the returned JSON, which could be helpful given the presence of a known output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully explains all parameters: ISO timestamps for since/until, comma-separated filter for operations, and default for limit. This adds significant value beyond the schema structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the full timeline of memory operations, listing specific event types. It distinguishes from siblings by emphasizing 'full timeline', though it doesn't explicitly differentiate from other replay tools like replay_memory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a prerequisite (Pro tier/Novyx Cloud) but no guidance on when to use this tool versus alternatives. It implies it's for broad history but lacks exclusions or specific use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resume_missionC
Resume a paused mission.
| Name | Required | Description | Default |
|---|---|---|---|
| mission_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotation destructiveHint: false, the description provides no additional behavioral details. It does not disclose state changes, permissions, side effects, or any constraints beyond the action itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (4 words), which is good for brevity, but it omits useful context like parameter explanation or usage hints. It could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With minimal schema coverage and no elaboration on the return value (despite having an output schema), the description is incomplete for an agent to fully understand the tool's behavior and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter mission_id is required but the description does not explain its purpose or value. With 0% schema description coverage, the description should compensate but fails to add meaning beyond the parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (resume) and the target (a paused mission), using a specific verb and resource. It distinguishes from siblings like pause_mission and cancel_mission by implying the mission is currently paused.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use or not use this tool, nor any context about prerequisites (e.g., the mission must be paused). No mention of alternatives or when to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rollbackADestructive
Rollback memory to a point in time.
Supports ISO timestamps (e.g. '2026-01-15T10:00:00Z') and relative time expressions (e.g. '2 hours ago').
Args: target: ISO timestamp or relative time expression. dry_run: If true, preview changes without applying them.
Returns: JSON string with rollback results or preview.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | ||
| dry_run | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the description does not need to emphasize destructiveness. It adds that the tool returns a JSON string, which is helpful, but it does not disclose additional behavioral traits like whether the action is irreversible or requires special permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and to the point, with a clear 'Args' section. It avoids unnecessary text but could be more structured by separating the parameter explanations from the free-form text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description covers core aspects: what it does, parameters, time format support, and return type. It does not mention side effects or system impact, but the destructiveHint annotation partially covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully explains both parameters: 'target' (ISO timestamp or relative time) and 'dry_run' (preview without applying). This adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Rollback memory to a point in time.' It identifies the action and the resource. However, it does not explicitly differentiate from sibling tools like rollback_to_checkpoint or rollback_preview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description lacks context for selecting between rollback variants and does not specify prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rollback_historyARead-only
List past rollback operations.
Shows when rollbacks were performed, what they targeted, and how many operations were undone.
Args: limit: Maximum rollback events to return (default 50).
Returns: JSON string with rollback history.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. The description adds that it returns a JSON string with rollback history, which is useful but not extensive beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: two sentences plus parameter and return description. Front-loaded with main purpose, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (one parameter, read-only, output schema exists), the description adequately covers purpose, parameter, and return format. Could mention ordering or pagination, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the 'limit' parameter (maximum events to return, default 50) which compensates for 0% schema description coverage, adding necessary meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List past rollback operations' with specific details on what is shown, but does not explicitly differentiate from sibling tools like 'rollback' or 'rollback_preview', though the distinction is implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description does not mention exclusions or contrast with other rollback-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rollback_previewARead-only
Preview what a rollback would do without executing it.
Shows which operations would be undone if you rolled back to the target timestamp. Always use this before an actual rollback.
Args: target: ISO timestamp or relative expression (e.g. "2 hours ago").
Returns: JSON string with preview of operations to undo.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description reinforces that by stating 'without executing it' and 'preview'. It further explains what the preview shows ('which operations would be undone'), adding context beyond annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with only a few sentences. It front-loads the core purpose, then explains the preview behavior, then gives parameter info. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (1 param, no nested objects) and presence of output schema, the description is complete. It explains the return format ('JSON string with preview') and the parameter, leaving no critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. The description explains the 'target' parameter as 'ISO timestamp or relative expression' and gives an example, adding significant meaning beyond the schema's type-only definition. However, it could provide more examples or constraints (like format).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it previews a rollback without executing it, using specific verbs and resource. It distinguishes from 'rollback' by explicitly being a preview, and from other siblings like 'rollback_history' or 'rollback_to_checkpoint' by focusing on a dry-run before execution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Always use this before an actual rollback', providing clear when-to-use guidance and implicitly when-not-to-use (not for executing rollback). No mention of alternatives, but the purpose is so specific that it's sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rollback_to_checkpointBDestructive
Rollback a mission to a previous checkpoint.
Args: mission_id: Mission to rollback. checkpoint_id: Target checkpoint. reason: Why the rollback is needed.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| mission_id | Yes | ||
| checkpoint_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The destructiveHint annotation already signals destructiveness. The description adds the term 'Rollback' implying state reversion but provides no further behavioral context (e.g., irreversibility, required permissions). It does not contradict 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence plus a parameter list. No redundant information, and the action is front-loaded. Every sentence is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a destructive operation with an output schema. However, it lacks state prerequisites (e.g., mission paused) or consequences (e.g., data loss warning), which would be helpful for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description effectively explains the three parameters: mission_id (target mission), checkpoint_id (target checkpoint), reason (justification). This adds meaning beyond the schema's mere property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (rollback) and resource (mission), and distinguishes it from siblings like 'rollback' and 'rollback_preview' by requiring both mission_id and checkpoint_id parameters. However, it does not explicitly differentiate from other rollback tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, such as 'create_checkpoint' or 'rollback'. No prerequisites or context for invocation are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
space_memoriesARead-only
List or search memories within a context space.
Args: space_id: The space ID to query. query: Optional search query to filter memories semantically. limit: Maximum number of memories to return (default 50).
Returns: JSON string with memories in the space.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| space_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, and the description confirms this with 'List or search memories'. It adds the return format ('JSON string with memories'), which is beyond the annotation. No contradictions and no additional behavioral traits disclosed, which is acceptable given the read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two lead sentences plus a structured docstring. It front-loads the purpose and efficiently organizes parameter details under 'Args'. No redundant or empty statements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list/search tool with readOnly annotations and an output schema (mentioned but not detailed), the description covers the essential purpose and parameters. It does not elaborate on search semantics or pagination beyond limit, but is adequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema coverage, the description's docstring provides clear, meaningful descriptions for all three parameters: 'space_id: The space ID to query', 'query: Optional search query to filter memories semantically', and 'limit: Maximum number of memories to return (default 50)'. This fully compensates for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'List or search memories within a context space', which clearly identifies the verb (list/search) and resource (memories) with a scoping context (space). This distinguishes it from siblings like 'list_memories' or 'recall' that may operate differently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing/searching memories in a specific space, but lacks explicit guidance on when to use this versus alternatives (e.g., 'list_memories' or 'recall') or when not to use it. No exclusion criteria or sibling comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stream_statusARead-only
Get real-time memory stream connection status.
Shows active connections, max allowed, and event bus metrics. Requires Novyx Cloud.
Returns: JSON string with stream status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals safe operation. The description adds behavioral context by listing the metrics shown (active connections, max allowed, event bus metrics) and the return format, which goes beyond the annotation's basic read-only signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient with three sentences: purpose, details, requirement, and return. It is front-loaded and each sentence adds value, though the structure could be slightly more organized (e.g., separate sections).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, read-only), the description sufficiently covers its purpose and output. The output schema exists for return details. However, it does not address when to prefer this over sibling status tools, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema covers all input needs. The description does not need to add parameter information, and the baseline of 4 is appropriate given the trivial parameter count.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets real-time memory stream connection status, specifying the exact resource and action. It distinguishes from sibling tools like 'cortex_status' or 'tool_health' by focusing on memory stream connections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes a prerequisite ('Requires Novyx Cloud') but does not explicitly state when to use this tool versus alternatives like 'cortex_status' or 'memory_stats'. However, the purpose is clear enough for an agent to infer appropriate usage contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supersedeA
Mark a memory as superseded by a newer one.
The old memory remains in the system for audit purposes but is flagged as superseded. Use when information has been updated or corrected.
Args: old_memory_id: UUID of the memory being replaced. new_memory_id: UUID of the replacement memory.
Returns: JSON string confirming the supersede operation.
| Name | Required | Description | Default |
|---|---|---|---|
| new_memory_id | Yes | ||
| old_memory_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the annotation 'destructiveHint: false' by explaining that the old memory is flagged but retained for audit. It also mentions return type, providing a clear picture of the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a one-line purpose, one-line behavior, one-line usage, argument descriptions, and return type. All sentences are relevant and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 parameters and an output schema (implied by context), the description covers purpose, parameters, usage, and return. It lacks error details, but given the low complexity, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description fully compensates by explaining both parameters: old_memory_id is 'UUID of the memory being replaced' and new_memory_id is 'UUID of the replacement memory.' This adds essential meaning beyond the schema's property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Mark a memory as superseded by a newer one.' It uses a specific verb+resource (supersede a memory) and distinguishes itself from siblings like delete or forget by explaining that the old memory remains for audit purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use when information has been updated or corrected.' It does not explicitly mention alternatives, but the context of audit retention implies it is not a deletion tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
threat_feedARead-only
Get the anonymized threat intelligence feed.
Shows attack patterns detected across the Novyx network, anonymized to protect individual tenants. Requires Pro tier or Novyx Cloud.
Args: hours: Look back window in hours (default 24). min_severity: Minimum severity to include — low, medium, high, critical (default medium).
Returns: JSON string with threat signatures.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | ||
| min_severity | No | medium |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds behavioral context: anonymization, Pro tier requirement, and return format (JSON string). This provides valuable insight 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a two-sentence header, then organized Args and Returns sections. Every sentence adds value; no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple params and the presence of an output schema, the description covers all essential aspects: purpose, parameters, return type, and access requirements. Complete for a read-only feed tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description fully compensates by explaining both parameters: 'hours' (look back window, default 24) and 'min_severity' (allowed values and default medium). Adds complete meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the anonymized threat intelligence feed' and 'Shows attack patterns detected across the Novyx network', which is a specific verb+resource. It distinguishes from sibling threat tools like threat_signature or threat_match by focusing on the feed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Requires Pro tier or Novyx Cloud' as a prerequisite. While it doesn't explicitly compare to alternatives, the context of 'feed' versus 'signature' or 'stats' makes usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
threat_matchARead-only
Find known threat signatures matching a threat event.
Compares the event fingerprint against the threat database. Requires Pro tier or Novyx Cloud.
Args: threat_event: JSON string describing the threat to match. min_similarity: Minimum similarity threshold 0.0-1.0 (default 0.8).
Returns: JSON string with matching signatures.
| Name | Required | Description | Default |
|---|---|---|---|
| threat_event | Yes | ||
| min_similarity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, which is consistent. The description adds behavioral context beyond annotations by stating the comparison against the threat database and requiring specific tiers, but does not detail potential errors or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a clear purpose sentence, requirement, and parameter docs. It is front-loaded and wastes no words, though it could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and an output schema (implied by context signals), the description covers purpose, parameters, requirements, and return value, making it fully contextual.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the threat_event parameter as a JSON string (schema also allows objects) and min_similarity with range and default. Since schema description coverage is 0%, the description compensates well by adding meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds known threat signatures matching a threat event, and the sibling tools include threat-related tools like threat_feed and threat_signature, distinguishing this tool as an event-matching function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the requirement for Pro tier or Novyx Cloud, but does not provide explicit guidance on when to use this tool versus alternatives like threat_signature or threat_feed. The usage context is implied by the purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
threat_mitigateA
Mark a threat signature as mitigated.
Indicates that the threat has been addressed. Requires Pro tier or Novyx Cloud.
Args: signature_id: The threat signature ID to mark as mitigated.
Returns: JSON string confirming mitigation.
| Name | Required | Description | Default |
|---|---|---|---|
| signature_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=false, and the description confirms a write operation (changing state). It discloses the return type (JSON string) but lacks details on side effects (e.g., reversibility, idempotency, or behavior if signature already mitigated). The description adds some value beyond annotations but not enough for a higher score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively short and front-loaded with the core action. It separates args and returns. However, the line 'Indicates that the threat has been addressed.' is slightly redundant with the first sentence, so it could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 param, output schema implied), the description covers the essential aspects: action, prerequisite, parameter description, and return type. It lacks examples or error handling notes but is sufficient for basic usage. Not fully complete but close.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description compensates by explaining the single parameter: 'signature_id: The threat signature ID to mark as mitigated.' This provides clear meaning beyond the raw schema. The description is adequate for the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Mark a threat signature as mitigated.' It uses a specific verb and resource, and the purpose is unambiguous. This distinguishes it from siblings like threat_signature (retrieval) or threat_match (matching).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies the prerequisite: 'Requires Pro tier or Novyx Cloud.' This helps the agent assess feasibility. However, it does not explicitly state when to use this tool over alternatives or when not to use it, missing an opportunity for clearer guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
threat_recordA
Record a threat event for cross-tenant intelligence.
The event is fingerprinted, deduplicated, and added to the threat network. Requires Pro tier or Novyx Cloud.
Args: threat_event: JSON string describing the threat (pattern_type, details, severity).
Returns: JSON string with the created/updated threat signature.
| Name | Required | Description | Default |
|---|---|---|---|
| threat_event | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (only destructiveHint: false), the description explains the fingerprinting, deduplication, and network addition process. It provides reasonable context for a non-destructive record action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with sections for purpose, process, requirements, args, and returns. A few sentences could be tightened, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter and presence of an output schema, the description covers purpose, process, parameter content, and return type. Missing details like error handling, but sufficient for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'threat_event' has 0% schema coverage, but the description adds meaning by specifying expected fields (pattern_type, details, severity) and accepting both string and object types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool records a threat event for cross-tenant intelligence, with specific actions like fingerprinting and deduplication. It distinguishes itself from siblings like threat_match and threat_signature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite (Pro tier or Novyx Cloud), but does not explicitly guide when to use this tool versus other threat-related sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
threat_signatureARead-only
Get a specific threat signature by ID.
Returns full details including pattern hash, severity, occurrence count, and whether a defense has been deployed. Requires Pro tier or Novyx Cloud.
Args: signature_id: The threat signature ID.
Returns: JSON string with signature details.
| Name | Required | Description | Default |
|---|---|---|---|
| signature_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description specifies the return details (pattern hash, severity, occurrence count, defense deployed) and the tier requirement, adding valuable context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two short paragraphs. It front-loads the primary action and includes structured sections for arguments and returns, though the returns section could be more specific.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter and an output schema, the description covers the main purpose, key return fields, and access requirements. It is sufficiently complete for an AI agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description's 'Args' section adds minimal value, merely restating the parameter name. The baseline score of 3 is appropriate given the single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'specific threat signature by ID', distinguishing it from sibling tools like 'related_signatures' and 'threat_feed'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite ('Requires Pro tier or Novyx Cloud'), but does not provide guidance on when to use this tool versus alternatives 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.
threat_statsARead-only
Get overall threat intelligence statistics.
Shows total signatures, active threats, mitigated count, and severity breakdown. Requires Pro tier or Novyx Cloud.
Returns: JSON string with threat stats.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint true, so the read-only nature is clear. Description adds the licensing requirement but no further behavioral traits (e.g., latency, pagination). Credited for 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with purpose first: no wasted words. Efficiently conveys purpose, content, and prerequisite. Well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter statistics tool with an output schema, the description adequately covers what the tool does and returns. Could mention that the JSON structure is defined in the output schema, but that is already available separately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; input schema is empty. Description does not need to add parameter details. With 0 parameters, baseline is 4 per guidelines.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves overall threat intelligence statistics and lists specific metrics (signatures, active threats, mitigated count, severity breakdown). Distinguishes from sibling tools like threat_signature (specific signature) or threat_trending (trending data).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Indicates it provides a high-level summary and requires Pro tier or Novyx Cloud. However, it does not explicitly exclude alternative uses or mention when not to use, though the 'overall' qualifier implies it's for aggregate stats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
threat_trendingARead-only
Get trending threat signatures.
Shows the most active threats in the specified time window. Requires Pro tier or Novyx Cloud.
Args: hours: Look back window in hours (default 24). min_occurrences: Minimum occurrence count to include (default 2).
Returns: JSON string with trending threat signatures.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | ||
| min_occurrences | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true. The description adds value by disclosing the tier requirement and the return format (JSON string), which are not in the annotations. This provides useful behavioral context beyond the structured field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two initial sentences and two lines for parameters and returns. Every sentence adds value without fluff. The key purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 optional params, read-only, output schema present), the description is complete enough. It covers tier requirement, parameters, and return type. Could elaborate on 'trending' criteria, but it's adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, leaving both parameters undocumented. The description fully compensates by explaining each parameter: 'hours' as the look-back window and 'min_occurrences' as the minimum occurrence count, including defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get trending' and the resource 'threat signatures' and explains what the tool does: shows the most active threats in a time window. It distinguishes itself from siblings like threat_feed or threat_stats by focusing on 'trending' signatures and providing parameters for time and occurrences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the tier requirement (Pro or Novyx Cloud) but does not explicitly guide when to use this tool over alternatives like threat_feed, threat_stats, or threat_signature. Usage context is implied by 'trending,' but no when-not or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_healthARead-only
Introspect the MCP tool surface.
Returns a machine-readable registry of every tool exposed by this server, each with a status (functional / cloud_only / cloud_only_hard_fail / disabled / stub), category (memory, graph, runtime, control, ...), and a one-line description. Use this to answer "what can this MCP actually do, and which parts require Novyx Cloud?" without having to call every tool.
Args: status: Optional filter — only return tools with this status. category: Optional filter — only return tools in this category.
Returns: JSON string: {counts, tools}. counts is over the full registry (not the filtered view); tools is filtered if status/category given.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate readOnlyHint=true. The description adds behavioral details: returns machine-readable registry, supports optional filters, and explains return format. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: front-loaded purpose, then args, then returns. Every sentence earns its place, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (two optional params, output schema exists), the description sufficiently covers purpose, parameters, and return shape. Complete for an introspection tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description explains both parameters (status and category) as optional filters, adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool introspects the MCP tool surface, returning a registry of tools with status, category, and description. It distinguishes itself from siblings as a meta-tool for discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using this tool to answer capabilities and cloud requirements without calling every tool. It provides clear context but does not list when not to use it or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trace_completeA
Mark an execution trace as complete.
Finalizes the trace. After completion, the trace and all its steps are immutable and available for audit.
Args: trace_id: ID of the trace to complete.
Returns: JSON string with completion status and step count.
| Name | Required | Description | Default |
|---|---|---|---|
| trace_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavioral context beyond annotations: states trace becomes immutable and available for audit. Consistent with destructiveHint=false, providing useful side-effect info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Highly concise with clear structure: summary line, explanation, then Args/Returns. No redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool with one parameter and output hint, but lacks details like preconditions (e.g., cannot complete already completed trace), error handling, or relationship to siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter trace_id described as 'ID of the trace to complete,' which adds minimal meaning beyond schema (title 'Trace Id'). No format or example provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool marks an execution trace as complete, using specific verb and resource. Distinguishes from siblings like trace_step and trace_create by explicitly focusing on finalization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage context: finalizing a trace to make it immutable and audit-ready. However, lacks explicit when-not-to-use or alternatives, though no direct sibling conflicts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trace_createA
Create an execution trace to track a multi-step agent workflow.
Start a trace before a complex operation, add steps as you go, then complete it. Traces provide a full audit of agent reasoning.
Args: name: Name describing this trace (e.g. "research-and-summarize"). metadata: Optional JSON string with additional metadata.
Returns: JSON string with trace_id and status.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| metadata | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool creates a trace and returns a trace_id and status, but lacks details on persistence, limits, or side effects. The annotation destructiveHint=false is consistent, but the description adds minimal behavioral context beyond what is implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with five sentences, no redundancy, and a logical flow: purpose, usage workflow, parameter explanations, return value. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential aspects: creation, lifecycle, parameters, and return format. It mentions trace_id needed for subsequent steps, which aids completeness. Minor omission: no mention of error handling or limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds value over the bare schema by explaining the 'name' parameter as a descriptive label with an example, and 'metadata' as an optional JSON string. Given 0% schema coverage, this compensation is adequate but could be more precise about metadata format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates an execution trace for multi-step workflows. It distinguishes from sibling tools like trace_complete and trace_step by specifying it is the start of the trace lifecycle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises to start a trace before complex operations, then add steps and complete it, providing clear context for usage. It implicitly differentiates from trace_step and trace_complete but does not explicitly state 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.
trace_stepB
Add a step to an execution trace.
Record each significant action during a traced workflow. Include input and output data to make the trace useful for debugging.
Args: trace_id: ID of the active trace. step_name: Name of this step (e.g. "search-memories", "call-api"). input_data: Optional JSON string with step input. output_data: Optional JSON string with step output.
Returns: JSON string with step_id and status.
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | ||
| output | No | ||
| content | No | ||
| metadata | No | ||
| trace_id | Yes | ||
| step_name | Yes | ||
| input_data | No | ||
| output_data | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide destructiveHint=false. The description adds that it records steps and returns a JSON with step_id and status, but it does not cover permissions, error handling, or side effects. For a non-destructive write operation, this is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a one-line summary, an explanatory paragraph, and an Args section. It is concise and front-loaded, though the Args section could be more aligned with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 8 parameters and 0% schema coverage, the description only covers half of the parameters. The existence of an output schema is mentioned but not detailed, and the additional parameters (input, output, content, metadata) are ignored, making the description incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It only explains trace_id, step_name, input_data, and output_data, but the schema has 8 parameters including input, output, content, and metadata, which are undocumented. This mismatch reduces clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Add a step to an execution trace' and explains the action of recording significant steps with input/output data. It is a specific verb+resource, though it does not explicitly differentiate from sibling trace tools (e.g., trace_create, trace_complete).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says to use it for recording actions in a traced workflow, providing some usage context. However, it lacks explicit guidance on when not to use it or alternatives (e.g., use trace_create first).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trace_verifyARead-only
Verify an execution trace's integrity.
Confirms all steps are present and the trace hasn't been tampered with.
Args: trace_id: ID of the trace to verify.
Returns: JSON string with verification result.
| Name | Required | Description | Default |
|---|---|---|---|
| trace_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the readOnlyHint annotation by explaining that the tool confirms integrity and checks for tampering. This informs the agent that the operation is a safe read with no side effects, though it could further detail failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose. It uses a clear structure: a one-sentence summary, a brief explanation, and a parameter/returns table. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, the description appropriately omits return value details. It covers the tool's main function and parameter adequately, though it could mention that it only verifies without modification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by defining trace_id as 'ID of the trace to verify,' which adds clear meaning beyond the schema's type and required flag. The single parameter is well-explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool verifies the integrity of an execution trace, confirming that all steps are present and the trace hasn't been tampered with. This specific verb-resource pair ('verify' + 'trace') distinguishes it from sibling tools like trace_create or trace_step, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like audit_verify or other verification tools. It does not specify when to use it (e.g., after trace creation) or when not to use it (e.g., for audit verification), leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unlinkBDestructive
Remove a link between two memories.
Args: source_id: UUID of the source memory. target_id: UUID of the target memory.
Returns: JSON string confirming link removal.
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes | ||
| target_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive (destructiveHint=true). The description adds the return type (JSON string confirming removal). It does not disclose other behaviors such as error handling or whether the removal is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear main sentence and parameter list. It is front-loaded and contains no unnecessary words. Minor improvement possible by structuring parameter descriptions more clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 (returning JSON), the description covers essential info but lacks context on error cases, prerequisites, or whether both memories must exist. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description provides brief but useful explanations for both parameters (source_id and target_id as UUIDs of source and target memories). This adds meaning beyond the schema, though more detail could be included.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it removes a link between two memories, using a specific verb and resource. It distinguishes from sibling 'link_memories' implicitly. However, it could be more explicit about what constitutes a 'link' in this context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'delete_triple' or when not to use it. There is no mention of prerequisites or conditions for safe usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_agentA
Update an existing agent's configuration.
Args: agent_id: Agent to update. name: New agent name. model: New LLM model name. provider: New LLM provider. instructions: New system prompt / instructions. capabilities: New list of enabled capability pack names. memory_scope: New memory scope. policy_profile: JSON string of policy profile configuration. config: JSON string of additional configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| model | No | ||
| config | No | ||
| agent_id | Yes | ||
| provider | No | ||
| capabilities | No | ||
| instructions | No | ||
| memory_scope | No | ||
| policy_profile | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, which the description supports by stating 'update' (mutation but not destructive). The description lists configurable fields but does not disclose additional behaviors like permission requirements, side effects, or whether partial updates are allowed. With annotations already covering the basic safety profile, the description adds modest value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a front-loaded purpose sentence followed by a compact Args list. Each parameter explanation is minimal but sufficient. It could be slightly more structured (e.g., grouping required vs optional) but overall is efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, 1 required) and the presence of an output schema, the description adequately explains inputs. However, it does not mention prerequisites (e.g., agent must exist), error scenarios, or the relationship to other agent lifecycle tools. For a typical CRUD update, this is sufficient but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by providing one-line explanations for each parameter (e.g., 'agent_id: Agent to update', 'name: New agent name'). These clarify the purpose of each parameter beyond the bare type information in the schema. However, it lacks details on allowed values, formatting, or constraints (e.g., whether fields are optional or nullable is already in schema).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an existing agent's configuration', which is a specific verb (update) and resource (agent configuration). This distinguishes from sibling tools like create_agent, delete_agent, get_agent, and list_agents, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when modifying an existing agent but does not explicitly state when to use this tool over create_agent (for new agents) or delete_agent (for removal). No alternatives or when-not conditions are mentioned, leaving the agent to infer the correct context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_capabilityC
Update an existing capability pack.
Args: capability_id: Capability to update. name: New capability name. description: New description. tools: New tool definitions. risk_levels: New risk levels per tool. approval_requirements: JSON string of approval requirements. memory_behavior: JSON string of memory behavior configuration. eval_rules: JSON string of evaluation rules. config: JSON string of additional configuration. status: New status (active, deprecated).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| tools | No | ||
| config | No | ||
| status | No | ||
| eval_rules | No | ||
| description | No | ||
| risk_levels | No | ||
| capability_id | Yes | ||
| memory_behavior | No | ||
| approval_requirements | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false), but the description adds no additional behavioral context. There is no disclosure of required permissions, overwriting behavior, validation, or side effects. For a mutation tool with sparse annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a single purpose sentence followed by a bulleted list of parameters. It front-loads the purpose and uses clear labels. No wasted text, though it could be more terse in parameter descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 10 parameters (only 1 required) and an output schema existing, the description covers the main fields but lacks return value details and behavioral context (e.g., partial vs full update). The tool is moderately complex, and the description provides a functional foundation but not full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists each parameter with a brief phrase (e.g., 'New capability name'), adding minimal meaning beyond the schema. For config fields it clarifies 'JSON string of additional configuration,' which is helpful. However, no examples, constraints, or formats are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Update an existing capability pack,' clearly stating the verb and resource. It implies a mutation, distinguishing it from read-only siblings like get_capability and from create_capability. However, it does not explicitly differentiate from other update tools (e.g., update_agent), but the context is clear enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., create_capability for new packs, or delete_capability for removal). It lacks any 'when to use' or 'when not to use' criteria, simply stating the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_missionA
Update an existing mission's configuration.
Args: mission_id: Mission to update. goal: New mission goal. constraints: New constraints on execution. success_criteria: New success criteria. allowed_capabilities: New allowed capability packs. escalation_rules: JSON string of escalation rules. stop_conditions: JSON string of stop conditions. config: JSON string of additional configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | No | ||
| config | No | ||
| mission_id | Yes | ||
| constraints | No | ||
| stop_conditions | No | ||
| escalation_rules | No | ||
| success_criteria | No | ||
| allowed_capabilities | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description carries a lighter burden. It adds that the tool updates configuration fields, but does not disclose side effects, idempotency, authentication needs, or partial update behavior. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with a one-line summary followed by an Args list. It is moderately concise, though the 'New' prefix in parameter descriptions is slightly redundant. Overall, it is efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, 1 required, and an existing output schema (so return values need not be explained), the description covers the core purpose and parameter semantics. However, it lacks details on partial update behavior, what happens when a parameter is null, and the requirement that the mission exists. Not fully complete for a complex mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides a brief semantic for each of the 8 parameters (e.g., 'mission_id: Mission to update.'), adding meaning beyond the schema's titles and types. Most descriptions are clear, though a few are minimal (e.g., 'config: JSON string of additional configuration').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an existing mission's configuration,' which specifies the action and resource. It distinguishes from sibling tools like create_mission (creation) and delete_mission (deletion), and other mutations (cancel, pause, resume) have different verbs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by stating the tool updates an existing mission, but provides no explicit guidance on when to use it vs. create_mission for new missions or other update-like tools. No exclusion criteria or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_spaceB
Update a context space (owner only).
Args: space_id: The space ID to update. name: New name for the space. description: New description. allowed_agents: Updated list of allowed agent IDs. tags: Updated tags.
Returns: JSON string with the updated space details.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| tags | No | ||
| space_id | Yes | ||
| description | No | ||
| allowed_agents | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=false. The description adds the non-destructive update context and owner-only authorization, but does not clarify merge/replace behavior for optional fields or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (under 100 words), uses a clear list format, and front-loads the purpose. Every sentence serves a purpose, though the parameter descriptions could be more precise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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's return note is sufficient. However, the tool has 5 optional parameters and missing behavioral details (e.g., merge vs. replace) reduce completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description provides basic explanations for each parameter ('New name', 'Updated list'), adding meaning beyond the schema. However, it lacks format constraints and does not clarify whether lists are replaced or merged.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and resource 'context space', and adds 'owner only' authorization. It distinguishes from related tools like create_space and delete_space.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'owner only' as an access condition, but does not provide explicit guidance on when to use this tool versus alternatives (e.g., create_space, delete_space), nor does it state 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.
TDQS
Each tool has a clearly defined purpose with detailed descriptions. Even within large categories (defense, replay, threat), tools are distinct (e.g., replay_diff vs replay_recall) and cross-category overlaps are negligible.
The majority of tools follow a verb_noun pattern (create_, list_, delete_), but some deviate with noun-first names (action_history, cortex_status) or single verbs (forget, remember). This is a minor inconsistency in an otherwise predictable scheme.
120 tools is excessive for any single MCP server. While the scope is broad (memory, agents, threat intelligence, etc.), many tools could be consolidated (e.g., multiple replay variants). The high count risks overwhelming agents and increasing selection errors.
The tool surface covers all major operations: full CRUD for entities, missions, agents, policies, memory, knowledge graph; plus advanced features like replay, evaluation, threat intelligence, and introspection. No obvious gaps for the intended domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Persistent, inspectable memory for AI agents with lineage, correction, and a hosted MCP endpoint.
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Persistent AI memory shared across Claude, ChatGPT, coding agents, and compatible MCP clients.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceGovernance kernel for AI agents — policy enforcement, code safety verification, multi-model hallucination detection (CMVK), trust attestation (IATP), and immutable audit trails. Works with Claude Desktop, Cursor, and any MCP client.73MIT
- AlicenseAqualityAmaintenanceSelf-hosted memory and governance layer for AI coding agents. 28 MCP tools with hybrid search, structured knowledge capture, behavioral nudges, and git-native storage. Zero cloud dependencies.305Business Source 1.1
- AlicenseNot gradedqualityBmaintenanceGoverned shared memory platform for AI agents and agent fleets. Provides persistent memory, cross-agent knowledge sharing, permissions, audit trails, and multi-tenant isolation through a Model Context Protocol (MCP) server.4474Apache 2.0
- AlicenseNot gradedqualityBmaintenanceLocal-first code intelligence and safety layer for AI coding agents. MCP server exposes dependency graph, impact analysis, and AST-compressed repo context, backed by typed local memory, patch-scope safety gates, and git-independent transaction rollback.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/novyxlabs/novyx-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server