Connect your AI agent to Anchor.
One URL. OAuth sign-in. Works with every MCP-compatible agent.
Skip the reading
Give this link to your AI and ask it what you need — it'll read this page and figure out the answer.
What is MCP?
The Model Context Protocol (MCP) is the open standard for AI agent tool use — think "USB-C for AI." It defines how an agent discovers and calls tools on a remote server. Any MCP-compatible agent can talk to any MCP server without custom integrations.
The Anchor MCP server exposes tools covering every action your agent can take in Anchor: design and query tables, write and upload files, and organize folders. Anchor hosts the files as live, shareable web pages you can open, read, and collaborate on right in the browser, with permissions and versioning handled for you.
One connection, every agent. No vendor lock-in. No webhooks. No custom integration code.
Supported agents
Anchor works with every MCP-compatible agent. The setup is the same everywhere: paste one URL, sign in, and you're connected. The whole thing takes less than a minute.
We have step-by-step walkthroughs for Claude, Claude Desktop, Claude Code, ChatGPT, Codex, Codex Desktop, Gemini CLI, Open WebUI, and OpenCode — with more agents added regularly.
View all supported agents and setup instructions
Any other MCP-compatible client also works — the server follows the Model Context Protocol spec exactly.
Tool reference
The
Anchor MCP server exposes the tools below, grouped by capability. Agents discover the same list at
runtime via tools/list.
| Tool | What it does |
|---|---|
| Navigation & discovery | |
list_orgs |
List the
organizations the authenticated user belongs to. Returns each org's id, name, and creation
timestamp. For a fuller picture, call ls with no arguments instead.
|
ls |
The
workhorse of navigation. Call it with no arguments for a recursive, breadth-first map of every org
you belong to plus everything shared with you — or pass an org_id, folder_id, or file_id to scope in. Returns an
indented text map bounded by number_of_items, with per-folder
item counts that show when there's more to drill into. |
| Files | |
write_file |
Create or
edit one or more textable files (HTML, Markdown, JSON, CSV, XML/YAML, source code, etc.) in a
single batched call — up to 100 entries, applied in order with per-item results. HTML and Markdown
render as live, human-viewable pages at a shareable link, so what your agent writes becomes a
durable page people can open and read. Supports new-file creation, surgical edits (oldString / newString, optional replaceAll), and full rewrites.
HTML is the preferred format for documents and slides — Markdown is for source-style content where
structure matters more than layout. Binary document formats (PDF, DOC/DOCX, PPT/PPTX, XLS/XLSX,
RTF) are read-only via read_file and cannot be created
or rewritten. Tables have their own tools — use query_table for those. |
read_file |
Read a
file's textable content. Text-like formats (HTML, Markdown, JSON, CSV/TSV, XML/YAML, plain text,
source code) are returned as raw bytes — byte-for-byte identical to what write_file would round-trip, so
surgical edits match exactly. Binary document formats (PDF, DOC/DOCX, PPT/PPTX, XLS/XLSX, RTF) are
returned as extracted plain text. Supports line-range reads for large files. For tables use describe_table or query_table. |
file_upload_link |
Generate
a deep link to the Anchor UI where the user can manually upload files into a folder. Only applies
to files of type OTHER —
tables are not uploaded, they are created by create_table. |
file_link |
Return
links for a file. The view link opens the file as a live, rendered page in the browser — formatted
HTML or Markdown, or an interactive table — that anyone can read and you can share. OTHER files get both a view link
and a download link; tables get a view link only (they have no downloadable file). |
rm_file |
Permanently delete a file you own — a table (its data is dropped) or an OTHER file (its content is
removed). Immediate and irreversible. |
| Tables | |
create_table |
Create a new table with typed columns (STRING, NUMBER, INTEGER, BOOLEAN, ENUM, DATE, DATETIME, EMAIL, CREATED_BY_EMAIL), uniqueness and required constraints, default values, and optional foreign keys with CASCADE / SET_NULL behavior. Each Anchor table maps directly to a PostgreSQL table. |
describe_table |
Return a
table's full column schema, row count, and create/update timestamps. Does not return row data —
use query_table for that.
|
query_table |
Execute a
SQL statement (SELECT / INSERT / UPDATE / DELETE) against Anchor tables. Schema/DDL statements
(CREATE, ALTER, DROP, TRUNCATE) are rejected — use create_table, add_table_column, and delete_table_column for schema
changes. Joins across tables in the same org are allowed. |
add_table_column |
Add a new
column to an existing table. Same column schema as create_table. Required columns
must include a default value so existing rows can be backfilled; unique columns cannot be required
and cannot have a default. |
delete_table_column |
Permanently delete a column and all its data — immediate and irreversible. The record_id primary key cannot be
deleted. |
| Folders & organization | |
mkdir |
Create a
new folder at the org root (pass org_id) or inside an existing
folder (pass folder_id).
Requires write permission at the parent location. Returns the new folder's id and a link to view
it in the Anchor UI. |
mv |
Move or
rename a file or folder within the same org — pass a destination, a new_name, or both. Files cannot
live at the org root; folder cycles and over-deep nesting are rejected. Moving re-anchors
inherited access roles to the destination's ancestor chain. |
cp |
Copy a file into a folder (same org only). Tables
get a fresh duplicate of schema and data; OTHER files clone their content.
The copy gets a new ID and the caller becomes the owner — no existing access roles are carried
over. |
Authentication & security
Anchor's MCP server uses OAuth 2.0 with PKCE — the same flow Claude, ChatGPT, and other MCP clients already speak natively. No client secrets, no static API keys, no copy-paste tokens.
| Discovery | On first
request, your agent fetches /.well-known/oauth-protected-resource
and /.well-known/oauth-authorization-server
from mcp.anchor.cc
to learn where to authorize. |
| Dynamic client registration | Your
agent registers itself via POST /oauth/register.
No pre-provisioning required. |
| User sign-in | The authorization endpoint redirects to Google SSO. You sign in with the same Google account you use for anchor.cc. |
| Tokens | Access tokens are short-lived JWTs. Refresh tokens rotate on use. Revoke access anytime from your Anchor account settings. |
| Authorization | Every tool call runs as you. Your agent can only see and modify content you have access to — the same permission model used in the UI. |
The server implements the Model Context Protocol OAuth flow as specified by modelcontextprotocol.io — any MCP client that follows the spec will authenticate correctly.
Usage & limits
Each MCP tool call counts against your organization's monthly usage quota. Free organizations start with a generous allowance; paid plans raise the ceiling. See pricing for the full breakdown.
Large reads — such as
read_file
on long PDFs or query_table
on wide tables — count as a single unit regardless of size. Rate limits apply per-token to keep runaway
agents from exhausting your quota.
FAQ
Which MCP transport does Anchor support?
Streamable HTTP — the recommended transport for remote MCP servers. Any MCP client that speaks
Streamable HTTP over OAuth 2.0 works out of the box. Local stdio
transports are not required or supported.
Do I need an API key?
No. Anchor issues OAuth access tokens transparently when you connect your agent. There is no API key to generate, store, or rotate.
Can one agent connection access multiple orgs?
Yes. You authorize once; the agent sees every organization your account belongs to. Call ls
with no arguments to map them all at once, then pass an org_id
to navigate into a specific one.
Can I self-host the MCP server?
Enterprise customers can run Anchor — including the MCP server — under their own domain or inside a managed VPC. Contact us for details.
Where is the full tool spec?
Every tool's input and output schema is served by the MCP server itself — connect your agent and
call tools/list
to retrieve it. The Tool
reference above is the same list in human-readable form.