nuvo-mcp
Дела Nuvo — руками помощника.
MCP-сервер к Nuvo — менеджеру дел, устроенному как область → проект → дело, с чек-листом и тегами. Даёт помощнику двадцать один инструмент: смотреть «Сегодня», заводить и менять дела, дописывать заметки, вести чек-лист, вешать теги, создавать проекты и области.
Сервер ходит в то же HTTP-API, что и приложение, — не в базу. Поэтому он подчиняется правам ключа, всё сделанное видно в приложении сразу и записано в журнал ключа.
Вы: Что у меня сегодня?
Помощник: → today
Сегодня три дела:
• Позвонить в банк · срок 20 октября
• Забрать посылку
• Дописать раздел про оплату
Вы: Дозвонился, привезут в среду. Отметь и запиши.
Помощник: → add_note(3, "Дозвонился, привезут в среду")
→ complete_task(3)
Готово. В заметке появился абзац с сегодняшней датой.
Запуск за три шага
1. Поднимите Nuvo — приложение слушает http://127.0.0.1:8000.
2. Выдайте ключ — «Настройки → Подключение» → «Выдать ключ». Токен показывается один раз.
3. Подключите к своему помощнику. Пример для Claude Code:
claude mcp add nuvo -s user \
-e NUVO_TOKEN=nv_ваш_ключ \
-e NUVO_URL=http://127.0.0.1:8000 \
-- uvx --from git+https://github.com/darenwhite79/nuvo-mcp.git nuvo-mcp
Спросите: «что у меня сегодня?» — должен ответить списком.
Остальные клиенты — Claude Desktop, Cursor, VS Code, Windsurf, Zed — с готовыми блоками настройки: docs/clients.md.
Нужен uv: brew install uv или
curl -LsSf https://astral.sh/uv/install.sh | sh. uvx ставит пакет во
временное окружение сам, Python настраивать не надо.
Настройка
| Переменная | Обязательна | По умолчанию | Что это |
|---|---|---|---|
NUVO_TOKEN |
да | — | Ключ доступа, выдаётся в приложении |
NUVO_URL |
нет | http://127.0.0.1:8000 |
Адрес, на котором поднято приложение |
Ключ без интерфейса — запросом:
curl -X POST http://127.0.0.1:8000/api/keys \
-H 'Content-Type: application/json' \
-d '{"title":"Мой помощник","scopes":"read,create,edit"}'
Права ключа — read, create, edit, delete — ограничивают и помощника:
ключ без edit не даст ничего изменить, и отказ помощник увидит словами.
Что умеет
| Смотреть | |
|---|---|
list_lists |
Проекты, области, теги и отборы — одними названиями |
list_tasks |
Дела с отбором по «когда», проекту или тегу |
today |
Что стоит на сегодня и что просрочено |
search_tasks |
Поиск по названию и заметке — чтобы не плодить дубли |
get_task |
Одно дело целиком: заметка, чек-лист, теги, сроки |
| Заводить и менять | |
|---|---|
create_task |
Новое дело: «когда», срок, проект, теги |
update_task |
Название, заметка целиком, срок |
add_note |
Дописать к заметке абзац с датой — здешняя замена комментариям |
move_task |
Перенести в проект или область |
create_project, create_area |
Завести проект или область |
| Состояние | |
|---|---|
schedule_task |
«Сегодня», «Вечером», «В любое время», «Когда-нибудь» или дата |
complete_task |
Сделано; повторяющееся само родит следующее |
reopen_task |
Вернуть в работу |
log_task |
Убрать завершённое в журнал |
trash_task, restore_task |
В корзину и обратно |
| Чек-лист и теги | |
|---|---|
add_checklist_item, check_checklist_item |
Пункт внутри дела |
tag_task, untag_task |
Повесить и снять тег |
Окончательного удаления у помощника нет намеренно. Корзину чистит человек.
Полные описания, которые видит модель, — в
src/nuvo_mcp/tools.py.
Чтобы помощник вёл дела осмысленно
Сервер сам объясняет клиенту правила: «Сегодня» — обещание сделать сегодня, а не пометка важности; срок и день выполнения — разные вещи; перед созданием дела поискать похожее.
Готовые системные подсказки под свои привычки — docs/prompts.md.
Устройство
src/nuvo_mcp/api.py клиент к HTTP-API и перевод ошибок на человеческий
src/nuvo_mcp/tools.py инструменты обычными функциями + их описания
src/nuvo_mcp/server.py регистрация в MCP и запуск по stdio
Зависимости — только mcp и httpx: пакет самодостаточен и ничего не знает
о приложении, кроме адреса.
Разработка
uv sync
uv run pytest # без сети и без бэкенда: HTTP подменён транспортом httpx
uv run ruff check .
uv run ruff format --check .
Работу против живого API проверяют тесты приложения —
backend/tests/test_mcp.py в nuvo-task-manager.
Лицензия
MIT.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nuvo_mcp-0.1.0.tar.gz.
File metadata
- Download URL: nuvo_mcp-0.1.0.tar.gz
- Upload date:
- Size: 78.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50c8d058c3383202439541769e19ae49760a45ee9205582a176c009027e4593b
|
|
| MD5 |
b4499e7e90a6164242df1c510ba04d8b
|
|
| BLAKE2b-256 |
999dec9353b556f85859757f521f758d7f27d61876546cc7e9b988e8cbd6558d
|
Provenance
The following attestation bundles were made for nuvo_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on darenwhite79/nuvo-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nuvo_mcp-0.1.0.tar.gz -
Subject digest:
50c8d058c3383202439541769e19ae49760a45ee9205582a176c009027e4593b - Sigstore transparency entry: 2699546884
- Sigstore integration time:
-
Permalink:
darenwhite79/nuvo-mcp@69118d49963399e8d114890afce96600ac5535bc -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/darenwhite79
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@69118d49963399e8d114890afce96600ac5535bc -
Trigger Event:
push
-
Statement type:
File details
Details for the file nuvo_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: nuvo_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb24f9a8c563ea38a4238dc23719c158a12440d44ba2bfe40857cb795aef2ec4
|
|
| MD5 |
32f345ea5c2d1dbd962fc8faa9216379
|
|
| BLAKE2b-256 |
d62b7922c5d4bd4e0b44380e4bc9f9f1edf1ed1730f5f7f1e10f6a322d81b17a
|
Provenance
The following attestation bundles were made for nuvo_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on darenwhite79/nuvo-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nuvo_mcp-0.1.0-py3-none-any.whl -
Subject digest:
cb24f9a8c563ea38a4238dc23719c158a12440d44ba2bfe40857cb795aef2ec4 - Sigstore transparency entry: 2699547084
- Sigstore integration time:
-
Permalink:
darenwhite79/nuvo-mcp@69118d49963399e8d114890afce96600ac5535bc -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/darenwhite79
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@69118d49963399e8d114890afce96600ac5535bc -
Trigger Event:
push
-
Statement type: