Siteleaf for AI agents

Siteleaf is a content management system for static sites built on Jekyll, letting non-technical editors manage pages and collections that sync back to GitHub. Connect it once through Arc0, and your agent, or Claude, ChatGPT and Cursor, can use it through one MCP endpoint, limited to what each user approved.

Developer toolsAPI keyMCP + RESTsiteleaf.com
AUDIT LOG · SITELEAFPOLICY: acme-support
09:41:07 · claude · u_8f2read
siteleaf.list_pages
List Pages✓ allowed · 212ms
09:41:08 · claude · u_8f2read
siteleaf.get_job
Get Job✓ allowed · 164ms
09:41:09 · claude · u_8f2write
siteleaf.create_page
Create Page✓ approved · approved by user
09:41:12 · claude · u_8f2destructive
siteleaf.delete_page
Delete Page✕ blocked · policy: deny
EVERY SITELEAF CALL, ON THE RECORD
01 · USE CASES

What agents do in Siteleaf.

01

Draft a new blog post

Create a new document in a collection with the post content, ready for an editor to review before publishing.

02

Confirm before deleting a page

Check a page's details and require confirmation before deleting it, since the change removes it from the live site.

03

Publish a site after edits

Publish a site once content changes are approved, pushing the latest collections and pages live.

02 · ACTIONS

35 Siteleaf actions, graded by risk.

Every Siteleaf action is tagged read, write or destructive, so one policy covers the whole app and new actions inherit the right default.

read

15

Look things up. Allowed by default.

  • siteleaf.get_job
    Get Job
  • siteleaf.get_page
    Get Page
  • siteleaf.get_role
    Get Role
  • siteleaf.get_site
    Get Site
  • siteleaf.get_source
    Get Source
  • siteleaf.list_pages
    List Pages
  • siteleaf.list_sites
    List Sites
  • siteleaf.get_document
    Get Document
  • siteleaf.get_collection
    Get Collection
  • siteleaf.list_documents
    List Documents
  • siteleaf.list_site_users
    List Site Users
  • siteleaf.get_current_user
    Get Current User
  • siteleaf.list_collections
    List Collections
  • siteleaf.get_site_taxonomy
    Get Site Taxonomy
  • siteleaf.list_collection_files
    List Collection Files

write

13

Create and change things. Allow, or ask the user first.

  • siteleaf.create_page
    Create Page
  • siteleaf.create_role
    Create Role
  • siteleaf.create_site
    Create Site
  • siteleaf.update_page
    Update Page
  • siteleaf.update_role
    Update Role
  • siteleaf.update_site
    Update Site
  • siteleaf.create_document
    Create Document
  • siteleaf.update_document
    Update Document
  • siteleaf.create_collection
    Create Collection
  • siteleaf.update_collection
    Update Collection
  • siteleaf.create_collection_file
    Create Collection File
  • siteleaf.publish_site
    Publish Site
  • siteleaf.upsert_source
    Create or Replace Source File

destructive

7

Delete, cancel or archive. Ask first, or deny outright.

  • siteleaf.cancel_job
    Cancel Job
  • siteleaf.delete_page
    Delete Page
  • siteleaf.delete_role
    Delete Role
  • siteleaf.delete_site
    Delete Site
  • siteleaf.delete_source
    Delete Source File
  • siteleaf.delete_document
    Delete Document
  • siteleaf.delete_collection
    Delete Collection
03 · HOW IT WORKS

Siteleaf in three steps.

  1. 01Your users connect SiteleafThey add their Siteleaf api key on Arc0 Connect, under your brand. It goes straight into the vault.
  2. 02You set the rulesReads run, writes like “create Page” can wait for the user, and “delete Page” can be denied outright.
  3. 03Any agent can actYour agent calls Siteleaf through the Arc0 SDK or MCP, and so can Claude, ChatGPT and Cursor. Every call lands on the audit log.
POLICY.TS
await arc0.policies.set('siteleaf', {
  read: 'allow',
  write: 'ask',        // create_page
  destructive: 'deny',  // delete_page
})

# Claude Code: the same connection, one URL
$ claude mcp add --transport http arc0 \
    https://mcp.arc0.ai/u/u_8f2
04 · AUTH AND DATA

How Siteleaf connects.

Users add their Siteleaf api key on Arc0 Connect. It is encrypted in the vault, never shown to the model, and each user can rotate or revoke it at any time.

The same Siteleaf connection serves your agent over MCP and your own backend over REST and the proxy, so a user connects once. How Arc0 handles credentials →

AUTH
API key · Username and password
CREDENTIALS
Per-tenant encrypted vault
MODEL SEES
Results only, never credentials
AUDIT LOG
Every call, on every plan
05 · WORKS WITH

Use Siteleaf from any agent.

Claude
ChatGPT
Cursor
Codex
VS Code
OpenAI Agents SDK
Claude Agent SDK
Vercel AI SDK
Mastra
LangGraph
07 · FAQ

Siteleaf and Arc0, answered.

Q01

Can I use Siteleaf with Claude, ChatGPT or Cursor?

Yes. Connect Siteleaf to Arc0 once, then add your Arc0 MCP URL to Claude, ChatGPT, Cursor, Claude Code or any other remote-MCP client. Each assistant only gets the Siteleaf actions you allow.

Q02

How do users connect Siteleaf?

Users add their Siteleaf api key on Arc0 Connect. It is encrypted in the vault, never shown to the model, and each user can rotate or revoke it at any time.

Q03

Which Siteleaf actions can my agent take?

35 in total: 15 read, 13 write and 7 destructive, such as “create Page”. Your policies decide which of them each agent may call.

Q04

Can I stop my agent from deleting things in Siteleaf?

Yes. Actions like “delete Page” are graded destructive. Set destructive actions to deny, or to ask so the user approves each one, and blocked calls still show up on the audit log.

Q05

Can my own backend call Siteleaf too?

Yes. The same Siteleaf connection is available over REST and through the Arc0 proxy, so your product and your agent share one connection per user.

Get started

Plug Siteleaf into your agent.

Your users connect Siteleaf once, under your brand. Your agent gets 35 actions behind your policies, with every call on the record.

Free to build · MCP + REST · Audit log on every plan