Skip to main content
Glama

Citizen

citizen

Get detailed facts about a single dwarf by unit_id: social ties, deities, personality extremes, skills, likes/detests, physical highlights, recent thoughts, and stress. No advice.

Instructions

A deep dossier on ONE citizen, chained by unit_id from find_unit (or chronicle). Where find_unit stays compact, this is the depth: the walkable social graph (spouse, parents, children, friends, grudges — each with a unit_id you can pass back into citizen() to walk the graph), worshipped deities with worship strength, NOTABLE personality extremes (only the top/bottom facets, not the full 50-facet dump), skills of note, likes/detests, physical highlights, and recent thoughts as the game phrases them (raw caption templates that may contain unfilled [quality]/[deity]/[relation] placeholders, surfaced verbatim), tied to current stress. Friends are positive-affection acquaintances; grudges are bonds gone negative with no positive love to offset them (each carries its raw love/trust/respect scores plus negative_dims naming the negative dimensions, as labeled facts). Empty categories degrade to []. Facts only — it senses, it does not advise. Returns {"error":...} for a missing unit_id or {"error":"no fort loaded"} if no fort is active.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
unit_idYesA live unit_id (all digits), e.g. from a find_unit match
Behavior5/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It thoroughly covers what the tool returns (social graph, deities, personality extremes, etc.), defines friends/grudges, notes placeholder caveats in thoughts, states empty categories degrade to [], and explicitly covers error responses for missing unit_id or no fort. It even clarifies 'Facts only — it senses, it does not advise.'

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

Conciseness4/5

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

The description is long but each sentence provides valuable detail, from data categories to error handling to placeholder behavior. It is front-loaded with the main purpose and uses a clear contrast with find_unit. While slightly verbose, it does not waste words and is well-organized.

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

Completeness5/5

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

Given the absence of an output schema and annotations, the description does an excellent job of covering all necessary context. It enumerates the full set of returned categories, defines the semantics of friends/grudges, explains the placeholder issue, and states both error conditions. It fully equips an agent to decide when to call the tool and what to expect.

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

Parameters4/5

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

The schema already documents unit_id with pattern and description, so the baseline is 3. The description adds extra meaning by explaining where unit_id comes from ('find_unit or chronicle') and that it enables graph walking ('each with a unit_id you can pass back into citizen()'). This adds chaining semantics beyond the schema.

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

Purpose5/5

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

The description clearly states it provides 'a deep dossier on ONE citizen' and differentiates from the sibling tool by explicitly noting 'Where find_unit stays compact, this is the depth.' This identifies the tool's specific verb (provide a deep dossier) and resource (citizen), distinguishing it from alternatives.

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

Usage Guidelines4/5

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

The description explains the chaining context: 'chained by unit_id from find_unit (or chronicle)' and contrasts with find_unit. This provides clear context on when to use the tool, but it doesn't explicitly list exclusions or say 'don't use when you only need a compact summary.' The alternative is named, so it nearly meets the highest bar.

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

Install Server

Other Tools

Latest Blog Posts

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/alexanderolvera/dfhack-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server