MCP tools reference

Finchreach's MCP server registers 27 tools: 13 reads and 14 writes. Writes wait in the approval queue when approval is on. Beta tools use LinkedIn request shapes not yet verified against a capture: they work but may change or fail.

linkedin_list_accounts

Read

List LinkedIn accounts. Lists the LinkedIn accounts connected to this tenant: id, status (active / unverified / expired / checkpoint), member urn, exit country and whether the account is paused.

Scopes: accounts:read

No parameters.

linkedin_get_profile

Read

Get my LinkedIn profile. The connected member's own profile (/me plus the full profile): name, headline, public id, urns.

Scopes: linkedin:read

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars

linkedin_get_feed

Read

Read the LinkedIn feed. Posts from the member's home feed. Pass the previous page's `next` as cursor for more.

Scopes: linkedin:read

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
sort"relevance" or "recent"relevance (default) or recent
cursorobjectThe `next` object of the previous page

linkedin_get_notifications

Read

Read LinkedIn notifications. The member's latest notifications and unseen badge counts.

Scopes: linkedin:read

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars

linkedin_get_conversations

Read

List LinkedIn conversations. The member's messaging inbox: conversations with participants and the last message. Pass the previous page's cursor for older ones.

Scopes: linkedin:read

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
cursorstringmax 2000 chars

linkedin_get_messages

Read

Read a LinkedIn conversation. Messages of one conversation (conversationUrn from linkedin_get_conversations).

Scopes: linkedin:read

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
conversationUrn *stringurn:li:msg_conversation:(urn:li:fsd_profile:<id>,<thread>); max 400 chars
syncTokenstringmax 2000 chars

linkedin_get_post_comments

Read

Read comments on a LinkedIn post. Comments on a post (most relevant first): author (name, headline, degree, profile), text, age, reaction counts and reply counts. Pass the previous page's `next` as cursor for more.

Scopes: linkedin:read

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
activityId *stringThe post: its numeric activity id or urn:li:activity:<id> (from linkedin_get_feed / linkedin_search); max 64 chars
trackingIdstringThe feed item's trackingId, when known (from linkedin_get_feed); max 300 chars
cursorobjectThe `next` object of the previous page

linkedin_get_post_reactions

Read

Read reactions on a LinkedIn post. Who reacted to a post: name, reaction, degree, headline and profile. Optionally only one reactionType. Pass the previous page's next.pageToken for more.

Scopes: linkedin:read

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
activityId *stringThe post: numeric activity id, urn:li:activity:<id> or urn:li:ugcPost:<id> (from linkedin_get_feed / linkedin_search); max 64 chars
reactionType"LIKE" or "PRAISE" or "APPRECIATION" or "EMPATHY" or "INTEREST" or "ENTERTAINMENT"
pageTokenstringmax 2000 chars

linkedin_get_person_profile

Read

View a person's LinkedIn profile. Another member's profile card by URL (https://www.linkedin.com/in/<id>/) or public id: name, headline, location, followers, connections, profile urn and connection state. LinkedIn shows the member that you viewed them; this has a tighter daily budget than other reads.

Scopes: linkedin:read

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
profile *stringlinkedin.com/in/<public id> URL or the public id; max 400 chars

linkedin_create_post

Write · approval

Publish a LinkedIn post. Publishes a post as the member (LIVE on LinkedIn): text, text with up to 9 images (https URL or base64; JPEG, PNG or GIF, max 10 MB each, 40 MB together), or text with an article link (LinkedIn builds its preview from the URL; description and thumbnailUrl are not sent and produce a warning). If approval mode is on for this account, nothing is sent yet: the result is { status: "pending_approval", action } and a human approves it in Finchreach; poll it with linkedin_get_action.

Scopes: linkedin:write

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
text *stringmax 3000 chars
visibility"Anyone" or "Connections Only"Default: Connections Only
imagesobject[]Images to attach; each needs exactly one of url or base64; max 9 items
articleobjectArticle link preview (cannot be combined with images)

linkedin_send_dm

Write · approval

Send a LinkedIn message. Sends a direct message as the member: into an existing conversation (conversationUrn) or to new recipients (recipientUrns, urn:li:fsd_profile:…). If approval mode is on for this account, nothing is sent yet: the result is { status: "pending_approval", action } and a human approves it in Finchreach; poll it with linkedin_get_action.

Scopes: linkedin:write

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
text *stringmax 8000 chars
conversationUrnstringmax 400 chars
recipientUrnsstring[]max 20 items

linkedin_send_invitation

Write · approval

Send a LinkedIn connection invitation. Sends a connection invitation, optionally with a note (max 300 characters). If approval mode is on for this account, nothing is sent yet: the result is { status: "pending_approval", action } and a human approves it in Finchreach; poll it with linkedin_get_action.

Scopes: linkedin:write

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
fsdProfileId *stringThe ACoA… profile id (or urn:li:fsd_profile:ACoA…); max 200 chars
notestringmax 300 chars

linkedin_react_to_post

Write · approval

React to a LinkedIn post. Reacts to a post as the member (default LIKE). If approval mode is on for this account, nothing is sent yet: the result is { status: "pending_approval", action } and a human approves it in Finchreach; poll it with linkedin_get_action.

Scopes: linkedin:write

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
activityId *stringThe post: its numeric activity id or urn:li:activity:<id> (from linkedin_get_feed / linkedin_search); max 64 chars
reactionType"LIKE" or "PRAISE" or "APPRECIATION" or "EMPATHY" or "INTEREST" or "ENTERTAINMENT"Default: LIKE

linkedin_unreact

Write · approval

Remove a reaction from a LinkedIn post. Removes the member's reaction from a post; pass the reactionType that was given (default LIKE). If approval mode is on for this account, nothing is sent yet: the result is { status: "pending_approval", action } and a human approves it in Finchreach; poll it with linkedin_get_action.

Scopes: linkedin:write

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
activityId *stringThe post: its numeric activity id or urn:li:activity:<id> (from linkedin_get_feed / linkedin_search); max 64 chars
reactionType"LIKE" or "PRAISE" or "APPRECIATION" or "EMPATHY" or "INTEREST" or "ENTERTAINMENT"Default: LIKE

linkedin_comment_on_post

Write · approval

Comment on a LinkedIn post. Posts a comment on a post as the member (LIVE on LinkedIn). The result's outcome.ids.commentId is what linkedin_delete_comment takes. If approval mode is on for this account, nothing is sent yet: the result is { status: "pending_approval", action } and a human approves it in Finchreach; poll it with linkedin_get_action.

Scopes: linkedin:write

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
activityId *stringThe post: its numeric activity id or urn:li:activity:<id> (from linkedin_get_feed / linkedin_search); max 64 chars
text *stringmax 1250 chars
trackingIdstringThe feed item's trackingId, when known (from linkedin_get_feed); max 300 chars

linkedin_delete_comment

Write · approval

Delete a LinkedIn comment. Deletes one of the member's comments on a post. If approval mode is on for this account, nothing is sent yet: the result is { status: "pending_approval", action } and a human approves it in Finchreach; poll it with linkedin_get_action.

Scopes: linkedin:write

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
activityId *stringThe post: its numeric activity id or urn:li:activity:<id> (from linkedin_get_feed / linkedin_search); max 64 chars
commentId *stringThe comment id (outcome.ids.commentId of linkedin_comment_on_post); max 300 chars
trackingIdstringThe feed item's trackingId, when known (from linkedin_get_feed); max 300 chars

linkedin_edit_post

Write · approvalBeta

Edit the text of one of the member's LinkedIn posts. Replaces the text of a post the member published (LIVE on LinkedIn). Unverified LinkedIn request shape: refused live (501 unverified_operation) unless the server enables it. If approval mode is on for this account, nothing is sent yet: the result is { status: "pending_approval", action } and a human approves it in Finchreach; poll it with linkedin_get_action.

Scopes: linkedin:write

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
activityId *stringThe post: its numeric activity id or urn:li:activity:<id> (from linkedin_get_feed / linkedin_search); max 64 chars
text *stringmax 3000 chars
trackingIdstringThe feed item's trackingId, when known (from linkedin_get_feed); max 300 chars

linkedin_delete_post

Write · approval

Delete one of the member's LinkedIn posts. Deletes a post the member published (LIVE on LinkedIn; LinkedIn refuses posts that are not the member's). If approval mode is on for this account, nothing is sent yet: the result is { status: "pending_approval", action } and a human approves it in Finchreach; poll it with linkedin_get_action.

Scopes: linkedin:write

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
activityId *stringThe post: its numeric activity id or urn:li:activity:<id> (from linkedin_get_feed / linkedin_search); max 64 chars
trackingIdstringThe feed item's trackingId, when known (from linkedin_get_feed); max 300 chars

linkedin_reply_to_comment

Write · approvalBeta

Reply to a LinkedIn comment. Posts a threaded reply under a comment as the member (LIVE on LinkedIn). parentCommentId is the comment's id or urn:li:comment:(activity:<postId>,<commentId>) (from linkedin_get_post_comments). Unverified LinkedIn request shape: refused live (501 unverified_operation) unless the server enables it. If approval mode is on for this account, nothing is sent yet: the result is { status: "pending_approval", action } and a human approves it in Finchreach; poll it with linkedin_get_action.

Scopes: linkedin:write

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
activityId *stringThe post: its numeric activity id or urn:li:activity:<id> (from linkedin_get_feed / linkedin_search); max 64 chars
parentCommentId *stringThe comment to reply to: its numeric id or urn:li:comment:(activity:<postId>,<commentId>); max 300 chars
text *stringmax 1250 chars
trackingIdstringThe feed item's trackingId, when known (from linkedin_get_feed); max 300 chars

linkedin_mark_conversation_read

Write · approvalBeta

Mark a LinkedIn conversation as read. Marks one of the member's conversations as read (conversationUrn from linkedin_get_conversations). Unverified LinkedIn request shape: refused live (501 unverified_operation) unless the server enables it. If approval mode is on for this account, nothing is sent yet: the result is { status: "pending_approval", action } and a human approves it in Finchreach; poll it with linkedin_get_action.

Scopes: linkedin:write

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
conversationUrn *stringurn:li:msg_conversation:(urn:li:fsd_profile:<own id>,<thread>); max 400 chars

linkedin_get_received_invitations

ReadBeta

List received LinkedIn invitations. Pending invitations sent to the member: inviter (name, headline, profile), note, sent time and the `accept` arguments ({ invitationId, sharedSecret }) for linkedin_accept_invitation / linkedin_decline_invitation. Page with start (the previous page's next.start).

Scopes: linkedin:read

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
startinteger
countintegerDefault: 10

linkedin_accept_invitation

Write · approvalBeta

Accept a LinkedIn invitation. Accepts a received invitation (the member gains a connection). Pass the invitation's accept arguments from linkedin_get_received_invitations. If approval mode is on for this account, nothing is sent yet: the result is { status: "pending_approval", action } and a human approves it in Finchreach; poll it with linkedin_get_action.

Scopes: linkedin:write

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
invitationId *stringaccept.invitationId from linkedin_get_received_invitations; max 80 chars
sharedSecret *stringaccept.sharedSecret from linkedin_get_received_invitations; max 200 chars

linkedin_decline_invitation

Write · approvalBeta

Decline (ignore) a LinkedIn invitation. Ignores a received invitation (LinkedIn's Ignore button; the inviter is not notified). Pass the invitation's accept arguments from linkedin_get_received_invitations. If approval mode is on for this account, nothing is sent yet: the result is { status: "pending_approval", action } and a human approves it in Finchreach; poll it with linkedin_get_action.

Scopes: linkedin:write

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
invitationId *stringaccept.invitationId from linkedin_get_received_invitations; max 80 chars
sharedSecret *stringaccept.sharedSecret from linkedin_get_received_invitations; max 200 chars

linkedin_get_sent_invitations

Read

List sent LinkedIn invitations. Pending connection invitations the member sent: invitee (name, headline, profile), sent age, note and the `withdraw` arguments for linkedin_withdraw_invitation. Page with startIndex (the previous page's next.startIndex).

Scopes: linkedin:read

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
startIndexinteger

linkedin_withdraw_invitation

Write · approval

Withdraw a sent LinkedIn invitation. Withdraws a pending invitation the member sent. Pass the invitation's withdraw arguments from linkedin_get_sent_invitations. If approval mode is on for this account, nothing is sent yet: the result is { status: "pending_approval", action } and a human approves it in Finchreach; poll it with linkedin_get_action.

Scopes: linkedin:write

ParameterTypeDescription
accountIdstringThe LinkedIn account id (from linkedin_list_accounts). May be omitted when the tenant has exactly one connected account.; max 64 chars
invitationId *stringwithdraw.invitationId; max 80 chars
profileUrn *stringwithdraw.profileUrn (the ACoA… profile id); max 200 chars
inviteeVanityName *stringwithdraw.inviteeVanityName; max 200 chars
firstName *stringwithdraw.firstName; max 200 chars
lastName *stringwithdraw.lastName; max 200 chars

linkedin_get_action

Read

Get a pending action. The status of a write queued for approval (pending_approval, approved, rejected, executed, failed, expired) and, once run, its result. A key can read the actions it proposed.

Scopes: actions:read or linkedin:write

ParameterTypeDescription
actionId *stringmax 64 chars

Updated · Markdown version