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/httpsimages 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
- Open Claude Settings → Connectors → Add custom connector
- Name:
Naute - Remote MCP server URL:
https://app.naute.ai/api/v1/mcp(replace with your domain if self-hosted) - Leave OAuth Client ID / Secret empty unless your deployment requires them
- Save and complete the OAuth consent flow
ChatGPT
- Open ChatGPT Settings → Connectors → Add custom connector
- Name:
Naute - Remote MCP server URL:
https://app.naute.ai/api/v1/mcp - 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.
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.