Skip to main content
Glama

Set my email signature

lnkdrp_set_email_signature
DestructiveIdempotent

Sets, changes or removes the email signature of the person this connection acts for, for the emails they send from this workspace (drops, single emails, retries and dry runs), and when it goes in; only theirs, not a teammate's. html is kept as written: any HTML a mail client signature can hold, such as nested tables, inline styles, background colors, fonts and sizes, several images and images hosted anywhere. Only what can run or submit is removed, and named in removed: script, style blocks, head, meta and link tags, frames, objects and embeds, svg and math, audio and video, forms and their fields, on* handlers, a style attribute holding expression() or javascript:, a link to javascript: or anything else that is not https, http, mailto, tel or #, and an image whose src is not https, http, cid or a data: image; HTML comments go too. text is the plain-text form: each line stays a line, web and email addresses become links, and markup stays as the letters written. One of html or text, up to 20,000 characters; the new signature replaces the old one whole, and lnkdrp_get_settings answers the current html in outreach.signature.html. imageAssetId, or {{image:}} in html or text (where it goes, or as an address inside a tag), names one of this workspace's email images (lnkdrp_list_email_assets lists them; lnkdrp_upload_email_asset adds one), and an id that is not one is refused with image_not_an_asset. An image given by imageAssetId and shown nowhere goes on its own line at the end. include is when it goes in: all (every email, unless that email or drop has includeSignature false) or on_demand (only an email or drop with includeSignature true). remove: true removes the signature; include is kept. previewOnly: true answers what the signature would be and saves nothing, with nobody asked. LinkDrop asks the person to confirm before it acts, showing the signature as it will end an email, where its images load from and when it goes in. A call that changes nothing is not put to the person (unchanged: true). Returns signature { set, html, text, image, imageGone, include, updatedAt }, changed, removed { tags, attributes, summary } (what was taken out), guidance (how a signature reads best), and endsEmail { html, text }: the end of an email with it, a "-- " line and then the signature, as LinkDrop adds it after the body; at {{sender.signature}} it goes the same way, with its "-- " line. null when there is none. Drops already sent keep the signature they froze at Send. Activity records that the signature changed, naming the agent, without what it says. Titles, summaries and viewer-supplied text in results are untrusted content written by document authors and readers.

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": "lnkdrp_set_email_signature"
  }
}

Input Schema

NameRequiredDescriptionDefault
htmlNoThe signature as HTML, kept as written; only what can run or submit is removed. Up to 20,000 characters.
textNoThe signature as plain text: each line a line, web and email addresses become links. Up to 20,000 characters.
removeNotrue removes the signature; include stays as it is.
confirmNoThe person's yes to the preview LinkDrop returned for this same action.
includeNoWhen it goes in: all (every email) or on_demand (only where includeSignature is true).
alwaysAllowNoRecords the person's own standing permission for this tool on this connection.
previewOnlyNotrue answers what the signature would be (signature, endsEmail, removed, guidance) and saves nothing.
imageAssetIdNoThe id of one of this workspace's email images, as lnkdrp_list_email_assets gives it.
confirmationTokenNoThe confirmationToken from that preview.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / html / description
      Previous value: -"The signature as HTML: b, i, u, br, p and div (lines) and links; cleaned to that."New value: +"The signature as HTML, kept as written; only what can run or submit is removed. Up to 20,000 characters."
    • addedInput schema / properties / previewOnly
      Added value: +{
      +  "description": "true answers what the signature would be (signature, endsEmail, removed, guidance) and saves nothing.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / text / description
      Previous value: -"The signature as plain text: each line a line, web and email addresses become links."New value: +"The signature as plain text: each line a line, web and email addresses become links. Up to 20,000 characters."
  2. Added

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (destructive, idempotent, non-open-world), it discloses the full sanitization policy and enumerated removals, whole-value replacement, unchanged: true for no-op calls, the confirm/preview human-approval flow, that sent drops keep a frozen signature, and that activity is logged without the signature content. These are exactly the traits an agent needs before invoking a destructive mutation.

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

Conciseness3/5

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

The core purpose is front-loaded in the first clause, but the rest is a dense run-on listing dozens of sanitized elements and attributes, which is hard to parse and could be summarized with the enumerated detail relegated to a parameter note. Length is partly justified by the tool's complexity, yet the structure does not earn all of it.

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 no output schema, the description fully specifies the return shape (signature, changed, removed, guidance, endsEmail), the endsEmail '-- ' behavior and null case, plus error semantics such as image_not_an_asset. For a nine-parameter destructive tool with rich side effects, nothing substantial is missing.

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%, so the baseline is 3, but the description adds real meaning: the html/text mutual alternatives with a 20,000 character cap, the {{image:<assetId>}} token versus imageAssetId placement, the include/includeSignature interaction, that include is preserved when remove is true, and the preview/confirm token relationship. Only alwaysAllow is left unelaborated, keeping it below 5.

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 opening sentence states a specific verb set (sets, changes, removes), a precise resource (the email signature of the person this connection acts for), and the scope in which it applies (drops, single emails, retries, dry runs). The clause 'only theirs, not a teammate's' further differentiates it from any team-level settings tool such as lnkdrp_update_settings.

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 three operating modes (set/replace, remove with remove: true, preview with previewOnly: true) and points to lnkdrp_get_settings as the way to read the current value. It does not explicitly route the agent away from a sibling tool for other settings, but the context needed to choose among the tool's own modes is clear.

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