Authentication
Viewfield's MCP server uses API key authentication. Every request carries your key as a Bearer token, and the key identifies your workspace and acts as the member who made it. There is nothing else to configure.
Create an API key
- Sign in to Viewfield, open the workspace menu at the foot of the rail, then Workspace settings › MCP (or go to
/settings/mcp). - Under Create a key, type a name for the integration that will use it ("Claude Code agent", "CI pipeline").
- Press Create.
- Copy the key at once; it is shown only once. Keys look like
sk_followed by 64 hexadecimal characters, and the list shows only their first characters.
Any member can create keys for their own use, contributors included; a workspace holds at most 20 live keys, and a member creates at most 10 an hour. The workspace needs an active plan or trial. A key scopes every call to one workspace; an agency's agent scoped to one client sees only that client. A key nobody has used for 90 days is marked stale in the list.
Use the key
The @viewfieldai/mcp package connects a client in one command and prompts for the key:
npx @viewfieldai/mcp install
To configure a client by hand, the key rides in env and the package bridges to the endpoint:
{
"mcpServers": {
"reactor": {
"command": "npx",
"args": ["-y", "@viewfieldai/mcp"],
"env": { "REACTOR_API_KEY": "YOUR_API_KEY" }
}
}
}
See Install the MCP for every client.
What a key may do
A key acts as the member who made it, with that member's live role: a contributor's key cannot change Brand or edit the questions, a manager's can, and a demotion takes effect on the next request. Keys carry no scopes of their own, and there is no OAuth. Removing a member revokes their keys, and every request re-checks that the key's owner is still a member. Managers and owners see every key in the workspace and can revoke any of them, except that only the owner revokes the owner's own keys; contributors see and revoke their own.
Saving a draft or a page change in your CMS, and publishing it, are never a key's: those are a person's press in the app.
How it is stored
Viewfield stores only a SHA-256 hash of your key, never the plaintext. On each request it hashes the presented key, matches it to the stored hash and resolves the workspace. If you lose a key, create a new one and revoke the old entry.
Security notes
- Do not commit API keys to source control; the installer offers to ignore the project config files that hold one.
- Use a separate key per integration so you can revoke one without disrupting the others.
- Keys are valid until you revoke them; there is no automatic expiry.
- Revoking a key takes effect immediately; any client using it starts getting
401s. - The bridge sends your key only to Viewfield's own hosts, or to a loopback address for local testing (the only place plain
httpis allowed), unless you name another host in its own config file; see the package's README for the rules.
Rate limits and errors
Each key may make 120 requests a minute, and each workspace 120 tool calls a minute; one request may carry at most 25 messages. Some tools have their own budget per workspace a minute: draft_piece 20, import_content 10, ai_edit_content 30, verify_claims 4, and review_copy and revise_copy 20 between them. Tool calls that read an outside source (your site, the live web) are also subject to that source's own limits.
| Error | Cause |
|---|---|
400 Bad Request | The body is not valid JSON |
401 Unauthorized | Missing, malformed or revoked API key, or the key's owner is no longer a member |
402 Payment Required | The workspace has no active plan or trial |
403 Forbidden | The workspace is suspended |
405 Method Not Allowed | Anything but POST |
413 Payload Too Large | More than 25 messages in one request, or a body over 4 MB |
429 Too Many Requests | A rate limit was reached, or too many failed keys from one address in a minute; Retry-After says when |