---
title: "Gemini CLI + Posty: schedule posts through MCP | Posty"
description: "From Gemini CLI, over MCP, you can schedule posts to 12+ social platforms. You write the announcement where you already work."
canonical: https://posty.hu/en/ai/gemini
source: https://posty.hu/en/ai/gemini.md
---

![Gemini](https://posty.hu/icons/ai/gemini.svg)

Gemini CLI and Posty

# Gemini CLI schedules where you work

Gemini CLI writes the post in the terminal, and we schedule it. You do not have to switch tools.

[Get started](https://posty.hu/regisztracio)[How to connect](#igy-mukodik)

Paste this to Gemini:

Install the Posty CLI: npm install -g posty-cli, then log in: posty auth:login. The package SKILL.md file describes every command, details: https://posty.hu/ai/gemini

Getting started

## The CLI in four commands

You install the CLI, sign in, fetch your integrations, then create a post. After that, your release script can take over.

terminal

```
# Install the Posty CLI package
$ npm install -g posty-cli

# Sign in to your Posty account
$ posty auth:login

# Fetch your integrations
$ posty integrations:list
[{ "id": "cmf3k7…", "name": "Cafe · Instagram" }]

# Create and schedule the post
$ posty posts:create \
$   -c "New brunch menu this Saturday." \
$   -i "cmf3k7…" \
$   -s "2026-08-16 09:00" --timezone Europe/Budapest
✅ Post created successfully!
{ "id": "cmf7p2…", "state": "QUEUE" }
```

The CLI writes JSON to stdout, and status and errors to stderr. On error it exits with a non-zero code.

### One thread, one command

terminal

```
$ posty posts:create \
$   -c "We shipped 2.0. Three things changed. 1/3" \
$   -c "The calendar is faster. 2/3" \
$   -c "And there is a dark theme at last. 3/3" \
$   -d 5 \
$   -i "cmf3k7…" \
$   -s "2026-08-16T09:00:00+02:00"
```

Gemini session

## From code to a scheduled post

The announcement and the release happen in the same place. You reach Posty over MCP, the CLI or the REST API.

### Post from the session

Gemini CLI writes the post in the session you are already working in, then schedules it through Posty.

### Uploading media

You upload the media file first with the posty upload command. Pass the URL you get as the -m value, after the post -c flag.

### A calendar you can read and rearrange

Gemini CLI reads the posts on the calendar, finds the free slots, and rearranges the plan. That way it does not schedule the release post blindly.

### CLI as another way

If you need a command instead of MCP, the published posty-cli reaches the same account. posty posts:create also runs from a release script and from CI.

### Public REST API

The third way is the public REST API at api.posty.hu. You can reach the same Posty account from your own integration or automation too.

### Approval in the calendar

Gemini CLI creates and schedules the post, and you review it in the Posty calendar. You can approve the text and the time before it goes out.

How it connects

## Four steps to Gemini

You set up the accounts and the key. After that, Gemini hands the scheduling to Posty from the same session.

1

### Connect your accounts

On the Posty web app, you connect the social accounts you want to use through OAuth. You only have to do this once. After that, Gemini can reach the Posty integrations that belong to them.

OAuth on the Posty web app

terminal

```
$ posty integrations:list
[
  { "id": "cmf3k7…", "name": "Cafe · Instagram" },
  { "id": "cmf3k9…", "name": "Cafe · Facebook" }
]
```

2

### Create a key

Open Settings → Developers and create a key that starts with psty\_mcp\_…. You also get the complete setup block prepared for Gemini on the same page.

Key and ready-made Gemini block

.env

```
# Settings → Developers → New key
# We show the key once, when you create it.
 
# For the command line and the REST API:
POSTY_API_KEY=AZ_API_KULCSOD
 
# MCP clients get a separate key:
# psty_mcp_…
```

3

### Give it to Gemini

Paste the Posty block under the mcpServers key in ~/.gemini/settings.json, and put the address in the httpUrl field. The file is in your home directory, not in the project.

The required fields in settings.json

~/.gemini/settings.json

```
{
  "mcpServers": {
    "posty": {
      "httpUrl": "https://api.posty.hu/mcp/AZ_API_KULCSOD"
    }
  }
}
```

4

### Review the schedule

Gemini CLI writes the announcement, and Posty schedules it. Before it goes out, you review and approve the text, the platforms and the time in the Posty calendar.

Review in the Posty calendar

terminal

```
$ posty posts:list
[
  { "id": "cmf7p2…", "state": "QUEUE",
    "publishDate": "2026-08-16T07:00:00Z" },
  { "id": "cmf7q8…", "state": "DRAFT",
    "publishDate": "2026-08-18T06:30:00Z" }
]
```

![Gemini](https://posty.hu/icons/ai/gemini.svg)

In short

## What is Gemini?

Gemini is Google's language model. Its command-line version, Gemini CLI, runs in your terminal and can use external tools as an MCP client. As an MCP client it connects to Posty, so you can write and schedule the release announcement in the same place.

You finish the work, then you ask for the post in the same Gemini session. Gemini CLI writes it, and Posty schedules it. You do not have to switch tools, or start over in a separate interface.

Gemini CLI connects through its settings file: the Posty MCP block goes under mcpServers, and the address goes in the httpUrl field. You get the ready-made block on the Settings → Developers page.

### Writes next to the code

Gemini CLI drafts the post in your terminal, in the session you are already working in.

### Connects over MCP

The Posty MCP server receives Gemini's request, then schedules the post to the given social account. The service address is https://api.posty.hu/mcp.

### Your model writes

Gemini writes the text, not Posty. Posty has no built-in AI copywriter, on purpose, so you use your own model.

Built for agents

## A predictable interface for Gemini

Posty's responses and errors are easy to parse. You reach the same account three ways.

- Machine-readable JSON Command JSON output is easy to parse, so Gemini does not have to pull the data out of human prose.
- Clear error signals The CLI writes status and errors to stderr, and on error it exits with a non-zero code.
- Built-in skill file The SKILL.md in the npm package teaches the agent how to use the CLI, with no extra training.
- Flat command set A single flat command set handles posts, integrations, analytics, uploads, settings and login, with no hidden state.
- Three ways in You can reach the same Posty account over MCP, the published CLI and the public REST API.

SKILL.md

```
---
name: posty
description: Posty schedules and publishes social posts
  from the command line.
homepage: https://posty.hu
---
 
# Output contract
 
Every command prints its JSON result — and nothing
else — to stdout; status lines, warnings and errors
go to stderr, and every failure exits 1.
 
# Two Hard Rules (Read First)
 
Rule 1 — Authenticate before anything.
Rule 2 — Every file passed to `-m` MUST first go
through `posty upload`.
```

SKILL.md is part of the npm package. The agent can read it directly and learn the Posty CLI from it.

See how Posty connects to the other agents, and pick the path that fits your workflow.

[![ChatGPT](https://posty.hu/icons/ai/chatgpt.svg)ChatGPT](https://posty.hu/en/ai/chatgpt)[![Claude](https://posty.hu/icons/ai/claude.svg)Claude](https://posty.hu/en/ai/claude)[![OpenClaw](https://posty.hu/icons/ai/openclaw.svg)OpenClaw](https://posty.hu/en/ai/openclaw)[![Hermes Agent](https://posty.hu/icons/ai/hermes.svg)Hermes](https://posty.hu/en/ai/hermes)[![Muse](https://posty.hu/icons/ai/muse.svg)Muse](https://posty.hu/en/ai/muse)[All AI integrations](https://posty.hu/en/ai)

Real commands

## The full Posty CLI

The posty commands cover posts, integrations, analytics, uploads, settings and authentication. posty posts:create also runs from a release script or from CI, if POSTY\_API\_KEY is in the environment.

Posts

`posty posts:create`New post: scheduled, as a draft, or published right away.

`posty posts:list`Posts in the given period. You can filter by client group too.

`posty posts:delete <id>`Delete a post by id.

`posty posts:find-slot <id>`The next free publishing time for a social account.

`posty posts:status <id>`Switch a post between draft and scheduled.

`posty posts:missing <id>`Content already on the platform for a post with a missing id.

`posty posts:connect <id>`Connect a post to content that is already published.

Social accounts

`posty integrations:list`Connected social accounts and their ids. This is what the -i flag needs.

`posty integrations:groups`The list of client groups, if you work with more than one brand.

`posty integrations:settings <id>`An account's settings schema, rules, length limit, and tools.

`posty integrations:trigger <id> <method>`Call a platform tool for extra data, for example to search for music.

Media and analytics

`posty upload <fájl>`Upload a media file. The URL you get back goes into the posts:create -m flag.

`posty analytics:platform <id>`A social account's stats going back the given number of days.

`posty analytics:post <id>`Performance of a single post.

Login and settings

`posty auth:login`Log in with OAuth2 device authorization: the browser opens, you approve.

`posty auth:logout`Clear stored login data.

`posty auth:status`Shows whether you're logged in, and checks access too.

`posty config:set <kulcs> <érték>`Save a CLI setting, for example the default timezone.

`posty config:get [kulcs]`Print the saved settings.

posts:create flags

`-c, --content`The post text. Repeat it to make a thread: the first is the post, the rest are comments.

`-m, --media`Media for the -c that comes before it. The URL has to come from posty upload.

`-i, --integrations`Ids of the target social accounts, comma-separated.

`--date, -s`When to publish. Either with an explicit offset, or together with the --timezone flag.

`--timezone`IANA timezone name, for example Europe/Budapest. Only pass a date with no offset together with this.

`-t, --type`schedule (default), draft, or now.

`-d, --delay`Delay in MINUTES between items in the thread.

`--json`The full post description from a JSON file, when the flags are not enough.

`--settings`Platform-specific settings as JSON. The schema comes from integrations:settings.

The CLI writes JSON to stdout, and status and errors to stderr. On error it exits with a non-zero code.

Supported platforms

## One account, every channel

Connect your accounts in a few clicks, then post to every channel from Posty.

![TikTok](https://posty.hu/icons/brand/tiktok-app.svg)

### TikTok

![Instagram](https://posty.hu/icons/brand/instagram-app.svg)

### Instagram

![Facebook](https://posty.hu/icons/brand/facebook-app.svg)

### Facebook

![Threads](https://posty.hu/icons/brand/threads-app.svg)

### Threads

![LinkedIn](https://posty.hu/icons/brand/linkedin-app.svg)

### LinkedIn

YouTube

### YouTube

![X](https://posty.hu/icons/brand/x-app.svg)

### X

![Pinterest](https://posty.hu/icons/brand/pinterest-app.svg)

### Pinterest

coming soon

![Bluesky](https://posty.hu/icons/brand/bluesky-app.svg)

### Bluesky

![Google Business](https://posty.hu/icons/brand/gmb-app.svg)

### Google Business

coming soon

![Discord](https://posty.hu/icons/brand/discord-app.svg)

### Discord

![Telegram](https://posty.hu/icons/brand/telegram-app.svg)

### Telegram

![Slack](https://posty.hu/icons/brand/slack-app.svg)

### Slack

…and more to come

Pricing

## Hungarian pricing, no hidden costs

Minden csomag 7 napos ingyenes próbával indul, ma 0 Ft fizetendő, és bármikor lemondható. Forintban számlázunk, áfás számlával.

| Csomag | Havi | Éves (havi bontásban) | Éves egy összegben |
| --- | --- | --- | --- |
| Alap | 4 990 Ft/hó | 4 158 Ft/hó | 49 900 Ft |
| Pro | 8 990 Ft/hó | 7 492 Ft/hó | 89 900 Ft |
| Kreátor | 18 990 Ft/hó | 15 825 Ft/hó | 189 900 Ft |
| Csapat | 34 990 Ft/hó | 29 158 Ft/hó | 349 900 Ft |

Minden csomag tartalmazza:

- Korlátlan poszt
- Több fiók platformonként
- Időzítés
- Naptár nézet
- Ismétlődő posztok
- Poszt késleltetés
- Stúdió hozzáférés
- Analitika (béta)
- Poszt hozzászólások
- Sötét és világos mód

### Alap

For solo creators new to scheduling

- **Havi előfizetés:** 4 990 Ft/hó
- **Éves előfizetés:** 4 158 Ft/hó — évente egy összegben 49 900 Ft (2 hónap ajándék)

- 5 közösségi fiók
- 1 munkaterület
- Egy felhasználó
- ~~Haladó képszerkesztő~~
- ~~Virális videó és UGC sablonok~~
- ~~Automatizációk~~
- ~~API-hozzáférés~~
- ~~Posztolás AI-ügynökkel~~

### Pro — Most popular

If you create both images and videos

- **Havi előfizetés:** 8 990 Ft/hó
- **Éves előfizetés:** 7 492 Ft/hó — évente egy összegben 89 900 Ft (2 hónap ajándék)

- 10 közösségi fiók
- 1 munkaterület
- 3 felhasználó
- Haladó képszerkesztő
- Virális videó és UGC sablonok
- Automatizációk
- API-hozzáférés
- Posztolás AI-ügynökkel

### Kreátor

For creators managing multiple brands or clients

- **Havi előfizetés:** 18 990 Ft/hó
- **Éves előfizetés:** 15 825 Ft/hó — évente egy összegben 189 900 Ft (2 hónap ajándék)

- 30 közösségi fiók
- 5 munkaterület
- Korlátlan felhasználó
- Haladó képszerkesztő
- Virális videó és UGC sablonok
- Automatizációk
- API-hozzáférés
- Posztolás AI-ügynökkel

### Csapat — Highest limits

For agencies managing many channels

- **Havi előfizetés:** 34 990 Ft/hó
- **Éves előfizetés:** 29 158 Ft/hó — évente egy összegben 349 900 Ft (2 hónap ajándék)

- 100 közösségi fiók
- 15 munkaterület
- Korlátlan felhasználó
- Haladó képszerkesztő
- Virális videó és UGC sablonok
- Automatizációk
- API-hozzáférés
- Posztolás AI-ügynökkel

## Common questions

#### Why does Gemini not see the Posty MCP server?

Check that the Posty block is under the mcpServers key in ~/.gemini/settings.json, and that the address is in the httpUrl field. Then restart Gemini CLI: it only reads the settings at startup.

#### Does Gemini write the post, or Posty?

Gemini CLI writes the text. Posty schedules and handles it. Posty has no AI copywriter, on purpose, so you use your own model.

#### Can I review the post before it publishes?

Yes. Gemini CLI schedules the announcement, and you approve the text, the platforms and the time in the Posty calendar before it goes out.

#### How does media get into the post?

You upload the media file with the posty upload command. The URL you get goes into the -m value, right next to the -c content the media belongs to.

#### Can I use Posty from a release script or from CI?

Yes. posty posts:create runs from a release script and from CI, and POSTY\_API\_KEY can come from the environment. You install the CLI with npm install -g posty-cli; the command name is posty.

#### Which plans include MCP, the CLI and the REST API?

All three are available on the Pro, Kreátor and Csapat plans. Posty handles 12+ platforms, including Facebook, Instagram, TikTok, LinkedIn, X and YouTube.

Get started today

## Write it where you ship it.

Connect Gemini to Posty, and schedule the release post in the same session. Final review stays in the Posty calendar.

[Start your free trial](https://posty.hu/regisztracio)

7 days free · 0 Ft due today · cancel anytime
