Skip to main content
Glama

law_case_ask

Read-only

The ask operation: run a registered case of a case package over its pinned dependencies and return the answer: by default a projection of the evaluation document without the proof graph, on responseMode full or proof: true the canonical document with a proof and a manifest. The question is JSON per query.schema.json (query), an evaluate string (evaluate + queryId), a saved queryId without query, or card + args. A refusal to prepare is an error with an LDC-* code, never an empty answer.

Input Schema

NameRequiredDescriptionDefault
argsNothe card parameters: name → string expression of the language
cardNothe id of a card of an installed catalog
caseNothe name of the case declaration from [[cases]]; optional when there is only one case
proofNotrue — the full document with the proof graph (the same as responseMode full); false — the projection. The same form as in law_ask.
queryNothe question as JSON per query.schema.json; queryId is a URN in the namespace of the package, or a short name given in queryId
packageYesthe path to the case package (the directory holding law.toml) from the root of the repository
queryIdNowithout query/evaluate — the choice of a saved queries/*.json by short name or full URN; with evaluate — the id of the question being run
evaluateNothe string `evaluate <expression>;`; requires queryId
responseModeNocompact — a projection for an agent: results, positions, conflicts, the manifest, issues above info and every hash are kept, proofGraph is replaced by its hash, roots and node count (field proof), the number of dropped info issues is issuesOmitted. full — the complete canonical evaluation document, the one `law ask` writes; proof: true asks for the same. The projection's resultHash equals the hash of the full document; a proof or a publication needs full.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, and the description correctly aligns with that as a read operation. It adds non-obvious behavior beyond the annotations: the default response is a projection without the proof graph, full mode returns the canonical document, and a refusal is always an error with an LDC-* code rather than an empty answer.

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

Conciseness3/5

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

Purpose is front-loaded in the first sentence, which is good, but the remainder is a dense run-on chain of semicolon- and em-dash-separated clauses that mixes return-value semantics, input forms, and error behavior without structure. It is adequately sized but not easy to scan.

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

Completeness4/5

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

For a nine-parameter tool with nested objects and no output schema, the description does the necessary work of describing the two return shapes (compact projection vs full canonical document, including what the projection preserves and drops) and the failure mode. The pieces an agent needs to call it correctly are largely present, though the query/card/evaluate interaction could be sharper.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all nine parameters, establishing a baseline of 3. The description restates the mutually exclusive input combinations (query, evaluate + queryId, saved queryId, card + args) and clarifies proof:true equals responseMode full, but adds little that the schema descriptions do not already carry.

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

Purpose4/5

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

The first clause states a specific verb and resource: run a registered case of a case package over its pinned dependencies and return the answer. It differentiates itself from the sibling law_ask by scoping to a case package, though the jargon (pinned dependencies, LDC-* codes) assumes a reader already fluent in the domain.

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

Usage Guidelines3/5

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

Usage is implied through the enumeration of input forms (query JSON, evaluate string, saved queryId, card + args), but there is no explicit statement of when to pick this tool over law_ask, law_prepare_answer, or law_query. The agent must infer routing from the 'case package' scoping rather than being told.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.