get_officer
Get a full officer record by name (with optional agency filter for disambiguation).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| agency | No |
Get a full officer record by name (with optional agency filter for disambiguation).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| agency | No |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates a read operation ('Get') and promises a 'full officer record', implying non-destructive behavior. Yet it does not disclose edge cases like missing records, multiple matches without agency, or exact-match policies. This is tolerable for a simple getter but not fully transparent.
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, tightly worded sentence that is front-loaded. Every phrase contributes value—'full officer record' sets expectations, 'by name' specifies the lookup method, and the parenthetical clarifies the agency parameter's role. No unnecessary words or repetition.
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 parameters, no output schema, no annotations), the description is largely complete. It covers the primary action and parameter purposes. The lack of return-structure detail is a minor gap, but 'full officer record' conveys that the result contains the complete data for the officer.
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 no parameter descriptions (0% coverage), but the description explains both parameters: 'name' is the primary lookup key and 'agency' is optional for disambiguation. This adds meaningful semantics beyond the bare schema, effectively compensating for the lack of schema-level documentation.
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: 'Get a full officer record by name'. It uses a specific verb ('Get'), names the resource ('full officer record'), and specifies the lookup method ('by name'). This distinguishes it from sibling tools like search_officers (which implies search/partial match) and get_da/get_defender (which target different entities).
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: use this when you need a complete record for a known officer name. The optional agency filter's purpose ('for disambiguation') is explicitly explained. However, it does not explicitly contrast with search_officers or state when to use the alternative, so it falls short of full 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.