Skip to main content

MCP server for Yandex Wiki with read/write tools and readonly mode

Project description

Yandex Wiki MCP

PyPI version License: MIT

Реализация MCP-сервера для Яндекс Вики с режимами read/write и readonly.

Содержимое

  • mcp-yandex-wiki — полный режим (чтение + создание/обновление/append)
  • mcp-yandex-wiki-ro — read-only режим (только чтение)

Установка

  1. Установить uv (если ещё не установлен).
  2. Получить OAuth-токен Яндекс и org_id:
    1. Создать приложение на oauth.yandex.ru с правами Wiki.
    2. Подставить client_id в URL:
      https://oauth.yandex.ru/authorize?response_type=token&client_id=<CLIENT_ID>
      
      и авторизоваться.

Переменные окружения

Обязательные:

  • WIKI_TOKEN или TRACKER_TOKEN
  • WIKI_ORG_ID или TRACKER_ORG_ID

Опциональные:

  • WIKI_API_BASE_URL (по умолчанию https://api.wiki.yandex.net/v1)
  • TRANSPORT (stdio по умолчанию)
  • HOST (127.0.0.1)
  • PORT (8088)
  • MCP_PATH (/mcp)
  • TOOLS_CACHE_ENABLED (true/false, по умолчанию false)
  • TOOLS_CACHE_REDIS_TTL (в секундах, по умолчанию 3600)
  • REDIS_ENDPOINT (localhost)
  • REDIS_PORT (6379)
  • REDIS_DB (0)
  • REDIS_PASSWORD
  • REDIS_POOL_MAX_SIZE (10)
  • READONLY (true/false)

Кэширование (Redis)

Кэшируются только read-операции для Wiki:

  • wiki_page_get
  • wiki_page_get_by_url
  • wiki_page_get_text_by_url

Особенности:

  • включается через TOOLS_CACHE_ENABLED=true
  • кэш живёт в Redis (REDIS_*)
  • при любых write-операциях (create, update, append_content) кэш инвалидируется для затронутых страниц/slug
  • в ответах добавляется флаг _mcp_cache_hit (true/false)

Минимальный пример для локального Redis:

docker run -p 6379:6379 --name redis-cache -d redis:alpine

TRACKER_TOKEN=your_token TRACKER_ORG_ID=your_org_id \
  TOOLS_CACHE_ENABLED=true REDIS_ENDPOINT=127.0.0.1 REDIS_PORT=6379 uvx mcp-yandex-wiki

Production-подобный пример:

TRACKER_TOKEN=your_token TRACKER_ORG_ID=your_org_id \
TOOLS_CACHE_ENABLED=true \
  REDIS_ENDPOINT=redis.internal \
  REDIS_PORT=6379 \
  REDIS_DB=0 \
  REDIS_PASSWORD=secret \
  TOOLS_CACHE_REDIS_TTL=7200 \
  uvx mcp-yandex-wiki

Быстрый запуск (через PyPI)

TRACKER_TOKEN=your_token TRACKER_ORG_ID=your_org_id \
  uvx mcp-yandex-wiki

TRACKER_TOKEN=your_token TRACKER_ORG_ID=your_org_id \
  uvx --from mcp-yandex-wiki mcp-yandex-wiki-ro

Альтернатива (после установки):

pip install mcp-yandex-wiki
python -m yandex_wiki_mcp

Подключение в MCP-агентах (через PyPI)

Claude Code

claude mcp add yandex-wiki uvx mcp-yandex-wiki \
  -e WIKI_TOKEN=your_token \
  -e WIKI_ORG_ID=your_org_id

claude mcp add yandex-wiki-ro -- uvx --from mcp-yandex-wiki mcp-yandex-wiki-ro \
  -e WIKI_TOKEN=your_token \
  -e WIKI_ORG_ID=your_org_id

Если используете TRACKER_*-переменные, замените их на:

claude mcp add yandex-wiki uvx mcp-yandex-wiki \
  -e TRACKER_TOKEN=your_token \
  -e TRACKER_ORG_ID=your_org_id

Codex (конфиг проекта)

[mcp_servers.yandex-wiki]
command = "uvx"
args = ["mcp-yandex-wiki"]
env = { WIKI_TOKEN = "your_token", WIKI_ORG_ID = "your_org_id" }

[mcp_servers.yandex-wiki-ro]
command = "uvx"
args = ["--from", "mcp-yandex-wiki", "mcp-yandex-wiki-ro"]
env = { WIKI_TOKEN = "your_token", WIKI_ORG_ID = "your_org_id" }

Cursor

  1. Открыть SettingsCursor SettingsMCP+ Add new global MCP server. Откроется файл ~/.cursor/mcp.json.
  2. Добавить конфигурацию:
{
  "mcpServers": {
    "yandex-wiki": {
      "command": "uvx",
      "args": ["mcp-yandex-wiki"],
      "env": {
        "WIKI_TOKEN": "your_token",
        "WIKI_ORG_ID": "your_org_id"
      }
    }
  }
}

Для read-only режима:

{
  "mcpServers": {
    "yandex-wiki-ro": {
      "command": "uvx",
      "args": ["--from", "mcp-yandex-wiki", "mcp-yandex-wiki-ro"],
      "env": {
        "WIKI_TOKEN": "your_token",
        "WIKI_ORG_ID": "your_org_id"
      }
    }
  }
}

Можно также добавить на уровне проекта — создайте файл .cursor/mcp.json в корне репозитория с аналогичным содержимым.

  1. Вернуться в SettingsMCP и убедиться, что у сервера зелёный индикатор (статус «running»).

Другие MCP-клиенты (JSON, общий шаблон)

{
  "mcpServers": {
    "yandex-wiki": {
      "command": "uvx",
      "args": ["mcp-yandex-wiki"],
      "env": {
        "WIKI_TOKEN": "your_token",
        "WIKI_ORG_ID": "your_org_id"
      }
    },
    "yandex-wiki-ro": {
      "command": "uvx",
      "args": ["--from", "mcp-yandex-wiki", "mcp-yandex-wiki-ro"],
      "env": {
        "WIKI_TOKEN": "your_token",
        "WIKI_ORG_ID": "your_org_id"
      }
    }
  }
}

Инструменты

mcp-yandex-wiki (rw)

  • wiki_page_get
  • wiki_page_get_by_url
  • wiki_page_get_text_by_url
  • wiki_page_create
  • wiki_page_update
  • wiki_page_append_content

mcp-yandex-wiki-ro

  • wiki_page_get
  • wiki_page_get_by_url
  • wiki_page_get_text_by_url
  • write-инструменты возвращают 403

Отладка (MCP Inspector)

Для интерактивной отладки MCP-сервера можно использовать MCP Inspector.

  1. Запустить сервер в режиме SSE:
uv run fastmcp run yandex_wiki_mcp/server.py --transport sse
  1. В другом терминале запустить Inspector:
npx @modelcontextprotocol/inspector@latest
  1. В открывшемся интерфейсе Inspector выбрать Transport Type: SSE и указать URL:
http://localhost:8000/sse
  1. Нажать Connect — Inspector подключится к серверу и покажет список доступных инструментов, позволяя вызывать их вручную и видеть ответы.

Настройки FastMCP для production

Сервер поддерживает переменные окружения FastMCP для тонкой настройки поведения:

  • FASTMCP_MASK_ERROR_DETAILS — при true маскирует детали ошибок в ответах клиентам. Показываются только сообщения из явно выброшенных ToolError. Рекомендуется для production.
  • FASTMCP_STRICT_INPUT_VALIDATION — при true включает строгую валидацию входных данных инструментов по JSON-схемам. При false (по умолчанию) допускаются совместимые преобразования типов (например, строка "10" → число 10).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_yandex_wiki-0.0.3.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_yandex_wiki-0.0.3-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file mcp_yandex_wiki-0.0.3.tar.gz.

File metadata

  • Download URL: mcp_yandex_wiki-0.0.3.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcp_yandex_wiki-0.0.3.tar.gz
Algorithm Hash digest
SHA256 1241ad0557f2d7211efb53794319aae02d182141ecc2a6bf521810cc3b359b2b
MD5 f95d05aa5e797fd24e61f46d97d2268a
BLAKE2b-256 8a7da3ec85ceb82561e79cb6549f82428e99644536a465ac1de53f7686e9f775

See more details on using hashes here.

File details

Details for the file mcp_yandex_wiki-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_yandex_wiki-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e65eafd92be2a9b297a699ee78646e8f6baf4735987ad29a7e96337066162a6e
MD5 d27dd5621214cd72f62381505a3ffd14
BLAKE2b-256 8a925b7006df7bb8c7639cd5b8f116db944bda7c79f0cb2f2099fa12b11da3ae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page