MCP server

Let Claude work in Harbor

Any MCP client can read Brand Memory, the digest and best times, suggest ideas, draft and propose posts. It can't publish: proposals wait in Approvals like every agent's. Endpoint https://harbor-api.mexy.ai/mcp (streamable-http).

Scopes
Claude Code
claude mcp add --transport http harbor https://harbor-api.mexy.ai/mcp \
  --header "Authorization: Bearer hbr_your_key"
Claude Desktop and other stdio clients
{
  "mcpServers": {
    "harbor": {
      "command": "pnpm",
      "args": [
        "--dir",
        "/path/to/harbor/apps/api",
        "mcp:stdio"
      ],
      "env": {
        "HARBOR_API_URL": "https://harbor-api.mexy.ai",
        "HARBOR_API_KEY": "hbr_your_key"
      }
    }
  }
}
Relays to the running API, so keep the API up while you use it.

API keys

No keys yet. Create one above to connect a client.

What agents can do

ToolScopeWhat it does
list_brandsreadList the brands in this workspace with their connected channels.
get_brand_memoryreadA brand's Brand Memory: voice (summary, do, avoid, banned words), audiences, products, knowledge, style rules and example posts.
list_postsreadA brand's posts, newest first, with their latest metrics and verdict against the brand's median.
get_postreadOne post with its outcome (verdict against the median), its growth curve (snapshots) and the baseline curve.
get_digestreadThe brand's latest weekly digest: headline, stats, wins, misses, patterns and recommendations.
best_timesreadThe best posting slots (weekday 0 = Sunday, hour 0-23, server local time), scored 0..1, for one platform or all of the brand’s platforms.
list_campaignsreadCampaigns, newest first, optionally for one brand.
list_ideasreadA brand's ideas, most recently updated first, optionally by status (idea, drafting, approved, scheduled, live).
list_approvalsreadThe approval queue: posts agents proposed, each with its draft, slot, reason and voice checks. Pending first.
list_memory_proposalsreadBrand Memory changes agents proposed (the voice refresh): each change with why, its lift and the posts behind it. Pending first. A person applies them in Harbor.
get_conversationreadWhat people say in replies to a brand's posts, grouped into themes (questions, objections, praise, requests), largest first.
list_mediareadA brand's media library, newest first: images and videos with alt text, tags, focal point and the public URL of each crop (original, square, portrait, landscape, wide, story). Attach one to a draft with attach_media.
list_agentsreadHarbor's built-in agents: what each does, its inputs and its steps. Run one with run_agent.
get_agent_runreadOne agent or model run with its inputs, steps, child runs and the approvals it queued.
create_ideawriteAdd an idea to a brand. It starts in the Idea column.
suggest_ideaswriteSuggest ideas for a brand from its signals (post performance, audience pain points); each cites a signal.
draft_ideawriteDraft an idea for one or more platforms (x, linkedin, instagram, threads). Each draft is a new version.
propose_postwritePropose a draft for posting. Creates a pending approval (a person approves, edits or rejects it); nothing is published or scheduled. Without proposedFor it takes the next free best-time slot on the channel.
attach_mediawriteAttach an image or video from the brand's media library to a draft's first part. Saves a new draft version; the crop defaults to the platform's preferred one (variant: original, square, portrait, landscape, wide or story). Pending approvals of the draft move to the new version.
run_agentwriteRun one of the built-in agents (see list_agents) with its inputs. Agents never publish; posts they want out become approvals.
add_knowledgewriteAdd a note to a brand's Brand Memory knowledge (facts, positioning, FAQs the drafts should know).
save_to_memorywriteSave a post, reply, reply theme, signal or draft to a brand's Brand Memory as a knowledge note, an excerpt, an example post, or a do / avoid rule. Rules link back to their source as evidence.
add_canvas_notewritePut a sticky note on a campaign's canvas, to the right of everything on it.

Resources: harbor://brands/{brandId}/memory

Redirect URLs to register

Each platform's developer app needs its URL registered exactly. Built from HARBOR_API_URL = https://harbor-api.mexy.ai.

PlatformRedirect URLMetrics
Xhttps://harbor-api.mexy.ai/v1/channels/x/callbackYes
LinkedInhttps://harbor-api.mexy.ai/v1/channels/linkedin/callbackNot available
Instagramhttps://harbor-api.mexy.ai/v1/channels/instagram/callbackYes
Threadshttps://harbor-api.mexy.ai/v1/channels/threads/callbackYes

Install

  • API (server side)http://harbor-api.mexy.svc.cluster.local:4800
  • API (your browser)http://localhost:4800
  • API (public: OAuth callbacks, media, MCP only)https://harbor-api.mexy.ai
  • Setup guidedocs/setup/platform-apps.md