Skip to main content

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
  1. Go to Notion My Integrations.
  2. Click New integration.
  3. Name it (e.g., "Engram Notion MCP") and submit.
  4. Copy the Internal Integration Secret. this is your NOTION_API_KEY.
🤖 How to get Telegram Bot Token & Chat ID
  1. Bot Token:

    • Open Telegram and search for @BotFather.
    • Send the command /newbot.
    • Follow the prompts to name your bot.
    • Copy the HTTP API Token.
  2. 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:

  1. Open any page in Notion.
  2. Click the ... (three dots) menu (top-right) -> Connections.
  3. Look for the name you gave your integration (e.g., "Engram Notion MCP").
  4. Once connected, the agent can automatically see this page using the list_accessible_pages tool.
  5. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

engram_notion_mcp-1.1.0rc1.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

engram_notion_mcp-1.1.0rc1-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

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

Hashes for engram_notion_mcp-1.1.0rc1.tar.gz
Algorithm Hash digest
SHA256 48f4cf4017f6ed09e006c37d43b5fc114f981f986c0827f6abc5ea9a1842a882
MD5 85bc7877f64541b02fbe8c0f5ae83588
BLAKE2b-256 62a64c556c99bf478ff5831ac0143bea8b5ec9c36926946500e3c9ae984082e5

See more details on using hashes here.

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

Hashes for engram_notion_mcp-1.1.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 f5d404f9080435951ad2f852216bfa97103e4c2af8494faae89f53e12e558bae
MD5 73fe9ff365c0de8c1c2487cc7049d67a
BLAKE2b-256 cc7af77e266c00454a5094fcc2fb8df28b1a38373c21a3fdf677b3c56bc57f18

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page