Skip to main content
Glama
Commonpost MCP for Thunderbird

Commonpost MCP for Thunderbird

Get Contact

getContact
Read-onlyIdempotent

Retrieve a single contact's full details by ID from searchContacts results, including email addresses, name, phones, addresses, organization, title, note, and birthday.

Instructions

Read one contact by id (from searchContacts): emails, name, phones, addresses, organization, title, note, birthday

Input Schema

NameRequiredDescriptionDefault
contactIdYesContact UID (from searchContacts results)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is fully covered by structured data. The description's real contribution is the field inventory it returns, which matters because there is no output schema. It says nothing about behavior when the id is invalid or whether the contact is fetched live versus cached.

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?

A single front-loaded sentence followed by a colon and a terse field list — no filler. The list-of-fields tail is dense but readable; minor deduction for the slightly telegraphic style rather than full sentences.

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?

With one parameter, no nested objects, and no output schema, the definition covers what the agent needs: how to obtain the id and what comes back. Only the absence of error/empty-result behavior keeps it from being fully complete.

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 description coverage is 100%, and the schema already labels contactId as the "Contact UID (from searchContacts results)". The description restates the same provenance hint without adding format, validation, or example values, so it neither helps nor hurts beyond baseline.

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?

"Read one contact by id" gives a specific verb (read), a specific cardinality (one), and the resource (contact), which cleanly separates it from searchContacts and the list* siblings. It also enumerates the returned fields (emails, name, phones, addresses, organization, title, note, birthday), so the agent knows exactly what it gets.

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?

"(from searchContacts)" tells the agent the intended workflow: resolve an id via searchContacts, then fetch the full record here. That is clear context, though it stops short of stating any negative case (e.g. not for browsing all contacts, no fallback when the id is unknown).

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