MCP / AI agent integration
Inkie exposes a Model Context Protocol (MCP) server so AI agents - Claude, Cursor, Windsurf, and others - can create and schedule content directly.
Endpoint
https://app.inkie.ink/api/mcpThis is a Streamable HTTP MCP endpoint (MCP spec 2025-03-26). A legacy SSE endpoint is still available at /api/mcp/sse for clients that haven't migrated yet.
Tool discovery: https://app.inkie.ink/.well-known/mcp/manifest
Authentication
Inkie's MCP server speaks OAuth 2.1. Most modern clients (Claude Desktop, Claude Code, Cursor) handle this automatically - on first connect they pop a browser window, you sign in to Inkie, and the client stores the token from there on. You don't need to set an Authorization header by hand.
If your client doesn't speak OAuth yet, fall back to an API key: get one from Settings → API keys and pass it as a Bearer token:
Authorization: Bearer YOUR_API_KEYSet up in Claude Desktop
Add this to your Claude Desktop config (claude_desktop_config.json) - just the URL, no headers:
{
"mcpServers": {
"inkie": {
"url": "https://app.inkie.ink/api/mcp"
}
}
}Restart Claude Desktop. The first time you ask Claude to use Inkie, a browser window opens for sign-in; after that, the client remembers you.
Set up in Claude Code
claude mcp add inkie \
--transport http \
--url https://app.inkie.ink/api/mcpClaude Code triggers the OAuth flow on first use - sign in once and it's wired.
Set up in Cursor
In Cursor settings → MCP, add a new server:
- Name: Inkie
- Transport: HTTP
- URL:
https://app.inkie.ink/api/mcp
No header to set - Cursor will negotiate OAuth on first request.
Available tools
| Tool | What it does |
|---|---|
create_social_post | Schedule a social post with complete content |
generate_social_post | Generate a social post with AI from a brief |
get_post | Retrieve a social post's details |
get_post_status | Poll generation progress |
update_social_post | Update the caption, short-form caption or target platforms on an existing social post (or a blog's promo post) |
create_blog_post | Schedule a blog post with complete content |
generate_blog_post | Generate a blog post with AI from a topic |
get_blog | Retrieve a blog post's details |
get_blog_status | Poll generation progress |
update_blog | Update an existing blog post's title, body, meta description, slug or published status |
delete_blog | Permanently delete an unpublished blog post and its content-plan item. Refuses already-published blogs |
get_content_plan | Get the content plan for a given month |
get_platforms | List enabled publishing platforms |
attach_video_asset | Attach an already-uploaded, ready video to a content item, replacing any existing image or video |
update_image | Replace the image on an existing content item (blog or social post) with a new image from a public URL |
delete_item | Permanently delete a content-plan item of any type (social post, carousel or blog). Refuses published items |
reschedule_item | Move a content item to a new scheduled date, including across months, if it's not yet published |
list_onboarding_docs | List all onboarding documents for the client, with completion status |
get_onboarding_doc | Get an onboarding document's content by reference ID |
update_onboarding_doc | Update or create an onboarding document's content |
get_onboarding_prompt | Get the AI prompt used to guide an onboarding conversation for a given document |
Attaching a video
attach_video_asset is the one genuinely multi-step tool. A video is uploaded and processed separately, then attached to an existing content item. The full flow is three calls:
- Upload the video with
POST /api/video-upload-url. It returns aclientImageId. - Poll the same route's
GET(passing theclientImageIdas?assetId) until it reports the video asready. A still-processing video is rejected. - Call
attach_video_assetwith{ contentItemId, clientImageId }. ThecontentItemIdis the same id thatget_blogandget_postreturn.
Example prompt
Once connected, you can instruct your AI agent naturally:
"Schedule a LinkedIn post for next Tuesday at 9am: 'Three things we learned shipping our first AI-powered feature. Thread below.' Use the Inkie MCP tool."
Discovery manifest
The manifest at /.well-known/mcp/manifest lists all tools and their schemas. Most MCP clients auto-discover tools from this endpoint, so you shouldn't need to configure individual tools manually.
See also
- Agent discovery (ARD) - how agents find and verify Inkie before connecting
- Get an API key
- OpenAPI spec - same surface, REST flavour