Notion Terminal MCP
Notion Terminal MCP
Аутентифицированный, готовый к продакшену удалённый Model Context Protocol (MCP) сервер, предоставляющий выполнение команд терминала и инструменты файловой системы для Notion Custom Agents, Claude, Cursor и автономных AI-агентов через Streamable HTTP.
Включает встроенный публичный туннель с нулевой конфигурацией через официальный Ngrok Node.js SDK (@ngrok/ngrok).
Возможности
⚡ Streamable HTTP Transport: Современная реализация MCP-сервера на Express.
🌐 Встроенный Ngrok-туннель: Откройте доступ к вашему локальному MCP-серверу для Notion одной командой (
npm run startилиnpm run dev) с помощью@ngrok/ngrok.💻 Выполнение команд терминала: Выполняйте команды PowerShell или cmd с настраиваемыми таймаутами, рабочими каталогами и рекурсивным завершением дерева процессов.
📁 Операции с файловой системой: Полный набор инструментов для чтения, записи, перемещения, просмотра списка, получения информации и удаления файлов и каталогов.
🔒 Безопасность и песочница:
Режим песочницы (
FULL_ACCESS=false): Строгое ограничение путей внутри настроенногоFILES_ROOTс защитой от обхода пути.Полный доступ к хосту (
FULL_ACCESS=true): Неограниченный доступ, когда вам нужна полная автоматизация хоста.Безопасная аутентификация: Сравнение за постоянное время (
crypto.timingSafeEqual) для Bearer-токенов и API-ключей.Проверка заголовка Host: Предотвращает DNS-ребдинг и несанкционированную подмену заголовка Host.
🤖 Дизайн, ориентированный на агентов: Подробные спецификации и JSON-схемы, оптимизированные для AI-моделей (AGENT_SPEC.md).
Быстрый старт
1. Установка
Клонируйте репозиторий и установите зависимости:
git clone https://github.com/Speedstu/notion-terminal-mcp.git
cd notion-terminal-mcp
npm install2. Настройка окружения
Скопируйте .env.example в .env или запустите скрипт настройки:
# Automated setup (generates a secure 32+ character API key)
.\setup.ps1Или вручную:
Copy-Item .env.example .env
# Generate a secure token:
npm run tokenОтредактируйте ваш файл .env:
# Required: Secure API Key for Notion
MCP_API_KEY=your_generated_32_char_api_key
PORT=3000
HOST=127.0.0.1
# Ngrok Public Tunnel (Optional but recommended for Notion)
NGROK_ENABLED=true
NGROK_AUTHTOKEN=your_ngrok_authtoken_here
NGROK_DOMAIN=your-static-name.ngrok-free.app
# Security & Sandboxing
FULL_ACCESS=false
FILES_ROOT=./workspace
ALLOWED_HOSTS=localhost:3000;127.0.0.1:3000;*.ngrok-free.app;*.ngrok.app;*.ngrok-free.dev3. Сборка и запуск
# Build TypeScript
npm run build
# Start production server
npm run startДля разработки с горячей перезагрузкой:
npm run devПри запуске с NGROK_ENABLED=true сервер выведет данные для подключения, готовые для вставки в Notion:
============================================================
NOTION MCP AGENT CONNECTION READY
============================================================
URL to paste into Notion: https://your-domain.ngrok-free.app/mcp
Authentication Header:
Header Name: Authorization
Header Value: Bearer <your_token>
============================================================Подключение к Notion Custom Agents
В Notion откройте Settings & members → Connections (или откройте конфигурацию вашего Notion Agent).
Добавьте новое Custom MCP Connection.
Установите Server URL на:
https://your-domain.ngrok-free.app/mcpУстановите Authentication:
Header Name:
AuthorizationHeader Value:
Bearer <YOUR_MCP_API_KEY>
Проверьте подключение. Notion автоматически обнаружит все 7 инструментов (
terminal_execute,file_read,file_write,file_list,file_stat,file_mkdir,file_move,file_delete).
Доступные MCP-инструменты
Полные JSON-схемы, параметры и типы возвращаемых значений см. в AGENT_SPEC.md.
Инструмент | Описание |
| Выполнение команд PowerShell или cmd с кодировкой UTF-8 и опциями таймаута. |
| Поиск файлов по имени с помощью glob ( |
| Безопасная замена точного блока кода или текста в файле без полной перезаписи. |
| Чтение содержимого файла (UTF-8 или Base64) с постраничной разбивкой для больших файлов. |
| Создание, перезапись или добавление содержимого в файлы (создаёт недостающие каталоги). |
| Рекурсивный или плоский список содержимого каталога с размерами файлов. |
| Просмотр метаданных файла/каталога (размер, время создания/изменения, режим). |
| Рекурсивное создание каталогов. |
| Перемещение или переименование файлов и каталогов. |
| Безопасное удаление файлов или каталогов ( |
Справочник по конфигурации (.env)
Переменная | По умолчанию | Описание |
| обязательно | Секретный ключ для аутентификации (минимум 32 символа). |
|
| Порт для HTTP-сервера. |
|
| Адрес хоста для привязки. |
|
| Включить/отключить автоматическое создание ngrok-туннеля при запуске. |
|
| Ngrok-автотокен (необязателен, если настроен глобально через ngrok CLI). |
|
| Статический/пользовательский ngrok-домен (например, |
|
| Список разрешённых заголовков |
|
| При |
|
| Базовый каталог для песочницы, когда |
|
| Таймаут по умолчанию для команд терминала (2 минуты). |
|
| Максимальный размер захвата stdout/stderr (1 МБ). |
|
| Максимальный размер файла для чтения/записи на запрос (10 МБ). |
Структура проекта
notion-terminal-mcp/
├── src/
│ ├── config.ts # Type-safe environment and validation
│ ├── index.ts # Server entry point & lifecycle
│ ├── server.ts # Express setup & MCP Streamable HTTP endpoint
│ ├── middleware/
│ │ ├── auth.ts # Timing-safe token authentication
│ │ └── host.ts # Host header validation
│ ├── tools/
│ │ ├── command.ts # Process tree management & execution
│ │ ├── filesystem.ts # Sandboxed filesystem CRUD operations
│ │ ├── index.ts # MCP tool registrations
│ │ └── types.ts # MCP result helpers & interfaces
│ └── tunnel/
│ └── ngrok.ts # Ngrok SDK manager & Notion connection banner
├── AGENT_SPEC.md # Technical specification for AI Agents
├── package.json
├── tsconfig.json
└── setup.ps1 # PowerShell initial setup scriptNPM-скрипты
npm run build— Компиляция TypeScript вdist/.npm run start— Запуск продакшен-сервера изdist/index.js.npm run dev— Запуск сервера разработки сtsx watch.npm run check— Проверка типов TypeScript без создания файлов.npm run token— Генерация криптографически безопасного случайного токена дляMCP_API_KEY.
Политика безопасности
Пожалуйста, ознакомьтесь с SECURITY.md для получения информации о вопросах безопасности и рекомендациях по сообщению об уязвимостях.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
StremAI MCP: shared memory for AI coding agents. Connected agents can recall. OAuth + local stdio.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Glebsky/notion-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server