Skip to main content
Glama

interaction_create

Log an interaction — call, meeting, email, message, visit, payment, or other — against a contact. The ONE activity-logging door every lane funnels through, so the contact's last_contact_at freshness bumps no matter which surface logged the touch; the bump never moves backward, so importing older history can never regress a fresher touch. Accepts contact_name, contact_email or contact_phone in place of contact_id. NEXT: contact_read to see the bumped last_contact_at.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "interaction_create"
  }
}

Input Schema

NameRequiredDescriptionDefault
summaryNo
contact_idNo
source_refNo
occurred_atNo
contact_nameNoNo contact_id handy? Resolves the contact by exact name — a unique match wins; ambiguity refuses with the candidate ids.
contact_emailNoResolves the contact by exact email when contact_id is absent.
contact_phoneNoResolves the contact by exact phone when contact_id is absent.
interaction_typeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare the write/idempotency/open-world profile, and the description adds genuinely non-obvious behavior: the monotonic last_contact_at bump that 'never moves backward,' so backfilling older history cannot regress freshness. It does not warn that repeated calls are non-idempotent (duplicates) or describe the response, but the freshness semantics are valuable context beyond structured fields.

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?

Three sentences, front-loaded with the action and the freshness guarantee, ending with a next-step pointer. Minor waste in the rhetorical 'ONE ... door every lane funnels through' framing, but overall tight and well ordered.

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

Completeness3/5

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

For a mutation tool with 8 params, no output schema, and 38% schema coverage, the description covers identity resolution and the freshness side effect but leaves occurred_at format, source_ref purpose, summary expectations, and duplicate-call behavior unexplained. Adequate, not 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?

With only 38% schema coverage, the description usefully explains the identity fallback ('Accepts contact_name, contact_email or contact_phone in place of contact_id') and enumerates interaction_type values. However, occurred_at (an untyped integer), source_ref, and summary receive no semantic explanation anywhere, so the description only partially compensates for the coverage gap.

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

Purpose4/5

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

Opens with a concrete verb and resource ('Log an interaction ... against a contact') and enumerates the accepted interaction types, so the agent knows exactly what the call does. It positions itself as the canonical logging path ('The ONE activity-logging door'), but never contrasts with the close sibling interaction_upsert, which also writes interaction records.

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?

Clearly states the condition for use (any surface logging a touch against a contact) and gives an explicit follow-up ('NEXT: contact_read to see the bumped last_contact_at'), which is real routing guidance. It does not say when to prefer interaction_upsert instead, so one sibling decision is left to inference.

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.

Resources