# Postlore > Postlore is a social media workspace for creators, businesses and agencies. It knows each brand's voice and what has performed for its accounts, and uses that to find open posting slots, draft platform-native posts, score drafts, schedule and publish, and run Autopilot so an account never goes quiet. Agents can use a Postlore account through its hosted MCP server. The agent acts as the user who connected it, within that user's plan limits. ## Connect - MCP endpoint: https://api.postlore.com/mcp (Streamable HTTP) - Sign in with Postlore (OAuth 2.1, PKCE): paste the endpoint into claude.ai, ChatGPT or any MCP client that supports remote servers. Client ID Metadata Documents and Dynamic Client Registration are both supported. Discovery: https://api.postlore.com/.well-known/oauth-protected-resource/mcp - API key: create one in Postlore under Settings → Agents and send `Authorization: Bearer pl_live_…`. Best for Claude Code, Cursor and scripts. - Claude Code: `claude mcp add --transport http postlore https://api.postlore.com/mcp`, or the plugin (MCP server plus skills): `/plugin marketplace add https://postlore.com/claude/marketplace.json` then `/plugin install postlore@postlore` - Plain HTTP (no MCP): `POST https://api.postlore.com/v1/tools/{tool}` with the tool's arguments as a JSON body and the same bearer token. `GET /v1/tools` lists the tools a key can use with their JSON Schemas. OpenAPI 3.1: https://api.postlore.com/openapi.json - Agent skills: https://postlore.com/.well-known/agent-skills/index.json (fill-calendar-gaps, weekly-content-run) - Server card: https://api.postlore.com/.well-known/mcp/server-card.json - Developer docs: https://postlore.com/developers ## Permissions (scopes) - `workspace:read`: workspaces, brand voice, posts, plan and usage - `insights:read`: best posting times, top posts, performance patterns, draft scores - `drafts:write`: AI drafting (ideas, platform adaptation, hashtags, coaching) and creating or editing drafts - `posts:schedule`: scheduling, at least 15 minutes ahead unless the connection can also publish - `posts:publish`: publishing immediately. Always opt-in by the user. - `autopilot:write`: Autopilot schedule ## Tools - check_calendar: start here. Open prime posting slots with nothing scheduled, and days since the last post. - list_workspaces (plan, posts left, connected platforms), get_brand_voice (sections and full text), list_posts, list_top_posts, get_performance_context - generate_ideas, adapt_for_platforms, generate_hashtags, coach_draft: drafting in the brand voice (uses the account's AI allowance; results report what's left) - score_draft: 0-100 against what has worked for this account, with fixes. Instant. - create_draft, update_draft, schedule_post, publish_post: accept `idempotency_key` where they change state - get_autopilot, set_autopilot Resources: `postlore://workspace/{id}/brand-voice` and `postlore://workspace/{id}/performance`. ## Good to know - Drafts are always safe; nothing is published unless the connection has `posts:publish`. - Workspaces that require approval send a team member's posts for review instead of publishing them. - Best posting hours and days are in each workspace's own timezone (`list_workspaces` shows it). Exact instants such as `slot_utc` and `scheduled_at` are ISO 8601 UTC; `slot_local` is the same instant on the workspace's clock. - Example: `curl -X POST https://api.postlore.com/v1/tools/check_calendar -H "Authorization: Bearer $POSTLORE_API_KEY" -H "Content-Type: application/json" -d '{"days": 7}'` - Errors come back as `{ "error": { "code", "message" } }`, e.g. `insufficient_scope`, `schedule_too_soon`, `plan_required`, `workspace_required`, `platform_auth_expired`.