Skip to main content
Glama

Posts: React to comment

social_react_to_comment
Destructive

React to one exact comment. Resolve post -> comment before acting. Do not confuse post_id and comment_id. Post ID: Exact provider/Unipile post id; LinkedIn commonly uses a preformatted/base64-style post ID. Obtain with: linkedin_search_posts -> result.id; linkedin_list_user_posts -> result.id; instagram_list_user_posts -> result.id Never pass: post text, author user ID, URL unless a resolver tool explicitly accepts it. Comment ID: Exact comment id scoped to the identified post. Obtain with: linkedin_list_post_comments(post_id) -> comment.id; instagram_list_post_comments(post_id) -> comment.id Never pass: comment text, post_id.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
post_idYesExact provider post ID. Resolve/list the post first; never pass post text, author ID or a human description. Post ID: Exact provider/Unipile post id; LinkedIn commonly uses a preformatted/base64-style post ID. Obtain with: linkedin_search_posts -> result.id; linkedin_list_user_posts -> result.id; instagram_list_user_posts -> result.id Never pass: post text, author user ID, URL unless a resolver tool explicitly accepts it.
reactionYesProvider-supported reaction value; use the requested semantic reaction and do not invent unsupported values.
account_idNoOptional Nilyo connection ID (unipile_account_id from list_connected_accounts). Omit when the user has one account for this provider. When several exist, Nilyo never guesses: list them (display name, identifier, provider user ID), choose the one the user named or ask, and pass its ID here.
comment_idYesExact comment ID belonging to the already resolved post_id. Obtain by listing comments on that post; never pass comment text or post_id here. Comment ID: Exact comment id scoped to the identified post. Obtain with: linkedin_list_post_comments(post_id) -> comment.id; instagram_list_post_comments(post_id) -> comment.id Never pass: comment text, post_id.

Schema Changelog

Changes observed during successful MCP inspections.

  1. 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 readOnlyHint=false and destructiveHint=true, so the mutation/destructive nature is covered. The description adds practical behavioral context: the need to resolve IDs first, the warning against confusing post_id and comment_id, and the caution against passing invalid values. It does not contradict annotations and provides additional process-level transparency.

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 description is dense but well-organized, with the core purpose front-loaded. It uses line breaks to separate Post ID and Comment ID instructions, making it scannable. While it repeats some schema content, every sentence serves a purpose (resolution steps, exclusions, account_id handling). It is not overly verbose for a tool with such a high risk of ID confusion.

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?

Given the tool's complexity (requires resolving both post and comment) and the absence of an output schema, the description covers the essential steps to call it correctly: how to obtain both IDs, what not to pass, and how to handle the optional account_id. It does not describe return values, but that is not required without an output schema. The guidance is sufficient for an agent to execute the action correctly.

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 baseline is 3. The description largely mirrors the schema's parameter descriptions for post_id and comment_id, adding little new meaning. However, it does reinforce the resolution workflow and explicitly warns against passing text/URLs, which is slightly more than the schema alone. Still, the added value is marginal, keeping the score at 3.

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 description opens with a clear verb+resource: 'React to one exact comment.' It explicitly distinguishes itself from related tools by focusing on comments rather than posts or reaction removal. Sibling tools like linkedin_react_to_post and social_remove_comment_reaction are implicitly differentiated by the 'exact comment' scope and the resolution steps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance: it requires resolving post -> comment before acting, and names specific resolver tools (linkedin_search_posts, linkedin_list_user_posts, etc.) and their output fields. It also gives clear 'never pass' exclusions for each ID, preventing common misuse. This goes beyond vague context to actionable rules.

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.