Integrations & Getting Started
Sign up. Run.
Or plug an agent in.
Niche is the editorial intelligence MCP for individuals: two surfaces over the same engine. A human-facing content desk for creators, and a 25-tool MCP server for AI agents (Claude Desktop, Claude Code, Cursor, your own custom agent). Signal, angle, draft, render, publish, with verifier-checked claims and source provenance on every output. This page walks both audiences end-to-end.
Niche is a desk: signal in, story pick, angle pick, platform-native content, review, publish. The desk picks the story and the angle before writing, so you spend your attention on judgment, not drafting. Every tool response carries its sources, an ungrounded-claim flag, and source-diversity + recency checks — provenance on every output. The only editorial MCP that ships receipts.
Same engine, two surfaces. The web app at nicheangle.com/desk is the human-facing version; the MCP server at api.nicheangle.com/mcp is the agent-facing version. Both share your brand profile, voice profile, credit balance, and audit trail.
For users
Your first run, in three minutes
Sign up at nicheangle.com/login. Three days, 2,000 credits, no card. That covers about nine typical runs, enough to know if Niche fits your beat.
From /desk, type a niche in two to five words (“strength training for beginners over 40” beats “fitness”). Pick at least one platform. Hit Run the desk.
The desk runs in three decisions. First, pick from five to seven story candidates. Next, pick the angle (contrarian, analytical, or the underrated read). Last, review and edit drafts inline. Nothing publishes until you press File.
Set your brand kit
The brand kit threads visual + voice identity through every render. Drop a URL or a folder of files at /brand-kit and Niche extracts palette, fonts, logo, tagline, and voice notes in one pass. Every field is editable inline once it lands.
Studio and Operator tiers support multiple brand kits. The composer shows a brand picker when you have more than one; the pipeline threads the chosen brand through signal discovery, draft generation, and render.
Train a voice profile
The voice profile is how Niche writes like you. Paste 3-5 posts you've written at /voice and Niche extracts tone words, audience context, and a banned-phrases list. Threaded into every draft call thereafter.
The voice profile and the brand kit are independent layers. Brand kit = visual + boilerplate + signature phrases. Voice profile = the writer's actual style. A multi-author team uses one brand kit and multiple voice profiles.
For agents
Install the MCP server
Niche exposes a Model Context Protocol (MCP) server at https://api.nicheangle.com/mcp. Any MCP-aware agent (Claude Desktop, Claude Code, Cursor, or your own) drives the full editorial pipeline through the same 25 tools. Two ways to connect — the one-click way needs no token at all.
The one-click way: connect by URL (no token)
If your client supports remote connectors (Claude Desktop's Add custom connector, for example), just paste the server URL:
https://api.nicheangle.com/mcpYour client registers itself and sends you to sign in with your Niche account. Approve the connection and you're live — nothing to copy, rotate, or paste. This is the path for non-developers: add the URL, sign in, done. (Under the hood it's standard OAuth 2.1 with dynamic client registration; discovery is at /.well-known/mcp.json.)
Connected? Finish setup — connect a channel to publish and teach Niche your voice — at nicheangle.com/start.
The token way: for Claude Code, CLIs, and scripts
Headless clients use a Personal Access Token instead. Issue one at /settings/api-keys. Tokens are shown once at creation; rotate or revoke from the same page. Operator-tier accounts see per-PAT credit-burn telemetry so a runaway agent loop is detectable before it drains your balance.
Claude Code
claude mcp add --transport http niche https://api.nicheangle.com/mcp \
--header "Authorization: Bearer niche_sk_YOUR_TOKEN"Or in a project .mcp.json:
{
"mcpServers": {
"niche": {
"type": "http",
"url": "https://api.nicheangle.com/mcp",
"headers": {
"Authorization": "Bearer niche_sk_YOUR_TOKEN"
}
}
}
}Claude Desktop
Settings → Connectors → Add custom connector. Paste https://api.nicheangle.com/mcp, choose Streamable HTTP, and add your PAT as the bearer token. The 25 tools appear in the tool picker.
Cursor
In ~/.cursor/mcp.json, add the server with just url + headers (no transport field):
{
"mcpServers": {
"niche": {
"url": "https://api.nicheangle.com/mcp",
"headers": {
"Authorization": "Bearer niche_sk_YOUR_TOKEN"
}
}
}
}Discovery
RFC-style discovery is at /.well-known/mcp.json. The response carries the canonical MCP URL, auth scheme, and protocol version so agents that support discovery probes can find the surface without a pre-known path.
25-tool reference
Workflow tools, not REST primitives. Each returns structured intelligence (judgment fields + provenance + trust metrics), not text blobs. Grouped by the lifecycle stage they belong to:
Discovery
- niche_signal_scan
- Start a run. Takes a niche string + optional brand_id; returns a session_id.
- niche_intelligence_query
- Answer an analyst-shaped question (“the 10 biggest developments this week”, “3 non-obvious narratives to publish”) as the deliverable, not a single post. Returns a ranked slate plus engine-grounded, fact-verified narratives — the same answer the desk gets. Non-blocking: poll session_state.
- niche_session_state
- Poll for state. Sparse by default: only the fields you ask for. Returns full state at terminal checkpoints.
- niche_list_sessions
- Find a session by niche text or recent activity if you lost the session_id.
Angle
- niche_angle_propose
- Generate 3 frame-aware angles for a picked story. Returns hooks, tensions, CTAs, plus a recommended_angle_id scored against your brand profile. Pass a custom_framing to write your own angle.
Draft
- niche_draft_direct
- Draft straight from the creator's own take or a URL to repurpose — no research scan. The bring-your-own-content / product-led entry. Optional image=photo|card produces the visual in the same run.
- niche_draft_create
- Produce platform-native content for a picked angle. LinkedIn / X / longform / Instagram, multi-platform in one call.
- niche_draft_revise
- Patch any subset of fields on a draft (hook, caption, hashtags, slide text). Returns the updated content + a diff.
- niche_draft_publish
- Ship to a connected social account. Direct publish is live for LinkedIn and X; Instagram is coming soon. For that, the desk returns the finished post to copy or export. dry_run=true by default; commit requires explicit second call. Verifier blocks override dry-run state.
Brand
- niche_brand_profile_set
- Persist or update editorial discipline: voice rules, lexicon, framing allowlist, verifier overrides, source preferences.
- niche_brand_profile_get
- Read the active profile or list profiles for the authenticated user.
Brand kit
- niche_brand_kit_ingest
- Pull palette, fonts, logo, tagline, voice notes from a URL or dropped files. Vision-classified and merged into the kit. Async — returns an ingest_id.
- niche_brand_kit_ingest_status
- Poll an async brand-kit ingest by ingest_id for its detected[]/skipped[]/diff[] report (done | failed | ingesting).
- niche_brand_kit_update
- Inline-edit any kit field (color hex, tagline, signature/forbidden phrases, CTA, endcard preferences).
- niche_brand_kit_guided_setup
- Return an intent-shaped question chain for first-touch setup. The agent walks the user through brand setup in natural conversation.
- niche_voice_profile_ingest
- Extract a voice profile from posts the user wrote: tone words, audience context, banned phrases.
Render
- niche_render_image_card
- Generate the branded image card for an output (atmospheric background + on-brand endcard). Routes across image providers automatically.
- niche_render_reel
- Generate the vertical reel: stills + Ken Burns motion + voiceover + music + caption overlay, composited to 9:16. Captions can reveal phrase-by-phrase in lockstep with the voice.
- niche_reuse_asset
- Copy an image that already exists on one output onto another cell — instant + free, no regen. Use instead of render_image_card when the user wants “the same image” on a second surface.
- niche_attach_image
- Attach a user-supplied photo (the creator's own product shot) to a post as its image — free, no render spend.
Session
- niche_session_revert
- Revert a run to an earlier checkpoint (e.g. back to story pick) to take a different path without starting over.
- niche_session_cancel
- Cancel an in-flight run and release any held credits.
- niche_session_export
- Export a finished run's outputs (copy + rendered assets) for download or hand-off.
- niche_add_output
- Add another platform cell to an existing run without re-running the desk (e.g. add an X thread to a LinkedIn run).
Account
- niche_whoami
- One read-only call: the authenticated account, plan, and credit balance; the server version + endpoint + live tool count; the capability map (tools grouped by band + the recommended flow); and the brand state — so an agent knows before a run whether a brand profile / kit / voice will shape the output.
A typical agent run
The five-call shape that covers most workflows. Brand-binding is optional but recommended: the pipeline threads the brand profile through every stage when you set it.
# 1. Optional: bind a brand profile so voice/lexicon/framing thread through
niche_brand_profile_set(brand_id="mybrand", profile={...})
# 2. Start the scan
niche_signal_scan(niche="ai policy and platform economics", brand_id="mybrand")
# 3. Poll until stories are ready, then propose angles for a picked story
niche_session_state(session_id="...")
niche_angle_propose(session_id="...", story_id="...")
# 4. Pick an angle, draft, then publish (dry_run=true is the default)
niche_draft_create(session_id="...", angle_id="...")
niche_draft_publish(session_id="...", platform="linkedin", dry_run=true)
# 5. After human confirms the dry_run output, commit
niche_draft_publish(session_id="...", platform="linkedin", dry_run=false)
Every tool response carries a trust block: verifier audits with severity, source faithfulness scores, ungrounded-claim lists, diversity and recency checks, brand-conflict flags. Agents should read the trust block before passing output downstream.
Troubleshooting
The most common errors and what they mean. Each answer is structured the way an agent would surface it back to a user.
What does a 401 from the MCP server mean?
Your PAT is invalid, expired, or revoked. Issue a new one at /settings/api-keys and reinstall the MCP server with the new token. PATs are shown once at creation; rotate proactively if it might have been leaked.
What does a 402 from the MCP server mean?
Insufficient credits. The pre-action estimate exceeded your available balance. Top up at /settings/usage (5K/10K/20K packs) or upgrade your plan. Failed runs are refunded automatically, so 402 only fires when you genuinely don't have the budget for the estimated worst-case run.
What does a 429 from the MCP server mean?
Rate-limited. Either your PAT hit its per-minute request cap (default 60 req/min, configurable on Operator), your hourly credit-burn cap (default 2,000 credits/hour), or your plan's concurrent-session cap (Free 5, Creator 10, Studio 20, Operator 25). The error body includes scope + retry_after_sec so the agent can back off correctly.
Why is my brand profile not affecting the output?
Either the session was started without brand_id, or the brand_id was unknown. Pass brand_id= explicitly on niche_signal_scan, or set a default brand at /settings — the pipeline picks the default when brand_id is omitted. Use niche_brand_profile_get to confirm the profile is persisted.
Why are my image card renders coming back blurry?
Standard image cards render at a balanced quality tier. If you need cinematic polish for a hero asset, opt into premium quality at the review step (the toggle next to the render button) for a higher-fidelity render. Premium image cards cost 100 credits vs 30 for standard.
Why does the agent see different content than I do in the web app?
Both surfaces call the same backend. If you see a mismatch, the most common cause is the agent is reading a stale session_state cache — call niche_session_state again to force a refresh. The web UI auto-refreshes on visibility changes; the agent has to poll.
Trust + safety
Publish defaults to dry_run=true; the commit step requires an explicit second call. Direct one-click publish is live for LinkedIn and X today; Instagram is coming soon, so for now the desk returns the finished post to copy or export. Verifier-blocked drafts refuse to publish regardless of dry-run state: the trust block is enforcement, not advisory. Per-PAT credit-burn limits cap how fast a runaway agent loop can drain your balance. Token revocation at /settings/api-keys is instant.
Questions? Email hello@nicheangle.com - first reply within one business day.


