Skip to main content
Glama

Save workspace person

upsert_workspace_person
Destructive

Creates or updates a person in the workspace's mention list (the people the upload flow can @mention per platform). The person is matched by name, ignoring case. A new name creates a person. For an existing person, the handles you pass replace the stored ones for those platforms and the rest are kept; with merge_existing=false the existing person is returned unchanged. Use this to fill in a podcast guest's LinkedIn/Facebook/YouTube handles before the user drafts a post, so the mention popover in the upload flow has them ready. Keys in handles must be one of: instagram, tiktok, youtube, facebook, twitter, linkedin, threads, bluesky, pinterest, mastodon.

Input Schema

NameRequiredDescriptionDefault
nameYesDisplay name (e.g. 'John Smith'). Max 100 chars, cannot contain [ or ]. Uniqueness is enforced case-insensitively within the workspace, so 'John Smith' and 'john smith' are treated as the same person.
handlesNoPer-platform handle strings. Empty string clears a stored handle. Any handle for a platform not in instagram, tiktok, youtube, facebook, twitter, linkedin, threads, bluesky, pinterest, mastodon is rejected. LinkedIn handles are stored as-typed; the URN lookup only fires from the ShortSync UI.
workspace_idYesWorkspace to add the person to. Get from list_workspaces. The user must be a member.
platform_urnsNoPre-resolved platform URNs (currently only LinkedIn 'urn:li:organization:...' / 'urn:li:member:...'). Only set this if you already have the resolved URN; otherwise leave empty and let the ShortSync UI resolve it when the user next opens the person.
merge_existingNoWhen true (default), an existing person's handles/URNs are merged: keys you provide overwrite, keys you omit are kept. When false, existing rows are left untouched and the response says reused_existing=true.
idempotency_keyNoOptional client-generated key (e.g., a UUID) to make retries safe. Identical calls with the same key within 10 minutes return the original result instead of running the write twice.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / platform_urns / description
      Previous value: -"Pre-resolved platform URNs (currently only LinkedIn 'urn:li:organization:...' / 'urn:li:member:...'). Only set this if you already have the resolved URN — otherwise leave empty and let the ShortSync UI resolve it when the user next opens the person."New value: +"Pre-resolved platform URNs (currently only LinkedIn 'urn:li:organization:...' / 'urn:li:member:...'). Only set this if you already have the resolved URN; otherwise leave empty and let the ShortSync UI resolve it when the user next opens the person."
  2. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the annotations, it explains case-insensitive matching by name, creation versus update behavior, per-platform handle replacement with omitted platforms preserved, and merge_existing=false leaving existing rows untouched. This clarifies exactly what the destructive update does and what is preserved, which is strong behavioral context.

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

Conciseness5/5

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

The description is front-loaded with what the tool does and how matching works, then adds update semantics, the intended use case, and the allowed handle keys. It is dense but every sentence contributes useful selection or invocation context.

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 six-parameter nested-object mutation with destructiveHint=true, the description covers purpose, matching, merge behavior, and handle constraints. It does not fully describe the success response shape, though schema notes on merge_existing partially cover that.

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%, so the schema already documents all six parameters, including allowed handle keys and merge semantics. The description reinforces the handle key restriction but adds little parameter meaning beyond what the schema already provides.

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?

The description states a specific CRUD-style operation on a well-defined resource: creates or updates a person in the workspace mention list used by the upload flow. It clearly separates this from generic post/upload tools, but does not explicitly contrast with siblings such as list_workspace_people or resolve_linkedin_mention.

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?

It gives a concrete when-to-use scenario: filling in a podcast guest's LinkedIn/Facebook/YouTube handles before drafting so the mention popover is ready. It does not state when not to use it or name alternative tools, so it falls short of the 5-level alternative guidance.

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.