MCP Guide
Building Outli.ne profiles with an AI agent
Outli.ne exposes a remote Model Context Protocol server so an AI agent — running on your own Claude (or any MCP client) — can create, manage, and optimize your profile. You curate; the agent builds. Outli.ne runs no inference of its own.
What do you want to do?
Pick your goal — each workflow is a copy-pasteable prompt ready to paste into Claude.
Keep it current →
You've been posting — sync your latest work to your profile.
Fill it out →
Your profile is sparse. Add the sections and cards it's missing.
Add something new →
New offer, service, course, or booking link to announce.
Optimize it →
See what's working, find the weak spot, fix it.
Go live →
Check the profile is ready, then publish.
Get started in 3 steps
Mint a PAT
Go to Dashboard → MCP tokens and create a Personal Access Token. Copy it — it's shown once.
Add the server to Claude
Drop the config snippet into your claude_desktop_config.json or Claude Code settings. Point it at https://outli.ne/api/mcp with your token as a Bearer header.
Say "build my profile"
Open a new Claude conversation and say: “Build out my Outli.ne profile.” The agent calls get_guidance first and follows the recommended loop automatically.
Example prompts to try
- “Build out my Outli.ne profile”
- “How's my profile doing this week?”
- “Import my last 10 Instagram posts”
- “Publish my profile”
- “What card kinds can I use for free?”
Using this page in Claude?
https://outli.ne/docs/mcp and paste it into Claude with a message like “Read this page and help me connect Claude to Outli.ne.” — the guide is plain text and Claude can follow it directly.Overview
The Outli.ne MCP server is a remote Streamable HTTP endpoint, owner-scoped per token. The server handles no inference — Claude (running on your account) is the brain; Outli.ne provides typed, permissioned tools that write directly to your profile. On connect, the server returns an in-band instructions block that orients the agent to the recommended loop and the cardinal rules, so you don't have to paste a system prompt.
Authentication
1. Mint a Personal Access Token (PAT)
- Go to Dashboard → MCP tokens at outli.ne/dashboard.
- Create a token with a label you'll recognize (e.g. “Claude Desktop”).
- Copy it once — it looks like
oln_pat_xxxxxxxx…. It is shown only at creation; stored hashed and cannot be retrieved later. Revoke and re-mint if you lose it.
A token is scoped to your account only. Every tool call operates on your own outline(s); there is no cross-account access, even for admins.
2. Connect the server
The MCP server URL:
https://outli.ne/api/mcpAuthenticate with a Bearer header:
Authorization: Bearer oln_pat_xxxxxxxx…Claude Desktop / Claude Code config
{
"mcpServers": {
"outline": {
"type": "http",
"url": "https://outli.ne/api/mcp",
"headers": { "Authorization": "Bearer oln_pat_xxxxxxxx…" }
}
}
}On connect, the server returns an instructions block orienting the agent to the recommended loop and the cardinal rules. You don't need to paste a system prompt — it's in-band.
How Claude builds your profile
Tell your agent: “Build out my Outli.ne profile” and it should follow this order. Each step maps to a tool:
| Step | Tool | What it does |
|---|---|---|
| 1 | get_guidance | Outli.ne's own playbook: goal→structure templates, section grammar by creator type, the free vs Pro card-kind catalogue. Start here. |
| 2 | get_taste_fingerprint | A compact summary of how you've curated before, so the agent matches your taste instead of starting cold. |
| 3 | import_from_instagram / import_from_url | Pull raw material (posts, captions, links) into your media library. |
| 4 | add_stack · add_card · update_card · reorder_cards | Build the profile to the chosen template. |
| 5 | set_social_links · set_seo | Finish identity + discoverability. set_seo requires Pro. |
| 6 | publish | Go live at your handle URL. |
| 7 | get_analytics | Read your last-7-days views, trend, clicks, and intent — then iterate. log_curation_decision records what you kept vs rejected so future builds get smarter. |
The cardinal rules (the agent is told these too)
- Stay in your voice; never invent facts not in your bio, captions, or what you tell it.
- Every card should have a photo cover — text-only cards look bare on the full-screen layout.
- CTA on the lead card of each stack, not every card.
Tools reference
Read
| get_guidance | Playbook, templates, and free/Pro card catalogue. |
| get_taste_fingerprint | Compact summary of past curation decisions. |
| get_profile | Full profile structure — stacks, cards, social links, SEO. |
| list_cards | All cards in a stack, in display order. |
| get_analytics | 7-day views, clicks, intent, and sparkline. |
Write
| add_stack | Create a new section. |
| add_card | Add a card to a stack. |
| update_card | Edit title, body, cover image, kind, or CTA on an existing card. |
| reorder_cards | Reorder cards within a stack. |
| set_social_links | Set handle/URL for each social platform. |
| set_seo | Set OG title, description, and image. Requires Pro. |
| publish | Make the profile live at the handle URL. |
Import
| import_from_instagram | Scrape and import posts from a public Instagram handle into the media library. |
| import_from_url | Import content from any public URL. |
Utility
| log_curation_decision | Record what you kept or rejected and why — improves future taste fingerprints. |
| delete_card | Remove a card. Returns a preview unless confirm:true is passed. |
| delete_stack | Remove a stack. Returns a preview unless confirm:true is passed. |
Analytics
get_analytics returns your real engagement for the last 7 days — free for everyone:
{
"outlineId": "42",
"slug": "yourhandle",
"window": "7d",
"stats": {
"views7d": 120, // profile pageviews, past 7 days (bots filtered)
"viewsPrev7d": 80, // prior 7 days, for the trend
"trendPct": 50, // +50% week over week (null if prior week had 0 views)
"clicks7d": 14, // link/button + social-icon clicks
"intent7d": 3, // booking + purchase intent events
"sparkline": [10, 12, 18, 20, 22, 19, 19] // daily views, oldest → newest
}
}If your profile isn't published yet, or analytics aren't configured, stats is null and a note explains the next step — the tool never fabricates numbers.
Ask things like “How's my profile doing this week, and which stack should I rework?” — the agent reads get_analytics, cross-references the structure with get_guidance, and proposes changes.
Rate limits
Calls are rate-limited per account — generous defaults designed for abuse prevention, not throttling normal use:
| Bucket | Limit | Tools |
|---|---|---|
| Reads | 300 / hour | get_guidance, get_analytics, get_profile, list_cards, get_taste_fingerprint, … |
| Writes | 120 / hour | add_card, update_card, publish, set_seo, … |
| Instagram imports | 20 / hour | import_from_instagram |
| Token creation | 20 / hour | (dashboard) |
Safety notes
- Destructive tools (
delete_card,delete_stack) return a preview unless you passconfirm:true, and refuse to remove the last card/stack. - Conversion card kinds (
contact,book-me,embed-booking,buy,email) andset_seorequire a Pro plan; the tool returns a clearFORBIDDEN_FEATUREerror if you're not entitled. - Every tool is owner-scoped — a token can only ever touch its own account's profiles.
Ready to connect? Generate your access token from the dashboard.
Go to Dashboard → Connect