Skip to main content
Glama

English | Русский

Yandex Wiki Search MCP

yandex-wiki-search-mcp MCP server PyPI Python CI codecov License Docker

Demo: Wiki-Seite durchsuchen und per MCP zusammenfassen

Verbinde Claude, Cursor, Windsurf oder einen beliebigen MCP-Client mit Yandex Wiki: Volltextsuche, Seiten, Kommentare, Anhänge und dynamische Tabellen ("Grids") — 33 Tools mit typisierten Schemas.

Ein inoffizielles Projekt — weder mit Yandex verbunden noch von Yandex unterstützt.

  • 🔍 Volltextsuche im gesamten Wiki — dasselbe Backend, das auch die Wiki-Websuchleiste betreibt, bis zu 50 Ergebnisse pro Abfrage

  • 📄 Vollständiger Seitenlebenszyklus — erstellen, aktualisieren, anhängen (oben / unten / Anker), klonen, löschen mit Wiederherstellungs-Token, Kommentare, Datei-Uploads

  • 📊 Dynamische Tabellen (Grids) — 11 Schreib-Tools: Zeilen, Spalten, Zellen, kopieren, sortieren

  • 🔒 Serverseitiger Nur-Lese-ModusWIKI_READ_ONLY=true registriert die Schreib-Tools einfach nicht, sodass der Agent es nicht umgehen kann

  • 🧩 Typisierte Tool-Oberfläche — jedes Tool liefert Eingabe- und Ausgabe-JSON-Schemas sowie Sicherheitsannotationen (Hinweise auf Nur-Lese-, destruktive und idempotente Operationen)

  • 🐳 Läuft überall — stdio für Desktop-Clients, streamable-http + Docker (mit optionalem Multi-User-OAuth) für Teams

Schnellstart

  1. Hol dir ein Yandex-OAuth-Token mit Wiki-Zugriff (offizielle Anleitung) und deine Organisations-ID.

  2. Installiere es in deinen Client:

Zu Cursor hinzufügen In VS Code installieren Zu LM Studio hinzufügen In Claude Desktop installieren

Das Badge für Claude Desktop lädt das .mcpb-Bundle der neuesten Version herunter — doppelklicke darauf, und Claude Desktop installiert den Server und fragt nach dem Token und der Organisations-ID (uv muss installiert sein).

{
  "mcpServers": {
    "yandex-wiki-search": {
      "command": "uvx",
      "args": ["yandex-wiki-search-mcp"],
      "env": {
        "WIKI_TOKEN": "YOUR_TOKEN",
        "WIKI_ORG_ID": "YOUR_ORG_ID",
        "WIKI_READ_ONLY": "true"
      }
    }
  }
}
claude mcp add yandex-wiki-search \
  -e WIKI_TOKEN=YOUR_TOKEN -e WIKI_ORG_ID=YOUR_ORG_ID -e WIKI_READ_ONLY=true \
  -- uvx yandex-wiki-search-mcp
{
  "mcpServers": {
    "yandex-wiki-search": {
      "command": "docker",
      "args": ["run","--rm","-i",
        "-e","WIKI_TOKEN","-e","WIKI_ORG_ID","-e","WIKI_READ_ONLY=true",
        "ghcr.io/dlbolshov/yandex-wiki-search-mcp:latest"],
      "env": {"WIKI_TOKEN":"YOUR_TOKEN","WIKI_ORG_ID":"YOUR_ORG_ID"}
    }
  }
}

[!TIP] Starte mit WIKI_READ_ONLY=true — der Server registriert dann nicht einmal Schreib-Tools. Stell es auf false um, sobald du deinem Agenten Bearbeitungen zutraust.

  1. Frag deinen Agenten etwas — siehe unten.

Der Server läuft auf dem MCP Python SDK v2. Das ist für Clients unsichtbar — ein einzelner v2-Server beantwortet jede Protokollrevision bis zurück zu 2024-11-05 sowie die aktuelle, du musst also weder auf deiner Seite etwas ändern noch etwas neu installieren.

Der einzige Grund, sich zurückzuhalten, ist eine gemeinsame Umgebung, die mcp<2 für etwas anderes pinnt. 1.0.1 ist die letzte Veröffentlichung, die auf dem 1.x SDK basiert, und bleibt auf PyPI:

pip install "yandex-wiki-search-mcp<1.1"

Related MCP server: mediawiki-mcp-server

Was kann es tun?

"Finde unsere Onboarding-Dokumente und fasse die wichtigsten Schritte zusammen."

"Was haben wir zum Thema Incident Response? Öffne die relevanteste Seite."

"Erstelle eine Seite team/weekly-notes und füge die heutige Standup-Zusammenfassung an."

"Füge eine Zeile zum On-Call-Rotations-Grid hinzu: alice, nächste Woche."

"Lade diese PDF auf die Projektseite hoch und verlinke sie unten."

"Lösche die Entwurfsseite, aber behalte den Wiederherstellungs-Token, falls ich es mir anders überlege."

Tools

33 Tools. Alle Schreib-Tools verschwinden, wenn WIKI_READ_ONLY=true ist.

Suche & Lesen (10)

Werkzeug

Funktion

page_search

Volltextsuche über das gesamte Wiki (Seiten und Dateien), bis zu 50 sortierte Ergebnisse mit jeweils einem Textauszug; serverseitige Filter und optionale <em>-Trefferhervorhebung

page_get

Eine Seite über page_id oder slug abrufen (akzeptiert auch vollständige Wiki-URLs)

page_get_descendants

Eine Seiten-Unterstruktur durchlaufen – eine flache Liste von {id, slug} aus allen Verschachtelungsebenen; from_root=true durchläuft das gesamte Wiki; fetch_all leert den Cursor in einem Aufruf

page_get_comments

Seitenkommentare auflisten (fetch_all wird unterstützt)

page_get_resources

Seitenressourcen auflisten (Anhänge + Raster) mit serverseitiger Titelsuche (fetch_all wird unterstützt)

page_get_attachments

Seitenanhänge auflisten (fetch_all wird unterstützt)

page_read_attachment

Den Inhalt eines Anhangs direkt in die Konversation lesen (nichts wird irgendwo gespeichert) – PNG/JPEG/GIF/WebP als nativer Bildblock, den vision-fähige Clients rendern, Text als Text (SVG enthalten: es ist XML, und ein Bildblock, den eine Vision-API nicht dekodieren kann, schlägt den nächsten Aufruf des Hosts fehl), andere Binärdateien als base64-Blob. Das Format wird durch die Magic Bytes der Datei bestimmt, nicht durch die Angabe der Übertragung. Begrenzt, um das Kontextfenster des Modells zu schützen: 128 KiB für Text/Binär, 2 MiB für Bilder; alles Größere wird mit einem Verweis auf page_download_attachment oder download_url aus page_get_attachments abgelehnt.

page_get_grids

Mit einer Seite verbundene Raster auflisten (fetch_all wird unterstützt)

grid_get

Ein Raster über grid_id mit Zeilen-/Spalten-/Revisionsfiltern abrufen

user_get_current

Wer bin ich – username und home_cluster (der Slug des persönlichen Bereichs des Aufrufers)

Seiten: schreiben (12)

Tool

Was es tut

page_create

Eine Seite erstellen

page_update

Seitentitel und/oder vollständigen Inhalt aktualisieren; eine Weiterleitung auf eine andere Seite setzen oder entfernen

page_edit

Inhalt durch exakte Textersetzungen bearbeiten, ohne die gesamte Seite erneut zu senden; eine fehlende oder mehrdeutige Übereinstimmung lässt den Aufruf fehlschlagen, bevor etwas geschrieben wird; schreibt mit allow_merge zurück, sodass eine gleichzeitige Bearbeitung zusammengeführt und nicht überschrieben wird

page_append_content

Inhalt oben, unten oder an einem benannten Anker anhängen

page_clone

Eine Seite unter einem neuen Slug kopieren – die Kopie erhält eine neue id; Kinder, Kommentare und Verlauf bleiben beim Original; belegte Slugs werden abgelehnt. Die API bietet kein echtes Verschieben/Umbenennen (Details)

page_add_comment

Einen Kommentar oder eine Antwort in einem Thread hinzufügen

page_delete_comment

Einen Kommentar löschen; gibt die aktualisierte Kommentaranzahl der Seite zurück

page_delete_attachment

Einen Anhang von einer Seite löschen

page_delete

Eine Seite löschen und einen Wiederherstellungs-Token erhalten

page_recover

Eine gelöschte Seite per Wiederherstellungs-Token wiederherstellen

page_upload_attachment

Eine lokale Datei in Teilen hochladen und an eine Seite anhängen – nicht unter OAUTH_ENABLED=true registriert, wo „lokal“ das Dateisystem des gemeinsamen Servers bedeuten würde

page_download_attachment

Einen Anhang in eine lokale Datei herunterladen – wird ohne Größenbegrenzung auf die Festplatte gestreamt, nichts gelangt in die Konversation. Atomar geschrieben (.part → fsync → rename), verweigert das Überschreiben, sofern nicht ausdrücklich gewünscht, und erhält die Berechtigungen, die ein normaler Schreibvorgang vergeben würde (0666 & ~umask, niemals ausführbar); beim Ersetzen einer Datei bleibt deren eigener Modus erhalten. Das Directory-fsync, das das Umbenennen selbst absturzsicher macht, sowie die Modus-Vererbung sind nur unter POSIX verfügbar. Unter OAuth genauso eingeschränkt wie page_upload_attachment

Grids: Schreiben (11)

Tool

Was es tut

grid_create

Ein Grid auf einer Seite erstellen

grid_update

Grid-Titel und/oder Standardsortierung aktualisieren

grid_copy

Ein Grid auf eine vorhandene Zielseite kopieren (asynchroner Vorgang)

grid_delete

Ein Grid löschen

grid_add_rows

Zeilen an einer Position oder nach einer bestimmten Zeile hinzufügen

grid_update_cells

Einzelne Zellen nach Zeile + Spalte aktualisieren

grid_delete_rows

Zeilen löschen

grid_move_row

Eine Zeile verschieben

grid_add_columns

Typisierte Spalten hinzufügen

grid_delete_columns

Spalten nach Slug löschen

grid_move_column

Eine Spalte verschieben

Besonderheiten von Grids:

  • Mutationen verwenden optimistisches Sperren – zuerst das Grid abrufen und die neueste revision übergeben.

  • grid_update.default_sort akzeptiert Einträge wie [{"column": "status", "direction": "asc"}]; der Server konvertiert sie in das Drahtformat, das die API erwartet.

  • grid_add_columns erfordert required für jede Spalte, weil die echte API dies validiert.

  • grid_copy gibt Operations-Metadaten zurück, kein fertig kopiertes Grid-Objekt.

Vergleich

Fakten geprüft anhand der Dokumentationen und des veröffentlichten Codes der Alternativen, Juli–August 2026; die Werkzeugliste des offiziellen gehosteten Servers wurde live von mcp.wiki.yandex.net (wiki-mcp-server 1.28.1, 2026-08-11) erfasst.

yandex-wiki-search-mcp

Yandex's official MCP (hosted)

ya-yandex-wiki-mcp

slartus/mcp-yandex-wiki

ya-wiki-mcp

Volltextsuche

✅ bis zu 50 Ergebnisse, serverseitige Filter + Hervorhebung

❌ kein Suchwerkzeug

✅ bis zu 10 Ergebnisse

Seiten: erstellen / aktualisieren / anhängen / löschen + wiederherstellen

✅ alle, plus partielle Bearbeitungen per Textersetzung (page_edit)

teilweise — kein Anhängen / Wiederherstellen; hat partielle Bearbeitungen per Textersetzung

✅ alle

teilweise — kein Anhängen / Wiederherstellen

teilweise — kein Wiederherstellen

Seiten: in einen neuen Slug klonen

page_clone

Grids: Schreibwerkzeuge

✅ 11

✅ 12, inkl. Spaltenaktualisierung + Zeilen-Pin/Farbe

✅ 11

❌ schreibgeschützt

✅ 11, inkl. Klonen

Kommentare, Anhang-Upload

✅ inkl. Löschung, Inline-Bildvorschau und Download auf die Festplatte

Kommentare ✅ / Upload ❌ (Download + Vorschau stattdessen)

Serverseitiger Schreibschutzmodus

Typisierte Ausgabeschemata + Tool-Anmerkungen

❌ Tools geben einfache Zeichenketten zurück

YFM-Hilfsfunktionen

✅ Syntax-Spickzettel-Ressource + yfm_warnings in Schreibwerkzeugen

✅ Markdown→YFM-Konverter + Seitenbaum-Cache, Prompt-Vorlagen

Docker / PyPI / MCP Registry

✅ / ✅ / ✅

— gehosteter Dienst, Closed Source, nichts zu installieren

✅ / ✅ / ✅

❌ manuelle Installation

❌ / ✅ / ❌

Mehrbenutzer-OAuth für HTTP-Bereitstellungen

❌ Pro-Benutzer-Token in statische Header eingefügt, kein OAuth-Ablauf

Auch wissenswert:

  • best-doctor/mcp-yandex-wiki (Python) — Seiten erstellen / aktualisieren plus Lesen, mit einem separaten -ro-Schreibschutz-Einstiegspunkt; kein Löschen / Wiederherstellen, keine Grids, keine Suche; nur PyPI

  • brekhov-ilya/yandex-wiki-mcp (npm) — Seiten lesen / schreiben / verschieben, Grids schreibgeschützt; interaktiver PKCE-Token-Ablauf mit automatischer Aktualisierung, keine Volltextsuche

  • n-r-w/yandex-mcp (Go) — Yandex Tracker + Wiki in einem Server, von Natur aus schreibgeschützt (5 Wiki-Lesewerkzeuge), keine Suche; Authentifizierung nur über IAM-Tokens von der yc-CLI — Yandex-OAuth-Tokens werden nicht unterstützt

  • bim-ba/ycli (Python) — ein Toolkit für Tracker + Wiki + Forms: eine CLI, ein Python-SDK, ein Claude-Code-Plugin und ein MCP-Server, dessen Wiki-Oberfläche aus 42 wiki_*-Tools besteht (15 lesen / 27 schreiben, annotiert, mit einem --read-only-Flag); kein Volltextsuchwerkzeug, und Anhang-Downloads bleiben nur CLI/SDK

Stand August 2026 gibt es Volltextsuche nur hier (bis zu 50 Ergebnisse) und bei slartus (bis zu 10) – Yandex' eigener gehosteter Server wird ohne Suchwerkzeug ausgeliefert – und die Kombination aus Suche, Grid-Schreibvorgängen, serverseitigem Schreibschutzmodus und typisierten Schemata ist einzigartig für dieses Projekt.

Dieses Projekt ist ein Fork von ya-yandex-wiki-mcp und baut auf Erkenntnissen aus slartus/mcp-yandex-wiki auf – siehe Credits.

Volltextsuche

page_search kapselt den POST /v1/search-Endpunkt – dasselbe Backend, das die Wiki-Websuchleiste antreibt, undokumentiert, bis Yandex im August 2026 seine API-Referenz veröffentlichte. Zuerst suchen, dann ein Ergebnis mit page_get über dessen slug öffnen.

  • Bis zu 50 Ergebnisse pro Aufruf (limit wird auf 1–50 begrenzt; die API lehnt alles andere ab).

  • Filter laufen serverseitig, vor dem Limit – eine gefilterte Suche verliert dadurch keine Treffer: slug_prefix (Abschnittsfilter, tiefe Präfixe wie tech-doc/ml sind in Ordnung), result_type (page/file), authors (Seitenbesitzer per uid/cloud_uiduser_get_current liefert Ihre eigenen, wodurch „finde meine Seiten über X“ zu zwei Aufrufen wird) und created_between/modified_between-Datumsintervalle (beide Grenzen erforderlich – die API lehnt offene ab).

  • In Anführungszeichen gesetzte "exact phrase"-Suchanfragen funktionieren; page-Ergebnisse erhalten absolute https://wiki.yandex.ru/...-Links, file-Ergebnisse direkte Download-Links.

  • content ist ein ~510-Zeichen-Auszug, nicht die Seite und keine Zusammenfassung: Er wird dort abgeschnitten, wo der Treffer sitzt, die Suchbegriffe müssen nicht darin enthalten sein, und seine Zeilenumbrüche und Tabs stammen aus dem Layout der Seite selbst (Tabellenzellen kommen tabulatorgetrennt an) und sind keine Trennzeichen zwischen Fragmenten. Übergeben Sie highlight=true, um Treffer in <em>-Tags eingebettet zu erhalten. Lesen Sie die Seite mit page_get, bevor Sie darauf antworten. Bei file-Ergebnissen leer.

Durchlaufen des Baums

page_get_descendants gibt einen Teilbaum als eine flache Liste von {id, slug} aus jeder Verschachtelungsebene zurück. Wenn Sie from_root=true anstelle von page_id/slug übergeben, wird das gesamte Wiki durchlaufen – der Einstieg, wenn kein Start-Slug bekannt ist, sodass die Suche nicht der einzige Einstiegspunkt ist. Bevorzugen Sie einen Abschnitts-Slug, wenn Sie einen haben: Wikis umfassen Tausende von Seiten, und fetch_all stoppt bei seiner ~500-Elemente-Obergrenze mit truncated: true.

Weiteres verifiziertes API-Verhalten (Scopes, 403-Semantik, Fehlerhüllen, Limits): docs/api-notes.md.

Konfiguration

Variable

Erforderlich

Standard

Beschreibung

WIKI_TOKEN

eines von beiden

Yandex-OAuth-Token (hat Vorrang, wenn beide gesetzt sind)

WIKI_IAM_TOKEN

IAM-Token (Yandex-Cloud-Organisationen)

WIKI_ORG_ID

genau eines von beiden

Yandex-360-Organisations-ID (X-Org-Id)

WIKI_CLOUD_ORG_ID

Yandex-Cloud-Organisations-ID (X-Cloud-Org-Id)

WIKI_READ_ONLY

nein

false

true deaktiviert serverseitig alle Schreibwerkzeuge

TRANSPORT

nein

stdio

stdio | sse | streamable-http

HOST / PORT

nein

0.0.0.0 / 8000

Nur HTTP-Transports

STATELESS_HTTP / JSON_RESPONSE

nein

true / true

Nur streamable-http: keinen Sitzungsstatus pro Session behalten / mit JSON statt SSE antworten

LOG_LEVEL

nein

INFO

Logs gehen nach stderr; DEBUG protokolliert zusätzlich Wiki-API-Anfragen (Methode, Pfad, Status, Dauer – niemals Header oder Bodies)

WIKI_API_BASE_URL

nein

https://api.wiki.yandex.net

Wiki-API-Endpunkt

WIKI_WEB_BASE_URL

nein

https://wiki.yandex.ru

Basis für absolute Seitenlinks in page_search-Ergebnissen

WIKI_AUTH_SCHEME

nein

OAuth

Authorization-Header-Schema für WIKI_TOKEN (OAuth | Bearer)

WIKI_MAX_RETRIES

nein

2

Wiederholungen bei abgebrochenen Verbindungen und 429/502/503/504 bei Leseanfragen; 0 deaktiviert sie

TOOL_RESULT_TEXT

nein

pretty

Textduplikat strukturierter Werkzeugergebnisse: pretty (Einzug=2) | compact (einzeilig, 10–30 % weniger Textblock) | none (nur strukturiert – prüfen Sie, ob Ihr Client structuredContent zuerst rendert)

Mit OAUTH_ENABLED=true wird der Server zu einem OAuth-Anbieter: Jeder MCP-Benutzer autorisiert sich mit seinem eigenen Yandex-Konto, und Anfragen an die Wiki-API werden mit seinem persönlichen Token ausgeführt. page_upload_attachment und page_download_attachment sind in diesem Modus nicht registriert: Sie lesen und schreiben Dateien auf dem Rechner, auf dem der Server läuft – bei einer gemeinsamen Bereitstellung ist das nicht der Rechner des Aufrufers.

Variable

Standard

Beschreibung

OAUTH_ENABLED

false

OAuth-Anbieter aktivieren

OAUTH_STORE

memory

memory | redis

OAUTH_SERVER_URL

https://oauth.yandex.ru

Yandex-OAuth-Server

OAUTH_USE_SCOPES

true

Wiki-Scopes bei der Autorisierung anfordern

OAUTH_CLIENT_ID / OAUTH_CLIENT_SECRET

Anmeldedaten Ihrer Yandex-OAuth-App

OAUTH_CLIENT_SECRET_EXPIRY_SECONDS

2592000 (30 Tage)

Lebensdauer eines dynamisch registrierten MCP-Clients. Die Registrierung ist protokollbedingt unauthentifiziert, daher wird ohne Ablaufdatum jede Registrierung dauerhaft behalten; Clients erfahren die Frist bei der Registrierung und registrieren sich erneut, wenn sie abläuft. Leer deaktiviert dies

MCP_SERVER_PUBLIC_URL

Öffentliche URL dieses Servers (OAuth-Rückrufe)

OAUTH_ENCRYPTION_KEYS

Kommagetrennte Base64-32-Byte-Schlüssel (erforderlich für redis-Store)

REDIS_ENDPOINT / REDIS_PORT / REDIS_DB / REDIS_PASSWORD / REDIS_POOL_MAX_SIZE

localhost / 6379 / 0 / — / 10

Redis-Verbindung

Organisation pro Benutzer wählen. WIKI_ORG_ID / WIKI_CLOUD_ORG_ID sind unter OAuth optional, da jede Anfrage ihre eigene Organisation benennen kann: Hängen Sie ?orgId=... (oder ?cloudOrgId=...) an die MCP-Server-URL an, mit der sich Ihr Client verbindet. Ein Abfrageparameter gewinnt gegenüber der serverweiten Einstellung, sodass eine Bereitstellung mehrere Organisationen bedienen kann. Trägt eine Anfrage keines von beiden, schlägt der Werkzeugaufruf mit einer Meldung fehl, die auf beide Optionen verweist – setzen Sie die Umgebungsvariable als Standard, wenn alle Ihre Benutzer eine Organisation teilen.

Siehe .env.example für die vollständige kommentierte Liste und compose.yaml für eine Redis-Basislinie.

Bereitstellung

flowchart LR
    C["MCP client&lt;br/&gt;Claude / Cursor / Windsurf / VS Code"]
    S["yandex-wiki-search-mcp"]
    W["Yandex Wiki API"]
    R[("Redis&lt;br/&gt;optional OAuth token store")]
    C -- "stdio (local, single user)" --> S
    C -- "streamable-http (+ OAuth, multi-user)" --> S
    S --> W
    S -.-> R

HTTP-Server über Docker (der MCP-Endpunkt ist http://localhost:8000/mcp):

docker run --env-file .env -e TRANSPORT=streamable-http -p 8000:8000 \
  --log-opt max-size=10m --log-opt max-file=3 \
  ghcr.io/dlbolshov/yandex-wiki-search-mcp:latest

[!HINWEIS] Der Server schreibt keine eigenen Logdateien – alles geht nach stderr, das der Standard-json-file-Treiber von Docker ohne Größenlimit speichert. Die --log-opt-Flags oben begrenzen das; entfernen Sie sie nur, wenn Ihr Daemon bereits einen Standard festlegt.

services:
  mcp-wiki:
    image: ghcr.io/dlbolshov/yandex-wiki-search-mcp:latest  # or: build: .
    ports:
      - "8000:8000"
    environment:
      - WIKI_TOKEN=${WIKI_TOKEN}
      - WIKI_ORG_ID=${WIKI_ORG_ID}
      - TRANSPORT=streamable-http
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

Für Redis-gestützte OAuth-Speicherung verwenden Sie die vorhandene compose.yaml als Basislinie.

Sicherheit

  • Schreibgeschützt ist serverseitig: Mit WIKI_READ_ONLY=true werden Schreibwerkzeuge nie registriert – es gibt nichts, was ein verwirrter Agent aufrufen könnte.

  • Die Wiki-API erzwingt keine OAuth-Scopes (erneut verifiziert am 11.08.2026, nachdem Yandex die Scopes dokumentiert hat – siehe docs/api-notes.md): Ein wiki:read-Token kann trotzdem schreiben, verwenden Sie also den schreibgeschützten Modus, statt sich auf Token-Scopes zu verlassen.

  • Geheimnisse sind durchgängig SecretStr – in Logs und repr maskiert; DEBUG-HTTP-Protokollierung enthält niemals Header oder Bodies.

  • Löschen ist wiederherstellbar: page_delete gibt ein Wiederherstellungs-Token für page_recover zurück.

  • Nicht zusammenhängende Schlüssel in einer gemeinsamen .env werden ignoriert, aber eine falsch geschriebene Einstellung (WIKI_READ_ONL) stoppt den Server, statt stillschweigend auf einen Standard zurückzufallen, den Sie nicht gewählt haben.

Entwicklung

uv sync --dev
uv run yandex-wiki-search-mcp   # run locally
uv run pytest                   # tests

Führen Sie vor dem Committen die vollständige Verifikationssuite aus CONTRIBUTING.md aus. Wie der Server aufgebaut ist – die Schichten, die Codekarte, Testnähte, CI und der Release-Prozess – wird in docs/architecture.md beschrieben. Verifiziertes API-Verhalten und Prüfskripte sind in docs/api-notes.md dokumentiert.

Die Wiki-API driftet (der Such-Endpunkt hat seinen Vertrag bereits einmal stillschweigend geändert, als er noch undokumentiert war) — scripts/contract_sweep.py überprüft jede Client-Methode erneut gegen eine Live-Organisation und meldet Validierungsabweichungen und nicht deklarierte Schlüssel:

uv run python scripts/contract_sweep.py users/YOU/contract-sweep            # ~30 live checks
uv run python scripts/contract_sweep.py users/YOU/contract-sweep --cleanup  # remove fixtures

Der Workflow API drift check führt denselben Sweep wöchentlich aus, wenn die Repository-Secrets DRIFT_* konfiguriert sind (Anweisungen im Workflow-Header); ohne sie wird er stillschweigend übersprungen.

Danksagungen

Dieses Projekt begann als Fork von APonkratov/yandex-wiki-mcp (ya-yandex-wiki-mcp) von Aleksandr Ponkratov, einem hervorragenden, gut getesteten Python-MCP-Server für die Yandex-Wiki-API, lizenziert unter Apache-2.0. Es hat inzwischen eine eigene API-Oberfläche entwickelt — Volltextsuche, typisierte Eingabe- und Ausgabeschemata über alle 33 Tools, YFM-Helfer, Cursor-Draining, Multi-User-OAuth und einen Live-Contract-Sweep gegen die API — , während das ursprüngliche Urheberrecht und die ursprüngliche Lizenz erhalten bleiben (siehe LICENSE und NOTICE).

Die Idee und die zentralen API-Erkenntnisse hinter der Volltextsuche stammen von slartus/mcp-yandex-wiki (JavaScript, MIT): Es war das erste, das den damals undokumentierten Endpunkt POST /v1/search entdeckte (eine Referenz dafür veröffentlichte Yandex erst im August 2026) und meldete, dass OAuth-Scopes nicht erzwungen werden. Es wurde kein Code übernommen — nur Erkenntnisse und Ideen, die unabhängig gegen eine Live-Organisation verifiziert und hier erweitert wurden.

Markenzeichen

„Yandex“ und „Yandex Wiki“ sind Markenzeichen von YANDEX LLC. Dies ist ein inoffizielles, von der Community erstelltes Projekt, das nicht mit Yandex verbunden ist, nicht von Yandex gesponsert wird und keine Unterstützung von Yandex erhält — die Namen werden hier rein nominativ verwendet, um zu bezeichnen, mit welchem Dienst der Server spricht. Das Logo ist ein eigenständiges Zeichen, das weder das Yandex-Wiki- noch das MCP-Branding übernimmt (Design-Notizen).


mcp-name: io.github.dlbolshov/yandex-wiki-search-mcp

A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
2dRelease cycle
14Releases (12mo)
Commit activity

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.

  • Self-hostable team wiki; agents read & write it via MCP; Atlas turns your repo into a cited wiki.

  • Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.

View all MCP Connectors

Latest Blog Posts

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/dlbolshov/yandex-wiki-search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server