Chip MCP
Project memory, tasks and Telegram notifications for your coding agent. Chip account required.
Should I use this
Quality & Safety
Findings (13)
- LOWin whoami
- LOWin list_projects
- LOWin get_project_context
- LOWin search_project
- LOWin read_project_file
- LOWin create_project
- LOWin rename_project
- LOWin archive_project
- LOWin save_session_summary
- LOWin add_note
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"chip": {
"url": "https://chip-ai.digital/mcp/"
}
}
}Remote endpoints
https://chip-ai.digital/mcp/streamable-httpWhat it can do
Tool inventory
Tools (27)
🟢whoami
Тариф, занятость слотов проектов и (на платном тарифе) остатки дневных лимитов. Зови в начале сессии и когда другой тул отказал по лимиту.
Input Schema
{
"type": "object",
"properties": {}
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟢list_projects
Проекты пользователя: id, название, последняя активность, открытые поручения. Нужен project_id — сюда; список меняется редко, не перечитывай.
Input Schema
{
"type": "object",
"properties": {}
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟢read_journal(project_id, offset)
Журнал проекта дословно, новые сверху: сводки сессий и заметки-вехи. Зови за «что было N сессий назад»; поиск по теме — search_project. offset 0 — свежие, дальше листай по подсказке в конце ответа.
Input Schema
{
"type": "object",
"properties": {
"project_id": {
"type": "integer"
},
"offset": {
"default": 0,
"type": "integer"
}
},
"required": [
"project_id"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟢read_project_dialog(project_id, session_id)
Диалог пользователя с Чипом внутри проекта: сводка и последние реплики. Сценарий: надиктовал план с телефона — забери целиком, а не пересказ. Без session_id — самый свежий; id диалогов в get_project_context.
Input Schema
{
"type": "object",
"properties": {
"project_id": {
"type": "integer"
},
"session_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"project_id"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟢get_project_map(project_id)
Оглавление карты проекта: полочки-статьи с актуальным знанием, которые Чип ведёт по журналу (не лента). Сама статья — read_map_section.
Input Schema
{
"type": "object",
"properties": {
"project_id": {
"type": "integer"
}
},
"required": [
"project_id"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟢read_map_section(project_id, section)
Статья одной полочки карты — актуальное знание по теме («Решения», «Грабли»…). Зови по оглавлению из get_project_context или get_project_map.
Input Schema
{
"type": "object",
"properties": {
"project_id": {
"type": "integer"
},
"section": {
"type": "string"
}
},
"required": [
"project_id",
"section"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟢get_project_context(project_id, depth)
Контекст проекта: инструкции, поручения, оглавление карты, память, файлы, диалоги. Зови ОДИН раз, когда берёшься за проект впервые; вернулся в знакомый — whats_new, он дешевле. depth: "brief" (сводки аннотациями, по умолчанию) или "full" (дословно).
Input Schema
{
"type": "object",
"properties": {
"project_id": {
"type": "integer"
},
"depth": {
"default": "",
"type": "string"
}
},
"required": [
"project_id"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟢search_project(query, project_id, kind, since)
Поиск по знанию проекта: полочки карты, журнал, память, диалоги. Зови за конкретным фактом или старым решением, которого нет в контексте. Без project_id — по всем проектам сразу. Запрос — 1–3 ключевых слова, не предложение. kind сужает память до вида (decision, pitfall, fact, preference, progress, correction); since (ISO, как курсор) режет старое.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"project_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"kind": {
"default": "",
"type": "string"
},
"since": {
"default": "",
"type": "string"
}
},
"required": [
"query"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟢list_files(project_id)
Файлы базы знаний проекта: имя, размер, читаемость. Зови перед read_project_file, если точное имя неизвестно.
Input Schema
{
"type": "object",
"properties": {
"project_id": {
"type": "integer"
}
},
"required": [
"project_id"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟢read_project_file(project_id, filename, page)
Текст файла из базы знаний проекта, страницами. Без page у длинного документа придёт оглавление — выбери раздел и позови с page=N; дальше листай по подсказке в конце ответа.
Input Schema
{
"type": "object",
"properties": {
"project_id": {
"type": "integer"
},
"filename": {
"type": "string"
},
"page": {
"default": 0,
"type": "integer"
}
},
"required": [
"project_id",
"filename"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟡create_project(name)
Завести проект в Чипе. Зови по просьбе пользователя — или предложи сам, если работаете над задачей без проекта. Название — по сути задачи, до 60 символов.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string"
}
},
"required": [
"name"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}⚪rename_project(project_id, name)
Переименовать проект (до 60 символов). Только по явной просьбе пользователя.
Input Schema
{
"type": "object",
"properties": {
"project_id": {
"type": "integer"
},
"name": {
"type": "string"
}
},
"required": [
"project_id",
"name"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🔴archive_project(project_id)
Архивировать проект: уходит из списка, слот освобождается, данные целы. Зови, когда пользователю нужен слот под новый. Вернуть из архива и удалить проект может только он сам, в мини-аппе.
Input Schema
{
"type": "object",
"properties": {
"project_id": {
"type": "integer"
}
},
"required": [
"project_id"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟡save_session_summary(project_id, text)
Сводка рабочей сессии — в журнал проекта. Зови В КОНЦЕ сессии или перед долгой паузой, один раз — не дроби. Структура: Сделано → Решения и почему (включая отвергнутые) → Грабли → Осталось. До 6000 символов, на языке пользователя.
Input Schema
{
"type": "object",
"properties": {
"project_id": {
"type": "integer"
},
"text": {
"type": "string"
}
},
"required": [
"project_id",
"text"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟡add_note(project_id, text, kind)
Заметка в память проекта (до ~300 символов; грабли и правки — 600). Пиши по ходу: одно наблюдение — одна заметка. kind: decision — сделанный выбор (полочка «Решения»), fact — как устроено, preference — как любит пользователь, progress — что сделано, pitfall — грабли «симптом → причина → лечение» (полочка «Грабли»), correction — «раньше X, теперь Y». Решение пиши формулой «что решали → выбрали X вместо Y, потому что Z»: ✓ «Очередь задач: Redis вместо Kafka — один инстанс, 200 rps». ✗ «Используем Redis» — следующая сессия переспорит то же самое.
Input Schema
{
"type": "object",
"properties": {
"project_id": {
"type": "integer"
},
"text": {
"type": "string"
},
"kind": {
"default": "fact",
"type": "string"
}
},
"required": [
"project_id",
"text"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟢whats_new(project_id, since, session)
Изменения в проекте с твоего прошлого захода: журнал, поручения, файлы, полочки карты, диалоги. Зови ПЕРВЫМ, как взялся за проект: в знакомом — только дельта, впервые — сразу полный контекст. Скажет «изменений много» — добери get_project_context. since — из «Курсора» прошлого ответа, session — метка твоей ветки: покажу соседние сессии этого токена.
Input Schema
{
"type": "object",
"properties": {
"project_id": {
"type": "integer"
},
"since": {
"default": "",
"type": "string"
},
"session": {
"default": "",
"type": "string"
}
},
"required": [
"project_id"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟢list_tasks(project_id)
Поручения тебе в этом проекте: их ставит пользователь и прошлая сессия (add_task, хвосты «Осталось»). Зови в начале работы и когда ищешь, чем заняться дальше. Сделанное закрывай complete_task — незакрытое всплывёт снова.
Input Schema
{
"type": "object",
"properties": {
"project_id": {
"type": "integer"
}
},
"required": [
"project_id"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟢complete_task(task_id, result)
Закрыть поручение из list_tasks: result — что сделано (1–2 фразы, до 500 символов, пользователь прочитает это в Telegram). Зови СРАЗУ по факту, не пачкой в конце. Не закрывай то, за что не брался.
Input Schema
{
"type": "object",
"properties": {
"task_id": {
"type": "string"
},
"result": {
"type": "string"
}
},
"required": [
"task_id",
"result"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟡add_task(project_id, text)
Поручение следующей сессии агента: хвост из «Осталось», который не успел сделать. Пользователь видит его в мини-аппе, следующая сессия — в list_tasks.
Input Schema
{
"type": "object",
"properties": {
"project_id": {
"type": "integer"
},
"text": {
"type": "string"
}
},
"required": [
"project_id",
"text"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟡notify_me(text, upload_id)
Сообщение пользователю в Telegram: итог долгой задачи («тесты зелёные», «сборка упала»), важное событие. НЕ для болтовни и не для вопросов — вопрос задавай в сессии. До 1000 символов. Показать скриншот, PDF или лог — сначала attach_file, потом сюда upload_id.
Input Schema
{
"type": "object",
"properties": {
"text": {
"type": "string"
},
"upload_id": {
"default": "",
"type": "string"
}
},
"required": [
"text"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟡set_reminder(text, when)
Напоминание пользователю в Telegram — для отложенных проверок и дедлайнов. when — ISO-время («2026-07-25T10:00»), без пояса = локальное время пользователя. Текст до 200 символов.
Input Schema
{
"type": "object",
"properties": {
"text": {
"type": "string"
},
"when": {
"type": "string"
}
},
"required": [
"text",
"when"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟢ask_user(question, options)
Спросить пользователя кнопками в Telegram, когда упёрся в развилку, которую решает он сам («какую БД берём?»). НЕ для мелочей, решаемых здравым смыслом. options — 2–4 коротких варианта (по умолчанию Да/Нет). Молчит — вернётся id для check_confirmation.
Input Schema
{
"type": "object",
"properties": {
"question": {
"type": "string"
},
"options": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"question"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟢check_confirmation(ask_id)
Забрать ответ пользователя на вопрос ask_user (если тот вернул id). Зови не чаще раза в минуту-другую.
Input Schema
{
"type": "object",
"properties": {
"ask_id": {
"type": "string"
}
},
"required": [
"ask_id"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟡upload_project_file(project_id, filename, size_bytes, content)
Выгрузить файл в проект (md, txt, csv, json, pdf, docx, xlsx и др.) — пользователь откроет его с телефона. Зови, когда результат нужен ему в Чипе; код оставляй в репозитории. До ~20k символов — сразу в content, крупнее — укажи size_bytes и загрузи по инструкции из ответа. Картинки — generate_image. ПЛАТНО для многостраничного PDF: оглавление к нему списывает кредиты пользователя.
Input Schema
{
"type": "object",
"properties": {
"project_id": {
"type": "integer"
},
"filename": {
"type": "string"
},
"size_bytes": {
"default": 0,
"type": "integer"
},
"content": {
"default": "",
"type": "string"
}
},
"required": [
"project_id",
"filename"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}🟡finalize_upload(upload_id)
Завершить двухфазную загрузку файла: зови ПОСЛЕ того, как curl из ответа upload_project_file отработал успешно.
Input Schema
{
"type": "object",
"properties": {
"upload_id": {
"type": "string"
}
},
"required": [
"upload_id"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}⚪attach_file(filename, size_bytes)
Вложение для notify_me: скриншот после правки интерфейса, PDF, лог. В проект не сохраняется, живёт до отправки.
Input Schema
{
"type": "object",
"properties": {
"filename": {
"type": "string"
},
"size_bytes": {
"type": "integer"
}
},
"required": [
"filename",
"size_bytes"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}⚪generate_image(prompt, project_id)
Сгенерировать картинку 1024×1024. ПЛАТНО: списывает с баланса пользователя ~3 кредита — зови по его запросу, не «на пробу». С project_id PNG ляжет в файлы проекта, без него — временная ссылка, скачай сразу.
Input Schema
{
"type": "object",
"properties": {
"prompt": {
"type": "string"
},
"project_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"prompt"
]
}Output Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}Recommended Prompts
search_projectread_journalread_journallist_projectssearch_projectCommunity
Evidence