Skip to main content
Glama

Facebook / Messenger: Accept friend request

facebook_accept_friend_request
Destructive

Accept a received request. Use request.id from facebook_list_friend_requests, which for Facebook equals the person's ID. External action: preserve explicit user approval. Never retry after an uncertain failure; inspect current state first.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "request_id": "<request_id>"
    },
    "name": "facebook_accept_friend_request"
  }
}

Input Schema

NameRequiredDescriptionDefault
account_idNoOwned Facebook unipile_account_id from list_connected_accounts. Not a Facebook person or Page ID. Required when several Facebook accounts exist.
request_idYesExact received request.id from facebook_list_friend_requests; Facebook uses the person's numeric ID.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is largely covered by structured data. The description still adds genuinely new operational context: it is an external side effect requiring explicit approval, and the non-idempotency must be handled by inspecting state rather than retrying. It does not describe what happens to the pending request record or the resulting friendship state.

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?

Three short sentences, front-loaded with the action, then the ID sourcing, then the safety rules; nothing bloated. The middle sentence overlaps with the schema's request_id description, which is mild redundancy but serves as a useful in-line reminder.

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 two-parameter mutation tool with full schema coverage, complete annotations, and no output schema, the description covers everything an agent needs: the action, the ID source, the approval requirement, and failure/retry handling. No critical gap remains.

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%, and the description's note that request.id comes from facebook_list_friend_requests and equals the person's numeric ID largely restates the schema's own request_id description. It adds no meaning for account_id (multi-account selection) beyond what the schema already documents, so the baseline 3 applies.

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 gives a specific verb ("Accept") and a resource ("a received request"), and the sourcing line "Use request.id from facebook_list_friend_requests" disambiguates it from facebook_accept_message_request and routes it away from facebook_send_friend_request / facebook_cancel_friend_request. The resource noun itself is generic ("request" rather than "friend request"), so the differentiation rests partly on the ID source rather than the opening sentence.

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?

It states where the required ID comes from (facebook_list_friend_requests), that on Facebook the request.id equals the person's ID, and the condition for use (explicit user approval for an external action). It also supplies a when-not/after-failure rule: never retry an uncertain failure, inspect state first. There is no ambiguity about which sibling to call or in what order.

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.