Skip to main content
Glama

little-green-light

Log a contact report

lgl_create_contact_report
Destructive

WRITE: log a contact report (a call, email or meeting with a constituent). text is required; the type may be given by id or name (e.g. 'Call'; see lgl_list_type_values type=contact_report_types). LGL: POST /api/v1/constituents/{constituent_id}/contact_reports.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoShort title for the report.
textYesWhat happened.
team_memberNoTeam member who made contact: id, email, or 'first_name last_name'.
original_dateNoDate of the contact (YYYY-MM-DD).
constituent_idYesConstituent id (integer).
contact_report_type_idNo
contact_report_type_nameNoType name, e.g. 'Call', 'Email', 'Meeting'.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

The 'WRITE:' prefix and the disclosed endpoint (POST /api/v1/constituents/{id}/contact_reports) go beyond the destructiveHint annotation by telling the agent this is a mutating create scoped to a constituent. It does not mention permissions or rate limits, but the mutation semantics are clear and consistent with annotations.

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 compact two-part description: the operation and its field guidance first, then the raw endpoint. Every clause carries information, though the trailing URL could be dropped without much loss.

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 mutation tool with no output schema, the description covers the required fields, the type-resolution path, and the underlying request, which is enough to call it correctly. Return behavior and permissions are the only omissions, and neither is essential here.

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?

Schema coverage is already 86%, so the baseline is 3; the description adds that text is mandatory and that the report type may be passed as either id or name, plus how to look up valid names. That is meaningful guidance layered on top of 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?

States a specific verb and resource ('log a contact report') and defines the concept inline ('a call, email or meeting with a constituent'), which disambiguates it from the adjacent lgl_create_note sibling. An agent can tell what this creates without opening the schema.

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?

Gives clear operative context: text is required, the type may be supplied by id or name, and it routes the agent to lgl_list_type_values with type=contact_report_types for valid values. It does not state when to prefer a contact report over a note, but the context is otherwise actionable.

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.