FN

fr0zon3/notion-mcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

118 stars 3 forks Качество 79 Тренд 23MIT

Notion mcp для подключения агентов ИИ к Notion через markdown | Чтение и запись notion markdown

Обзор

Ориентированный на производство MCP-сервер, который соединяет AI-агентов с Notion через стандартный markdown вместо сырого API JSON. Агенты читают и записывают маркировку GFM. Сервер занимается преобразованием блоков, отображением схем базы данных, OAuth и опциональной сохранением с поддержкой Redis для многоэкземплярных развертываний. - — обработчики инструментов остаются в server.ts для сохранения стабильного публичного контракта MCP; поддерживающие модули решают перекрёстные вопросы. - — абстракция CacheStore позволяет работать в памяти (по умолчанию) или Redis без изменения логики клиента Notion. - — если Redis настроен, но недоступен, сервер фиксирует предупреждение и продолжает сохранять сохранение в памяти и файле. - Node.js 20+ — интеграция с Notion с общими страницами Скопируйте .env.example в .env при запуске с клонированной проверки: Тесты безопасности, зависящие от Symlink, автоматически пропускаются на платформах, где создание симлинков недоступно (что часто встречается на Windows без режима разработчика). 1. Форковать репозиторий и создать ветвь функции из основной 2.

Обзор (машинный перевод)

Ориентированный на производство MCP-сервер, который соединяет AI-агентов с Notion через стандартный markdown вместо сырого API JSON.

Агенты читают и записывают маркировку GFM. Сервер занимается преобразованием блоков, отображением схем базы данных, OAuth и опциональной сохранением с поддержкой Redis для многоэкземплярных развертываний.


Основные моменты

Возможности Подробности
Markdown-first I/O 42 MCP-инструмента; агенты никогда не строят блок Notion JSON
Верность туда и обратно 24 типа блоков, включая переключатели, столбцы, вызовы, таблицы, загрузки
Эргономика базы данных Записать { "Status": "Done" } — конвертация схемы происходит автоматически
Двойной транспорт Stdio (API токен) и HTTP (OAuth или защищённый от носителя статический токен)
Настройки безопасности по умолчанию Префикс уведомления содержимого, очистка URL, содержание корневого файла рабочего пространства
Необязательный Redis Общий кэш схемы и сохранение токена OAuth с плавным запасом
Профили CLI Доступ к Notion с низким уровнем контекста через easy-notion с режимами только чтения/чтения

Архитектура

Workflow запроса (вызов инструмента)


Структура проекта

Дизайнерские решения

  • Модуль одного сервера — обработчики инструментов остаются в ‘server’.

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

Показан фрагмент оригинального README. Открыть оригинал.

easy-notion-mcp

Production-oriented MCP server that connects AI agents to Notion through standard markdown instead of raw API JSON.

Agents read and write GFM markdown. The server handles block conversion, database schema mapping, OAuth, and optional Redis-backed persistence for multi-instance deployments.


Feature highlights

Capability Details
Markdown-first I/O 42 MCP tools; agents never construct Notion block JSON
Round-trip fidelity 24 block types including toggles, columns, callouts, tables, uploads
Database ergonomics Write { "Status": "Done" } — schema conversion is automatic
Dual transport Stdio (API token) and HTTP (OAuth or bearer-protected static token)
Security defaults Content-notice prefix, URL sanitization, workspace-root file containment
Optional Redis Shared schema cache and OAuth token persistence with graceful fallback
CLI profiles Low-context Notion access via easy-notion with readonly/readwrite modes

Architecture

flowchart TB
  subgraph clients [MCP Clients]
    CC[Claude Code / Cursor]
    HTTP[HTTP MCP clients]
  end

  subgraph transport [Transport Layer]
    STDIO[index.ts — stdio]
    HTTP_SRV[http.ts — Express]
  end

  subgraph core [Application Core]
    SRV[server.ts — MCP tools & resources]
    NC[notion-client.ts — Notion SDK wrapper]
    MD[markdown converters]
  end

  subgraph persistence [Persistence — optional]
    MEM[(In-memory cache)]
    REDIS[(Redis)]
    FS[(Encrypted token files)]
  end

  CC --> STDIO
  HTTP --> HTTP_SRV
  STDIO --> SRV
  HTTP_SRV --> SRV
  SRV --> NC
  SRV --> MD
  NC --> MEM
  NC --> REDIS
  HTTP_SRV --> FS
  HTTP_SRV --> REDIS

Request workflow (tool call)

sequenceDiagram
  participant Agent
  participant MCP as MCP Server
  participant Cache as Cache Store
  participant Notion as Notion API

  Agent->>MCP: tools/call (e.g. read_page)
  MCP->>Notion: blocks.children.list (paginated)
  Notion-->>MCP: block tree
  MCP->>MCP: blocks → markdown
  MCP-->>Agent: { markdown, warnings? }

  Agent->>MCP: tools/call (add_database_entry)
  MCP->>Cache: get schema:dbId
  alt cache miss
    Cache->>Notion: dataSources.retrieve
    Notion-->>Cache: schema
    Cache-->>MCP: schema
  else cache hit
    Cache-->>MCP: schema
  end
  MCP->>MCP: convert property values
  MCP->>Notion: pages.create
  Notion-->>MCP: page
  MCP-->>Agent: { id, url }

Project structure

easy-notion-mcp/
├── src/
│   ├── index.ts              # Stdio entry point
│   ├── http.ts               # HTTP/OAuth entry point
│   ├── cli.ts                # Profile-based CLI
│   ├── server.ts             # MCP tool & resource handlers
│   ├── notion-client.ts      # Notion SDK integration
│   ├── config/env.ts         # Typed environment parsing
│   ├── logging/logger.ts     # Structured logging
│   ├── persistence/          # Cache + Redis integration
Открыть полный README на GitHub

Установка

npx -y easy-notion-mcp
Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "mcpServers": { "notion": { "command": "npx", "args": ["-y", "easy-notion-mcp"], "env": { "NOTION_TOKEN": "ntn_your_integration_token" } } } }