Chip MCP

Project memory, tasks and Telegram notifications for your coding agent. Chip account required.

Should I use this

Quality & Safety

B
Description quality
76%
Schema completeness
75%
Naming quality
94%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (13)

  • LOWTool 'whoami' description lacks action verbin whoami
  • LOWTool 'list_projects' description lacks action verbin list_projects
  • LOWTool 'get_project_context' description lacks action verbin get_project_context
  • LOWTool 'search_project' description lacks action verbin search_project
  • LOWTool 'read_project_file' description lacks action verbin read_project_file
  • LOWTool 'create_project' description lacks action verbin create_project
  • LOWTool 'rename_project' description lacks action verbin rename_project
  • LOWTool 'archive_project' description lacks action verbin archive_project
  • LOWTool 'save_session_summary' description lacks action verbin save_session_summary
  • LOWTool 'add_note' description lacks action verbin add_note

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,460Tokens (tool definitions)
~615 BTypical response size
Significant attention impact (3.48% of 128k context)

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-http

What it can do

Tool inventory

Tools (27)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

find_specific
Find [specific item] using Chip MCP
Expected tools: search_project
retrieve_data
Get details about [item] from Chip MCP
Expected tools: read_journal
fetch_info
Fetch [information type] using Chip MCP
Expected tools: read_journal
list_items
List all [items] available in Chip MCP
Expected tools: list_projects
search_research
Search for information about [topic] using Chip MCP
Expected tools: search_project

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded27 tools
verifiedversion not recorded27 tools