Notion Terminal MCP
Notion Terminal MCP
Ein authentifizierter, produktionsreifer Remote-Model Context Protocol (MCP)-Server, der Terminal-Ausführung und Dateisystem-Tools für Notion Custom Agents, Claude, Cursor und autonome KI-Agenten über Streamable HTTP bereitstellt.
Enthält integriertes Zero-Config-Public-Tunneling über das offizielle Ngrok Node.js SDK (@ngrok/ngrok).
Funktionen
⚡ Streamable HTTP Transport: Moderne MCP-Server-Implementierung, die auf Express läuft.
🌐 Integrierter Ngrok-Tunnel: Stellen Sie Ihren lokalen MCP-Server mit einem einzigen Befehl (
npm run startodernpm run dev) über@ngrok/ngrokfür Notion bereit.💻 Terminal-Ausführung: Führen Sie PowerShell- oder cmd-Befehle mit konfigurierbaren Timeouts, Arbeitsverzeichnissen und rekursiver Prozessbaum-Beendigung aus.
📁 Dateisystem-Operationen: Vollständiger Satz von Werkzeugen zum Lesen, Schreiben, Verschieben, Auflisten, Abfragen von Dateiinformationen und Löschen von Dateien und Verzeichnissen.
🔒 Sicherheit & Sandboxing:
Sandbox-Modus (
FULL_ACCESS=false): Strikte Pfadbegrenzung innerhalb eines konfiguriertenFILES_ROOTmit Schutz vor Pfad-Traversal.Vollzugriffsmodus (
FULL_ACCESS=true): Uneingeschränkter Zugriff, wenn Sie vollständige Host-Automatisierung benötigen.Timing-sichere Authentifizierung: Vergleich in konstanter Zeit (
crypto.timingSafeEqual) für Bearer-Tokens und API-Schlüssel.Host-Header-Validierung: Verhindert DNS-Rebinding und unbefugtes Spoofing von Host-Headern.
🤖 Agent-First-Design: Detaillierte Spezifikationen und JSON-Schemas, optimiert für KI-Modelle (AGENT_SPEC.md).
Schnellstart
1. Installation
Klonen Sie das Repository und installieren Sie die Abhängigkeiten:
git clone https://github.com/Speedstu/notion-terminal-mcp.git
cd notion-terminal-mcp
npm install2. Umgebungseinrichtung
Kopieren Sie .env.example in .env oder führen Sie das Setup-Skript aus:
# Automated setup (generates a secure 32+ character API key)
.\setup.ps1Oder manuell:
Copy-Item .env.example .env
# Generate a secure token:
npm run tokenBearbeiten Sie Ihre .env-Datei:
# 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. Erstellen & Ausführen
# Build TypeScript
npm run build
# Start production server
npm run startFür die Entwicklung mit Hot Reload:
npm run devWenn der Server mit NGROK_ENABLED=true gestartet wird, gibt er Verbindungsdetails aus, die Sie direkt in Notion einfügen können:
============================================================
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>
============================================================Verbinden mit Notion Custom Agents
Öffnen Sie in Notion Einstellungen & Mitglieder → Verbindungen (oder öffnen Sie Ihre Notion-Agent-Konfiguration).
Fügen Sie eine neue Benutzerdefinierte MCP-Verbindung hinzu.
Setzen Sie die Server-URL auf:
https://your-domain.ngrok-free.app/mcpLegen Sie die Authentifizierung fest:
Header-Name:
AuthorizationHeader-Wert:
Bearer <YOUR_MCP_API_KEY>
Testen Sie die Verbindung. Notion erkennt automatisch alle 7 Tools (
terminal_execute,file_read,file_write,file_list,file_stat,file_mkdir,file_move,file_delete).
Verfügbare MCP-Tools
Siehe AGENT_SPEC.md für vollständige JSON-Schemas, Parameter und Rückgabetypen.
Tool | Beschreibung |
| Führen Sie PowerShell- oder cmd-Befehle mit UTF-8-Kodierung und Timeout-Optionen aus. |
| Durchsuchen Sie Dateien nach Namens-Glob ( |
| Ersetzen Sie sicher einen exakten Code- oder Textblock in einer Datei, ohne sie vollständig neu zu schreiben. |
| Lesen Sie Dateiinhalte (UTF-8 oder Base64) mit Offset-Paginierung für große Dateien. |
| Erstellen, überschreiben oder anhängen von Inhalten an Dateien (erstellt fehlende Verzeichnisse). |
| Listen Sie Verzeichnisinhalte rekursiv oder flach mit Dateigrößen auf. |
| Untersuchen Sie Datei-/Verzeichnis-Metadaten (Größe, Erstellungs-/Änderungszeitstempel, Modus). |
| Erstellen Sie Verzeichnisse rekursiv. |
| Verschieben oder umbenennen von Dateien und Verzeichnissen. |
| Löschen Sie sicher Dateien oder Verzeichnisse ( |
Konfigurationsreferenz (.env)
Variable | Standard | Beschreibung |
| erforderlich | Geheimer Schlüssel für die Authentifizierung (mindestens 32 Zeichen). |
|
| Port für den HTTP-Server. |
|
| Host-Adresse, an die gebunden werden soll. |
|
| Aktivieren/Deaktivieren der automatischen Ngrok-Tunnel-Erstellung beim Start. |
|
| Ngrok-Authtoken (optional, wenn global über die ngrok-CLI konfiguriert). |
|
| Statische/benutzerdefinierte Ngrok-Domain (z. B. |
|
| Durch Semikolon getrennte Liste erlaubter |
|
| Wenn |
|
| Basisverzeichnis für die Sandbox, wenn |
|
| Standard-Timeout für Terminalbefehle (2 Minuten). |
|
| Maximale Erfassungsgröße für stdout/stderr (1 MB). |
|
| Maximale Dateigröße für Lese-/Schreibvorgänge pro Anfrage (10 MB). |
Projektstruktur
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-Skripte
npm run build— Kompiliert TypeScript nachdist/.npm run start— Führt den Produktionsserver ausdist/index.jsaus.npm run dev— Führt den Entwicklungsserver mittsx watchaus.npm run check— Typüberprüfung von TypeScript ohne Dateiausgabe.npm run token— Generiert ein kryptographisch sicheres Zufalls-Token fürMCP_API_KEY.
Sicherheitsrichtlinie
Bitte lesen Sie SECURITY.md für Sicherheitsüberlegungen und Richtlinien zur Meldung von Schwachstellen.
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