Every tool
All 114 tools for the five chat channels. Each one is an MCP tool on https://api.spacesos.com/mcp and a REST route on https://api.spacesos.com, with the same key and limits.
- REST routes shown as
…start with/v1/messaging/accounts/{account_id}. - Writes need an
Idempotency-Keyheader (MCP:idempotency_key), so a retry never acts twice, and they count against the account’s limits. - Channels marked All work wherever the platform supports the action. Otherwise Spaces returns an error and nothing is sent.
- Inputs and outputs are in the OpenAPI file and llms-full.txt.
Conversations
| What it does | MCP tool | REST | Channels |
|---|---|---|---|
| Your conversations, newest first, with their tags and owner. Filter to unread, unanswered, a tag or an owner. | list_messaging_chats | GET …/chats | All |
| The messages in one conversation. | list_messaging_messages | GET …/chats/{chat_id}/messages | All |
| An image, file, voice note or video from a message. | get_messaging_attachment | GET …/chats/{chat_id}/messages/{message_id}/attachments/{attachment_id} | All |
| Reply in a conversation, with text or attachments. | reply_in_chat | POST …/chats/{chat_id}/messages | All |
| Start a new conversation with someone who expects to hear from you. | start_chat | POST …/chats | All |
| The tags and the owner of a conversation. | get_chat_tags | GET …/chats/{chat_id}/tags | All |
| Tag a conversation, such as lead, order or follow up. Sends nothing. | set_chat_tags | PUT …/chats/{chat_id}/tags | All |
| Give a conversation to someone on your team. Sends nothing. | set_chat_owner | PUT …/chats/{chat_id}/owner | All |
Messages
| What it does | MCP tool | REST | Channels |
|---|---|---|---|
| People in a chat. | list_chat_attendees | GET …/chats/{chat_id}/attendees | All |
| Mark a chat read, mute it, or take another chat action. | update_chat | PATCH …/chats/{chat_id} | All |
| Sync a chat from the start, or read the sync status. | sync_chat | GET …/chats/{chat_id}/sync | All |
| Forward a message. WhatsApp only. | forward_message | POST …/messages/{message_id}/forward | |
| Messages across all conversations, with filters. | list_messages | GET …/messages | All |
| People the account can message. | list_attendees | GET …/attendees | All |
| One person you can message. | get_attendee | GET …/attendees/{attendee_id} | All |
| A person’s profile picture. | get_attendee_picture | GET …/attendees/{attendee_id}/picture | All |
| 1:1 chats with an attendee. | list_attendee_chats | GET …/attendees/{attendee_id}/chats | All |
| Messages with an attendee. | list_attendee_messages | GET …/attendees/{attendee_id}/messages | All |
| React to a message. | add_message_reaction | POST …/messages/{message_id}/reaction | All |
| Remove your reaction from a message. | remove_message_reaction | DELETE …/messages/{message_id}/reaction | All |
| Delete a chat. WhatsApp and LinkedIn. | delete_chat | DELETE …/chats/{chat_id} | WhatsApp, LinkedIn |
| Delete a message. WhatsApp and LinkedIn. LinkedIn only within about an hour. | delete_message | DELETE …/messages/{message_id} | WhatsApp, LinkedIn |
| Edit a message. WhatsApp and LinkedIn Classic. | edit_message | PATCH …/messages/{message_id} | WhatsApp, LinkedIn |
| Sync chats for an attendee. | sync_attendee | GET …/attendees/{attendee_id}/sync | All |
| What it does | MCP tool | REST | Channels |
|---|---|---|---|
| Your emails, newest first. Filter by folder, by address or by date. | list_emails | GET …/emails | |
| The contacts saved in your mailbox. | list_email_contacts | GET …/email-contacts | |
| One email, with its text and attachments. | get_email | GET …/emails/{email_id} | |
| Send one email to one person, or reply on a thread. Never a bulk send. | send_email | POST …/emails | |
| Move an email to the trash. | delete_email | DELETE …/emails/{email_id} | |
| Mark an email read or unread, or move it to another folder. | update_email | PATCH …/emails/{email_id} | |
| A file attached to an email. | get_email_attachment | GET …/emails/{email_id}/attachments/{attachment_id} | |
| Your mail folders, such as the inbox and sent mail. | list_email_folders | GET …/email-folders | |
| One mail folder. | get_email_folder | GET …/email-folders/{folder_id} | |
| Save an email as a draft for you to check and send yourself. | create_email_draft | POST …/email-drafts |
People
| What it does | MCP tool | REST | Channels |
|---|---|---|---|
| A person’s profile. | get_profile | GET …/users/{identifier} | All |
| The connected account profile. | get_own_profile | GET …/profile | All |
| Edit the connected profile. Only fields the channel allows are applied. | edit_own_profile | PATCH …/profile | All |
| Relations of the account. Paced like profile views. | list_relations | GET …/relations | All |
| Accounts this account follows. | list_following | GET …/following | All |
| Followers of this account. | list_followers | GET …/followers | All |
| 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 | All |
| Reactions by a person. | list_user_reactions | GET …/users/{identifier}/reactions | All |
Posts and comments
| What it does | MCP tool | REST | Channels |
|---|---|---|---|
| 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 | LinkedIn, Instagram |
| 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 | LinkedIn, Instagram |
| Publish a post at a set local time, once or every week or month, with an optional first comment. | schedule_post | POST …/scheduled-posts | LinkedIn, Instagram |
| Posts waiting to be published, and the ones already out. | list_scheduled_posts | GET /v1/messaging/scheduled-posts | LinkedIn, Instagram |
| Change a scheduled post, its time or how often it repeats. | update_scheduled_post | PATCH /v1/messaging/scheduled-posts/{scheduled_post_id} | LinkedIn, Instagram |
| Cancel a scheduled post. | cancel_scheduled_post | DELETE /v1/messaging/scheduled-posts/{scheduled_post_id} | LinkedIn, Instagram |
| Comments on a post. | list_comments | GET …/posts/{post_id}/comments | LinkedIn, Instagram |
| Comment on a post, or answer a comment. | comment_on_post | POST …/posts/{post_id}/comments | LinkedIn, Instagram |
| Delete one of your comments. | delete_comment | DELETE …/posts/{post_id}/comments/{comment_id} | LinkedIn, Instagram |
| 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 | LinkedIn, Instagram |
| Answer a comment with a private message, when the platform allows it. | private_reply | POST …/posts/{post_id}/comments/{comment_id}/private-reply | |
| Reactions on a post or, with comment_id, a comment. | list_post_reactions | GET …/posts/{post_id}/reactions | LinkedIn, Instagram |
LinkedIn invitations and search
| What it does | MCP tool | REST | Channels |
|---|---|---|---|
| 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 | Channels |
|---|---|---|---|
| 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 | Channels |
|---|---|---|---|
| Send a message at a set local time, inside working hours you choose. | schedule_message | POST /v1/messaging/schedules | All |
| Messages waiting to be sent. | list_schedules | GET /v1/messaging/schedules | All |
| Change a scheduled message. | update_schedule | PATCH /v1/messaging/schedules/{schedule_id} | All |
| Cancel a scheduled message. | cancel_schedule | DELETE /v1/messaging/schedules/{schedule_id} | All |
| 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 | All |
| Your automations. | list_routines | GET /v1/messaging/routines | All |
| Change or pause an automation. | update_routine | PATCH /v1/messaging/routines/{routine_id} | All |
| Delete an automation. | delete_routine | DELETE /v1/messaging/routines/{routine_id} | All |
| What an automation did, and when. | list_routine_runs | GET /v1/messaging/routines/{routine_id}/runs | All |
Pause and approvals
| What it does | MCP tool | REST | Channels |
|---|---|---|---|
| Stop every message, post, comment, invitation, scheduled message and routine at once. Reading keeps working. | pause_all_sending | POST /v1/messaging/pause | All |
| Start sending again after a pause. Waiting scheduled messages and routines carry on. | resume_all_sending | POST /v1/messaging/resume | All |
| Replies, new chats, posts and comments waiting for you to approve them. | list_approvals | GET /v1/messaging/approvals | All |
| Send a waiting message or post as it is, or after you edit the text. | approve | POST /v1/messaging/approvals/{approval_id}/approve | All |
| Turn down a waiting message or post, so it is never sent. | reject | POST /v1/messaging/approvals/{approval_id}/reject | All |
Accounts
| What it does | MCP tool | REST | Channels |
|---|---|---|---|
| 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 | All |
| Whether an account is working, what to do if not, and how much room it has left today. | get_account_health | GET …/health | All |
| A link to connect a new account, or to reconnect one. | create_messaging_connect_link | POST /v1/messaging/accounts/connect-link | All |
| Disconnect an account. | disconnect_messaging_account | DELETE … | All |
| Status of one connected account. | get_connected_account | GET … | All |
| Start reconnecting an account that needs a sign-in. | reconnect_account | POST …/reconnect | All |
| Enter a sign-in or verification code the platform asked for. The code is not stored. | solve_checkpoint | POST …/checkpoint | All |
| Ask the platform to send the verification code again. | resend_checkpoint | POST …/checkpoint/resend | All |
| Restart an account that has stopped syncing. | restart_account | POST …/restart | All |
| Fetch an account’s messages again from the platform. | resync_account | POST …/sync | All |
Usage and billing
| What it does | MCP tool | REST | Channels |
|---|---|---|---|
| Report a bug, a missing feature or a docs gap to the Spaces team. | send_feedback | POST /v1/feedback | All |
| Messages sent today and this week, and how much room is left on each account. | get_messaging_usage | GET /v1/messaging/usage | All |
| 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 | All |
| Your plan and billing status. | get_messaging_billing | GET /v1/messaging/billing | All |
| A checkout link to choose a plan. | create_messaging_billing_checkout | POST /v1/messaging/billing/checkout | All |
Ads (early access)
Launch, moderate and report on ads through the same key and MCP server. Everything is created paused; anything that would start or raise spending waits for a confirmation, inside caps the owner sets. How ads work.
Launch
| What it does | MCP tool | REST |
|---|---|---|
| Facebook Pages this ad account can advertise as. | list_ad_pages | GET /v1/ads/accounts/{ad_account_id}/pages |
| Pixels (datasets) this ad account can send conversions to. | list_ad_pixels | GET /v1/ads/accounts/{ad_account_id}/pixels |
| Create a campaign. It is always created paused. | create_ad_campaign | POST /v1/ads/accounts/{ad_account_id}/campaigns |
| Create an ad set with a budget, schedule and audience. It is always created paused. | create_ad_set | POST /v1/ads/accounts/{ad_account_id}/ad-sets |
| Create an ad from an image, text and a link, posted as one of your Pages. It is always created paused. | create_ad | POST /v1/ads/accounts/{ad_account_id}/ads |
| Upload an image for ads. Returns the image_hash that create_ad needs. | upload_ad_image | POST /v1/ads/accounts/{ad_account_id}/images |
Moderate
| What it does | MCP tool | REST |
|---|---|---|
| Lower the daily budget cap or monthly spend cap, or require a person to approve. Raising a cap is done by a person in the dashboard. | update_ad_limits | PATCH /v1/ads/accounts/{ad_account_id}/limits |
| Rename a campaign or change its budget. Raising the budget of a running campaign waits for a confirmation. | update_ad_campaign | PATCH /v1/ads/accounts/{ad_account_id}/campaigns/{campaign_id} |
| Rename an ad set or change its budget or end time. Raising the budget of a running ad set waits for a confirmation. | update_ad_set | PATCH /v1/ads/accounts/{ad_account_id}/ad-sets/{ad_set_id} |
| Pause a campaign, ad set or ad. Pausing never spends money, so it is done straight away. | pause_ad_object | POST /v1/ads/accounts/{ad_account_id}/objects/{object_id}/pause |
| Turn a paused campaign, ad set or ad back on. Waits for a confirmation, inside your caps. | resume_ad_object | POST /v1/ads/accounts/{ad_account_id}/objects/{object_id}/resume |
| Pause, turn on or set the budget of a campaign, ad set or ad on a schedule, optionally only when a number crosses a line (pause when a click costs over 2). Pausing starts straight away; turning on and budgets wait for a one-time confirmation, and every run checks your caps. | create_ad_routine | POST /v1/ads/accounts/{ad_account_id}/routines |
| Ad routines in this workspace, with their schedule and whether they are on. Runs are in list_routine_runs. | list_ad_routines | GET /v1/ads/routines |
| Pause or turn back on an ad routine. One that can spend only turns on once it has been approved. | update_ad_routine | PATCH /v1/ads/routines/{routine_id} |
| Delete an ad routine and cancel its waiting runs. | delete_ad_routine | DELETE /v1/ads/routines/{routine_id} |
| Changes waiting to be confirmed, and recent decisions. | list_ad_confirmations | GET /v1/ads/confirmations |
| One change waiting to be confirmed, in plain words. | get_ad_confirmation | GET /v1/ads/confirmations/{confirmation_id} |
| Carry out a change that can spend money, after the person has said yes. Caps are checked again first. | confirm_ad_change | POST /v1/ads/confirmations/{confirmation_id}/confirm |
| Cancel a change that is waiting to be confirmed. | cancel_ad_change | POST /v1/ads/confirmations/{confirmation_id}/cancel |
Report
| What it does | MCP tool | REST |
|---|---|---|
| Campaigns in the ad account, with status and budget. | list_ad_campaigns | GET /v1/ads/accounts/{ad_account_id}/campaigns |
| Ad sets, for one campaign or the whole account. | list_ad_sets | GET /v1/ads/accounts/{ad_account_id}/ad-sets |
| Ads, for one ad set or the whole account. | list_ads | GET /v1/ads/accounts/{ad_account_id}/ads |
| Spend and results by account, campaign, ad set or ad, for a date range. | get_ad_insights | GET /v1/ads/accounts/{ad_account_id}/insights |
| Send sales, leads or other results back to the network so it can optimize. Personal details are hashed before they leave Spaces. | send_ad_conversions | POST /v1/ads/accounts/{ad_account_id}/conversions |
Connect and caps
| What it does | MCP tool | REST |
|---|---|---|
| Ad networks you can connect, and which are live. | list_ad_networks | GET /v1/ads/networks |
| A link the owner opens to connect an ad account. Nothing is connected until they sign in and approve. | create_ads_connect_link | POST /v1/ads/connect-link |
| Connected ad accounts, with their caps and approval setting. | list_ad_accounts | GET /v1/ads/accounts |
| One ad account: caps, spend this month by what Spaces runs, and active daily budgets. | get_ad_account | GET /v1/ads/accounts/{ad_account_id} |
| Stop managing an ad account. Campaigns keep their current status on the network. | disconnect_ad_account | DELETE /v1/ads/accounts/{ad_account_id} |