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.1.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.1-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file engram_notion_mcp-1.1.1.tar.gz.

File metadata

  • Download URL: engram_notion_mcp-1.1.1.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":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for engram_notion_mcp-1.1.1.tar.gz
Algorithm Hash digest
SHA256 65b69928835873189330d8cf6a3175a07dc0a12a1b33b7c33404d5f522809828
MD5 19a3a0fd57e9821094540a04074618f6
BLAKE2b-256 0d316d17bf2e64c9d1fbbd6f6c4dc3959879d014e9a6ebaefd4715a6bc01d446

See more details on using hashes here.

File details

Details for the file engram_notion_mcp-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: engram_notion_mcp-1.1.1-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":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for engram_notion_mcp-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2ed21f2704f5419423981ca37e30814d6a8504fcf9680ba38b054fa61aa6c2be
MD5 265bfde73a141c27f13c796a54b7d984
BLAKE2b-256 facad05c59b2110f19215ffea9cc2bc94c54344dd15c3d5d77f6de42040ab8c3

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