datalens-dev-mcp

datalens-dev-mcp

A local Python MCP server for AI-assisted development of Yandex DataLens dashboards, enabling inspection, planning, validation, and guarded application of changes.

Category
访问服务器

README

datalens-dev-mcp

Русский · English

Быстрый старт · Доступ к DataLens · Подключение · Инструменты · Сценарии · Источники · Безопасность · Вся документация · English

datalens-dev-mcp — локальный Python-сервер Model Context Protocol (MCP) для разработки дашбордов Yandex DataLens с помощью Codex, Claude и других MCP-клиентов. Сервер читает объекты DataLens, строит планы изменений, проверяет данные запроса, сохраняет изменения и публикует проверенную сохранённую версию.

MCP-клиент запускает сервер на вашем компьютере через stdio. Для работы с DataLens сервер обращается к Public API с учётными данными пользователя. Входящие сетевые подключения, облачный посредник и телеметрия проекту не требуются.

Это независимый проект сообщества. Он не относится к официальным продуктам Yandex или Yandex Cloud.

Возможности

Задача Что делает сервер
Подключение Проверяет локальную конфигурацию и реальный доступ к DataLens
Поиск объектов Показывает воркбуки и их содержимое, читает связи между объектами
Аудит Создаёт снимок дашборда со связанными чартами, датасетами и подключениями
Разработка Планирует создание и обновление дашбордов, чартов, датасетов и подключений
Проверка Проверяет схемы API, SQL, связи, селекторы, компоновку и код Editor
Применение Выполняет актуальное чтение, сохраняет изменение, проверяет сохранённую версию, публикует её и проверяет результат
Справка Даёт компактные ответы по возможностям DataLens и используемым методам API со ссылками на источники

В стандартной конфигурации запись, сохранение и публикация доступны. Режим операции определяется формулировкой задачи:

  • «проверь», «проанализируй», «проведи аудит» — только чтение;
  • «составь план», plan-only — подготовка плана без записи;
  • «сохрани без публикации», save-only, no-publish — сохранение и контрольное чтение;
  • «создай», «исправь», «обнови», «переработай» — сохранение, контрольное чтение, публикация сохранённой версии и итоговая проверка;
  • удаление целого объекта выполняется после отдельного подтверждения с точным идентификатором объекта.

Справочник всех 38 инструментов содержит назначение, входные данные и класс операции каждого вызова.

Требования

  • Python 3.11 или новее.
  • Codex, Claude Code, Claude Desktop или другой MCP-клиент с поддержкой локального stdio-сервера.
  • Для работы с DataLens: Yandex Cloud CLI, ID организации и права на нужный воркбук.

Быстрый старт

git clone https://github.com/ADIKANT/datalens-dev-mcp.git
cd datalens-dev-mcp
python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip
.venv/bin/python -m pip install .
.venv/bin/datalens-dev-mcp --version
python3 scripts/smoke_mcp_stdio.py

В Windows используйте .venv\Scripts\python.exe и .venv\Scripts\datalens-dev-mcp.exe. Для разработки самого сервера установите пакет командой .venv/bin/python -m pip install -e '.[test]'.

Затем настройте доступ по пошаговой инструкции. Минимальный защищённый env-файл выглядит так:

DATALENS_ORG_ID=<ID_ОРГАНИЗАЦИИ>
DATALENS_IAM_TOKEN=<IAM_ТОКЕН>
DATALENS_API_BASE_URL=https://api.datalens.tech
DATALENS_API_VERSION=auto
DATALENS_MCP_ENABLE_WRITES=1
DATALENS_MCP_LIVE_ALLOW_SAVE=1
DATALENS_MCP_LIVE_ALLOW_PUBLISH=1
DATALENS_ENABLE_TOKEN_REFRESH_ON_401=1
DATALENS_MCP_ENABLE_EXPERT_RPC=0

IAM-токен живёт ограниченное время. При настроенном yc сервер умеет получить начальный токен и обновить истёкший, после чего атомарно записывает его в указанный DATALENS_ENV_FILE с правами 0600.

Подключение MCP-клиента

Во всех примерах замените /absolute/path/... абсолютными путями. --project-root задаёт локальную папку для входных файлов, планов и отчётов. Идентификаторы воркбука, дашборда и других объектов передаются в задаче отдельно.

Codex

Добавьте блок в ~/.codex/config.toml или в .codex/config.toml доверенного проекта:

[mcp_servers.datalens_dev]
command = "/absolute/path/to/datalens-dev-mcp/.venv/bin/datalens-dev-mcp"
args = ["stdio", "--project-root", "/absolute/path/to/your/dashboard-project"]
cwd = "/absolute/path/to/your/dashboard-project"
env = { DATALENS_ENV_FILE = "/absolute/path/to/home/.config/datalens-dev-mcp/env" }
default_tools_approval_mode = "approve"
startup_timeout_sec = 20
tool_timeout_sec = 120

default_tools_approval_mode = "approve" разрешает Codex выполнять обычные вызовы этого MCP-сервера без дополнительного диалога перед сохранением и публикацией. За подтверждение удаления целого объекта отвечает сам сервер.

Ту же регистрацию можно выполнить командой:

codex mcp add datalens_dev \
  --env DATALENS_ENV_FILE=/absolute/path/to/home/.config/datalens-dev-mcp/env \
  -- /absolute/path/to/datalens-dev-mcp/.venv/bin/datalens-dev-mcp \
  stdio --project-root /absolute/path/to/your/dashboard-project

После регистрации проверьте codex mcp list, перезапустите Codex и откройте /mcp. Подробности: настройка Codex.

Claude Code

claude mcp add --transport stdio --scope local \
  --env DATALENS_ENV_FILE=/absolute/path/to/home/.config/datalens-dev-mcp/env \
  datalens-dev -- \
  /absolute/path/to/datalens-dev-mcp/.venv/bin/datalens-dev-mcp \
  stdio --project-root /absolute/path/to/your/dashboard-project

Проверьте подключение командой claude mcp list.

Claude Desktop и другие stdio-клиенты

{
  "mcpServers": {
    "datalens-dev": {
      "command": "/absolute/path/to/datalens-dev-mcp/.venv/bin/datalens-dev-mcp",
      "args": ["stdio", "--project-root", "/absolute/path/to/your/dashboard-project"],
      "env": {
        "DATALENS_ENV_FILE": "/absolute/path/to/home/.config/datalens-dev-mcp/env"
      }
    }
  }
}

Готовые файлы находятся в examples/clients/.

Первая сессия

Начните с проверки подключения:

Используй DataLens MCP. Вызови dl_runtime_status, затем dl_auth_probe. Покажи, доступна ли запись, сохранение и публикация, и перечисли доступные воркбуки. На этом шаге работай только на чтение и не выводи учётные данные.

dl_runtime_status проверяет локальные настройки. dl_auth_probe выполняет минимальный реальный запрос getWorkbooksList. После успешной проверки можно вызвать dl_get_workbook_entries, dl_snapshot_dashboard, dl_read_object и dl_get_entries_relations.

Для изменения сформулируйте цель и укажите объект:

Исправь чарт <CHART_ID> в воркбуке <WORKBOOK_ID>: <ОПИСАНИЕ ИЗМЕНЕНИЯ>. Сначала прочитай актуальную сохранённую версию и связи объекта, затем проверь план, сохрани изменение, выполни контрольное чтение, опубликуй сохранённую версию и проверь опубликованный результат.

Полный цикл и готовые формулировки для аудита, планирования, сохранения без публикации и обычного изменения приведены в сценариях использования.

Безопасность изменений

Перед записью сервер проверяет точный объект, актуальную ревизию, схему запроса и связи. При обновлении сохраняются неизвестные поля и технология существующего чарта. Публикация строится из уже проверенной сохранённой версии, после неё выполняется отдельное контрольное чтение.

Параметры DATALENS_MCP_ENABLE_WRITES, DATALENS_MCP_LIVE_ALLOW_SAVE и DATALENS_MCP_LIVE_ALLOW_PUBLISH можно установить в 0, чтобы жёстко отключить соответствующую возможность. Значение 0 имеет приоритет над формулировкой задачи.

Удаление легенды, фильтра, колонки, вкладки или виджета внутри объекта считается обновлением. Для удаления дашборда, чарта, датасета, подключения или другого целого объекта сервер возвращает его ID и запрашивает отдельное подтверждение.

Подробнее: модель безопасности, защищённое применение и выбор технологии чарта.

Устройство репозитория

Путь Назначение
src/datalens_dev_mcp/ Python-пакет, MCP-сервер, клиент DataLens API, планировщики и проверки
config/ Версионированные настройки поведения и выбора маршрутов
schemas/ JSON Schema для запросов, планов и отчётов
templates/ Шаблоны Wizard, Editor и проектных материалов
docs/ Руководства пользователя и техническая документация
examples/ Синтетические примеры и конфигурации MCP-клиентов
scripts/ Проверки, сборка пакета и обслуживание справочных данных
tests/ Модульные и интеграционные тесты без обращения к DataLens

Архитектура описана в docs/architecture.md, локальная конфигурация — в docs/configuration.md.

Разработка

python3 -m venv .venv
.venv/bin/python -m pip install -e '.[test]'
python3 scripts/run_quick_checks.py
python3 scripts/run_offline_acceptance.py

Offline acceptance не требует учётных данных DataLens. Проверки с реальной записью выполняйте на специально выбранных объектах.

Лицензия и источники

Код и оригинальная документация проекта распространяются по Apache License 2.0. Справочные данные, адаптированные из документации Yandex Cloud, сопровождаются атрибуцией по CC BY 4.0. Перечень официальных страниц и способ их использования приведены в docs/sources.md, полные уведомления — в THIRD_PARTY_NOTICES.md.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选