yonote-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@yonote-mcp list documents in the marketing collection"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
yonote-mcp
MCP-сервер для управления рабочим пространством Yonote через AI-ассистенты (Claude, Cursor и другие).
Предоставляет 56 инструментов для работы с документами, коллекциями, пользователями, группами, комментариями, ссылками общего доступа, избранным, ревизиями, событиями и просмотрами.
Возможности
Группа | Кол-во | Описание |
Документы | 18 | CRUD, поиск, архивация, перемещение, управление доступом |
Коллекции | 10 | Управление коллекциями, участниками, экспорт |
Пользователи | 5 | Список, приглашение, блокировка, активация |
Группы | 6 | Управление группами и их участниками |
Комментарии | 4 | CRUD комментариев к документам |
Шаринг | 4 | Публичные ссылки на документы |
Избранное | 3 | Управление избранным |
Ревизии | 2 | История версий документов |
События | 1 | Аудит-лог рабочего пространства |
Просмотры | 2 | Статистика просмотров |
Авторизация | 1 | Информация о текущем пользователе и команде |
Related MCP server: Google Workspace MCP Server
Требования
Node.js >= 18
npm
API-токен Yonote
Установка
git clone <url-репозитория>
cd yonote-mcp
npm install
npm run buildПолучение API-токена
Откройте Yonote и перейдите в Настройки -> API
Создайте новый персональный API-токен
Используйте токен при подключении (см. ниже)
Токен действует от имени вашего пользователя и имеет те же права доступа.
Конфигурация
Токен и проект можно передать двумя способами:
Способ 1: CLI-аргументы (рекомендуется)
Передавайте параметры прямо в конфигурации MCP-клиента — без .env файлов:
Аргумент | Обязательный | Описание |
| Да | API-токен Yonote |
| Нет | Название проекта (формирует URL |
| Нет | Полный базовый URL API (если нужен нестандартный URL) |
По умолчанию используется
https://app.yonote.ru/api. Если передан--project, URL формируется автоматически.
Способ 2: Переменные окружения
Создайте файл .env на основе .env.example:
cp .env.example .envYONOTE_API_TOKEN=ваш-токен
YONOTE_PROJECT=ваш-проект
YONOTE_API_BASE_URL=https://ваш-проект.yonote.ru/apiCLI-аргументы имеют приоритет над переменными окружения.
Локальное подключение (stdio)
При локальном подключении MCP-клиент запускает сервер как дочерний процесс и общается с ним через stdin/stdout.
Claude Desktop
Отредактируйте файл конфигурации:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"yonote": {
"command": "node",
"args": [
"/абсолютный/путь/к/yonote-mcp/dist/index.js",
"--token", "ваш-токен",
"--project", "ваш-проект"
]
}
}
}Перезапустите Claude Desktop.
Claude Code
claude mcp add yonote -- node /абсолютный/путь/к/yonote-mcp/dist/index.js --token ваш-токен --project ваш-проектИли добавьте в .claude/settings.json проекта:
{
"mcpServers": {
"yonote": {
"command": "node",
"args": [
"/абсолютный/путь/к/yonote-mcp/dist/index.js",
"--token", "ваш-токен",
"--project", "ваш-проект"
]
}
}
}Cursor
Откройте Settings -> MCP Servers -> Add new MCP server и укажите:
{
"mcpServers": {
"yonote": {
"command": "node",
"args": [
"/абсолютный/путь/к/yonote-mcp/dist/index.js",
"--token", "ваш-токен",
"--project", "ваш-проект"
]
}
}
}Другие MCP-клиенты
Любой MCP-клиент с поддержкой stdio-транспорта может использовать этот сервер. Общий паттерн:
command:
nodeargs:
["/путь/к/yonote-mcp/dist/index.js", "--token", "ваш-токен", "--project", "ваш-проект"]
Удалённое развертывание (HTTP)
Для подключения с удалённых машин сервер поддерживает режим Streamable HTTP транспорта.
Запуск в HTTP-режиме
YONOTE_API_TOKEN=ваш-токен TRANSPORT=http PORT=3000 node dist/index.jsСервер запустится на http://0.0.0.0:3000/mcp.
Также доступен эндпоинт /health для проверки состояния.
Подключение удалённого клиента
В конфигурации MCP-клиента укажите URL сервера:
{
"mcpServers": {
"yonote": {
"url": "http://ваш-сервер:3000/mcp"
}
}
}Docker
Соберите образ (убедитесь, что проект скомпилирован — npm run build):
docker build -t yonote-mcp .Запустите контейнер:
docker run -d \
-p 3000:3000 \
-e YONOTE_API_TOKEN=ваш-токен \
--name yonote-mcp \
yonote-mcpПодключение клиента — аналогично HTTP-режиму выше.
Docker Compose
services:
yonote-mcp:
build: .
ports:
- "3000:3000"
environment:
- YONOTE_API_TOKEN=ваш-токен
restart: unless-stoppeddocker compose up -dРекомендации по продакшену
Используйте HTTPS (через reverse proxy — nginx, Caddy, Traefik)
Не зашивайте токен в Docker-образ — передавайте через переменные окружения или секреты
Ограничьте доступ к серверу по сети (firewall, VPN)
Переменные окружения
Переменная | Обязательная | По умолчанию | Описание |
| Да | — | API-токен Yonote (или |
| Нет |
| Название проекта (или |
| Нет |
| Базовый URL API (или |
| Нет |
| Транспорт: |
| Нет |
| Порт HTTP-сервера (только для |
Доступные инструменты
Инструмент | Описание |
| Список документов с фильтрацией по коллекции, пользователю, статусу |
| Информация о документе по ID или share ID |
| Полнотекстовый поиск по документам |
| Быстрый поиск по заголовкам |
| Создание документа (Markdown) |
| Обновление заголовка, текста и свойств |
| Перемещение в корзину или удаление |
| Архивация документа |
| Восстановление из архива или корзины |
| Перемещение в другую коллекцию |
| Создание копии документа |
| Список черновиков текущего пользователя |
| Недавно просмотренные документы |
| Возврат в статус черновика |
| Список пользователей с доступом |
| Предоставление доступа пользователю |
| Отзыв доступа у пользователя |
| Вложенная структура дочерних документов |
Инструмент | Описание |
| Список всех доступных коллекций |
| Информация о коллекции |
| Создание коллекции |
| Обновление свойств коллекции |
| Удаление коллекции со всеми документами |
| Дерево документов коллекции |
| Предоставление доступа пользователю |
| Отзыв доступа у пользователя |
| Список участников коллекции |
| Экспорт коллекции (Markdown/HTML/JSON) |
Инструмент | Описание |
| Список участников рабочего пространства |
| Информация о пользователе |
| Приглашение нового пользователя |
| Блокировка учётной записи |
| Разблокировка учётной записи |
Инструмент | Описание |
| Список всех групп |
| Информация о группе |
| Создание группы |
| Обновление имени группы |
| Удаление группы |
| Список участников группы |
Инструмент | Описание |
| Список комментариев к документу или в коллекции |
| Добавление комментария к документу |
| Обновление комментария |
| Удаление комментария |
Инструмент | Описание |
| Список расшаренных документов/коллекций |
| Информация о ссылке общего доступа |
| Создание публичной ссылки |
| Отзыв публичной ссылки |
Инструмент | Описание |
| Список избранных документов и коллекций |
| Добавление в избранное |
| Удаление из избранного |
Инструмент | Описание |
| История версий документа |
| Получение конкретной версии документа |
Инструмент | Описание |
| Аудит-лог рабочего пространства |
Инструмент | Описание |
| Статистика просмотров документа |
| Фиксация просмотра документа |
Инструмент | Описание |
| Информация о текущем пользователе и команде |
Разработка
npm run build # Компиляция TypeScript
npm start # Запуск (stdio-режим)
npm test # Запуск тестовСтруктура проекта
src/
├── index.ts # Точка входа, настройка транспорта
├── api-client.ts # HTTP-клиент для Yonote API
└── tools/ # Инструменты MCP
├── documents.ts
├── collections.ts
├── users.ts
├── groups.ts
├── comments.ts
├── shares.ts
├── stars.ts
├── revisions.ts
├── events.ts
├── views.ts
└── auth.tsAvailable Tools
110 toolsattachments_createB
Create an attachment upload URL.
Inputs: name (required), size (required), contentType (required), documentId.
attachments_deleteB
Delete an attachment.
Inputs: id (required).
attachments_listA
List all attachments.
Inputs: no named parameters.
attachments_redirectB
Get redirect URL for an attachment.
Inputs: id (required).
attachments_sizeA
Get total size of all attachments.
Inputs: no named parameters.
auth_configB
Get authentication configuration for the workspace.
Inputs: no named parameters.
auth_infoA
Get authentication details for the current API key (current user, team info).
Inputs: no named parameters.
collections_add_groupB
Grant a group access to a collection.
Inputs: id (required), groupId (required).
collections_add_userB
Grant a user access to a collection.
Inputs: id (required), userId (required).
collections_createB
Create a new collection.
Inputs: name (required), color, private, description.
collections_deleteA
Delete a collection and all its documents.
Inputs: id (required).
collections_documentsA
Get the document hierarchy tree of a collection.
Inputs: id (required).
collections_exportC
Export a collection.
Inputs: id (required).
collections_export_allB
Export all collections.
Inputs: no named parameters.
collections_group_membershipsB
List group memberships of a collection.
Inputs: id (required), limit, query, offset, +1 more.
collections_infoC
Get detailed information about a collection.
Inputs: id (required).
collections_listB
List all accessible collections.
Inputs: limit, offset, nextPath.
collections_membershipsA
List individual user memberships of a collection.
Inputs: id (required), limit, query, offset, +1 more.
collections_remove_groupA
Revoke a group's access to a collection.
Inputs: id (required), groupId (required).
collections_remove_userA
Revoke a user's access to a collection.
Inputs: id (required), userId (required).
collections_updateC
Update a collection's properties.
Inputs: id (required), name, color, description.
comments_createC
Add a comment to an entity (e.g. entityType: "document").
Inputs: text (required), entityId (required), entityType (required), parentCommentId.
comments_deleteB
Delete a comment.
Inputs: id (required).
comments_infoC
Get information about a comment.
Inputs: id, paranoid.
comments_listC
List comments for an entity (e.g. entityType: "document").
Inputs: entityType (required), limit, offset, entityId, +1 more.
comments_resolveC
Resolve a comment thread.
Inputs: id (required).
comments_threadC
Get a comment thread.
Inputs: id, limit, offset, nextPath, +1 more.
comments_updateB
Update an existing comment.
Inputs: id (required), text (required).
database_rows_listC
List rows in a database document.
Inputs: parentDocumentId (required), filter, orderBy, direction, +1 more.
database_transactionB
Execute a database transaction with multiple changes.
Inputs: changes (required).
documents_add_userC
Grant a user access to a document.
Inputs: id (required), userId (required), permission.
documents_archiveA
Archive a document to hide it from the main view.
Inputs: id (required).
documents_childrenA
Get the nested child document structure of a document.
Inputs: id (required).
documents_copyB
Create a copy of a document.
Inputs: id (required), collectionId, parentDocumentId.
documents_createB
Create a new document. Provide title and text in Markdown.
Inputs: title (required), collectionId (required), text, publish, +3 more.
documents_deleteA
Move a document to trash.
Inputs: id (required).
documents_draftsC
List current user's draft documents.
Inputs: sort, limit, offset, nextPath, +3 more.
documents_exportD
Export a document.
Inputs: id, shareId.
documents_importB
Import a document from a file.
Inputs: file (required), publish, template, collectionId, +1 more.
documents_infoA
Get detailed information about a document by ID or share ID.
Inputs: id, shareId.
documents_listC
List documents. Filter by collection, user, or other criteria.
Inputs: sort, limit, offset, userId, +6 more.
documents_moveB
Move a document to a different collection or parent.
Inputs: id (required), collectionId, parentDocumentId.
documents_pinC
Pin a document in its collection.
Inputs: id (required).
documents_pinnedB
List pinned documents in a collection.
Inputs: collectionId (required).
documents_remove_userA
Revoke a user's access to a document.
Inputs: id (required), userId (required).
documents_restoreB
Restore an archived or deleted document.
Inputs: id (required), revisionId.
documents_searchB
Full-text search across all documents.
Inputs: query (required), limit, offset, userId, +5 more.
documents_search_titlesA
Fast search by document titles only.
Inputs: query (required), nextPath, isPublished, collectionId.
documents_starC
Star a document.
Inputs: id (required).
documents_starredB
List starred documents.
Inputs: sort, limit, offset, nextPath, +1 more.
documents_templatizeC
Convert a document into a template.
Inputs: id (required).
documents_unpinB
Unpin a document from its collection.
Inputs: id (required).
documents_unpublishB
Move a published document back to draft status.
Inputs: id (required).
documents_unstarB
Remove star from a document.
Inputs: id (required).
documents_updateA
Update an existing document's title, text, or other properties.
Inputs: id (required), done, text, title, +3 more.
documents_usersA
List all users who have access to a document.
Inputs: id (required), query.
documents_viewedB
List recently viewed documents.
Inputs: sort, limit, offset, nextPath, +1 more.
events_listB
List workspace events (audit log).
Inputs: name, sort, limit, offset, +6 more.
file_operations_infoC
Get information about a file operation.
Inputs: id (required).
file_operations_listC
List file operations.
Inputs: type (required), sort, limit, offset, +2 more.
file_operations_redirectA
Get redirect URL for a file operation result.
Inputs: id (required).
groups_add_userB
Add a user to a group.
Inputs: id (required), userId (required).
groups_createC
Create a new user group.
Inputs: name (required).
groups_deleteB
Delete a group.
Inputs: id (required).
groups_infoB
Get detailed information about a group.
Inputs: id (required).
groups_listA
List all groups in the workspace.
Inputs: sort, limit, offset, nextPath, +1 more.
groups_membershipsB
List members of a group.
Inputs: id (required), limit, query, offset, +1 more.
groups_remove_userC
Remove a user from a group.
Inputs: id (required), userId (required).
groups_updateA
Update a group's name.
Inputs: id (required), name (required).
ldap_createB
Create LDAP authentication provider.
Inputs: ssl (required), base (required), port (required), user (required), +5 more.
ldap_loginC
Login via LDAP.
Inputs: email (required), password (required), providerId (required).
ldap_pingC
Test LDAP connection.
Inputs: ssl (required), base (required), port (required), user (required), +4 more.
loop_channelsA
List channels for a Loop team.
Inputs: teamId (required).
loop_commandsA
List available Loop commands.
Inputs: no named parameters.
loop_postC
Post a collection update to Loop.
Inputs: channel (required), collectionId (required).
loop_teamsA
List available Loop teams.
Inputs: no named parameters.
provider_deleteB
Delete an authentication provider.
Inputs: type (required).
provider_enableB
Enable or disable an authentication provider.
Inputs: type (required), isActive (required).
provider_infoB
Get authentication provider information.
Inputs: no named parameters.
revisions_infoB
Get a specific document revision/snapshot.
Inputs: id (required).
revisions_listC
List version history of a document.
Inputs: sort, limit, offset, nextPath, +1 more.
stars_createB
Add a document or collection to favorites.
Inputs: documentId, collectionId.
stars_deleteB
Remove an item from favorites.
Inputs: id (required).
stars_listA
List user's favorite (starred) documents and collections.
Inputs: limit, offset.
subscriptions_createC
Subscribe to document events.
Inputs: event (required), documentId (required).
subscriptions_deleteC
Delete a subscription.
Inputs: id (required).
subscriptions_infoC
Get subscription information.
Inputs: event (required), documentId (required).
sync_blocks_createC
Create sync blocks.
Inputs: ids, documentId.
sync_blocks_deleteC
Delete sync blocks.
Inputs: ids, documentId.
sync_blocks_listC
List sync blocks for a document.
Inputs: documentId.
sync_blocks_list_insertsB
List inserts of a sync block.
Inputs: syncBlockId.
telegram_commandsC
List available Telegram commands.
Inputs: group.
telegram_postB
Post a collection update to Telegram.
Inputs: collectionId (required).
users_activateA
Re-activate a suspended user account.
Inputs: id (required).
users_createC
Invite a new user to the workspace.
Inputs: name (required), email (required), role.
users_deleteC
Delete a user account.
Inputs: id (required).
users_demoteB
Demote a user from admin.
Inputs: id (required).
users_infoC
Get detailed information about a user.
Inputs: id (required).
users_listC
List workspace members.
Inputs: sort, limit, query, filter, +3 more.
users_promoteB
Promote a user to admin.
Inputs: id (required).
users_suspendB
Suspend (disable) a user account.
Inputs: id (required).
users_updateB
Update current user's profile.
Inputs: name, avatarUrl.
views_createC
Record a document view.
Inputs: documentId (required).
views_listC
List view statistics for a document.
Inputs: documentId (required), limit, offset.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 110 tools
The toolset has multiple overlapping boundaries, especially among document listing variants (documents_list, documents_search, documents_search_titles, documents_drafts, documents_viewed) and duplicate star concepts (documents_starred vs stars_list, documents_star vs stars_create). Auth-related tools (auth_info, auth_config, provider_info) and redirect tools (attachments_redirect, file_operations_redirect) also blur together. Agents will frequently struggle to pick the correct tool.
Most tools follow a resource_prefix + action pattern such as documents_create, collections_update, and comments_resolve. However, the set also contains bare noun names like documents_drafts, documents_viewed, collections_documents, groups_memberships, and loop_teams, plus verb-first outliers like ldap_login and loop_post. The overall pattern is recognizable but not consistently applied.
With 110 tools, this server is far over-scoped for a focused document-management MCP. It bundles documents, collections, users, groups, auth, LDAP, Telegram, Loop, sync blocks, database rows, attachments, file operations, subscriptions, and more into one namespace. This creates an unwieldy surface that is expensive for agents to navigate and reason about.
The domain coverage is extensive: documents, collections, users, groups, comments, shares, revisions, subscriptions, attachments, and authentication all have substantial lifecycle operations. Minor gaps exist, such as no permanent document purge, no restore-from-revision, no explicit publish action, and limited database row operations, but core workflows are generally well covered.
Maintenance
Related MCP Connectors
One MCP server for the services your AI needs: memory, files, Microsoft 365, kanban and more.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server for the Docmost documentation platform that enables managing pages, spaces, and comments through natural language. It supports content search, page exports, and revision history tracking within the Docmost workspace.131MIT
- AlicenseNot gradedqualityDmaintenanceComprehensive MCP server for Google Workspace with 95+ tools to manage Docs, Sheets, Drive, Gmail, Calendar, Slides, and Forms.1,276 npm3MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for hubNote, enabling AI assistants to manage workspaces, pages, and data rows via natural language.9 npmMIT
- AlicenseNot gradedqualityBmaintenanceMCP server for Nyxdoc, a document system where humans and external agents collaborate on documents with version history, agent to-dos, and workspace permissions.MIT