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 20-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 output carries a trust block — verifier audits, source faithfulness, provenance.
Same engine, two surfaces. The web app at nicheangle.com/desk is the human-facing version; the MCP server at nicheangle.com/api/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, 1,500 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 pipeline runs four checkpoints. At CP1, pick from five to seven story candidates. At CP2, pick the angle (contrarian, analytical, or the underrated read). At CP3, 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 — Niche extracts palette, fonts, logo, tagline, and voice notes in one pass. Inline- editable 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 — 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://nicheangle.com/api/mcp. Any MCP-aware agent — Claude Desktop, Claude Code, Cursor, or your own — drives the full editorial pipeline through the same 15 tools.
Step one: issue a Personal Access Token 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://nicheangle.com/api/mcp \
--header "Authorization: Bearer niche_sk_YOUR_TOKEN"Claude Desktop
In ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), add:
{
"mcpServers": {
"niche": {
"transport": "http",
"url": "https://nicheangle.com/api/mcp",
"headers": {
"Authorization": "Bearer niche_sk_YOUR_TOKEN"
}
}
}
}Restart Claude Desktop. The 15 tools appear in the tool picker.
Cursor
In Cursor's MCP settings, add a new server with URL https://nicheangle.com/api/mcp and bearer auth with your PAT. Cursor uses the same MCP protocol as Claude Code; the same tools light up.
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.
15-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_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.
- niche_angle_explore
- Cross-explore — regenerate angles with an alternate frame keyword. Cheaper than a full re-scan when the first set didn't land.
Draft
- 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. 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.
- niche_brand_profile_template
- Return the schema template so agents can fill it in step-by-step rather than guessing field names.
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.
- niche_brand_kit_update
- Inline-edit any kit field (color hex, tagline, signature/forbidden phrases, 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.
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 CP1 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/Creator = 1, Studio = 3, Operator = 10). 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 gpt-image-2 medium quality. If you need cinematic polish for a hero asset, opt into premium quality at CP3 (the toggle next to the render button) — that routes to Gemini 3.1 Flash. 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. 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 hi@nicheangle.com — first reply within one business day.


