About MCP
Supercharge your AI assistant with professional-grade content analysis. The Markup AI MCP server connects MCP clients like Claude Desktop, Claude Code, and Cursor to Markup AI’s content agents, giving you brand-voice, clarity, persona, terminology, and AI-search checks directly in your AI-powered workflows.
What is MCP?
Model Context Protocol (MCP) is an open standard that lets AI assistants call external tools and services. By connecting the Markup AI MCP server, you give your AI assistant the ability to:
- 🎯 Check brand voice — flag passages that have drifted from your approved voice
- 👤 Test against a persona — see how a target reader reacts to your content
- ✏️ Improve clarity — surface hard-to-read sentences with suggested rewrites
- 🤖 Detect AI-sounding copy — catch the giveaways of LLM-written text
- 📒 Enforce terminology — check content against your approved term list
- 🔍 Get found by AI search — check snippet readiness, sourcing, and freshness
Three tools, fourteen agents
The server exposes three tools. You describe what you want checked, and the review runs the right set of agents together in a single call.
An agent is a specialized content check—brand voice, persona reaction, sentence clarity, terminology, claims, and more. Each agent runs against the settings configured for your organization in the Markup AI console. You configure your brand voice, personas, terminology, and style guide once, and every call applies them automatically.
Agents are addressed by their stable name (brand_voice, sentence_clarity, generic_claims, …). The names are the same ones the REST API uses, so what you learn in one carries over to the other.
Setup
Connect to the hosted MCP server at https://api.markup.ai/mcp/ from any MCP-compatible client. Add the server URL to your client and authenticate.
Include the trailing slash (/mcp/). That’s the canonical URL: it connects directly and returns the OAuth discovery details clients need. The no-slash form only resolves through a redirect, so prefer /mcp/ everywhere.
You can authenticate in one of two ways:
- Log in with your Markup AI account (OAuth). When your client supports it, add the server and follow the browser prompt to authorize. Best for interactive use.
- Use an API key. Send your key in an
Authorizationheader with the valueBearer YOUR_API_KEY. Best for headless or shared configurations.
Prerequisites
Before you begin, ensure you have:
- An MCP-compatible client (Claude Desktop, Claude Code, Cursor, or similar)
- A Markup AI account (sign up) — and an API key if your client authenticates with a header
Quick Setup Guide
Create a Markup AI account
- Visit https://console.markup.ai/signup and create an account.
- Configure your brand voice, personas, terminology, and style guide in the console—these are what the agents apply.
- If your client authenticates with an API key, copy your key from the console and keep it handy.
Store your key securely. Prefer environment variables or a secrets manager over committing keys to code.
Add the server to your client
Point your client at https://api.markup.ai/mcp/ and authenticate with OAuth login or an Authorization: Bearer YOUR_API_KEY header. Follow the client-specific guide in the MCP Examples section below.
Verify
Start a new session and confirm the three Markup AI tools appear. Try one of the example prompts.
MCP Examples
Explore client‑specific setup guides. Each page includes configuration, restart/verify steps, and troubleshooting.
Chat
Coding
The tools
markupai_review
Review content against your organization’s configured quality checks in one call. This is the tool your assistant should reach for whenever someone says “check this,” “review this,” or “clean this up before I publish.”
With no goal, the standard review set runs:
With a goal, Markup AI composes the check set for you. Instead of naming agents, describe the outcome—“get this ranking in AI search before launch,” “convince skeptical enterprise buyers,” “make sure legal won’t flag this”—and the server selects and orders the right agents for that goal, on top of the standard set. It also asks the agents that support it to focus their findings on your goal.
A goal only ever adds checks—it never drops one from the standard set. So passing a goal is always at least as thorough as leaving it out. If goal selection is unavailable for any reason, the standard set runs anyway and the response says so in warnings.
markupai_run_agents
Run an explicit, fixed set of agents. Use this when the user names specific checks, or when an integration needs the same agents every time.
Your organization’s configured profiles and guides apply unless you override them:
Get valid names and IDs from markupai_capabilities_and_configs.
markupai_review and markupai_run_agents divide the work cleanly: review decides what to check, run_agents does exactly what it’s told. For any general “is this good?” ask, prefer markupai_review—it makes better choices than a hand-picked list, and it explains the choices it made.
markupai_capabilities_and_configs
Pull down everything your organization has configured, in one read-only call with no arguments:
- agents — name, one-line description, and category for every agent you can run
- personas — ID, name, and title
- voice_profiles — ID and name
- style_guides — ID and name
- content_profiles — ID and name
It returns a compact catalog—names and one-line descriptions, no JSON schemas. You rarely need it before markupai_review, which applies your configuration automatically; it’s most useful when you’re about to override something in markupai_run_agents.
If your account can’t read a section—personas, say—that section comes back as an empty list plus a warnings entry explaining why, rather than failing the whole call.
Available agents
Every agent below can be named in markupai_run_agents, and any of them can be selected by markupai_review when your goal calls for it. Which ones your organization can actually run depends on your plan and feature access—check with markupai_capabilities_and_configs.
What you get back
Both execute tools return the same evidence envelope, so your assistant always knows what actually ran—not just what was found:
Worth knowing:
checked.selectiontells you how the agent set was chosen:default(standard set),goal(composed from your goal), orexplicit(you named them).checked.goalappears only when you passed a goal, and shows how it was interpreted—the agents it added and the resulting plan.- Configuration evidence is honest.
voice_profile,style_guide, andpersonaare populated only when an agent that consumes them actually ran. warningsare never stripped. An unconfigured voice profile, an agent your plan gates out, or a partial failure shows up here with a code and explanation—so an empty result is never mistaken for a clean bill of health.resultshas one entry per agent that completed, even when the agent found nothing. Agents that fail appear asagent_failedwarnings instead.scoresappear inside thestyle_agententry when your organization has numeric scoring enabled.
Example prompts
Review before publishing
Review with a goal
Named checks only
Check against a specific persona
See what’s configured
Per-agent tool names
Some clients and saved configurations reference a tool name per agent. Those names map onto the three-tool surface like this:
Two related points:
- MCP addresses agents by catalog name. Pass an unknown name and the error lists every valid one. The REST API addresses agents by
ag_ID. - MCP has no
webhook_urlparameter. The REST API supports webhooks.
A single markupai_review call covers what a chain of per-agent calls covers, and picks the agents for you. Reach for the mapping above only when you need one specific check.
Troubleshooting
Markup AI tools not showing in your client
- Confirm the server URL is
https://api.markup.ai/mcp/. - Make sure you completed authentication—either the OAuth login prompt or an
Authorization: Bearer YOUR_API_KEYheader. - Completely quit your MCP client (cmd+Q on Mac, not just closing the window) and reopen it.
- You should see exactly three tools. If you see a longer list of per-agent tools, your client is serving a cached tool list—reconnect the server.
Getting 'unauthorized' or 401 errors
- If using an API key, verify it’s correct (no extra spaces or quotes) and sent as
Authorization: Bearer YOUR_API_KEY. - If using OAuth, reconnect/re-authorize the server from your client and complete the browser prompt.
- If it still fails with a freshly copied key, confirm your account is active and has API access. The server returns the same
401for any token problem—missing, malformed, or expired—so it won’t tell you which; re-check these one at a time.
An agent I expect doesn't run
Check the warnings in the response—it will name the agent and the reason. The agents you can run depend on your organization’s plan and feature access, and some require features to be enabled in the console. Run markupai_capabilities_and_configs to see exactly what your account can run.
An agent reports no issues and I don't trust it
That’s what the envelope is for. Check checked.agents_run to confirm the agent ran, and checked.voice_profile / checked.style_guide / checked.persona to confirm the configuration it applied. If a profile you expected shows as null, it wasn’t configured—look for the matching warnings entry (e.g. voice_profile_not_configured). A clean result with full evidence really is clean.
Long documents and timeouts
Runs are synchronous and bounded by a server-side deadline, so very long documents can time out. text accepts up to 100,000 characters, but for large content split it into sections and review them separately—section-level results are easier to act on anyway. There’s no async mode or polling on MCP; if you need background runs or webhooks, use the REST API.
A goal doesn't change what runs
A goal composes checks up, never down—it can add agents to the standard set but won’t remove any. If you need a narrower run, name the agents explicitly with markupai_run_agents. Also check checked.goal in the response to see how your goal was interpreted, and warnings for any note that goal selection fell back to the standard set.
Tips for Success
Lead with the goal, not the agent list: Tell your assistant what you’re trying to achieve and let markupai_review compose the checks. Naming agents yourself is for when you need determinism, not for everyday review.
Configure once, apply everywhere: Set your brand voice, personas, terminology, and style guide in the console. Every call applies them automatically—no per-request configuration needed.
Read the evidence: The checked block tells you what ran and against which profiles. When a result surprises you, it’s usually the fastest explanation.
Learn More
- 📚 MCP Documentation — Understand the protocol powering this integration
- 🧠 Agent Catalog — What each agent checks and why it matters
- 🚀 Markup AI API Docs — Explore all API capabilities
- 🛠️ Markup AI Console — Configure your brand voice, personas, terminology, and style guide
Ready to transform your writing? Connect the Markup AI MCP server and bring AI-powered content checks into your assistant.