Restora
Allows reading and querying local Notion backups from Restora backup files, including listing backups, describing workspace structure, querying databases, retrieving pages, searching across titles and content, reading restore id-maps, and optionally comparing backups with live Notion data.
Restora MCP Server
A read-only Model Context Protocol server that exposes your local Notion backups to any MCP-capable AI agent — Claude Desktop, Cursor, Cline, Continue, Zed, and others. Ask questions about your backed-up workspace, query databases, and read pages, all from backup files sitting on your own machine.
It's the MCP component of Restora — a Notion backup & restore tool — packaged
here as a standalone, source-available server. The ready-to-run version ships inside
@restora/cli as restora mcp.
Why it's safe
Offline by default. The server makes zero outbound network calls in its default mode — every answer is read from local backup
.jsonfiles. The only tool that touches the network isrun_drift_audit, and it is not even registered unless you pass--allow-live. When enabled, it talks only to your own Notion — never to an LLM, never to Restora's servers.The AI's own model does the reasoning. This server makes no LLM calls, holds no API key, and sends no telemetry.
Read-only, structurally. Every tool is side-effect-free. Because no tool can write, delete, or take action in Notion, backup content is treated strictly as data, not instructions — a malicious string in a backup can at worst mislead output, never cause an action.
Path-traversal guarded. A tool's
pathargument must resolve inside your configured backup folder.
Related MCP server: knowledgine
Tools
Tool | What it does |
| List your local Restora backup files (path, date, size, database/page counts). |
| Workspace map of a backup: databases → data sources → property schema, the relations graph, and views. Start here. |
| Rows of one database with readable values — relations resolved to linked page titles. |
| One page's properties and content, rendered to Markdown or plain text. |
| Find pages by case-insensitive substring across titles, property values, and block text. |
| Summarize a restore id-map ( |
| (requires |
Quick start (recommended)
The published package is the fastest path — no clone or build. Add this to your agent's MCP config:
{
"mcpServers": {
"restora": {
"command": "npx",
"args": ["-y", "@restora/cli", "mcp"],
"env": {}
}
}
}Config file locations:
Claude Desktop (macOS):
~/Library/Application Support/Claude/claude_desktop_config.jsonClaude Desktop (Windows):
%APPDATA%\Claude\claude_desktop_config.jsonCursor:
~/.cursor/mcp.json(or.cursor/mcp.jsonin a project)
To enable the live drift-audit tool, add "--allow-live" to args. Run npx @restora/cli mcp --print-config
to print a ready-to-paste config.
Build from source (this repo)
npm install
npm run build # → dist/restora-mcp.js (single self-contained bundle, zero runtime deps)
node dist/restora-mcp.js --print-configPoint an agent at the built binary:
{
"mcpServers": {
"restora": { "command": "node", "args": ["/absolute/path/to/dist/restora-mcp.js"], "env": {} }
}
}Flags: --file <path> (a specific backup), --dir <path> (a backups folder), --allow-live (enable
run_drift_audit), --print-config (print an MCP config and exit).
Getting backups to read
This server reads Restora backup files. Create some for free with the CLI:
npx @restora/cli backup --to localor from restora.cc. Backups are plain .json — your data stays on your machine.
License
MIT © Taha Bakri
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tahabakri/restora-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server