Liftli for developers and AI agents

Liftli is a content strategist and social manager that installs as an MCP, not an app. It runs inside the AI you already use, so an agent can plan, draft, publish and schedule to LinkedIn, X and Substack from the same conversation the user already works in. This page is the front door: connect it, and the workflows it unlocks.

Connect Liftli (one MCP URL)

Liftli is a single remote MCP server. The URL is the same across every client:

ClientHow to connect
Claude (desktop / web)Customize (briefcase icon) → Connectors → Add custom connector → paste the Remote MCP Server URL https://mcp.liftli.ai/mcp
Claude CodeOne command: claude mcp add --scope user --transport http liftli https://mcp.liftli.ai/mcp
ChatGPT (Developer Mode, beta)Settings → Apps & Connectors → Developer mode → add https://mcp.liftli.ai/mcp
Codex (beta)In ~/.codex/config.toml: [mcp_servers.liftli] with url = "https://mcp.liftli.ai/mcp", then codex mcp login liftli
Cursor (beta)Settings → MCP → Add server → the same URL
Antigravity / other MCP clientsAdd a remote (streamable-http) MCP server pointing at https://mcp.liftli.ai/mcp

After connecting, the user signs in once with a secure WorkOS login. Liftli then extracts their writing voice and starts drafting in it. No tokens, no credits, no AI markup: it runs inside the user's existing AI subscription.

What an agent can do with Liftli

Liftli is not a fixed set of buttons. It is an agent surface, so the ceiling is what you can ask an agent to do. A few real workflows:

Full capability list and the tool catalog are in llms.txt and the expanded llms-full.txt.

Free skills your agent can run locally

Separate from the MCP, all 28 of Liftli's free tools ship as installable skills. The agent's own model runs the distilled methodology locally, no account required:

Install all skills:

npx skills add liftli-ai/skills

One skill:

npx skills add liftli-ai/skills --skill linkedin-hook-generator

Browse all 28 at liftli.ai/skills, or read the machine-readable manifests: /.well-known/skills.json and /.well-known/agent-skills/index.json. Source: github.com/liftli-ai/skills.

Why agent-native, and why it is ban-safe

Most content tools are dashboards you open, or browser extensions that act on your logged-in session. LinkedIn's User Agreement prohibits scraping and extension-driven automation, and it enforces that. Liftli sits on the other side of that line: it publishes and schedules through the platforms' official APIs, connected only when the user explicitly links an account, and it never runs a bot action on a profile. Nothing publishes without the user's one-tap approval.

The agent-native shape is also the reason the tool inherits the user's context for free. It is already inside the assistant that holds the user's calls, code, and thinking. That is the layer where content ideas actually happen, and where an agent can carry them all the way to published.

Authentication

Two surfaces, two answers.

The free micro-tools API needs no credentials at all. GET /health, GET /version and everything under /api/v1/tools/ are open to anonymous callers. There is no key to request, no form to fill in, and no sales step — an agent can call them on first contact. They are rate limited per caller per day, and every successful generation tells you how many you have left.

The MCP endpoint uses OAuth 2.1 with PKCE. Point your client at https://mcp.liftli.ai/mcp. An unauthenticated initialize returns 401 with a WWW-Authenticate header naming the protected-resource metadata, exactly as RFC 9728 describes:

WWW-Authenticate: Bearer resource_metadata="https://mcp.liftli.ai/.well-known/oauth-protected-resource"

That document names https://auth.liftli.ai as the authorization server. It supports dynamic client registration, so an agent can register itself and complete the flow without a human provisioning credentials first. Authorization-code and device-code grants are both supported; PKCE is S256.

Request least privilege. The available scopes are openid (identify the account), profile, email, and offline_access (refresh without the user present). openid alone is enough to identify a signed-in Liftli account.

REST endpoints and example requests

The full machine-readable contract is /openapi.json (OpenAPI 3.1, with typed schemas, unique operationIds and declared OAuth scopes). Base URL: https://app.liftli.ai.

Discover which tools are available — call this first; it returns the valid values for the tool field.

curl https://app.liftli.ai/api/v1/tools/health

{"enabled": true,
 "tools": ["about-generator", "carousel-outline", "comment-generator", "content-ideas",
           "contrarian-angles", "devlog-to-post", "headline-generator", "hook-generator",
           "hot-take-check", "linkedin-to-x", "meeting-to-post", "poll-generator",
           "post-generator", "post-rewriter"]}

Run one generation. inputs is a flat map of strings; the accepted keys depend on the tool.

curl -X POST https://app.liftli.ai/api/v1/tools/generate \
  -H 'Content-Type: application/json' \
  -d '{"tool": "hook-generator",
       "inputs": {"topic": "why most AI posts sound the same",
                  "audience": "B2B founders"}}'

{"result": "Everyone wants the AI. Nobody wants the cleanup.",
 "remaining_today": 4}

Check service status and client compatibility.

curl https://app.liftli.ai/version

{"version": "1.4.6", "min_client_version": "1.0.0",
 "deprecated_endpoints": ["/log-reply"], "status": "stable"}

List the MCP tools (needs a bearer token from the OAuth flow above).

curl -X POST https://mcp.liftli.ai/mcp \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}'

Errors, rate limits and quotas

Every error is JSON — there are no HTML error pages on the API. A validation failure returns 422 with a detail array naming the offending field, so an agent can correct the call without guessing:

curl -X POST https://app.liftli.ai/api/v1/tools/generate \
  -H 'Content-Type: application/json' -d '{}'

HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json

{"detail": [{"type": "missing", "loc": ["body", "tool"], "msg": "Field required"}]}

Anything else returns the same shape with a string detail — for example a missing route gives 404 and {"detail": "Not Found"}.

The micro-tools API is quota'd per caller per day rather than per second. Read remaining_today on each successful response and stop when it reaches zero; a call past the quota returns 429. Treat 429 as retryable only after the quota window resets — retrying immediately will not succeed.

Versioning and deprecation policy

The API is versioned in the URL path: the current surface is /api/v1/. A new major version gets a new path prefix; v1 keeps working while it does.

Within a version we add fields but do not remove or repurpose them, and we do not change the type of an existing field. Treat unknown fields as forwards-compatible and ignore them rather than failing.

How you learn something is going away. GET /version is the machine-readable source of truth. It returns min_client_version (the oldest client still accepted) and deprecated_endpoints — an array of paths that still respond today but are scheduled for removal. Poll it, or check it at startup, and migrate off anything listed there.

curl https://app.liftli.ai/version

{"version": "1.4.6", "min_client_version": "1.0.0",
 "deprecated_endpoints": ["/log-reply"], "status": "stable"}

A deprecated endpoint stays available for at least 90 days after it first appears in deprecated_endpoints. Breaking changes are announced on the blog before they ship. If you are building against Liftli and need a longer window, say so — it is one person, and that conversation is easy to have.

Machine-readable resources

Frequently asked questions

How do I connect Liftli to Claude, ChatGPT, Cursor or Grok?

Liftli is a remote MCP server. In Claude, add a custom connector with the Remote MCP Server URL https://mcp.liftli.ai/mcp. In Claude Code, run one command: claude mcp add --scope user --transport http liftli https://mcp.liftli.ai/mcp. ChatGPT (Developer Mode), Codex, Cursor and Antigravity use the same URL. After connecting, the user signs in once with a secure WorkOS login, and Liftli learns their writing voice.

Is Liftli an API or an app?

Neither in the usual sense. Liftli is an MCP (Model Context Protocol) server that runs inside the AI assistant the user already uses. There is no dashboard to open and no separate app to context-switch into. The agent calls Liftli's tools in the same conversation where the user already works, so it inherits the user's real context instead of asking them to re-enter it.

What can an agent actually do with Liftli?

Everything a content team does, on request: build and remember a content strategy, mine the user's real work (voice notes, call transcripts, GitHub activity, chats, the news) for post ideas, draft in the user's extracted voice, run a plan to draft to critique to revise loop, publish and schedule to LinkedIn, X and Substack through official APIs, and score who engaged into a warm-lead list. Because it is an agent surface, you can also compose these with the user's other connected tools in one step.

Is it safe for the user's LinkedIn or X account?

Yes. Liftli never uses a browser extension, never scrapes, and never runs bot actions on the profile. Publishing and scheduling go through the platforms' official APIs, connected only when the user explicitly links an account, and nothing publishes without the user's one-tap approval. That is the ban-safe category by design.

Are the free tools and skills usable without connecting the MCP?

Yes. The 28 free tools at liftli.ai/tools run in the browser with no login. Every tool also ships as an installable skill your agent can run locally with npx skills add liftli-ai/skills. The skills are a distilled methodology your own model executes; the MCP is the full connected pipeline with the user's saved strategy and memory.

Give your agent a head of content.

One MCP URL. It plans, drafts, and ships to LinkedIn, X and Substack from inside the AI you already use, behind the user's one-tap approval. Free tier, no card.

Start free — no card

Liftli is also built for