fikra_extract_contract_dates
Pull effective, expiry, renewal and notice dates. Fixed price $0.15 per call. Never missing a renewal or notice window again.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| document | Yes | Document text to process. |
Pull effective, expiry, renewal and notice dates. Fixed price $0.15 per call. Never missing a renewal or notice window again.
| Name | Required | Description | Default |
|---|---|---|---|
| document | Yes | Document text to process. |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=false and openWorldHint=false but readOnlyHint=false and idempotentHint=false, so an agent cannot tell from them alone why this extraction call is non-read-only. The description adds a genuinely valuable behavioral fact — a flat $0.15 per call charge, which explains the non-idempotent billing — but says nothing about input length limits, what happens when a requested date is absent from the document, or the shape of the result.
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 purpose is correctly front-loaded in the first sentence and the price is worth keeping, but the third sentence is pure marketing filler that consumes a third of the description without informing tool selection or invocation. Two of three sentences earn their 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?
With no output schema, the description carries responsibility for return-value disclosure; the enumerated date types partially cover this by implying the returned fields. However, an agent still cannot tell the result format, whether dates are normalized, or how missing dates are reported — material gaps for an extraction tool with no 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?
Only one parameter exists and the schema documents it at 100% coverage ('Document text to process'), so the schema does the heavy lifting. The description adds no further semantics about expected input format, size, or whether pre-extracted text vs. raw file content is accepted.
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?
States a specific verb (pull) and enumerates the exact resource fields retrieved: effective, expiry, renewal and notice dates. This field list distinguishes it from fikra_extract_contract_obligations, fikra_summarise_contract and fikra_analyse_contract_risks without needing to open any schema.
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?
There is no explicit when-to-use, when-not, or alternative-tool routing — nothing tells the agent to prefer this over summarise_contract or analyse_contract_risks. The closing slogan ('Never missing a renewal or notice window again') gestures at a renewal-tracking use case but is marketing copy rather than guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.