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. Supports explicit parent IDs or defaults.
Page Updates update_page Append content to existing pages.
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.0.0rc0.tar.gz (8.7 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.0.0rc0-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file engram_notion_mcp-1.0.0rc0.tar.gz.

File metadata

  • Download URL: engram_notion_mcp-1.0.0rc0.tar.gz
  • Upload date:
  • Size: 8.7 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.0.0rc0.tar.gz
Algorithm Hash digest
SHA256 dcc87eb1516a2ff5532974311bed7545707ed034697144569e3646d54ded70e8
MD5 6f2180b5577c5de1145115b0509c8a4a
BLAKE2b-256 995885ffd13c5c40e3a6f83ff9da1c62c9f1df358656479908f1c345f1eee18d

See more details on using hashes here.

File details

Details for the file engram_notion_mcp-1.0.0rc0-py3-none-any.whl.

File metadata

  • Download URL: engram_notion_mcp-1.0.0rc0-py3-none-any.whl
  • Upload date:
  • Size: 9.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.0.0rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 7f126401be24659a025985618790d451d40f74ebf7f9dcb8ae8282b333a6d8ef
MD5 f1c54d9984866eba5ec173a4ee380c37
BLAKE2b-256 de9683c5171504cec9eca91dc3c30dbf6d4bdf3827fbf52878c2551b7ea1ad86

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