Skip to main content
Glama

add_contact_interaction

Logs a touchpoint with one of the user's job-search contacts — a call, a LinkedIn message, a coffee chat, a referral conversation, etc. The entry appears in the contact's interaction timeline in GigHQ.

type is required. Infer the best-fit type from what happened: • text_message — SMS/text • email_external — email • call — phone or video call • linkedin_connection_request — sent or accepted a connection request • linkedin_message — direct message on LinkedIn • coffee_chat — informational interview or coffee chat • in_person_meeting — face-to-face meeting • networking_event — conference, meetup, career fair • referral — the contact referred the user or made an introduction • other — anything else

Find the contact's UUID with search_contacts.

Input Schema

NameRequiredDescriptionDefault
bodyYesShort note about the interaction — what was discussed or sent. Max 3000 characters.
typeYesKind of interaction being logged.
contact_idYesUUID of the contact.
occurred_atNoISO 8601 date the interaction happened, e.g. '2026-07-10'. Defaults to now.

Output Schema

NameRequiredDescriptionDefault
uuidNo
messageYes
contactUrlYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the write-but-non-destructive profile is covered. The description adds the useful behavioral fact that the entry surfaces in the contact's interaction timeline in GigHQ. It says nothing about permissions, duplicate handling, or failure modes, so with annotations carrying the safety load a 3 is appropriate.

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 core action and the required-field warning are front-loaded, and the enum bullet list is long but each line earns its place by disambiguating a value. Slightly verbose formatting, but no filler sentences.

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?

With full schema coverage, annotations covering the safety profile, and an output schema, the description supplies everything else the agent needs: what qualifies as an interaction, how to pick the type, and how to obtain the required contact UUID.

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 100%, which sets a baseline of 3, but the description goes beyond the schema's one-line enum description by defining each of the ten `type` values with a concrete meaning. That materially improves correct enum selection. `body`, `occurred_at`, and `contact_id` are left to the schema, which documents them adequately.

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 ("Logs a touchpoint with one of the user's job-search contacts") and lists concrete examples of what counts. It also distinguishes itself from search_contacts, which is the lookup tool, so an agent can tell what this tool does versus its nearest sibling.

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?

Explicitly routes the agent to `search_contacts` to obtain the contact UUID and instructs it to infer the best-fit `type` from what happened, which is the main ambiguity for this tool. It lacks an explicit when-not-to-use statement, so it falls short of a 5.

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.