Plyto

Plyto: CRM для малого бизнеса с контактами, сделками и задачами прямо в ассистенте

От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетНужен API-ключГлобальныйБесплатноМожет изменять данные

Что умеет

  • Создавать и искать контакты и компании
  • Управлять тегами и пользовательскими свойствами записей
  • Сохранять и вспоминать заметки-правила для бизнеса
  • Просматривать список задач и автоматизаций
  • Запускать отчёты по данным CRM

Какие данные видит

Доступ выдаётся по API-ключу конкретного бизнеса; ассистент видит данные CRM этого аккаунта, но не может тратить средства, рассылать сообщения массово, публиковать или удалять записи.

Нужен ли аккаунт

Нужен API-ключ из настроек сервиса

Plyto — CRM для малого бизнеса, и этот сервер открывает доступ к платформе из ассистента через персональный API-ключ. Можно создавать и искать контакты и компании, вести сделки по воронке, работать с задачами, заметками и автоматизациями, запускать отчёты. Всё, что связано с тратами денег, массовыми рассылками, публикацией или удалением, заблокировано на уровне MCP и остаётся под ручным контролем в приложении Plyto.

Как подключить

Как подключить Plyto к Claude

Адрес сервера, который нужно вставить в настройках Claude:

https://plyto--grayross01.run.tools

  1. Откройте Claude (сайт claude.ai или приложение для компьютера).
  2. Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
  3. Нажмите Добавить пользовательский коннектор (Add custom connector).
  4. Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
  5. В чате нажмите + → Коннекторы и включите новый коннектор.

Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.

Авторизация

После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.

Как подключить Plyto к ChatGPT

Адрес сервера, который нужно вставить в настройках ChatGPT:

https://plyto--grayross01.run.tools

  1. Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
  2. Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
  3. Откройте Настройки → Коннекторы и нажмите Создать (Create).
  4. Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
  5. В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
  6. В новом чате откройте + → Приложения/Коннекторы и включите коннектор.

Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.

Авторизация

При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.

Как подключить Plyto к Cursor

Адрес сервера, который нужно вставить в настройках Cursor:

https://plyto--grayross01.run.tools

Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.

Вручную:

  1. В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
  2. Вставьте JSON, скопированный ниже, в открывшийся файл ~/.cursor/mcp.json (для одного проекта: .cursor/mcp.json в корне проекта).
  3. Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.

Авторизация

Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.

Список инструментов сервера (60)

Технические названия из tools/list. Нужны только разработчикам.

memory__saveSave (or update) a durable memory — a standing preference, playbook rule, correction, or business fact that should hold across ALL future conversations. Use when the user says "remember…", "always…", "never…", "from now on…", states a lasting preference, or corrects how you did something. One distilled rule per memory, ≤500 characters. If an existing memory covers the same topic (they're listed in your context with ids), pass its memoryId to UPDATE it instead of creating a near-duplicate. Do NOT save one-off task details, secrets, credentials, or personal contact data — contact facts belong on the contact (crm.notes.add).
memory__listList every durable memory you hold for this business (business-wide plus the current user's personal ones), with ids and when each was last confirmed. Use before consolidating, when the user asks what you remember, or to find a memoryId to update/forget.
memory__forgetPermanently delete a saved memory. Destructive — confirm with the user first unless they just explicitly asked you to forget exactly this. Users can also remove memories themselves under Settings → Business profile.
crm__contacts__createCreate a contact (or find-and-update if one with the same email already exists in this business). Returns the created/updated contact. Use when the user mentions adding, capturing, or tracking a new person. Email is the natural dedup key — if you have an email, always pass it.
crm__contacts__updateUpdate fields on an existing contact. Only pass fields you want to change. No-op fields are silently skipped.
crm__contacts__getFetch a single contact by id. Returns null if not found in this business.
crm__contacts__listList contacts in this business with simple filters. For free-text search use crm.contacts.search. For complex filters use crm.contacts.query (W3).
crm__contacts__searchFree-text search across contact email, first/last name, and phone. Case-insensitive substring match. Returns up to 20 contacts by default.
crm__contacts__get_propertiesReturn all custom property values for a contact as a {key: value} map.
crm__companies__createCreate a company (or find-and-update if one with the same domain already exists). Domain is the natural dedup key — always pass the bare domain like 'acme.com' (not the full URL).
crm__companies__updateUpdate fields on an existing company. Only pass fields you want to change.
crm__companies__getFetch a single company by id. Returns null if not found.
crm__companies__listList companies in this business. For text search use crm.companies.search.
crm__companies__searchFree-text search across company name, domain, and industry. Case-insensitive substring match.
crm__companies__get_propertiesReturn all custom property values for a company as a {key: value} map.
crm__tags__createCreate a new tag (or find one with the same name — idempotent). Tags are lightweight orthogonal categories like 'VIP', 'Newsletter-only', 'Cold'.
crm__tags__listList all tags defined in this business.
crm__tags__add_to_contactApply a tag to a contact. Idempotent — adding an already-applied tag is a no-op.
crm__tags__remove_from_contactRemove a tag from a contact. Idempotent.
crm__tags__list_for_contactList all tags applied to a contact.
crm__tags__add_to_companyApply a tag to a company. Idempotent.
crm__tags__remove_from_companyRemove a tag from a company. Idempotent.
crm__tags__list_for_companyList all tags applied to a company.
crm__properties__defineDefine a new custom property on contact or company. Keys must be lowercase snake_case (e.g. 'plan_tier'). For single_select / multi_select, options is required.
crm__properties__listList custom property definitions for an entity type. Excludes archived by default.
crm__properties__archiveArchive a custom property. Existing values are preserved but the property is hidden from UI and rejected for new value sets. To 'rename', archive + redefine.
crm__properties__set_contact_valueSet the value of a custom property on a contact. Value type must match property type. For multi_select pass an array of option values.
crm__properties__set_company_valueSet the value of a custom property on a company.
crm__properties__set_deal_valueSet the value of a custom property on a deal.
crm__properties__clear_contact_valueRemove a custom property value from a contact.
crm__properties__clear_company_valueRemove a custom property value from a company.
crm__properties__clear_deal_valueRemove a custom property value from a deal.
crm__properties__get_deal_valuesReturn all custom property values for a deal as a {key: value} map.
crm__pipelines__listList all pipelines in this business (excludes archived by default).
crm__pipelines__list_stagesList the ordered stages in a pipeline. Use to look up stageIds for crm.deals.move_stage.
crm__pipelines__get_defaultGet the default pipeline for this business (the one new deals land in by default). Returns null if no default is set.
crm__deals__createCreate a deal in a pipeline. If pipelineId/stageId omitted, lands in the business's default pipeline at the first open stage. Attach to a contact and/or company for full context. valueCents is the deal size in cents (e.g. $5,000 = 500000).
crm__deals__updateUpdate fields on a deal. Use crm.deals.move_stage to change stage (it handles close events). Use crm.deals.close_won / close_lost for the won/lost transitions.
crm__deals__move_stageMove a deal to a different stage in the same pipeline. If the target stage is a won/lost stage, this auto-sets closedAt and emits the appropriate close event.
crm__deals__close_wonClose a deal as won — moves it to the won stage in its pipeline. Sets closedAt and emits deal.won.
crm__deals__close_lostClose a deal as lost — moves it to the lost stage in its pipeline. Records lostReason and emits deal.lost.
crm__deals__getFetch a single deal by id.
crm__deals__listList deals with simple filters. Filter by pipeline/stage for Kanban view, or by contact/company for deal history. `open: true` returns only open-stage deals; omit for all.
crm__deals__searchFree-text search across deal names.
crm__activities__logLog an activity — something that happened (past or scheduled). Distinguished from tasks (future intent) and notes (no structure). Use 'log a 30-min discovery call with Jane' style prompts. happenedAt defaults to now if omitted.
crm__activities__listList activities, optionally filtered by entity (contact/company/deal) or owner. Returned in reverse chronological order by happenedAt.
crm__activities__getFetch a single activity by id.
crm__tasks__createCreate a task — future intent ('follow up with Acme by Friday'). Distinguished from activities (past event) and notes (no structure). Auto-assigns to the calling user if assignedToUserId omitted.
crm__tasks__completeMark a task as completed. Sets completedAt to now.
crm__tasks__cancelMark a task as cancelled (rejected — different from completed). Use when the user decides a task is no longer relevant.
crm__tasks__listList tasks. Open tasks sort by due date (closest first). Completed tasks sort by completion (most recent first).
crm__tasks__getFetch a single task by id.
reports__previewRun a report config WITHOUT saving — use to answer analytical questions ('deals by stage', 'contacts added per month', 'email opens last 30 days') and to sanity-check a config before reports.create. Returns rows + totals. Money values are in cents.
crm__sources__performanceMarketing-source attribution: for every source (ad campaigns, UTM-tagged traffic, forms, inbound webhook, manual, import…) the full funnel — leads acquired, deals created, deals won, won revenue — plus ad spend, CPL, CAC and ROAS where spend exists. THE tool for 'which marketing source makes me the most money'. Sorted by won revenue; money values are in cents. Mirrors the Reports → Sources view.
reports__createSave a custom report as a live card on the user's Reports dashboard. Use when the user asks for a report or says yes to saving an analysis. The config is re-executed on every dashboard view (always live). Validates by running once; returns the saved report + current data.
reports__listList the saved custom reports on the Reports dashboard.
crm__notes__addAdd a freeform note attached to a contact, company, deal, or any combination. Use for 'remember that Jane prefers email over phone' style facts.
crm__notes__listList notes, optionally filtered by attached entity.
crm__lists__createCreate a contact list. Manual lists are curated by hand; dynamic lists have a filter DSL (DNF: {or:[{and:[conditions]}]}) that defines membership. For dynamic, pass `criteria`. For manual, omit it.
crm__lists__getFetch a single list by id.