mcp-context-window
mcp-context-window
Ein MCP-Server, der einem lokalen Modell einen externen Kontextpuffer bietet: dauerhaften Session-Speicher, in den es Notizen schreiben kann, und große Dokumente, durch die es blättern kann, ohne sie je vollständig laden zu müssen.
Gebaut auf dem MCP TypeScript SDK v2 gegen die Protokollrevision 2026-07-28. Läuft über stdio (LM Studio, Claude Desktop, alles, was einen lokalen Prozess startet) oder Streamable HTTP.
Read this first: Was ein MCP-Server kann und was nicht
Kein MCP-Server kann Ihr Kontextfenster sehen oder verändern. MCP ist strikt Request/Response — der Host ruft ein Tool auf, das Tool antwortet. Der Server sieht das Gespräch nie, kann keine Nachrichten abfangen, bevor sie das Modell erreichen, und kann nichts kürzen. LM Studio übernimmt das Kürzen selbst und intern und fragt dazu keinen Server.
Das ist also kein automatisches gleitendes Fenster, und alles, was sich als eines anpreist, führt Sie in die Irre. Was es ist: ein Speicher, gegen den das Modell gezielt arbeitet, indem es die Masse des Materials außerhalb des Fensters lässt und nur das zurückholt, was es gerade braucht. Das ist mit einem lokalen 8k-Token-Modell tatsächlich mächtig — aber es funktioniert, weil das Modell es aufruft, nicht weil es etwas abfängt.
Die praktische Konsequenz: Das Modell muss mitarbeiten. Die Tool-Beschreibungen hier sind bewusst vorschreibend formuliert, und context_guide gibt den vorgesehenen Workflow zurück. Wenn Ihr Modell sie ignoriert, erwähnen Sie das in Ihrem System-Prompt.
Eine verwandte Anmerkung: MCP Sampling — der Mechanismus, mit dem ein Server den LLM des Clients um Texterzeugung bitten kann — wurde in der Spezifikation von 2026-07-28 abgekündigt (deprecated), mit der offiziellen Empfehlung, „stattdessen direkt mit den APIs der LLM-Anbieter zu integrieren“. Dieser Server ruft also selbst einen OpenAI-kompatiblen Endpunkt auf. Genau das macht ihn auch umgebungsunabhängig: Derselbe Code funktioniert mit LM Studio, Ollama, llama.cpp oder vLLM.
Related MCP server: membot
Die beiden Hälften
Sessions — Arbeitsgedächtnis für eine lange Aufgabe
Tool | Zweck |
| Startet eine benannte Session oder setzt sie fort; zeigt, was schon gespeichert ist |
| Legt einen Fakt, eine Entscheidung oder einen Irrweg ab. Anheften, was nie verloren gehen darf |
| Holt die Vorbestellen Einträge zurück, verpackt in ein Token-Budget |
| Falten von alten Einträgen zu einer Zusammenfassung zusammen, um Budget frei zu machen |
| Wie voll die Session ist, und ob kompaktiert werden sollte |
| Einen Eintrag anpinnen, entpinnen oder löschen |
| Eine Session-ID aus früheren Arbeit wiederfinden |
Dokumente — Material zu groß, um es auf einmal zu lesen
Tool | Zweck |
| Text oder Datei laden; in Blöcken zerlegt und gespeichert, fast nichts wird zum Kontext |
| Strukturübersicht: Chunk-Indizes, Überschriften, Größen, optionale Zusammenfassungen |
| Findet die relevanten Chunks per Schlüsselwort und gibt deren unverändert wieder |
| Liest Chunk-Bereiche der Reihe nach; der Cursor rückt von selbst weiter |
| Fasst einen Bereich oder das Ganze zusammen |
| Verwalten, was gespeichert wird |
Dazu kommt context_guide, das dem Modell den Workflow erklärt.
Schnellstart
npm install
npm run build
npm testnode dist/index.js --ingest-root ./sourcesOder erkunden Sie es interaktiv:
npx @modelcontextprotocol/inspector node dist/index.jsLM Studio
Bearbeiten Sie ~/.lmstudio/mcp.json (unter Windows C:\Users\<you>\.lmstudio\mcp.json) über Program → Install → Edit mcp.json und laden Sie LM Studio dann neu.
{
"mcpServers": {
"context": {
"command": "node",
"args": [
"/absolute/path/to/mcp-context-sliding/dist/index.js",
"--ingest-root", "/absolute/path/to/your/project",
"--budget", "4000"
]
}
}
}Diese beiden Pfade müssen absolut sein. Der Host tech sie den Server als Kindprozess mit Vagen nicht vorhersagbaren Arbeitsverzeichnis mitverwaltet, ¿peso? körnten, einen ein relativer Pfad if: keinem aufgelöst. Auf der Kommandozeile, wo Sie das Arbeitsverzeichnis steuern, sind relative Pfade wie
--ingest-root ./sourcesvöllig in Ordnung.Unter Windows verwenden Sie Arbeitsverzeichnisse entweder mit Vorwärtsschslägen (
C:/Users/sie/projects) oder verdoppeln Sie die Backslashes, da ein einzelnes\innerhalb eines JSON-Strings ein Escape-Zeichen ist.
Setzen Sie --budget auf die ungefähre Hälfte der Kontextlänge ist des Modells. Es ist das Zielbudget, in das dieser Server Rückero schützt, kein Limit, das LM Studio dem Server auferlegt.
Durch --ingest-root kann doc_ingest Dateien lesen. Lassen Sie es weg, akzeptiert der Server nur Inline-Text — das ist die sichere Voreinstellung, denn ein Server, der auf Zuruf eines Modells beliebige Pfade öffnet, ist ein Risiko.
Docker
docker build -t mcp-context-window:latest .{
"mcpServers": {
"context": {
"command": "docker",
"args": [
"run", "-i", "--rm", "--init",
"-v", "mcp-context-data:/data",
"-v", "/absolute/path/to/your/project:/ingest:ro",
"-e", "CTX_INGEST_ROOTS=/ingest",
"--add-host", "host.docker.internal:host-gateway",
"mcp-context-window:latest", "--stdio"
]
}
}
}Zwei Dinge, die hier beißen können: -i ist Pflicht, sonst findet der JSON-RPC-Handshake nie statt, und das benannte Volume ist Pflicht, sonst werden bei jedem Neustart still die alle gespeicherten Sessions verworfen. Aus einem Container heraus ist localhost der Container selbst, daher zeigt die LLM-Basis-URL standardmäßig auf host.docker.internal. Docker verlangt zudem, dass die Host-Seite eines -v-Bind-Mounts ein absoluter Pfad ist.
So läuft eine Session tatsächlich ab
context_open session_id "refactor-auth"
context_append "Goal: replace session cookies with JWT" (pinned)
context_append "auth/middleware.ts:42 assumes a cookie is present"
context_append "Decision: keep cookie support behind a flag for one release"
...
context_status → 3200/4000 tokens — approaching budget
context_compact → folds 14 old entries into one 380-token summary
context_recall "cookie flag decision" → returns the pinned goal + the decisionUnd ein Dokument:
doc_ingest file_path "logs/build-failure.log" → doc_kx91, 240 chunks
doc_search "OutOfMemory" → 3 chunks, 1400 tokens
doc_window from 118 to 121 → the surrounding contextDas Log ist nie in den Kontext des Modells gelangt. Drei gezielte Lesezugriffe schon.
Konfiguration
Flag | Env | Default | Bedeutung |
|
| Plattform-Datenverzeichnis | Wo der Zustand liegt |
|
| (keine) | Dateien zu |
|
|
| OpenAI-kompatibler Endpunkt |
|
| (geladenes Modell) | Leer lassen, um das geladene Modell zu nutzen |
|
|
| Lokale Modelle können langsam sein |
|
| aktiv | Nur extraktive Zusammenfassungen |
|
|
| Standardbudget für Recall/Fenster |
|
|
| Zielgröße von Chunks |
|
|
| Überschneidung zwischen Chunks |
|
|
| Kaltstart-Schätzung Tokens pro Zeichen |
|
|
| Transport |
|
|
| HTTP-Bindungset |
|
| an | JSON-Protokoll pro Aufruf auf stderr |
Design-Notizen
Die Token-Zählung ist gegen Ihr reales Modell kalibriert. Es gibt keinen universellen Tokenizer — Llama, Qwen und GPT alle teilen unterschiedlich —, und einen mitzuliefern würde groß und falsch ist für das, was Sie geladen haben. Stattdessen schätzt der Server günstig und misst dann die Wahrheit: Er sendet zwei Stichproben unterschiedlicher Länge an Ihren Endpunkt mit max_tokens: 1 und nimmt die Steigung der gemeldeten Usage.mprompt_tokens zwischen den beiden. Die Steigung hebt den festen Overhead der Chat-Vorlage heraus und ergibt die optimalen Grenzkosten pro Zeichen. If you want to find out what you're getting, you'll need to take a closer look.
Die Schätzungen sind bewusst großzügig. Wenn ich unterschätze, das Fenster überläuft und genau der Kontext beschnitten wird, diesen Server schützen soll.
Die Zusammenfassungen arbeiten abgestuft statt zu scheitern. Ist Ihr Endpunkt nicht erreichbaroder kein Modell geladen, fällt sie auf die extraktive Zusammenfassung zurück — TF-ISF-Satzbewertung — die sofort, deterministisch und strukturell gar nicht halluzinieren kann, weil sie nur Sätze auswählen kann, die tatsächlich da waren. Den Zugriff auf den gespeicherten Kontext zu verlieren, ist schlimmer als eine gröbere Zusammenfassung davon. Nach einem Fehler hält sich der Client kurzzurück, so dass ein Dokument mit 200 Chunks keine 200 einzelnen TCP-Timeouts abwarten muss.
Der Speicher ist ein Append-Only-JSONL. Ein Absturz kann höchstens die letzte Zeile beschädigen, die beim Laden ignoriert wird und nicht es macht. tail auf der Datei sieht man zu, wie sich der Speicher Füllt. Kompaktierung markiert Originale als veraltet, statt sie zu löschen; alte Einträge sind so auch nach einer Kompaktierung wiederherstellbar, die etwas Wichtiges verloren hat.
Bei der Aufteilung in Chunks wird die Struktur des Dokuments berücksichtigt, nicht feste Abstände — Überschriften, Absätze und eingerahmte Codeblöcke bleiben erhalten, und jeder Chunk trägt die Kopfzeilenfolge, unter der er liegt. Nur ein Block, der größer als ein Erstellungsblock ist, wird hart geteilt.
Retrieval ist BM25 plus Rezeption, ohne Einbettungs modell. Das braucht keinen geladenen Garbage, kostet keinen VRAM neben dem Hauptdämon und ist deterministisch — das ist wichtig, wenn der gesamte Punkt darin besteht, dass man vorhersagen kann, was das Modell sieht. Bezeichner werden ganz und für den Fall, dass sie getrennt werden, indexiert, so dass getUserName als „user name“ auffindbar ist.
Grenzen
Das Modell muss diese Tools tatsächlich aufrufen. Nichts ist automatisch.
Die Stichwortsuche übersieht Paraphrasierungen, die ein Embedding-Modell erfassen würde.
Tokenzahlen sind Schätzungen, bis die erste Kalibrierung erfolgreich ist.
Kein Transport authentifiziert; HTTP bindet deshalb an Loopback.
doc_ingestliest UTF-8-Text. Er ist kein PDF- oder DOCX-Extraktor.
Lizenz
MIT
Maintenance
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides persistent session memory for AI assistants, enabling them to store, search, and retrieve conversation summaries across sessions via the Model Context Protocol.10MIT
- AlicenseNot gradedqualityAmaintenanceProvides a persistent, versioned, and searchable context store for AI agents with local embedding and hybrid search.1143MIT
- AlicenseNot gradedqualityCmaintenanceLocal-first, cross-session context store that reduces token usage by saving facts, decisions, and preferences, and recalling them in later sessions with token-efficient ranking and compression.2MIT
- AlicenseNot gradedqualityAmaintenanceProvides a local context-memory layer for AI assistants, enabling retrieval-augmented queries, explanations, feedback, and status checks via MCP tools.1Apache 2.0
Related MCP Connectors
Universal memory for AI agents and tools. Save, organize and search context anywhere.
Your portable context layer — load it into any AI.
Persistent memory for AI agents. Search, store, and recall across sessions.
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/donliggett/mcp-context-sliding'
If you have feedback or need assistance with the MCP directory API, please join our Discord server