Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,548Letters: 14Defects: 1,324counted 3 min ago
teppi

Server definition

Hash
sha256:cda4f52c5bd2e17ed6af10a0831f8587fe6fe67e2f86e0151ff960d23a99f709
What it is
What a remote MCP server returned when asked what it offers: 27 tools

The blob, as servednamed by its sha256

{ "instructions": "Чип — ассистент пользователя в Telegram (бот @ChipAI_robot). Этот сервер — мост к его аккаунту: память проектов, уведомления в Telegram, генерация картинок. В начале сессии вызови whoami, чтобы узнать тариф и лимиты пользователя. Взялся за проект — начинай с whats_new: вернулся в знакомый, получишь только изменения (дешевле полного контекста), впервые — он сам отдаст полный контекст; открытые поручения пользователя смотри в list_tasks и закрывай сделанное через complete_task. Удаление проектов из IDE недоступно: если пользователь просит удалить проект — направь его в мини-приложение бота, вкладка «Рабочее пространство».", "tools": [ { "description": "Заметка в память проекта (до ~300 символов; грабли и правки — 600).\n Пиши по ходу: одно наблюдение — одна заметка. kind: decision — сделанный\n выбор (полочка «Решения»), fact — как устроено, preference — как любит\n пользователь, progress — что сделано, pitfall — грабли «симптом → причина →\n лечение» (полочка «Грабли»), correction — «раньше X, теперь Y». Решение\n пиши формулой «что решали → выбрали X вместо Y, потому что Z»:\n ✓ «Очередь задач: Redis вместо Kafka — один инстанс, 200 rps».\n ✗ «Используем Redis» — следующая сессия переспорит то же самое.", "inputSchema": { "properties": { "kind": { "default": "fact", "type": "string" }, "project_id": { "type": "integer" }, "text": { "type": "string" } }, "required": [ "project_id", "text" ], "type": "object" }, "name": "add_note", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Поручение следующей сессии агента: хвост из «Осталось», который не успел\n сделать. Пользователь видит его в мини-аппе, следующая сессия — в\n list_tasks.", "inputSchema": { "properties": { "project_id": { "type": "integer" }, "text": { "type": "string" } }, "required": [ "project_id", "text" ], "type": "object" }, "name": "add_task", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Архивировать проект: уходит из списка, слот освобождается, данные целы.\n Зови, когда пользователю нужен слот под новый. Вернуть из архива и удалить\n проект может только он сам, в мини-аппе.", "inputSchema": { "properties": { "project_id": { "type": "integer" } }, "required": [ "project_id" ], "type": "object" }, "name": "archive_project", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Спросить пользователя кнопками в Telegram, когда упёрся в развилку,\n которую решает он сам («какую БД берём?»). НЕ для мелочей, решаемых\n здравым смыслом. options — 2–4 коротких варианта (по умолчанию Да/Нет).\n Молчит — вернётся id для check_confirmation.", "inputSchema": { "properties": { "options": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null }, "question": { "type": "string" } }, "required": [ "question" ], "type": "object" }, "name": "ask_user", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Вложение для notify_me: скриншот после правки интерфейса, PDF, лог.\n В проект не сохраняется, живёт до отправки.", "inputSchema": { "properties": { "filename": { "type": "string" }, "size_bytes": { "type": "integer" } }, "required": [ "filename", "size_bytes" ], "type": "object" }, "name": "attach_file", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Забрать ответ пользователя на вопрос ask_user (если тот вернул id). Зови\n не чаще раза в минуту-другую.", "inputSchema": { "properties": { "ask_id": { "type": "string" } }, "required": [ "ask_id" ], "type": "object" }, "name": "check_confirmation", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Закрыть поручение из list_tasks: result — что сделано (1–2 фразы, до 500\n символов, пользователь прочитает это в Telegram). Зови СРАЗУ по факту, не\n пачкой в конце. Не закрывай то, за что не брался.", "inputSchema": { "properties": { "result": { "type": "string" }, "task_id": { "type": "string" } }, "required": [ "task_id", "result" ], "type": "object" }, "name": "complete_task", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Завести проект в Чипе. Зови по просьбе пользователя — или предложи сам,\n если работаете над задачей без проекта. Название — по сути задачи, до 60\n символов.", "inputSchema": { "properties": { "name": { "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "create_project", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Завершить двухфазную загрузку файла: зови ПОСЛЕ того, как curl из ответа\n upload_project_file отработал успешно.", "inputSchema": { "properties": { "upload_id": { "type": "string" } }, "required": [ "upload_id" ], "type": "object" }, "name": "finalize_upload", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Сгенерировать картинку 1024×1024. ПЛАТНО: списывает с баланса\n пользователя ~3 кредита — зови по его запросу, не «на пробу». С project_id\n PNG ляжет в файлы проекта, без него — временная ссылка, скачай сразу.", "inputSchema": { "properties": { "project_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null }, "prompt": { "type": "string" } }, "required": [ "prompt" ], "type": "object" }, "name": "generate_image", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Контекст проекта: инструкции, поручения, оглавление карты, память, файлы,\n диалоги. Зови ОДИН раз, когда берёшься за проект впервые; вернулся в\n знакомый — whats_new, он дешевле. depth: \"brief\" (сводки аннотациями, по\n умолчанию) или \"full\" (дословно).", "inputSchema": { "properties": { "depth": { "default": "", "type": "string" }, "project_id": { "type": "integer" } }, "required": [ "project_id" ], "type": "object" }, "name": "get_project_context", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Оглавление карты проекта: полочки-статьи с актуальным знанием, которые\n Чип ведёт по журналу (не лента). Сама статья — read_map_section.", "inputSchema": { "properties": { "project_id": { "type": "integer" } }, "required": [ "project_id" ], "type": "object" }, "name": "get_project_map", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Файлы базы знаний проекта: имя, размер, читаемость. Зови перед\n read_project_file, если точное имя неизвестно.", "inputSchema": { "properties": { "project_id": { "type": "integer" } }, "required": [ "project_id" ], "type": "object" }, "name": "list_files", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Проекты пользователя: id, название, последняя активность, открытые\n поручения. Нужен project_id — сюда; список меняется редко, не перечитывай.", "inputSchema": { "properties": {}, "type": "object" }, "name": "list_projects", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Поручения тебе в этом проекте: их ставит пользователь и прошлая сессия\n (add_task, хвосты «Осталось»). Зови в начале работы и когда ищешь, чем\n заняться дальше. Сделанное закрывай complete_task — незакрытое всплывёт\n снова.", "inputSchema": { "properties": { "project_id": { "type": "integer" } }, "required": [ "project_id" ], "type": "object" }, "name": "list_tasks", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Сообщение пользователю в Telegram: итог долгой задачи («тесты зелёные»,\n «сборка упала»), важное событие. НЕ для болтовни и не для вопросов —\n вопрос задавай в сессии. До 1000 символов. Показать скриншот, PDF или\n лог — сначала attach_file, потом сюда upload_id.", "inputSchema": { "properties": { "text": { "type": "string" }, "upload_id": { "default": "", "type": "string" } }, "required": [ "text" ], "type": "object" }, "name": "notify_me", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Журнал проекта дословно, новые сверху: сводки сессий и заметки-вехи.\n Зови за «что было N сессий назад»; поиск по теме — search_project.\n offset 0 — свежие, дальше листай по подсказке в конце ответа.", "inputSchema": { "properties": { "offset": { "default": 0, "type": "integer" }, "project_id": { "type": "integer" } }, "required": [ "project_id" ], "type": "object" }, "name": "read_journal", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Статья одной полочки карты — актуальное знание по теме («Решения»,\n «Грабли»…). Зови по оглавлению из get_project_context или get_project_map.", "inputSchema": { "properties": { "project_id": { "type": "integer" }, "section": { "type": "string" } }, "required": [ "project_id", "section" ], "type": "object" }, "name": "read_map_section", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Диалог пользователя с Чипом внутри проекта: сводка и последние реплики.\n Сценарий: надиктовал план с телефона — забери целиком, а не пересказ. Без\n session_id — самый свежий; id диалогов в get_project_context.", "inputSchema": { "properties": { "project_id": { "type": "integer" }, "session_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null } }, "required": [ "project_id" ], "type": "object" }, "name": "read_project_dialog", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Текст файла из базы знаний проекта, страницами. Без page у длинного\n документа придёт оглавление — выбери раздел и позови с page=N; дальше\n листай по подсказке в конце ответа.", "inputSchema": { "properties": { "filename": { "type": "string" }, "page": { "default": 0, "type": "integer" }, "project_id": { "type": "integer" } }, "required": [ "project_id", "filename" ], "type": "object" }, "name": "read_project_file", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Переименовать проект (до 60 символов). Только по явной просьбе\n пользователя.", "inputSchema": { "properties": { "name": { "type": "string" }, "project_id": { "type": "integer" } }, "required": [ "project_id", "name" ], "type": "object" }, "name": "rename_project", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Сводка рабочей сессии — в журнал проекта. Зови В КОНЦЕ сессии или перед\n долгой паузой, один раз — не дроби. Структура: Сделано → Решения и почему\n (включая отвергнутые) → Грабли → Осталось. До 6000 символов, на языке\n пользователя.", "inputSchema": { "properties": { "project_id": { "type": "integer" }, "text": { "type": "string" } }, "required": [ "project_id", "text" ], "type": "object" }, "name": "save_session_summary", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Поиск по знанию проекта: полочки карты, журнал, память, диалоги. Зови за\n конкретным фактом или старым решением, которого нет в контексте. Без\n project_id — по всем проектам сразу. Запрос — 1–3 ключевых слова, не\n предложение. kind сужает память до вида (decision, pitfall, fact,\n preference, progress, correction); since (ISO, как курсор) режет старое.", "inputSchema": { "properties": { "kind": { "default": "", "type": "string" }, "project_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null }, "query": { "type": "string" }, "since": { "default": "", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_project", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Напоминание пользователю в Telegram — для отложенных проверок и\n дедлайнов. when — ISO-время («2026-07-25T10:00»), без пояса = локальное\n время пользователя. Текст до 200 символов.", "inputSchema": { "properties": { "text": { "type": "string" }, "when": { "type": "string" } }, "required": [ "text", "when" ], "type": "object" }, "name": "set_reminder", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Выгрузить файл в проект (md, txt, csv, json, pdf, docx, xlsx и др.) —\n пользователь откроет его с телефона. Зови, когда результат нужен ему в\n Чипе; код оставляй в репозитории. До ~20k символов — сразу в content,\n крупнее — укажи size_bytes и загрузи по инструкции из ответа. Картинки —\n generate_image. ПЛАТНО для многостраничного PDF: оглавление к нему\n списывает кредиты пользователя.", "inputSchema": { "properties": { "content": { "default": "", "type": "string" }, "filename": { "type": "string" }, "project_id": { "type": "integer" }, "size_bytes": { "default": 0, "type": "integer" } }, "required": [ "project_id", "filename" ], "type": "object" }, "name": "upload_project_file", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Изменения в проекте с твоего прошлого захода: журнал, поручения, файлы,\n полочки карты, диалоги. Зови ПЕРВЫМ, как взялся за проект: в знакомом —\n только дельта, впервые — сразу полный контекст. Скажет «изменений много» —\n добери get_project_context. since — из «Курсора» прошлого ответа, session —\n метка твоей ветки: покажу соседние сессии этого токена.", "inputSchema": { "properties": { "project_id": { "type": "integer" }, "session": { "default": "", "type": "string" }, "since": { "default": "", "type": "string" } }, "required": [ "project_id" ], "type": "object" }, "name": "whats_new", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } }, { "description": "Тариф, занятость слотов проектов и (на платном тарифе) остатки дневных\n лимитов. Зови в начале сессии и когда другой тул отказал по лимиту.", "inputSchema": { "properties": {}, "type": "object" }, "name": "whoami", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:cda4f52c5bd2e17ed6af10a0831f8587fe6fe67e2f86e0151ff960d23a99f709 | sha256sum