MCP

Let Claude and ChatGPT work on your notes.

MCP connects Naute to Claude.ai, ChatGPT, Claude Desktop, Cursor, Windsurf, and other assistants. Your AI can read, search, and safely edit your notes — always asking before it writes.

What your AI can do

  • Search and read notes before drafting a response
  • Append follow-ups to an existing note without touching the rest
  • Create or update notes, with your confirmation
  • Move notes between folders, update tags, restore from trash
  • Inspect backlinks, forward links, and version history
  • Upload attachments (images, PDFs, text)
  • Import remote http/https images as durable attachments during note writes

Try these with your assistant

Find & summarize

"Summarize my notes tagged #q3 and draft a status email."

Capture & file

"Create a note with these meeting decisions and put it in the projects/reorg folder."

Build on existing work

"Find my draft on onboarding and append a section on remote employees."

Connect via Claude.ai or ChatGPT

The fastest path. No config files — paste your Naute MCP URL into the connector settings.

Claude.ai

  1. Open Claude Settings → Connectors → Add custom connector
  2. Name: Naute
  3. Remote MCP server URL: https://app.naute.ai/api/v1/mcp (replace with your domain if self-hosted)
  4. Leave OAuth Client ID / Secret empty unless your deployment requires them
  5. Save and complete the OAuth consent flow

ChatGPT

  1. Open ChatGPT Settings → Connectors → Add custom connector
  2. Name: Naute
  3. Remote MCP server URL: https://app.naute.ai/api/v1/mcp
  4. Save and complete the OAuth consent flow

Connect Claude Desktop or another local client

For Claude Desktop, Cursor, Windsurf, or any MCP client that reads a JSON config file. Use this when the client can't add a hosted connector through its UI.

Default setup

Install Naute, launch the desktop app, then add this to your client's MCP config:

{
  "mcpServers": {
    "naute": {
      "command": "naute-mcp"
    }
  }
}

With this minimal setup, naute-mcp uses the desktop app whenever it's open.

Add cloud fallback

To keep working when the desktop app is closed, register an OAuth client and add credentials. The desktop app still wins when it's open.

Register the client:

curl -sS -X POST "$NAUTE_BASE_URL/oauth/register" \
  -H "Content-Type: application/json" \
  -d '{
    "client_name": "Naute MCP",
    "grant_types": ["client_credentials"],
    "token_endpoint_auth_method": "client_secret_post",
    "scope": "notes:read notes:write attachments:read attachments:write profile:read"
  }'

Add the returned client_id and client_secret to the env block:

{
  "mcpServers": {
    "naute": {
      "command": "naute-mcp",
      "env": {
        "NAUTE_BASE_URL": "https://app.naute.ai",
        "NAUTE_CLIENT_ID": "cli_...",
        "NAUTE_CLIENT_SECRET": "..."
      }
    }
  }
}

Single mode

Most users should leave naute-mcp on auto. To force a single behavior, set NAUTE_MCP_MODE=local (desktop app only) or NAUTE_MCP_MODE=cloud (hosted Naute only) in the env block.

Direct hosted endpoint

If your MCP client speaks Streamable HTTP and can carry a Bearer token, talk to the hosted endpoint directly without launching naute-mcp.

  • URL: https://app.naute.ai/api/v1/mcp
  • Auth: Authorization: Bearer <oauth_access_token> — use OAuth Authorization Code + PKCE for delegated user access, or client credentials for machine-to-machine
  • Mode: stateless in v1

Your AI never writes without asking

Read tools return live data immediately. Any tool that creates, modifies, or deletes a note requires explicit confirm=true before it runs — your AI will always ask you first. Append and prepend are first-class operations too, so your AI adds to a note instead of replacing the whole body.

When a confirmed note write includes a Markdown image or HTML <img> whose source is an http or https URL, MCP downloads the image, stores it as a Naute attachment, and rewrites the note body to an attachments/<id>.<ext> reference. Non-image responses, private-network URLs, oversized files, and non-attachment sources such as data: or file: are rejected.

MCP tool reference

Every write tool requires confirm=true to execute. Calling without confirm (or with confirm=false) returns a preview only.

Read Write — requires confirm=true

Notes

search_notes Search notes by title and body.
get_note Fetch one full note.
list_notes List notes, optionally filtered by folder.
list_folders List folders derived from notes, with note counts.
create_note Create a note. Remote image URLs are imported as attachments.
update_note Replace title and body, optionally moving folders and setting tags. Remote image URLs are imported as attachments.
append_note Append markdown to the end of a note. Remote image URLs are imported as attachments.
prepend_note Prepend markdown to the start of a note. Remote image URLs are imported as attachments.
delete_note Move a note to trash.
restore_note Restore a trashed note.

Tags

list_tags List tag definitions.
create_tag Create a tag definition.
rename_tag Rename a tag definition.

Links

get_backlinks List notes that link to a note.
get_forward_links List notes referenced by a note.

Attachments

list_attachments List attachments for a note.
upload_attachment Upload an attachment. Requires content_base64; mime_type optional.

Versions

list_versions List version history for a note.
get_version Fetch one historical note version.

System

health Check whether Naute is reachable.

For request and response shapes on every tool, see the API reference — the underlying REST endpoints map 1:1 to MCP tools.

Using Claude Code?

If you're already working in a terminal with Claude Code, you don't need MCP configured. Claude Code finds the naute CLI on your PATH and uses it directly. Reach for MCP instead when your AI runs in Claude Desktop, Cursor, or another non-terminal client — or when the Naute desktop app isn't running.

Read CLI docs →