Skip to main content

MCP server for Yandex Wiki API — pages, grids, YFM syntax, prompt templates

Project description

ya-wiki-mcp

MCP server for Yandex Wiki API. Works with Claude Code, Claude Desktop, and any MCP client.

Built on ya-wiki-api Python client.

Quick Start

# Add to Claude Code
claude mcp add ya-wiki \
  -e YA_WIKI_TOKEN=your-token \
  -e YA_WIKI_ORG_ID=your-org-id \
  -- uvx ya-wiki-mcp

# Or run directly
uvx ya-wiki-mcp

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "ya-wiki": {
      "command": "uvx",
      "args": ["ya-wiki-mcp"],
      "env": {
        "YA_WIKI_TOKEN": "your-token",
        "YA_WIKI_ORG_ID": "your-org-id"
      }
    }
  }
}

Features

  • 36 tools — full CRUD for pages, dynamic tables (grids), resources, and tree navigation
  • Page tree cache — local tree cache with auto-sync on page create/update/delete/clone, plus full refresh from API
  • YFM reference — built-in Yandex Flavored Markdown syntax guide
  • Markdown to YFM converter — automatically converts standard Markdown to Wiki format
  • Prompt templates — manage reusable page templates directly from chat

Configuration

Variable Required Description
YA_WIKI_TOKEN Yes OAuth token. Get one at https://oauth.yandex.ru/
YA_WIKI_ORG_ID Yes Organization ID
YA_WIKI_ORG_TYPE No cloud (default) or business

You can set these in a .env file or pass via -e flags.

Getting a Token

  1. Go to https://oauth.yandex.ru/ and create an app
  2. Select "For API access or debugging"
  3. Add scopes: wiki:write (full access) or wiki:read (read-only)
  4. Get your token: https://oauth.yandex.ru/authorize?response_type=token&client_id=<ClientID>

Tools

Pages

Tool Description
get_page Get a page by slug or ID
get_page_content Get page text only (no metadata)
create_page Create a page (wysiwyg, page, grid, template). Auto-updates tree cache.
update_page Update title, content, or redirect. Auto-updates tree cache on title change.
delete_page Delete a page (returns recovery token). Auto-removes from tree cache.
clone_page Clone a page to a new location. Auto-adds clone to tree cache.
append_content Append text to a page (top, bottom, section, or anchor)
get_descendants Get all subpages (all levels) by page ID
get_descendants_by_slug Get all subpages (all levels) by slug

Resources

Tool Description
get_page_resources Get attachments, grids, and SharePoint docs for a page
get_page_grids List grids attached to a page

Dynamic Tables (Grids)

Tool Description
create_grid Create a table on a page
get_grid Get a table with filtering and sorting
update_grid Update title or sort order
delete_grid Delete a table
add_rows Add rows
delete_rows Delete rows
add_columns Add columns
delete_columns Delete columns
update_cells Update cell values
move_rows Move rows
move_columns Move columns
clone_grid Clone a table to another page

Page Tree Cache

Tool Description
get_tree Get tree from cache (default) or fresh from API (use_cache=false)
refresh_tree_cache Full rebuild of tree cache from API by root slug
clear_tree_cache Clear tree cache
suggest_placement Suggest where to place a new page based on description
add_tree_section Manually add a section to the tree
remove_tree_section Manually remove a section from the tree
set_tree Replace entire tree from YAML

Utilities

Tool Description
convert_md_to_yfm Convert Markdown to YFM (tables, callouts, details, underline, highlight)

Prompt Manager

Tool Description
prompts_list List all saved templates
prompts_get Get and render a template with arguments
prompts_add Create a template from chat
prompts_add_from_file Load a template from a file
prompts_remove Delete a template

Page Tree Cache

The server maintains a local tree cache at ~/.cache/ya-wiki-mcp/tree.yaml that maps your wiki's section hierarchy. This cache is shared across all terminal sessions and is used by get_tree and suggest_placement to help with page navigation and placement.

Auto-sync: The cache updates automatically when you create, update, delete, or clone pages through the MCP tools.

Manual refresh: Use refresh_tree_cache("root-slug") to rebuild the cache from the API. This fetches all descendant pages and their titles.

# First time — initialize cache from your wiki root
refresh_tree_cache("your-root-slug")

# Quick check — read from cache (instant)
get_tree()

# Force fresh — bypass cache and fetch from API
get_tree(use_cache=false)

# Reset — clear and re-fetch
clear_tree_cache()
refresh_tree_cache("your-root-slug")

Markdown to YFM Converter

Yandex Wiki uses YFM (Yandex Flavored Markdown), which differs from standard Markdown. The converter handles:

Markdown YFM
| H1 | H2 | tables #| || |# wiki tables
> [!NOTE] callouts {% note info %}
<details><summary> {% cut "Title" %}
<u>text</u> ++text++
<mark>text</mark> ==text==
<sup>text</sup> text^super^
<sub>text</sub> text~sub~

License

MIT

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

ya_wiki_mcp-0.3.1.tar.gz (483.8 kB view details)

Uploaded Source

Built Distribution

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

ya_wiki_mcp-0.3.1-py3-none-any.whl (489.7 kB view details)

Uploaded Python 3

File details

Details for the file ya_wiki_mcp-0.3.1.tar.gz.

File metadata

  • Download URL: ya_wiki_mcp-0.3.1.tar.gz
  • Upload date:
  • Size: 483.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.13

File hashes

Hashes for ya_wiki_mcp-0.3.1.tar.gz
Algorithm Hash digest
SHA256 4fbc9e371815d091b6e01c44773423ed96a2c6fbe1a4e45bcfab65b044eec510
MD5 d1f190fd3ce36cf6a9ff0e5a8f9f3a0c
BLAKE2b-256 16d986c42bee238d426db85e4adcdf0ecd9483c0babca7977019e62a3fa96e65

See more details on using hashes here.

File details

Details for the file ya_wiki_mcp-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ya_wiki_mcp-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 478ae546bb724cea7f958a85bfa1bfaead31dfddf30a73dbc4ee9e3681e5a8aa
MD5 d34b9eb7ab851800a386ed6589ee66f4
BLAKE2b-256 2f413732ecdad9d470a5e6c2e466ca7dc6656c7984d61769db0b8cfbf05e4762

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