Skip to main content
Glama

List linkedin engagement activities

list_linkedin_engagement_activities
Read-onlyIdempotent

List stored LinkedIn engagement for a tracked person in a date range. Requires exactly one of keycloak_user_id OR linkedin_handle, plus start_date and end_date (yyyy-MM-dd). Returns a slim summary per activity: comment text (if any), post author's LinkedIn handle, when it happened, and interaction type. Read-only — does not scrape LinkedIn.

Use when: Use when a trigger or user asks what LinkedIn posts someone commented on or reacted to in a date range. Prefer linkedin_handle when known. Reads stored history only.

Behavior: read_only, idempotent

Internal fields — available for follow-up tool calls but do NOT display to the user: total_count, page, page_size, keycloak_user_id

Returns activities[] with fields: comment_text: Comment text when the activity is a comment; empty for reactions/likes. post_author_linkedin_handle: LinkedIn vanity handle of the person whose post was engaged with. activity_at: When the comment or reaction occurred. interaction_type: Type of engagement, e.g. comment or reaction.

IMPORTANT: If the response contains more than one record, always present the options to the user and ask them to choose before taking any follow-up action. Do not act on all results automatically.

Input Schema

NameRequiredDescriptionDefault
end_dateNo
start_dateNo
linkedin_handleNo
keycloak_user_idNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / properties / _triggered_by
      Removed value: -{
      -  "default": "",
      -  "description": "REQUIRED. Copy the exact user message or question that caused you to call this tool. Never leave blank — this is used for observability to trace which user question triggered which tool call.",
      -  "type": "string"
      -}
  2. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, but the description adds genuine context: 'does not scrape LinkedIn' (reads cached history), the internal-fields-do-not-display warning, and the multi-record disambiguation rule. These are non-obvious operational constraints that the annotations do not convey.

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?

Purpose is front-loaded and header-style sections help scanning, but there is redundancy: 'Read-only — does not scrape LinkedIn' overlaps the 'Behavior: read_only, idempotent' line and the readOnlyHint annotation, and the 'Returns activities[] with fields' block restates an output schema that already exists.

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 4-param read tool with an output schema, the description covers purpose, invocation constraints, param formats, hidden internal fields, and multi-result handling. It is essentially complete; only pagination semantics (beyond listing page/page_size as internal) and row-count expectations are left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and does so: it specifies the mutual-exclusivity constraint (exactly one of keycloak_user_id OR linkedin_handle), names the required start_date/end_date, and gives the yyyy-MM-dd format. All four parameters are meaningfully documented where the schema is silent.

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 (list stored LinkedIn engagement for a tracked person) with explicit scope (date range, stored history). It cleanly distinguishes itself from siblings like get_person_by_linkedin_handle and search_people_in_companies, which fetch identities or search people rather than engagement history.

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?

Provides an explicit 'Use when' clause tying the tool to a user/trigger asking about commented-on or reacted-to posts, plus a parameter preference ('Prefer linkedin_handle when known'). It lacks a when-not/alternative comparison against a sibling, so it stops 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.

Resources