Schedule Social Media Posts with LM Studio and a Local LLM
You can write social posts with a model running on your own computer and schedule them to X, LinkedIn, Telegram and five other networks by adding PostAxis to LM Studio's mcp.json. The model does the thinking locally; PostAxis only receives the finished post, its media links and the time it should go out. This guide is for people who prefer local models for privacy, cost or control, and want them to do real work beyond the chat window.
It takes about three minutes to connect. The parts worth reading slowly are the privacy section and the tips on getting a local model through a multi-step scheduling flow.
What you can automate with LM Studio
A local model is a private writing desk. Pair it with a scheduler and it covers most of a small team's social work:
- Drafting from private material: notes, internal docs or unreleased plans you paste into a local chat, turned into a public post without sending the source anywhere.
- Launch posts with a short X version and a longer LinkedIn version, scheduled together.
- A planned week of posts, checked against every network's rules before anything is saved.
- Immediate updates to a Telegram channel or Facebook Page.
- Drafts for review when you want the model to write and a person to approve.
What you need
- A PostAxis account. Every plan starts with a 7-day free trial.
- The PostAxis API add-on. LM Studio connects with an API key sent in a header, and keys need the add-on.
- At least one social account connected under Accounts in PostAxis.
- LM Studio with a model that supports tool calling, and enough memory to run it with a reasonable context length.
How to connect LM Studio to PostAxis (step by step)
-
Create your PostAxis account. Sign up at app.postaxis.io.
-
Connect your social accounts. In PostAxis, open Accounts and connect the networks you post to: Instagram, TikTok, YouTube, X, LinkedIn, Facebook, Threads or Telegram. The model can only post to accounts connected here, and it never sees your social media passwords.
-
Create an API key. Open Settings → API keys and click Create API key. Copy it now; it is shown only once.
-
Open mcp.json. In LM Studio, open the Program tab in the right sidebar and click Install → Edit mcp.json. Menu labels can shift between LM Studio versions, but
mcp.jsonis the file you want. -
Add the PostAxis entry. Paste this, replace
YOUR_API_KEYwith your key, and save. If you already have other servers, add only the"postaxis"block insidemcpServers.
{
"mcpServers": {
"postaxis": {
"url": "https://postaxis.io/api/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
-
Load a tool-capable model. Pick a model that supports tool calling and turn on the postaxis integration in the chat.
-
Check it works. Ask:
Which social accounts can you post to?
LM Studio asks you to confirm the tool call before it runs. Approve it, and the model should answer with your connected accounts. If it replies from imagination instead of calling a tool, the model is not using tools: switch models or check the integration is turned on.
What leaves your machine (and what doesn't)
This is the reason most people pick LM Studio, so it is worth being exact.
Stays local:
- The model itself and everything it generates while thinking.
- Anything you paste or attach in the chat, unless the model puts it into a tool call.
- Earlier drafts, rejected versions and your back-and-forth with the model.
Goes to PostAxis, over HTTPS:
- Your API key, in the
Authorizationheader of every request. - The arguments of each tool call you approve: post text, per-network captions, scheduled times, account choices and media URLs.
- Files you deliberately upload through a
create_upload_linklink.
Comes back into your local chat:
- Your list of workspaces and connected accounts, platform rules, and the posts you ask about.
Goes to the social networks:
- Only the post itself, when it publishes.
The practical safeguard is LM Studio's confirmation step. Before a tool runs, read the arguments. If the model quoted a line from your internal notes into a caption, you will see it there and can deny the call. Also remember that mcp.json holds your key in plain text on disk, so treat that file like any other secret.
4 workflows you can copy
Turn private notes into a public post
Paste internal material and ask for something safe to publish.
Below are my internal notes on this week's release. Write one X post (under 240
characters) and one LinkedIn post (two short paragraphs) for customers. Leave out
anything about pricing, partners or internal dates. Schedule both for tomorrow at
09:00 Europe/Amsterdam.
[paste notes here]
What the model does: writes the posts locally, then calls list_accounts, get_platform_rules and create_post with one caption per account. Only the two finished captions and the time reach PostAxis. Check the create_post arguments in the confirmation dialog before you approve.
Save a LinkedIn draft for a colleague
When someone else should have the final say.
Turn this paragraph into a LinkedIn post in a calm, first-person voice. Save it as
a draft in PostAxis, do not schedule it.
[paste paragraph]
What the model does: list_accounts, then create_post as a draft. It shows up under Drafts in PostAxis, where your colleague can edit and schedule it from the calendar.
Plan a week and validate it first
Larger plans are where smaller local models make mistakes, so let PostAxis check the work.
Plan five posts for next week, one a day at 10:00 America/Toronto, alternating X
and Threads, about tips for using our CSV export. Call create_posts_bulk with
validate_only set to true first and show me any errors. Do not save until I say so.
What the model does: builds the plan and calls create_posts_bulk with validate_only=true, which checks everything and saves nothing. Fix anything flagged, then tell it to save. Bulk calls take up to 50 posts and cannot publish immediately.
Post an update now
Post this to our Telegram channel now and tell me when it is live:
"Scheduled maintenance is finished. Everything is back to normal."
What the model does: create_post with publish now, then get_post to read the status and confirm.
Network limits LM Studio works within
| Network | Caption limit | Media rules |
|---|---|---|
| X (Twitter) | 280 characters | Optional; up to 4 images or one video |
| Threads | 500 characters | Optional; up to 10 images or one video |
| 3,000 characters | Optional; up to 9 images or one video | |
| Telegram | 4,096 characters, 1,024 with media | Optional; up to 10 images or one video |
Local models are often loose with character counts. That is fine, because PostAxis checks every post against the network's rules before saving and returns a clear error. The model reads it, shortens the caption and tries again, and nothing broken reaches your calendar.
Tips for better posts
- Use a bigger model for multi-step work. Any tool-capable model can schedule a single post. Larger instruction-tuned models follow the full flow (list accounts, check rules, validate, save) more reliably.
- Give it room. Tool results like platform rules and post lists take up context. If the model starts forgetting the request halfway, load it with a longer context length.
- Put your voice in the system prompt. LM Studio lets you set a system prompt for a chat. Add your audience, tone and hashtag rules, plus one line: "Always say the timezone and validate before saving more than one post."
- Validate first. Ask for
validate_onlyon anything with several posts. - Say the timezone. "09:00 Europe/Amsterdam", never just "9am". Without one, the agent uses UTC or whatever it was told.
- Prefer drafts while you learn a model. Until you trust how a model behaves, have it save drafts and schedule them yourself from the calendar.
Troubleshooting
The model answers but never calls a tool. It may not support tool calling, or the postaxis integration is off in the chat. Switch to a tool-capable model and enable the integration.
401 Unauthorized. Check the key in mcp.json is complete, starts after Bearer , and is still active under Settings → API keys.
No accounts are connected. Connect an account under Accounts in PostAxis. With several workspaces, name one: "use my Acme workspace".
A post was rejected before saving. The error names the rule it broke (caption length, media count, video length or format). Ask the model to fix it and try again.
Wrong posting time. Say the timezone in the request and ask the model to update the scheduled posts.
FAQ
Can a local LLM post to social media?
Yes. LM Studio can connect a local, tool-capable model to the PostAxis MCP server, which lets it draft, schedule and publish posts on any account you connected in PostAxis.
Does my content leave my computer?
Only what the model sends to PostAxis to schedule: the post text, media links and times, plus your API key. Writing happens locally in LM Studio, and you approve every tool call before it runs.
Which models work?
Any model LM Studio can run with tool calling. Larger instruction-tuned models follow the multi-step scheduling flow more reliably.
Is it free?
LM Studio runs models on your hardware. PostAxis starts with a 7-day free trial on every plan, and connecting with an API key needs the API add-on.
How do I cut off access?
Revoke the key under Settings → API keys in PostAxis. It stops working immediately, even if mcp.json still contains it.
A local model and a scheduler make a neat split: your drafts stay on your machine, and only the finished post goes out. The LM Studio agent page has the setup in brief, the MCP reference documents all 11 tools, and the complete guide to AI agents for social media compares local and hosted options. You might also like the guides for Mistral Le Chat and Goose. Start your free trial when you are ready.
Ready to simplify your social media?
PostAxis helps builders and creators publish to all platforms from one dashboard with scheduling, cross-posting, and automation.
Join the waitlist →