Skip to main content
Glama

My cards with LinkedIn links

event_card_links
Read-onlyIdempotent

Lists the business cards the person received in swaps at an event (a booth scan or a badge swap, in either direction), newest first, at most 50. Each row has the other person's first name, their company, where and when they met (metAt), their LinkedIn link when their card carries one (linkedin with url and deepLink, otherwise null), whether the card has an email or a phone (yes or no; the values are not included), and note, a one-line "we met at" sentence for a LinkedIn invitation. The same list also comes as a numbered text block, one line per person with the link. LinkedIn does not let other apps send invitations, so the person opens each link and sends the invitation in LinkedIn. Needs a personal connector token. The event is eventIdOrSlug when given, otherwise the person's current event, otherwise every swap they have. It only reads; event_card_save_linkedin keeps the person's own LinkedIn link on their card.

Input Schema

NameRequiredDescriptionDefault
eventIdOrSlugNoOptional event id, slug or name; else the current event, else every swap.

Output Schema

NameRequiredDescriptionDefault
okNo
codeNo
cardsNo
countNo
errorNo
shownNo
eventIdNo
hasMoreNo
messageNo
servedByNo
withLinkedinNo
ownCardHasLinkedinNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • removedInput schema / properties / confirm
      Removed value: -{
      -  "description": "With myLinkedin: absent saves nothing; true with confirmToken saves.",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / confirmToken
      Removed value: -{
      -  "description": "The token the first call returned.",
      -  "type": "string"
      -}
    • removedInput schema / properties / myLinkedin
      Removed value: -{
      -  "description": "Optional own linkedin.com/in/ link; other shapes are refused.",
      -  "maxLength": 300,
      -  "type": "string"
      -}
    • removedOutput schema / properties / myLinkedin
      Removed value: -{
      -  "type": "object"
      -}
  2. Changed4 schema fields changed
    • changedInput schema / properties / confirm / description
      Previous value: -"Used with myLinkedin. Absent on the first call, which saves nothing. true, together with confirmToken, saves the link."New value: +"With myLinkedin: absent saves nothing; true with confirmToken saves."
    • changedInput schema / properties / confirmToken / description
      Previous value: -"The token the first call with myLinkedin returned. Needed when confirm is true."New value: +"The token the first call returned."
    • changedInput schema / properties / eventIdOrSlug / description
      Previous value: -"Optional. Event id, public slug or event name. When absent, the person's current event; with no current event, every swap they have."New value: +"Optional event id, slug or name; else the current event, else every swap."
    • changedInput schema / properties / myLinkedin / description
      Previous value: -"Optional. The person's own LinkedIn profile link, a linkedin.com/in/ URL. Kept on their own card only when the card has no LinkedIn link yet. Any other shape is refused and nothing is saved."New value: +"Optional own linkedin.com/in/ link; other shapes are refused."
  3. Added

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantial context beyond them: a hard cap of 50 rows, newest-first ordering, that email/phone values are deliberately withheld (only yes/no), the dual JSON plus numbered text-block output, and the token requirement. These are exactly the behavioral facts an agent cannot infer from 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?

Front-loaded with what is returned and the row shape, then constraints, then the event scoping rule. Dense and largely waste-free, though the single long paragraph mixes return shape, LinkedIn limitation, and parameter behavior in ways that would read better split, and some field detail is recoverable from the output schema.

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?

For a one-parameter read tool with full schema coverage, an output schema, and rich annotations, the description still covers the return shape, ordering, cap, privacy behavior, auth need, and sibling relationship. Nothing an agent needs in order to call it correctly is missing.

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?

Only one optional parameter at 100% schema coverage, so the schema already documents the id/slug/name resolution and fallback order. The description restates the same fallback chain without adding syntax or format guidance beyond it; baseline 3 is appropriate.

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 (lists), specific resource (business cards received in swaps at an event), and scope ('booth scan or badge swap, in either direction'). It explicitly contrasts with the sibling event_card_save_linkedin, so an agent can separate the two without reading schemas.

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 the read-context clearly (needs a personal connector token, only reads) and names the alternative for the opposite job (event_card_save_linkedin saves the person's own link). It also explains the workflow constraint that LinkedIn invitations must be sent manually, which frames when to use this output. No explicit 'do not use when' exclusion, so not 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.

Resources