The permanent and semantic memory layer for AI agents
Project description
Engram Notion MCP - Semantic Memory for AI Agents
Engram Notion MCP is a powerful Model Context Protocol (MCP) server that gives your AI agents a permanent, semantic memory. It seamlessly integrates with Notion to store, retrieve, and organize information, turning your workspace into an intelligent knowledge base.
🧠 Why Engram? AI Agents often suffer from amnesia. Engram solves this by providing a persistent memory layer backed by Notion's robust database structure.
📦 Features
Notion Integration
| Feature | Tool Name | Description |
|---|---|---|
| Page Creation | create_page |
Create new pages with content. Auto-chunks large text to avoid limits. |
| Page Updates | update_page |
Append content to existing pages. Auto-chunks large text. |
| Logging | log_to_notion |
Fast logging wrapper for appending notes/logs. |
| Reading | read_page_content |
Read and parse page content into Agent-friendly text. |
| Databases | list_databases |
detailed list of accessible databases. |
| Querying | query_database |
Query databases with filters to find specific items. |
| Organization | list_sub_pages |
List pages within a parent page. |
| Cleanup | delete_block |
Archive/Delete blocks or pages. |
Semantic Memory (SQLite)
| Feature | Tool Name | Description |
|---|---|---|
| Store Facts | remember_fact |
Saves key info to internal vector-like storage. |
| Search | search_memory |
Full-text search over stored memories. |
| Recall | get_recent_memories |
Retrieve the latest context/facts. |
Operations
| Feature | Tool Name | Description |
|---|---|---|
| Alerts | send_alert |
Send push notifications via Telegram. |
🛠 Configuration
To use Engram Notion MCP, you need to set up your environment variables.
| Variable | Required | Description |
|---|---|---|
NOTION_API_KEY |
Yes | Your Notion Internal Integration Token (secret_...). |
NOTION_PAGE_ID |
No | Default Page ID for creating pages if no parent is specified. |
TELEGRAM_BOT_TOKEN |
No | For send_alert tool. |
TELEGRAM_CHAT_ID |
No | For send_alert tool. |
AGENT_MEMORY_PATH |
No | Custom path for the SQLite memory database. |
💡 Quick Setup Tips
🔑 How to get Notion API Key
- Go to Notion My Integrations.
- Click New integration.
- Name it (e.g., "Engram Notion MCP") and submit.
- Copy the Internal Integration Secret. this is your
NOTION_API_KEY.🤖 How to get Telegram Bot Token & Chat ID
Bot Token:
- Open Telegram and search for @BotFather.
- Send the command
/newbot.- Follow the prompts to name your bot.
- Copy the HTTP API Token.
Chat ID:
- Search for @userinfobot in Telegram.
- Click Start or send
/start.- It will reply with your Id. Copy this number.
Configuration Patterns
1. Minimal Setup (Flexible / Unbound)
You can omit NOTION_PAGE_ID to keep the agent "unbound". It will force the agent to ask for a destination or search for one.
"env": {
"NOTION_API_KEY": "secret_your_key_here"
}
2. Multi-Page Support
You don't need to configure an array of IDs. Engram relies on Notion's native permissions. To give the agent access to multiple specific pages:
- Open any page in Notion.
- Click the ... (three dots) menu (top-right) -> Connections.
- Look for the name you gave your integration (e.g., "Engram Notion MCP").
- Once connected, the agent can automatically see this page using the
list_accessible_pagestool. - Repeat this for any other page you want the agent to see.
🔌 Installation & Client Setup Instructions
⚡ Recommended (Fastest) - Bun
Use bunx to run the server with native performance (bun:sqlite).
Add this to your claude_desktop_config.json or mcp.json.
Config using bunx (Recommended):
{
"mcpServers": {
"engram-notion-mcp": {
"command": "bunx",
"args": ["engram-notion-mcp"],
"env": {
"NOTION_API_KEY": "secret_your_key_here"
}
}
}
}
🐢 Standard - Node.js (NPX)
Works with any standard Node.js environment (better-sqlite3).
Add this to your claude_desktop_config.json or mcp.json.
Config using npx (Standard):
{
"mcpServers": {
"engram-notion-mcp": {
"command": "npx",
"args": ["-y", "engram-notion-mcp"],
"env": {
"NOTION_API_KEY": "secret_your_key_here"
}
}
}
}
🐍 Alternative - Python (UVX / PIPX)
If you prefer uvx or pipx or have strict Python environments:
Add this to your claude_desktop_config.json or mcp.json.
Config using uvx (Alternative):
{
"mcpServers": {
"engram-notion-mcp": {
"command": "uvx",
"args": ["engram-notion-mcp"],
"env": {
"NOTION_API_KEY": "secret_your_key_here"
}
}
}
}
Config using pipx (Alternative):
{
"mcpServers": {
"engram-notion-mcp": {
"command": "pipx",
"args": ["run", "engram-notion-mcp"],
"env": { ... }
}
}
}
Where to put it:
-
🖥️ Desktop Apps (Claude Desktop):
claude_desktop_config.json -
🆚 VS Code / Cursor / Windsurf: User Settings (
settings.json). -
Cline / Roo Code: Extension Settings -> MCP Servers.
-
Kilo Code:
.kilo/config.json. -
⌨️ Gemini CLI:
Bun (Recommended)
gemini mcp add engram-notion-mcp bunx "engram-notion-mcp" -e NOTION_API_KEY=<your_secret_key>
Node.js - NPX (Standard)
gemini mcp add engram node "npx engram-notion-mcp" -e NOTION_API_KEY=<your_secret_key>
💬 Support & Feedback
If you face any issues or have suggestions, please feel free to:
- Open an issue on this GitHub Repository.
- Reach out to me directly via my GitHub profile.
Quick Links
This MCP tool is published as a package on NPM and PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file engram_notion_mcp-1.1.0rc1.tar.gz.
File metadata
- Download URL: engram_notion_mcp-1.1.0rc1.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48f4cf4017f6ed09e006c37d43b5fc114f981f986c0827f6abc5ea9a1842a882
|
|
| MD5 |
85bc7877f64541b02fbe8c0f5ae83588
|
|
| BLAKE2b-256 |
62a64c556c99bf478ff5831ac0143bea8b5ec9c36926946500e3c9ae984082e5
|
File details
Details for the file engram_notion_mcp-1.1.0rc1-py3-none-any.whl.
File metadata
- Download URL: engram_notion_mcp-1.1.0rc1-py3-none-any.whl
- Upload date:
- Size: 12.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5d404f9080435951ad2f852216bfa97103e4c2af8494faae89f53e12e558bae
|
|
| MD5 |
73fe9ff365c0de8c1c2487cc7049d67a
|
|
| BLAKE2b-256 |
cc7af77e266c00454a5094fcc2fb8df28b1a38373c21a3fdf677b3c56bc57f18
|