MCP overview
Viewfield ships a built-in Model Context Protocol (MCP) server that exposes the studio as callable tools: 85 tools as of October 15, 2026. Any MCP client (Claude Code, Claude Desktop, Cursor, or your own code) can draft and revise in your voice, teach the brand, read AI visibility, propose a page change and prepare a CMS preview, without touching the UI. It stops where a person decides: no tool saves to your CMS or publishes, and no tool posts to a social network.
What is MCP?
MCP is an open standard for connecting AI models to tools and data. A server advertises a set of tools; the model calls them as structured function calls during a conversation. Viewfield's server is reachable at https://viewfield.ai/api/mcp and authenticated with a Bearer API key, which also scopes every call to your workspace. See Install the MCP and Authentication.
The server is self-describing
There is no per-tool reference page. When your client connects, it reads each tool's name, description and input schema over the protocol, always current with the server. Ask your agent to "list the Viewfield tools". This page says what the tools cover; for the exact arguments of any tool, read its schema from your client.
What the tools cover
Drafts
| Tool | What it does |
|---|---|
draft_piece | Writes one piece from a prompt or from an AI visibility item (item_type of aeo_prompt or aeo_change with its id), in a kind: blog, linkedin, x_post, x, newsletter or custom. A draft from a prompt returns its id at once and finishes writing on the server; a draft from an item returns once it is written, and asking again for the same item and kind answers the same draft |
get_generation_status | Whether a draft has finished writing |
get_content, list_content | One draft in full; the library, newest first, paginated |
update_content | Replace the body or the title; every body edit keeps a version |
ai_edit_content | Rewrite a draft from an instruction, with the whole brand context and the checks, versioned |
set_content_status | Draft or Final (draft or ready) |
list_content_versions, restore_content_version | The history, and a restore (itself reversible) |
verify_claims | Extract a draft's checkable claims and web-check them: supported, unverified or contradicted, with a source. Advisory, and rate limited |
export_content | Markdown as text, or a Word or PDF file as base64 |
import_content | A public URL or pasted text becomes a draft |
search_library | Search by meaning across everything the workspace has made |
request_review | Ask the workspace's managers to review a draft |
delete_content | Permanently delete a draft (destructive; managers) |
Chat
send_chat_message and get_conversation drive the chat thread on one draft.
Brand
| Tool | What it does |
|---|---|
get_engine_config | Every section of Brand |
update_engine | The workspace's name, description and website |
update_voice, update_brand, update_positioning, update_writing_rules | The voice, the brand basics, the positioning statement and the writing rules; each merges the fields you provide, so a partial update never wipes a value |
set_writing_directives | Teach a standing directive: ban a word or allow it again, add, drop or rewrite a rule, replace a voice or brand field |
set_platform_tone | The rule for a kind of draft, or a custom kind |
add_competitor | A company AI answers may name instead of you, with its class |
update_engine_item, delete_engine_item, ai_update_engine_item | Edit, delete or AI-rewrite a competitor, a doc or a kind's rule |
list_engine_versions, save_engine_version, restore_engine_version, rename_engine_version, delete_engine_version | Version history per section |
list_item_versions, restore_item_version | Version history per item |
Every Brand write is manager-level.
Docs
upload_document adds a reference document to Brand › Docs (managers); list_documents lists them.
The checks
| Tool | What it does |
|---|---|
list_skills, set_skill_enabled, list_available_skills | The built-in checks (anti-slop, casual language, technical accuracy, answer engine readiness) and your own, with their state. Any member switches a built-in check; harness (all of them at once) and your own checks are a manager's |
add_skill, update_skill, delete_skill | Your own checks, as SKILL.md-style markdown (managers) |
list_memories, set_memory_weight, mute_memory | What the checks learned from your edits, with weights (changing one is a manager's) |
remember_rule | Teach a durable rule: a standing instruction, or a word for the lint to catch (managers) |
guard_review | Run the checks over any text or public URL: a report (no model call), or a repair |
Copy in your codebase
review_copy and revise_copy run copy from any repo (a landing page, docs, UI strings) through the brand and the checks and hand the result back, without creating a draft. See Use Viewfield in your codebase.
AI visibility
| Tool | What it does |
|---|---|
get_aeo_tracking | How many questions you track against your plan's limit, the engines your plan covers, the categories and the status |
list_aeo_prompts | Every tracked question with its id, category, type, status and how often answers named you, filtered by status or category: the ids manage_aeo_tracking takes |
get_aeo_visibility | Visibility, share of voice and average position over a window, per engine, with the latest changes and what the engines searched for |
get_aeo_citations | The sources and pages AI answers cite, your citation share and coverage |
get_aeo_prompt, get_aeo_answer | One question with its history, pages and recent answers; one answer verbatim |
get_aeo_change | One measured change with its counts, windows and evidence |
get_question_playbook | What wins one question now: who the answers name, the pages they cite, your own page on it |
get_aeo_suggestions | The next steps, ranked by the gap, with their state and evidence |
plan_content, get_content_plan | Up to three pieces planned for a question, and the newest plan |
manage_aeo_tracking | Managers: add, reword, pause, resume or archive a question (pause, resume and archive take up to 25 at once); categories; the brand's other names, owned hosts, country and category; rewrite the seeded questions |
To write a piece for a question or a change, call draft_piece with the item.
Website AEO
list_aeo_pages lists every page of your site as AI answers use it, grouped by section with citation share, rank, readability and open actions; get_aeo_page reads one page with its history, audit and next steps.
Your website and CMS
| Tool | What it does |
|---|---|
list_site_pages, get_site_page | The pages a connected CMS reaches, and one page read now (on your own hosts only) |
propose_site_change, list_site_changes, get_site_change | Propose a change to one of your pages, and read proposals with their evidence and outcome |
set_default_site | Managers: which site Website AEO lists |
list_site_destinations, get_site_post_form | Where a piece can be sent, with its readiness; the fields a destination asks for |
prepare_site_publication | The preview of a draft for one destination: what would be sent, its public URL, every warning. Sends nothing |
get_site_publication | Where a draft stands in your CMS |
get_site_coverage | What your site serves on one question, work in flight, and where a new piece belongs |
Saving a draft or a change in the CMS, publishing and reverting are a person's press in the app.
The workspace
list_categories, create_category, update_category, delete_category (managers), set_content_categories and assign_content_owner (the piece's owner or a manager) file drafts; get_usage reads the plan and the allowance left (check it before paid work); list_notifications and mark_notifications_read read your inbox.
Example prompts
"Draft a LinkedIn post about why a close you can explain beats a close you can rush, then export it as Markdown so I can paste it."
"Which of our tracked questions does Perplexity answer without naming us, and which pages does it cite instead?"
"Propose changes to our pricing page for the question it should win, and show me the before and after."
"Prepare the preview of draft 7c1 for the blog destination and tell me what would be sent."
"Review the copy in
app/page.tsxwith Viewfield and rewrite whatever it flags."
Conventions
- Every call is scoped to the workspace the API key belongs to; there is no cross-workspace access.
- A key acts as the member who made it, with their role; a manager-level tool refuses a contributor's key ("This action requires the manager role."), and a tool on one draft needs the access to that draft the person has in the app. Every AI visibility tool refuses while AI visibility is off for the workspace.
- Inputs are validated against each tool's schema; invalid arguments return a clear error rather than a partial write.
list_content,list_categoriesandlist_memoriespaginate with a cursor: they return{ items, nextCursor }, and you passnextCursorback ascursorfor the next page.list_aeo_pagesreturnsnextthe same way; the other list tools return everything at once.- AI-driven tools (a draft, a rewrite, a plan, a page change proposal) spend from the same workspace allowance the app does, and refuse with the same sentence when it is spent.
- A refusal from the product (a spent allowance, a feature not on the plan, a page that moved) reaches the client verbatim.
Transport and limits
The server uses the MCP Streamable HTTP transport, stateless, bridged to local clients with mcp-remote. Each key may make 120 requests a minute and each workspace 120 tool calls a minute; one request carries at most 25 messages. Proposing a page change (10 a minute), reading your site live (30 a minute) and planning content each have their own budget per workspace, shared with the app and Ask Viewfield. See Authentication for the per-tool limits and the errors.