Skip to main content
Glama
No-Smoke
by No-Smoke

Nextcloud MCP Server

Docker Image

Готовый к промышленному использованию MCP-сервер, который подключает ИИ-ассистентов к вашему экземпляру Nextcloud.

Позвольте большим языковым моделям, таким как Claude, GPT и Gemini, взаимодействовать с вашими данными Nextcloud через безопасный API. Создавайте заметки, управляйте календарями, организуйте контакты, работайте с файлами и многое другое — и все это с помощью общения на естественном языке.

Это специализированный автономный MCP-сервер, разработанный для внешних MCP-клиентов, таких как Claude Code и IDE. Он работает независимо от Nextcloud (Docker, VM, Kubernetes или локально) и предоставляет глубокие CRUD-операции для приложений Nextcloud.

NOTE

Ищете функции ИИ внутри Nextcloud? Nextcloud также предоставляет Context Agent, который обеспечивает работу приложения Assistant и запускается как ExApp внутри Nextcloud. См. docs/comparison-context-agent.md для подробного сравнения вариантов использования.

Быстрый старт (Docker)

Для получения всех функций, включая семантический поиск, запустите с помощью Docker:

# 1. Create a minimal configuration
cat > .env << EOF
NEXTCLOUD_HOST=https://your.nextcloud.instance.com
NEXTCLOUD_USERNAME=your_username
NEXTCLOUD_PASSWORD=your_app_password
EOF

# 2. Start the server
docker run -p 127.0.0.1:8000:8000 --env-file .env --rm \
  ghcr.io/cbcoutinho/nextcloud-mcp-server:latest

# 3. Test the connection
curl http://127.0.0.1:8000/health/ready

# 4. Connect to the endpoint
http://127.0.0.1:8000/sse

# Or with --transport streamable-http
http://127.0.0.1:8000/mcp

Профили Docker Compose (для разработки/тестирования):

docker compose --profile single-user up -d       # Port 8000
docker compose --profile multi-user-basic up -d   # Port 8003
docker compose --profile oauth up -d              # Port 8001
docker compose --profile login-flow up -d         # Port 8004

Следующие шаги:

  • Подключите ваш MCP-клиент (Claude Desktop, IDE, mcp dev и т. д.)

  • См. docs/installation.md для других вариантов развертывания (локально, Kubernetes)

Ключевые особенности

  • 90+ инструментов MCP — Полный охват API для 8 приложений Nextcloud

  • Ресурсы MCP — Структурированные URI данных для просмотра данных Nextcloud

  • Семантический поиск (экспериментально) — Опциональный поиск на основе векторов для заметок, файлов, элементов новостей и карточек Deck (требуется Qdrant + Ollama)

  • Обработка документов — OCR и извлечение текста из PDF, DOCX, изображений с уведомлениями о прогрессе

  • Гибкое развертывание — Docker, Kubernetes (Helm), VM или локальная установка

  • Аутентификация промышленного уровня — Basic Auth с паролями приложений (рекомендуется) или OAuth2/OIDC (экспериментально)

  • Множественные транспорты — Поддержка SSE, HTTP и потокового HTTP

Поддерживаемые приложения

Приложение

Инструменты

Возможности

Notes

7

Полный CRUD, поиск по ключевым словам, семантический поиск

Calendar

20+

События, задачи (todos), повторяющиеся события, участники, доступность

Contacts

8

Полная поддержка CardDAV, адресные книги

Files (WebDAV)

12

Доступ к файловой системе, OCR/обработка документов

Deck

15

Доски, стеки, карточки, метки, назначения

Cookbook

13

Управление рецептами, импорт по URL (schema.org)

Tables

5

Операции со строками в таблицах Nextcloud

Sharing

10+

Создание и управление общими ресурсами

Semantic Search

2+

Векторный поиск для заметок, файлов, элементов новостей и карточек Deck (экспериментально, по выбору, требует инфраструктуры)

Хотите увидеть поддержку другого приложения Nextcloud? Откройте issue или предложите pull request!

Аутентификация

IMPORTANT

OAuth2/OIDC является экспериментальной функцией и требует ручного патча для приложения user_oidc:

  • Требуемый патч: Поддержка Bearer-токенов (issue #1221)

  • Последствия: Без патча большинство специфичных для приложений API завершаются ошибками 401

  • Рекомендация: Используйте Basic Auth для промышленного использования, пока апстрим-патчи не будут объединены

См. docs/oauth-upstream-status.md для получения информации о статусе патча и обходных путях.

Рекомендуется: Basic Auth с паролями для конкретных приложений обеспечивает безопасную аутентификацию промышленного уровня. См. docs/authentication.md для получения подробной информации о настройке и конфигурации OAuth.

Режимы аутентификации

Сервер поддерживает четыре режима аутентификации:

Однопользовательский (BasicAuth):

  • Один набор учетных данных, общий для всех MCP-клиентов

  • Простая настройка: имя пользователя + пароль приложения в переменных окружения

  • Все клиенты получают доступ к Nextcloud как один и тот же пользователь

  • Лучше всего подходит для: личного использования, разработки, однопользовательских развертываний

Многопользовательский (BasicAuth Pass-Through):

  • MCP-клиенты отправляют учетные данные через заголовок Authorization

  • Сервер передает их в Nextcloud (по умолчанию без сохранения состояния)

  • Опциональный автономный доступ для фоновых операций (ENABLE_MULTI_USER_BASIC_AUTH=true)

  • Лучше всего подходит для: многопользовательских настроек без инфраструктуры OAuth

Многопользовательский (OAuth):

  • Каждый MCP-клиент аутентифицируется отдельно со своей учетной записью Nextcloud

  • Области доступа и разрешения для каждого пользователя (клиенты видят только те инструменты, на которые они авторизованы)

  • Более безопасно: токены истекают, учетные данные никогда не передаются серверу

  • Лучше всего подходит для: команд, многопользовательских развертываний, промышленных сред с несколькими пользователями

  • Требует: патчей для приложения user_oidc (экспериментально)

Многопользовательский (Login Flow v2):

  • Использует встроенный в Nextcloud Login Flow v2 для получения паролей приложений для каждого пользователя

  • Патчи OAuth не требуются — работает со стандартным Nextcloud

  • Каждый пользователь аутентифицируется через браузер, сервер управляет паролями приложений

  • Лучше всего подходит для: многопользовательских развертываний без инфраструктуры OAuth (ENABLE_LOGIN_FLOW=true)

  • Экспериментально: см. ADR-022 для подробностей

См. docs/authentication.md для получения подробных инструкций по настройке.

Семантический поиск

Сервер предоставляет экспериментальный RAG-конвейер для включения семантического поиска, который позволяет MCP-клиентам находить информацию в Nextcloud на основе смысла, а не только ключевых слов. Вместо того чтобы находить «машинное обучение» только тогда, когда эти слова встречаются буквально, он понимает, что «нейронные сети», «ИИ-модели» и «глубокое обучение» — это семантически связанные концепции.

Пример:

  • Поиск по ключевым словам: Запрос «авто» находит только заметки, содержащие слово «авто»

  • Семантический поиск: Запрос «авто» также находит заметки об «автомобиле», «транспортном средстве», «седане», «перевозках»

Это позволяет использовать запросы на естественном языке и помогает находить связанный контент в ваших заметках Nextcloud.

NOTE

Семантический поиск является экспериментальным и требует включения:

  • По умолчанию отключен (ENABLE_SEMANTIC_SEARCH=false)

  • В настоящее время поддерживает только приложение Notes (планируется поддержка нескольких приложений)

  • Требует дополнительной инфраструктуры: векторная база данных + сервис эмбеддингов

  • Генерация ответов (nc_semantic_search_answer) требует поддержки сэмплирования со стороны MCP-клиента

См. docs/semantic-search-architecture.md для получения подробной информации об архитектуре и docs/configuration.md для инструкций по настройке.

Документация

Начало работы

Функции

Продвинутые темы

Примеры

Создание заметки

AI: "Create a note called 'Meeting Notes' with today's agenda"
→ Uses nc_notes_create_note tool

Импорт рецептов

AI: "Import the recipe from https://www.example.com/recipe/chocolate-cake"
→ Uses nc_cookbook_import_recipe tool with schema.org metadata extraction

Планирование встреч

AI: "Schedule a team meeting for next Tuesday at 2pm"
→ Uses nc_calendar_create_event tool

Управление файлами

AI: "Create a folder called 'Project X' and move all PDFs there"
→ Uses nc_webdav_create_directory and nc_webdav_move tools

Семантический поиск (экспериментально, по выбору)

AI: "Find notes related to machine learning concepts"
→ Uses nc_semantic_search to find semantically similar notes (requires Qdrant + Ollama setup)

Примечание: Для ответов, сгенерированных ИИ с цитатами, используйте nc_semantic_search_answer (требуется MCP-клиент с поддержкой сэмплирования).

Вклад в проект

Мы приветствуем любой вклад!

  • Сообщайте об ошибках или запрашивайте функции: GitHub Issues

  • Предлагайте улучшения: Pull Requests

  • Руководство по разработке: CLAUDE.md

Безопасность

Этот проект серьезно относится к безопасности:

  • Готовая к промышленному использованию Basic Auth с паролями для конкретных приложений

  • Поддержка OAuth2/OIDC (экспериментально, требует патчей апстрима)

  • Токены доступа для каждого пользователя

  • Отсутствие хранения учетных данных в режиме OAuth

  • Регулярные оценки безопасности

Нашли проблему безопасности? Пожалуйста, сообщите о ней конфиденциально сопровождающим проекта.

Лицензия

Этот проект лицензирован по лицензии AGPL-3.0. См. LICENSE для получения подробной информации.

История звезд

Star History Chart

Ссылки

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/No-Smoke/nextcloud-mcp-comprehensive'

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