Settings
How this Harbor install connects to the platforms, and how agents connect to Harbor.
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).
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
| Tool | Scope | What it does |
|---|---|---|
list_brands | read | List the brands in this workspace with their connected channels. |
get_brand_memory | read | A brand's Brand Memory: voice (summary, do, avoid, banned words), audiences, products, knowledge, style rules and example posts. |
list_posts | read | A brand's posts, newest first, with their latest metrics and verdict against the brand's median. |
get_post | read | One post with its outcome (verdict against the median), its growth curve (snapshots) and the baseline curve. |
get_digest | read | The brand's latest weekly digest: headline, stats, wins, misses, patterns and recommendations. |
best_times | read | The 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_campaigns | read | Campaigns, newest first, optionally for one brand. |
list_ideas | read | A brand's ideas, most recently updated first, optionally by status (idea, drafting, approved, scheduled, live). |
list_approvals | read | The approval queue: posts agents proposed, each with its draft, slot, reason and voice checks. Pending first. |
list_memory_proposals | read | Brand 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_conversation | read | What people say in replies to a brand's posts, grouped into themes (questions, objections, praise, requests), largest first. |
list_media | read | A 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_agents | read | Harbor's built-in agents: what each does, its inputs and its steps. Run one with run_agent. |
get_agent_run | read | One agent or model run with its inputs, steps, child runs and the approvals it queued. |
create_idea | write | Add an idea to a brand. It starts in the Idea column. |
suggest_ideas | write | Suggest ideas for a brand from its signals (post performance, audience pain points); each cites a signal. |
draft_idea | write | Draft an idea for one or more platforms (x, linkedin, instagram, threads). Each draft is a new version. |
propose_post | write | Propose 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_media | write | Attach 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_agent | write | Run one of the built-in agents (see list_agents) with its inputs. Agents never publish; posts they want out become approvals. |
add_knowledge | write | Add a note to a brand's Brand Memory knowledge (facts, positioning, FAQs the drafts should know). |
save_to_memory | write | Save 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_note | write | Put 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.
| Platform | Redirect URL | Metrics |
|---|---|---|
| X | https://harbor-api.mexy.ai/v1/channels/x/callback | Yes |
https://harbor-api.mexy.ai/v1/channels/linkedin/callback | Not available | |
https://harbor-api.mexy.ai/v1/channels/instagram/callback | Yes | |
| Threads | https://harbor-api.mexy.ai/v1/channels/threads/callback | Yes |
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 guide
docs/setup/platform-apps.md