Graniite Docs
Concepts

MCP vs REST

Which surface to use for what. The mental model that makes the rest of the docs make sense.

There are two surfaces because agents and automations work differently. An agent picks a tool inside a conversation. An automation runs a predetermined sequence of HTTP calls. The two shapes want different APIs.

The rule of thumb

You are buildingUse
A Claude, Cursor, or n8n connector that lets an AI read and add items to a knowledge baseMCP
A script that needs to list, organize, move, or delete contentREST API
A webhook that ingests a URL when something triggers (Drive upload, Twilio call, and so on)REST API (POST /api/v1/ingest). The same shape as MCP add_to_knowledge, but easier to wire from plain HTTP.
A Zapier or n8n flow that needs full library managementREST API

Why MCP does not have update or delete

This is deliberate, not an oversight. A tool call has to make sense as something an LLM would invoke in conversation. "Search my notes" works. "Move item 47b3 from folder A to folder B" does not. You would have to tell the AI out loud what to do, which defeats the agent pattern.

Folder and item management is a human and automation operation. It belongs on the REST surface. The split keeps each surface focused:

  • The agent has a small, fast tool vocabulary.
  • The automation has a complete CRUD interface.

The split table

OperationMCPREST
Search the knowledge baseyesno
Get one itemyesyes
List recent itemsyesno
List items with filtersnoyes
Add a URL or textyesyes
Add audio, video, PDF, or imagenoyes (three-step signed URL)
Delete an itemnoyes
Add item to foldersnoyes
Remove item from foldernoyes
List foldersnoyes
Create or delete a foldernoyes

What is the same across both

  • Auth: the same lev_… bearer token works on either surface.
  • Capabilities: read covers MCP read tools and REST GETs. write covers MCP add_to_knowledge and REST POSTs and DELETEs.
  • Scope: a token carries a folder scope, either whole library or a specific list of folders. Both surfaces honor it.
  • Rate limits: per-token and per-endpoint. Read endpoints get 1000/hr. Writes get tighter caps.

On this page