Plyto

Plyto is an agentic CRM for small businesses, and this server exposes the whole platform to the AI you already use.

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

Что умеет

  • Memory Save: Save (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…"
  • Memory List: List 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 u
  • Memory Forget: Permanently 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 unde

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

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

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

Plyto is an agentic CRM for small businesses, and this server exposes the whole platform to the AI you already use. Connect Claude, Cursor, or any MCP-compatible assistant with a per-business API key and your agent can create and search contacts and companies, move deals through pipelines, draft emails and campaigns, manage tasks and notes, inspect automations, and run live reports. It all runs on your own AI subscription, with no Plyto AI credits needed.

Safe by default: anything that spends money, bulk-contacts customers, publishes, or deletes is blocked over MCP and stays in the Plyto app for human approval.

Список инструментов сервера (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.