What your agent can do on LinkedIn
Connect your LinkedIn account once and your AI agent can use 102 tools on it, through one MCP server or the REST API. Every action stays inside the LinkedIn limits that keep the account safe.
In plain words
- Answer messages from connections
- Send, track and withdraw connection requests, and accept the ones you receive
- Search people and companies, and read profiles and posts
- Publish posts with images, video or a link preview, comment and react
- Schedule posts, reshare a post, or post as a company page you manage
- See how your posts do: impressions, clicks, engagement and reach
- Manage job posts and applicants, and Recruiter or Sales Navigator actions
Every tool
Some tools work on every channel where the platform supports them. If LinkedIn does not support an action, Spaces returns an error and nothing is sent. Writes need an Idempotency-Key, so a retry never sends twice.
Conversations
| What it does | MCP tool | REST |
|---|---|---|
| Your conversations, newest first, with their tags and owner. Filter to unread, unanswered, a tag or an owner. | list_messaging_chats | GET …/chats |
| The messages in one conversation. | list_messaging_messages | GET …/chats/{chat_id}/messages |
| An image, file, voice note or video from a message. | get_messaging_attachment | GET …/chats/{chat_id}/messages/{message_id}/attachments/{attachment_id} |
| Reply in a conversation, with text or attachments. | reply_in_chat | POST …/chats/{chat_id}/messages |
| Start a new conversation with someone who expects to hear from you. | start_chat | POST …/chats |
| The tags and the owner of a conversation. | get_chat_tags | GET …/chats/{chat_id}/tags |
| Tag a conversation, such as lead, order or follow up. Sends nothing. | set_chat_tags | PUT …/chats/{chat_id}/tags |
| Give a conversation to someone on your team. Sends nothing. | set_chat_owner | PUT …/chats/{chat_id}/owner |
Messages
| What it does | MCP tool | REST |
|---|---|---|
| People in a chat. | list_chat_attendees | GET …/chats/{chat_id}/attendees |
| Mark a chat read, mute it, or take another chat action. | update_chat | PATCH …/chats/{chat_id} |
| Sync a chat from the start, or read the sync status. | sync_chat | GET …/chats/{chat_id}/sync |
| Messages across all conversations, with filters. | list_messages | GET …/messages |
| People the account can message. | list_attendees | GET …/attendees |
| One person you can message. | get_attendee | GET …/attendees/{attendee_id} |
| A person’s profile picture. | get_attendee_picture | GET …/attendees/{attendee_id}/picture |
| 1:1 chats with an attendee. | list_attendee_chats | GET …/attendees/{attendee_id}/chats |
| Messages with an attendee. | list_attendee_messages | GET …/attendees/{attendee_id}/messages |
| React to a message. | add_message_reaction | POST …/messages/{message_id}/reaction |
| Remove your reaction from a message. | remove_message_reaction | DELETE …/messages/{message_id}/reaction |
| Delete a chat. WhatsApp and LinkedIn. | delete_chat | DELETE …/chats/{chat_id} |
| Delete a message. WhatsApp and LinkedIn. LinkedIn only within about an hour. | delete_message | DELETE …/messages/{message_id} |
| Edit a message. WhatsApp and LinkedIn Classic. | edit_message | PATCH …/messages/{message_id} |
| Sync chats for an attendee. | sync_attendee | GET …/attendees/{attendee_id}/sync |
People
| What it does | MCP tool | REST |
|---|---|---|
| A person’s profile. | get_profile | GET …/users/{identifier} |
| The connected account profile. | get_own_profile | GET …/profile |
| Edit the connected profile. Only fields the channel allows are applied. | edit_own_profile | PATCH …/profile |
| Relations of the account. Paced like profile views. | list_relations | GET …/relations |
| Accounts this account follows. | list_following | GET …/following |
| Followers of this account. | list_followers | GET …/followers |
| Invitations waiting for this account. | list_received_invitations | GET …/invitations/received |
| Accept or decline a received invitation. | respond_to_invitation | POST …/invitations/received/{invitation_id} |
| Comments written by a person. | list_user_comments | GET …/users/{identifier}/comments |
| Reactions by a person. | list_user_reactions | GET …/users/{identifier}/reactions |
Posts and comments
| What it does | MCP tool | REST |
|---|---|---|
| A person’s recent posts, with reactions and comments. | list_user_posts | GET …/users/{identifier}/posts |
| Your own posts with their numbers: likes or reactions, comments, reposts, impressions, and on LinkedIn clicks, engagement and reach. | list_own_posts | GET …/posts |
| One post with its numbers, including LinkedIn analytics for your own posts. | get_post | GET …/posts/{post_id} |
| Publish a post: text, images or video and a link preview on LinkedIn, where you can also reshare a post or post as a company page you manage; a feed post or story with a caption and location on Instagram. | create_post | POST …/posts |
| Publish a post at a set local time, once or every week or month, with an optional first comment. | schedule_post | POST …/scheduled-posts |
| Posts waiting to be published, and the ones already out. | list_scheduled_posts | GET /v1/messaging/scheduled-posts |
| Change a scheduled post, its time or how often it repeats. | update_scheduled_post | PATCH /v1/messaging/scheduled-posts/{scheduled_post_id} |
| Cancel a scheduled post. | cancel_scheduled_post | DELETE /v1/messaging/scheduled-posts/{scheduled_post_id} |
| Comments on a post. | list_comments | GET …/posts/{post_id}/comments |
| Comment on a post, or answer a comment. | comment_on_post | POST …/posts/{post_id}/comments |
| Delete one of your comments. | delete_comment | DELETE …/posts/{post_id}/comments/{comment_id} |
| React to a post. | react_to_post | POST …/posts/{post_id}/reactions |
| React to a comment. | react_to_comment | POST …/posts/{post_id}/comments/{comment_id}/reactions |
| Reactions on a post or, with comment_id, a comment. | list_post_reactions | GET …/posts/{post_id}/reactions |
LinkedIn invitations and search
| What it does | MCP tool | REST |
|---|---|---|
| Send a connection request, with an optional note. | send_invitation | POST …/invitations |
| Connection requests you have sent. | list_invitations | GET …/invitations |
| Withdraw a connection request. | cancel_invitation | DELETE …/invitations/{invitation_id} |
| Search LinkedIn for people, companies or posts. | search_linkedin | POST …/search |
| InMail credit balance. | get_inmail_balance | GET …/linkedin/inmail-balance |
| A LinkedIn company profile. | get_company | GET …/linkedin/companies/{company_id} |
| Ids LinkedIn expects instead of raw search text. | list_search_parameters | GET …/linkedin/search/parameters |
| Estimated audience for an organization post. | estimate_post_audience | GET …/linkedin/posts/audience |
LinkedIn jobs and Recruiter
| What it does | MCP tool | REST |
|---|---|---|
| Recruiter hiring projects. | list_hiring_projects | GET …/linkedin/hiring-projects |
| One hiring project. | get_hiring_project | GET …/linkedin/hiring-projects/{project_id} |
| Recruiter or Sales Navigator action on a profile, such as saving a lead. | linkedin_profile_action | POST …/linkedin/users/{identifier}/action |
| Job posts on this LinkedIn account. | list_job_postings | GET …/linkedin/jobs |
| One job post. | get_job_posting | GET …/linkedin/jobs/{job_id} |
| Create a job post draft. | create_job_posting | POST …/linkedin/jobs |
| Edit a job post. | edit_job_posting | PATCH …/linkedin/jobs/{job_id} |
| Publish a job draft. | publish_job_posting | POST …/linkedin/jobs/{job_id}/publish |
| Close a job post. | close_job_posting | POST …/linkedin/jobs/{job_id}/close |
| Solve a job publishing checkpoint. | solve_job_checkpoint | POST …/linkedin/jobs/{job_id}/checkpoint |
| Sign out the current Recruiter session. | sign_out_recruiter | POST …/linkedin/recruiter/sign-out |
| Sign out other Recruiter sessions for this seat. | sign_out_other_recruiter_sessions | POST …/linkedin/recruiter/sign-out-others |
| People who applied. | list_applicants | GET …/linkedin/jobs/{job_id}/applicants |
| One applicant. | get_applicant | GET …/linkedin/jobs/{job_id}/applicants/{applicant_id} |
| Download an applicant resume. | get_applicant_resume | GET …/linkedin/jobs/{job_id}/applicants/{applicant_id}/resume |
| Endorse a skill. | endorse_skill | POST …/linkedin/users/{identifier}/endorse |
| Recruiter or Sales Navigator contracts. | list_contracts | GET …/linkedin/contracts |
| Select the contract used by this account. | select_contract | POST …/linkedin/contracts/{contract_id}/select |
Schedules and routines
| What it does | MCP tool | REST |
|---|---|---|
| Send a message at a set local time, inside working hours you choose. | schedule_message | POST /v1/messaging/schedules |
| Messages waiting to be sent. | list_schedules | GET /v1/messaging/schedules |
| Change a scheduled message. | update_schedule | PATCH /v1/messaging/schedules/{schedule_id} |
| Cancel a scheduled message. | cancel_schedule | DELETE /v1/messaging/schedules/{schedule_id} |
| An automation: answer from your notes, reply to comments and message the commenter once, tag chats, call a webhook or email a summary, on a schedule or when a message or comment arrives. | create_routine | POST /v1/messaging/routines |
| Your automations. | list_routines | GET /v1/messaging/routines |
| Change or pause an automation. | update_routine | PATCH /v1/messaging/routines/{routine_id} |
| Delete an automation. | delete_routine | DELETE /v1/messaging/routines/{routine_id} |
| What an automation did, and when. | list_routine_runs | GET /v1/messaging/routines/{routine_id}/runs |
Pause and approvals
| What it does | MCP tool | REST |
|---|---|---|
| Stop every message, post, comment, invitation, scheduled message and routine at once. Reading keeps working. | pause_all_sending | POST /v1/messaging/pause |
| Start sending again after a pause. Waiting scheduled messages and routines carry on. | resume_all_sending | POST /v1/messaging/resume |
| Replies, new chats, posts and comments waiting for you to approve them. | list_approvals | GET /v1/messaging/approvals |
| Send a waiting message or post as it is, or after you edit the text. | approve | POST /v1/messaging/approvals/{approval_id}/approve |
| Turn down a waiting message or post, so it is never sent. | reject | POST /v1/messaging/approvals/{approval_id}/reject |
Accounts
| What it does | MCP tool | REST |
|---|---|---|
| The accounts you have connected, with their status and when each last had activity. Search by name, filter by channel or status, sort and page. | list_messaging_accounts | GET /v1/messaging/accounts |
| Whether an account is working, what to do if not, and how much room it has left today. | get_account_health | GET …/health |
| A link to connect a new account, or to reconnect one. | create_messaging_connect_link | POST /v1/messaging/accounts/connect-link |
| Disconnect an account. | disconnect_messaging_account | DELETE … |
| Status of one connected account. | get_connected_account | GET … |
| Start reconnecting an account that needs a sign-in. | reconnect_account | POST …/reconnect |
| Enter a sign-in or verification code the platform asked for. The code is not stored. | solve_checkpoint | POST …/checkpoint |
| Ask the platform to send the verification code again. | resend_checkpoint | POST …/checkpoint/resend |
| Restart an account that has stopped syncing. | restart_account | POST …/restart |
| Fetch an account’s messages again from the platform. | resync_account | POST …/sync |
Usage and billing
| What it does | MCP tool | REST |
|---|---|---|
| Report a bug, a missing feature or a docs gap to the Spaces team. | send_feedback | POST /v1/feedback |
| Messages sent today and this week, and how much room is left on each account. | get_messaging_usage | GET /v1/messaging/usage |
| Usage by day for each account, as a spreadsheet or JSON: messages sent, new conversations and other actions. No message text. | export_messaging_usage | GET /v1/messaging/usage/export |
| Your plan and billing status. | get_messaging_billing | GET /v1/messaging/billing |
| A checkout link to choose a plan. | create_messaging_billing_checkout | POST /v1/messaging/billing/checkout |
Connect it
Use https://api.spacesos.com/mcp/linkedin for an MCP server with only the LinkedIn tools, or https://api.spacesos.com/mcp for every channel. Setup steps for each AI client. An overview for LinkedIn: LinkedIn API for AI agents.