Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Obriym CRM

REMOTE · OBRIYM-CRM.COM

Operate Obriym CRM from your AI assistant: leads, deals, orders, catalog, stock, marketplaces.

Available components

0 this week 90 Trust /100

Last scanned (17 hours ago)

Scores higher than 98% of remote servers

Reachable. Last reached 5 Nov 2026.

Category CRM and Sales

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security94
Transport & Reachability100
Schema Quality & AI Usability79
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 26080 tokens (~230/item across 113 items; 113 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management99
  • Stability check failed: schema churn in the 30 days we've observed: 0 tool removals, 1 breaking changes, 0 auth/transport breaks, 38 additions. See how to fix → Fail
Tool Coverage97
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 91% of tool parameters carry a description.Partial
Tool Safety50
  • Injection-marker check failed: the description of tool "publish_ebay_drafts" contains an instruction to conceal the call from the user, the text "Never tell the user", at byte 411 of that field. See how to fix → Fail
  • All 12 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 114 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
What we tested

Checks we ran (13)

  • TLS certificate
  • Authorization
  • HTTPS
  • HSTS header
  • DNSSEC
  • Transport
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Does not apply to this hosted endpoint (2)

  • Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
  • Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.

The score does not measure everything. What the score does not measure →

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 26 Oct 26 0
    • Tool “get_customer” rewrote its description, which is the text the model reads security
    • Tool “list_customers” rewrote its description, which is the text the model reads security
    • Tool “list_people_customers” rewrote its description, which is the text the model reads security
    • Tool “publish_ebay_variation_listing” rewrote its description, which is the text the model reads security
    • Tool “save_ebay_variation_listing” rewrote its description, which is the text the model reads security
    • Server version: 1.20.0 → 1.21.0 functional
    • “list_orders” reworded the description of “status” cosmetic
    • “search_products” reworded the description of “sort” cosmetic
    • “update_order_status” reworded the description of “status” cosmetic
  • 20 Oct 26 0
    • New tool “push_google_merchant_catalog”, which the server declares destructive security
    • Tool “get_marketplace” rewrote its description, which is the text the model reads security
    • Tool “list_marketplaces” rewrote its description, which is the text the model reads security
    • Tool “get_product” rewrote its description, which is the text the model reads security
    • Tool “search_products” rewrote its description, which is the text the model reads security
    • Tool “get_customer” rewrote its description, which is the text the model reads security
    • Tool “list_customers” rewrote its description, which is the text the model reads security
    • Server version: 1.19.0 → 1.20.0 functional
    • Server version: 1.18.1 → 1.19.0 functional
    • Server version: 1.18.0 → 1.18.1 functional
    • New tool “get_person_customer” functional
    • New tool “list_people_customers” functional
    • “search_products” added an optional parameter “supplierId” cosmetic
    • “search_products” added an optional parameter “supplierStock” cosmetic
    • “check_channel_readiness” reworded the description of “platform” cosmetic
    • “get_marketplace” reworded the description of “platform” cosmetic
    • “list_channel_products” reworded the description of “platform” cosmetic
    • “list_customers” reworded the description of “wonDealsMin” cosmetic
  • 18 Oct 26 0
    • Tool “list_content_channels” rewrote its description, which is the text the model reads security
    • Tool “list_published_posts” rewrote its description, which is the text the model reads security
    • Server version: 1.17.0 → 1.18.0 functional
    • “list_published_posts” reworded the description of “channel” cosmetic
  • 17 Oct 26 −1
    • Stability: pass → fail ▼ security
    • Tool “add_order_item” rewrote its description, which is the text the model reads security
    • Tool “create_order” rewrote its description, which is the text the model reads security
    • Tool “update_order_item” rewrote its description, which is the text the model reads security
    • “create_order” made “currency” required, so existing callers break ▼ functional
    • Server version: 1.16.2 → 1.17.0 functional
    • New tool “quote_order_promotion” functional
    • “create_order” added an optional parameter “promotion” cosmetic
    • “create_order” reworded the description of “currency” cosmetic
    • “create_order” dropped the optional parameter “discountAmount” cosmetic
    • “create_order” dropped the optional parameter “promoCode” cosmetic
  • 15 Oct 26 0
    • Tool “create_company” rewrote its description, which is the text the model reads security
    • Tool “update_company” rewrote its description, which is the text the model reads security
    • Server version: 1.16.0 → 1.16.2 functional
    • “create_company” added an optional parameter “bankName” cosmetic
    • “create_company” added an optional parameter “counterpartyType” cosmetic
    • “create_company” added an optional parameter “creditLimit” cosmetic
    • “create_company” added an optional parameter “creditLimitCurrency” cosmetic
    • “create_company” added an optional parameter “deliveryAddress” cosmetic
    • “create_company” added an optional parameter “edrpou” cosmetic
    • “create_company” added an optional parameter “email” cosmetic
    • “create_company” added an optional parameter “iban” cosmetic
    • “create_company” added an optional parameter “legalAddress” cosmetic
    • “create_company” added an optional parameter “paymentTermsDays” cosmetic
    • “create_company” added an optional parameter “phone” cosmetic
    • “create_company” added an optional parameter “representationState” cosmetic
    • “create_company” added an optional parameter “tags” cosmetic
    • “create_company” added an optional parameter “taxGroup” cosmetic
    • “create_company” added an optional parameter “taxSystem” cosmetic
    • “create_company” added an optional parameter “vatNumber” cosmetic
    • “create_company” added an optional parameter “vatPayer” cosmetic
    • “create_contact” added an optional parameter “documentRole” cosmetic
  • 14 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Server version: 1.14.0 → 1.16.0 functional
    • New tool “get_obriym_product_facts” functional
  • 12 Oct 26 0
    • New tool “delete_category”, which the server declares destructive security
    • Tool “list_categories” rewrote its description, which is the text the model reads security
    • Tool “create_category” rewrote its description, which is the text the model reads security
    • Tool “list_content_channels” rewrote its description, which is the text the model reads security
    • Tool “update_category” rewrote its description, which is the text the model reads security
    • Server version: 1.13.0 → 1.14.0 functional
    • New tool “get_category” functional
    • New tool “get_lead_conversation” functional
    • New tool “list_conversations” functional
    • New tool “list_published_posts” functional
    • New tool “search_marketplace_categories” functional
    • “create_category” added an optional parameter “marketplaceCategories” cosmetic
    • “create_category” reworded the description of “googleProductCategory” cosmetic
  • 10 Oct 26 0
    • Schema quality: 14432 → 21409 ▼ functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://obriym-crm.com/api/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=obriym-crm.com CN=YR2,O=Let's Encrypt,C=US 6 Oct 2026 4 Jan 2027 RSA 2048 SHA256-RSA 63c2523d33c945df82b3ebfe0bf75ed1153
SANs: obriym-crm.com
CN=YR2,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA 4ebd24947e24d394802d84a52fd5b319
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of obriym-crm.com. — Not signed

Zone DS Keys Algorithms Outcome
. Trust anchor 20326, 38696 8, 8 Verified
com. DS published 19718 13 Verified
obriym-crm.com. No DS Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer error="invalid_token", error_description="Authentication required for this tool", resource_metadata="https://obriym-crm.com/.well-known/oauth-protected-resource"

Bearer error="invalid_token", error_description="Authentication required for this tool", resource_metadata="https://obriym-crm.com/.well-known/oauth-protected-resource"
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=(), microphone=(), geolocation=(), browsing-topics=()

Protected resource metadata

Document https://obriym-crm.com/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://obriym-crm.com/api/mcp
Authorisation server https://obriym-crm.com/api/auth

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://obriym-crm.com/api/mcp Verified 200
http (plaintext) http://obriym-crm.com/api/mcp HTTPS enforced 308 https://obriym-crm.com/api/mcp
MCP tools · 113 exposed · ~25,704 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
list_activities ~340

List this workspace's activities (tasks, calls, meetings, emails, notes), filtered by type/assignee/overdue/completion/linked-entity and paginated. Returns summary rows (id, type, title, priority, dueDate, completed, assignee, linked lead/contact/company/deal, isOverdue) plus pagination { page, perPage, total }. Use get_activity to fetch one activity's full detail by id.

NameTypeReqDescription
assignedTostring–Filter to activities assigned to this workspace member's user id.
companyIdstring–Filter to activities linked to this company id (from search_companies).
completedstring–Filter by completion: "true" only completed, "false" only open. Omit for both.
contactIdstring–Filter to activities linked to this contact id (from search_contacts).
dealIdstring–Filter to activities linked to this deal id (from search_deals).
leadIdstring–Filter to activities linked to this lead id (from search_leads).
overduestring–Set "true" to return only overdue activities (past due date, not completed).
pageinteger–1-based page number of results to return. Default 1.
perPageinteger–Number of activities per page (1-100). Default 20.
qstring–Free-text search over the activity title. Omit for no text filter.
typestring–Filter by activity type. Omit for any. Allowed: task, call, meeting, email, note.

No output schema declared.

No examples provided.

list_brands ~46

List this workspace catalog brands with id, name, description and website. Use a brand id here as the brandId for create_product/update_product, or as the search_products brand filter.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_categories ~137

List this workspace catalog categories as a flat array, each with id, name, slug, parentId (null for a root category), description, googleProductCategory, imageUrl, translations and marketplaceCategories (the Prom, Rozetka, OLX, Amazon and Google Merchant category ids already linked, each as { id, label } or null). Categories are workspace-global, not per warehouse. Use a category id here as the categoryId for create_product/update_product, or as the search_products category filter. Use get_category for one category's product and subcategory counts, and search_marketplace_categories to find a marketplace category id to link.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_channel_products ~195

List the products that are on one marketplace, with each listing external id, what the marketplace last reported about it (`presence`, valid only when `observedAt` is set — null `observedAt` means the marketplace has never been asked about that listing, not that it is absent; Prom is reconciled every 15 minutes, other channels only when a sync or publish runs), whether the workspace paused syncing it, its price and stock. Also returns the honest totals over the whole channel and the ACTIVE products that have no listing there at all (the 'did not match by SKU' list), which is usually the answer when a push updated fewer products than expected. Use check_channel_readiness for why a product would be refused.

NameTypeReqDescription
platformstringyesThe marketplace slug returned by list_marketplaces (prom, rozetka, woocommerce, shopify, olx, amazon, ebay, google_merchant).

No output schema declared.

No examples provided.

list_content_channels ~215

List the social channels this workspace can publish posts to — Telegram channel, Instagram, Facebook page, LinkedIn, Threads, Viber channel — with, per channel, whether it is ready, where it posts (destination), its public address (profile: profileUrl, publicFeedUrl — a public Telegram channel reads without signing in at t.me/s/<name>, older posts via ?before=<post id> — and readableBy: anyone, login_required or not_public), its text limit (maxTextLength) and, when not ready, the setup step the person must do in Obriym. Open the profile with your own browsing to read every post the channel already has, including ones written outside Obriym. Also returns now (the current time on the workspace's clock) and the workspace time zone — build schedule_content_post times from them — the image rules, and publishingEnabled: whether the workspace owner allows AI clients to publish or schedule. Read-only. Call it before create_content_post and only target ready channels.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_content_locales ~112

List the languages this workspace writes product content in: the base language (the text stored on products, categories and brands themselves), the extra languages the owner added, and the offered set — every language the CRM shows as a translation tab. Each entry is an ISO 639-1 code with its English name. Read-only. Call it BEFORE writing any translation (upsert_product_translation, upsert_category_translation, upsert_brand_translation) and write only offered languages; never write the base language as a translation.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_content_posts ~151

List the workspace's social posts, newest first, 20 per page: id, working title, status (draft, scheduled, publishing, published, partial, failed), channels, scheduled and published times. Filter by status or by part of the title. Read-only. Use get_content_post for one post's texts and per-channel results; use it to check what is already scheduled before planning more posts.

NameTypeReqDescription
pageinteger–Page number, 20 publications per page, newest first.
querystring–Part of a publication's working title.
statusstring–Only publications in this state: draft, scheduled, publishing, published, partial (some channels failed) or failed.

No output schema declared.

No examples provided.

list_conversations ~288

List customer conversations across every connected channel (Instagram, Messenger, WhatsApp and comments, Telegram, OLX, Prom, eBay, Threads replies, the B2B portal, buyer order pages …). One row per lead and channel, newest first: { leadId, leadName, channel, lastMessageAt, lastMessageText (first 300 characters), lastDirection (inbound = from the customer), awaitingReply (the customer wrote last) } plus pagination { page, perPage, total }. Open conversations only — converted or disqualified leads and closed threads are left out. Filter by channel, by awaitingReply, or by a text match on the customer's name or last message. Read-only: replies are written by a person in the CRM Inbox, this server cannot send messages. Use get_lead_conversation to read one thread's messages and get_lead for the lead card.

NameTypeReqDescription
awaitingReplyboolean–True returns only conversations whose last message is from the customer and still wait for an answer.
channelstring–Channel slug to keep, as returned in the channel field of earlier results (e.g. instagram, telegram, olx). Omit for all channels.
pageinteger–1-based page of 25 conversations (default 1).
querystring–Text to match against the customer's name or the last message.

No output schema declared.

No examples provided.

list_customers ~360

List CRM customers: companies that bought — a purchase order (processing, ready to ship, shipped, delivered or refunded, or with a settled payment) or a won deal that never became an order. Filter by health, lifetime-value bucket, owner, name search or minimum won deals; sorted by lifetime value and paginated. Returns summary rows (id, name, health, lifetimeValue = completed-order revenue plus won deals without an order, purchases = purchase orders plus won deals without an order, repeat = two or more purchases, lastPurchaseAt, wonDealsCount = every won deal, lastActivityAt, owner) plus pagination { page, perPage, total }. Read-only. Use get_customer to fetch one customer's detail by company id; use list_people_customers for people who bought without a company (shop buyers).

NameTypeReqDescription
healthstring–Filter by customer health. Omit for any. Allowed: healthy, at_risk, churned.
ltvstring–Filter by lifetime-value bucket. Omit for any. Allowed: lt10k, 10k50k, gt50k.
ownerIdstring–Filter to customers owned by this workspace member's user id.
pageinteger–1-based page number of results to return. Default 1.
perPageinteger–Number of customers per page (1-100). Default 25.
qstring–Free-text search over the customer company name. Omit for no text filter.
sortDirstring–Sort direction by lifetime value. Default desc (highest first).
wonDealsMininteger–Only customers with at least this many won deals (orders are not counted here).

No output schema declared.

No examples provided.

list_ebay_fulfillment_policies ~259

List the eBay shipping (fulfillment) business policies the seller has on each eBay site the connection sells on: fulfillmentPolicyId, name, freeShipping, shippingCost of the first domestic service (null for CALCULATED shipping), costType, handlingTime, domestic and international services, ship-to regions, and isDefault — the connection default. productCount is how many products chose the policy themselves; staleAssignments are product choices pointing at a policy eBay no longer has. Reads the stored copy; a site never read before is read from eBay, and refresh true reads eBay now. Reads only. Use a fulfillmentPolicyId from here with set_product_ebay_fulfillment_policy, bulk_set_ebay_fulfillment_policy or set_ebay_default_fulfillment_policy; for one product's policy use get_product_ebay_fulfillment_policy.

NameTypeReqDescription
marketplaceIdstring–An eBay MARKETPLACE id such as EBAY_IT. Omit it to list every marketplace the eBay connection sells on.
refreshboolean–true reads the policies from eBay now instead of the stored copy. A marketplace never read before is read from eBay either way.

No output schema declared.

No examples provided.

list_lead_sources ~85

List this workspace's lead sources (built-in plus custom), with each source's key, label and active state. Pass includeInactive to also return archived sources. Use set_lead_sources to add or archive a source; use a source key here as the source filter for search_leads.

NameTypeReqDescription
includeInactiveboolean–Set true to include archived/inactive lead sources.

No output schema declared.

No examples provided.

list_marketplaces ~142

List every marketplace connected to this workspace with its setup state, health, last activity, any current sync error with `problem` (its kind, whether a person must reconnect the account, and what to do), orders revenue per currency, leads, product counts on the channel and how many imported products are waiting to be reviewed. advertising: true marks a channel where nothing is sold (Google Merchant), so its zero revenue is structural. Answers 'which channels do I sell on and is anything broken'. Takes no arguments. Use get_marketplace for one channel in detail, list_channel_products for what is on it, and check_channel_readiness for what it will refuse.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_orders ~268

List this workspace's orders, filtered by status/customer/created-date and paginated. Returns summary rows (externalId, status, currency, totalAmount, itemCount, timestamps) plus pagination { page, perPage, total }, newest first. Use get_order to fetch one order's full detail (line items, payments, shipments, returns) by externalId.

NameTypeReqDescription
customerExternalIdstring–Filter to one storefront customer by their externalId (the id from the source system). Omit to list all customers' orders.
fromstring–Only orders created at or after this ISO 8601 timestamp (e.g. 2026-01-31T00:00:00Z).
pageinteger–1-based page number of results to return. Default 1.
perPageinteger–Number of results per page (1-100). Default 20.
statusstring–Filter by order status. Omit to return every status. Allowed: pending, confirmed, processing, ready_to_ship, shipped, delivered, cancelled, refunded.
tostring–Only orders created at or before this ISO 8601 timestamp (e.g. 2026-02-28T23:59:59Z).

No output schema declared.

No examples provided.

list_people_customers ~349

List people (CRM contacts) who bought without a company — shop buyers: a purchase order without a company (processing, ready to ship, shipped, delivered or refunded, or with a settled payment) or a won deal of theirs without a company that never became an order. A company's purchases never count for the person who represents it. Filter by health, lifetime-value bucket, repeat (two or more purchases) or search over name, email and phone; sorted by lifetime value and paginated. Returns rows (id = contact id, firstName, lastName, email, phone, health, lifetimeValue, purchases, repeat, firstPurchaseAt, lastPurchaseAt, lastActivityAt) plus pagination { page, perPage, total }. Read-only. Use get_person_customer for one person by contact id; use list_customers for companies.

NameTypeReqDescription
healthstring–Filter by customer health. Omit for any. Allowed: healthy, at_risk, churned.
ltvstring–Filter by lifetime-value bucket. Omit for any. Allowed: lt10k, 10k50k, gt50k.
pageinteger–1-based page number of results to return. Default 1.
perPageinteger–Number of people per page (1-100). Default 25.
qstring–Free-text search over the person's first name, last name, email and phone. Omit for no text filter.
repeat––true = only people with two or more purchases; false or omitted = everyone.
sortDirstring–Sort direction by lifetime value. Default desc (highest first).

No output schema declared.

No examples provided.

list_pipeline_stages ~64

List this workspace's pipeline stages in order, with each stage's id, name, kind, default probability, WIP limit and position. Use configure_pipeline to change a stage, and the stage id here as the stageId for create_deal / transition_deal.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_published_posts ~436

List what this workspace has already published to its social channels, newest first: per post the exact text each channel got (hashtags included), the channel, permalink, publishedAt, title, contentPostId and productId, plus per channel the publishing rhythm (lastPostedAt, postsLast7Days, postsLast30Days, medianGapHours, nextScheduledAt, scheduledCount) and, in sources, the channel's public address (profileUrl, publicFeedUrl) with a note. Only posts published through Obriym are listed. Posts typed directly into the network are not stored here — before planning, compare against BOTH this list and the channel itself: open sources[].publicFeedUrl or profileUrl with your own browsing to read everything posted there (a public Telegram channel reads at t.me/s/<name>; LinkedIn and Instagram may need a login; a Viber channel is read in the Viber app; a private channel cannot be read from outside). Never claim the channel had no other posts, and say so when a channel cannot be read. Use it before planning or writing new posts: avoid repeating a topic, product or phrasing, and use the rhythm to choose dates that keep a steady flow; then create_content_post and schedule_content_post. Filter by channel or by days (YYYY-MM-DD on the workspace's clock), 20 per page. Read-only. Use list_content_posts for drafts and scheduled posts, get_content_post for one post's per-channel results.

NameTypeReqDescription
channelstring–Only this network's posts: instagram, facebook, telegram, linkedin, threads or viber. Omit for all channels.
fromstring–First day to include, YYYY-MM-DD, a calendar day on the workspace's clock. Omit for no lower bound.
limitinteger–Posts per page, 1–50. Default 20.
pageinteger–Page number, newest posts first. Default 1.
tostring–Last day to include, YYYY-MM-DD, inclusive, on the workspace's clock. Omit for no upper bound.

No output schema declared.

No examples provided.

list_suppliers ~98

List the workspace's suppliers: id, name, status (active or archived), the currency they invoice in and how many products each covers (productCount). Read-only. Use it as the id source for a {kind:'supplier'} scope of preview_bulk_price_change and apply_bulk_price_change — 'raise every Sipec product by 5%'. Categories, brands and warehouses come from list_categories, list_brands and list_warehouses.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_warehouses ~103

List this workspace warehouses with id, name, description, phone, address (the street line), country (ISO code), city, postalCode, workingHours (free text) and pickupEnabled (whether the warehouse is offered as a self-pickup point). A product lives in at most one warehouse, and the warehouse decides the inventory-tracking default and which sales channels new products are listed on. Use a warehouse id here as the warehouseId for create_product.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_workspaces ~45

List every workspace the connected user belongs to (id, name, role) and mark which one this connection currently operates. OAuth sign-in connections only. Use select_workspace to switch.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

preview_bulk_price_change ~410

Dry run of a bulk price change — step 1 of 2; nothing is written. Give a rule (percent, fixed, fromCost, discount, endDiscount, compareAtMarkup, compareAtClear), a scope (a named category, brand, supplier, warehouse or model, or up to 100 explicit product ids) and optionally a target (the product's price, a price-list currency, or the purchase cost). Returns totalItems (how many products would change), a sample of up to 10 with from/to, old price and cost, belowCost (how many would sell below their cost), skipped grouped by reason (no price, no cost, no rate, unchanged, …), the currency, and a digest. Always show the person the counts, the sample, the skipped reasons and any belowCost warning BEFORE applying. Then call apply_bulk_price_change with the SAME rule, scope and target and this digest. Ids come from list_categories, list_brands, list_suppliers, list_warehouses (a category includes its sub-categories only with includeSubcategories) and search_products. Read-only and repeatable.

NameTypeReqDescription
rule–yesHOW prices move. The target 'cost' accepts only op 'percent'. Pick the one that matches the request: a percent change, a fixed price, a markup over cost, a discount (and its end), or the old price.
scope–yesWHICH products. Prefer a named container (category, brand, supplier, warehouse) when the person says 'all products of …' — it is read back by name in the preview. There is no free filter: a request l…
target––WHICH number moves. Omit it to change the product's own selling price. Use {field:'price', currency:'EUR'} for the euro price list, {field:'cost'} for the purchase cost.

No output schema declared.

No examples provided.

publish_content_post ~174

Publish a post NOW to every ready channel of it — a real, public post in the business's name that followers see at once and that cannot be taken back from Obriym. A channel already published is never sent twice, so calling it again only retries the channels that failed or were not ready. Returns, per channel, the outcome (published, failed, already_published, skipped_not_configured with the setup step, skipped_empty, skipped_unsupported), the link to the live post and the network's error. Needs the owner's "AI may publish to social channels" switch (publishingEnabled in list_content_channels). Confirm with the person before calling it unless they asked for the publication outright. Echoes the workspace.

NameTypeReqDescription
idstringyesThe publication id returned by create_content_post or list_content_posts.

No output schema declared.

No examples provided.

publish_ebay_drafts ~197

Make the eBay DRAFT offers of up to 25 products LIVE and buyer-visible — a real publication on the seller's account. The item and offer are refreshed from the current product first, so a price, title, photo or characteristic fixed after the draft was made is published too. Pass only products whose nextAction from inspect_ebay_listings is publish_draft. Returns done, failed (with reasons) and notAttempted. Never tell the user a listing is live unless it is counted in done. Refused until the owner switches on AI publishing. The result echoes the workspace.

NameTypeReqDescription
productIdsarrayyesMake each product's eBay DRAFT offer LIVE and buyer-visible, at most 25 ids fetched with search_products. The item and offer are refreshed from current product data first, then published — this is a…

No output schema declared.

No examples provided.

publish_ebay_variation_listing ~309

Publish a product model on eBay as ONE live listing with variations: saves it first exactly like save_ebay_variation_listing (so eBay gets the articles as they are now), then publishes the whole group — a real listing buyers can purchase. Returns status: blocked (with issues — reason, message, skus — and nothing written), saved (a draft on eBay) or published, plus marketplaceId, listingId, listingUrl, publishedAt, variationCount, failed (variations eBay refused, by sku — nothing is published while any) and removedSkus (articles that left the listing). A partial/uncertain publication returns reason ebayVariationReconciliationPending with retryable=true. Retry the same operation to check eBay first; never withdraw or delete to repair it. Confirmed recovery updates CRM links without publishing again. Needs listing creation armed on the eBay connection, and is refused until the workspace owner switches on AI publishing. Confirm with the user before calling. The result echoes the workspace.

NameTypeReqDescription
marketplaceIdstring–eBay marketplace id (EBAY_IT, EBAY_DE…) for a FIRST save, when the connection sells on several. A saved listing keeps its marketplace; omit it then.
modelstringyesThe product model: its code — the productGroupId get_product and search_products return for every article of it — or its id. Its active articles on the eBay channel become the listing's variations.

No output schema declared.

No examples provided.

push_google_merchant_catalog ~545

Send this workspace's catalog, or just the products you name, to Google Merchant Center now — the same as the "Update now" button on the Google Merchant channel page. It is a REAL write to Google: products become or stay visible in Google Shopping. It runs only the product push the owner has ALREADY armed on the connection (otherwise it is refused) and only after the owner accepted Google's terms; it never arms anything and never changes settings. Refused until the owner switches on AI publishing. It is rarely needed: an hourly job sends the catalog anyway, so use it only when a fix must reach Google before the next run. To get one fixed product to Google immediately pass productIds (1 to 25): only those products are sent, and the result is { adapterId, adapterName, sent, failed, blocked, notOnChannel } — sent and failed (with Google's own message) name each product, blocked carries the readiness reason, notOnChannel lists ids that are not active channel members; this does not change the channel's last-run summary. Without productIds the whole catalog is sent, never-sent and changed products first, bounded by a time budget — if truncated is true, call it again. Returns { adapterId, adapterName, outcome } where outcome has pushed, failed, blocked, ready, total, truncated, lastSyncAt and failedSample (up to 5 refused products with Google's message). A failure that came back from Google carries reason (for example auth_expired) with details.needsReconnect and details.whatToDo: auth_expired, such as invalid_grant, means a person must reconnect the Google account on the adapter page, and retrying will not help. Use check_channel_readiness first to see which products would be withheld, and get_marketplace for the last run. Not idempotent. The result echoes the workspace.

NameTypeReqDescription
adapterIdstring–The Google Merchant connection to push (adapter id, listed by get_marketplace for google_merchant). Omit it when the workspace has exactly one Google Merchant connection — the server picks it; with s…
productIdsarray–Product ids (1 to 25) to send to Google right now instead of the whole catalog. Use it to get a fixed product to Google at once. Each id must be an active member of the Google channel; others come ba…

No output schema declared.

No examples provided.

quote_order_promotion ~358

Validate a known promo code against trusted cart prices, currency and buyer facts. Returns the CRM-calculated discount, net order total and delivery terms without creating an order or reserving a use. The code must be enabled for this connection's source; a personal or capture code also needs the same buyer email (or customer.externalId of a profile with it). reservesUse is false: nothing is claimed. A refusal returns a public reason (for example code_unavailable, email_mismatch, not_eligible, minimum_not_met). Promo codes run on the Team and Scale plans; on Free every code is code_unavailable. Never invent a code or discount. Then call create_order with promotion.code and promotion.expectedTotal; the CRM checks eligibility and capacity again.

NameTypeReqDescription
currencystringyesRequired ISO 4217 currency code (uppercase) of the cart lines; no default and no conversion.
customerobject–Optional buyer snapshot (name/email/phone, or a storefront customer externalId). Omit for an anonymous order.
deliveryobject–How the buyer asked to receive the order: carrier, branch/courier/pickup, branch text, recipient, cash-on-delivery and a delivery note. This is the buyer's choice at checkout — it does not dispatch a…
itemsarrayyesOrder line items (1-100). Each snapshots productName/sku/unitPrice.
promotionobjectyesAsk the CRM to validate and calculate this promo code. Do not supply promoCode, discountAmount or shippingThresholdAmount alongside it. An optional expectedTotal refuses a changed quote; the server a…

No output schema declared.

No examples provided.

recreate_ebay_drafts ~292

Delete each product's eBay draft and create a fresh one from its current data, for up to 25 products. Needed only when a draft must move to another category or eBay site, or the reason is ebayDraftOfferMissing or ebayNoOfferId — ordinary edits are picked up by publish_ebay_drafts. A live listing is refused. If the delete succeeds but the new draft fails, that product is left with no draft and its failure says so. Refused until the owner switches on AI publishing. The result echoes the workspace.

NameTypeReqDescription
marketplaceIdstring–Omit this when the eBay connection sells on exactly one marketplace — the server fills it in automatically. Pass one of the audit's armed ebayDraftSetup.marketplaceIds only when several are armed. Th…
productIdsarrayyesDelete each product's existing eBay draft offer and create a fresh one from its CURRENT data, at most 25 ids fetched with search_products. Use this when a draft must move to a different category or m…

No output schema declared.

No examples provided.

remove_order_item ~115

Remove a line item from an order. Recomputes the order total. Only allowed while the order is pending or confirmed; otherwise it fails with 409 CONFLICT "Order lines can only be changed while the order is pending or confirmed". Use get_order to find the order's externalId and the item's itemId. The result echoes the operating workspace.

NameTypeReqDescription
externalIdstringyesThe order externalId returned by list_orders or create_order.
itemIdstringyesThe order item id returned by get_order.

No output schema declared.

No examples provided.

save_ebay_variation_listing ~349

Save a product model on eBay as ONE listing with variations — every active article of the model on the eBay channel is a variation (its own SKU, price and stock; buyers choose colour and size). Writes the inventory items, the inventory item group and each variation's offer; a draft stays unpublished. When the listing is already LIVE this updates it in place: new variations, prices and texts reach buyers at once, and articles that no longer qualify leave it. Returns status: blocked (with issues — reason, message, skus — and nothing written), saved (a draft on eBay) or published, plus marketplaceId, listingId, listingUrl, publishedAt, variationCount, failed (variations eBay refused, by sku — nothing is published while any) and removedSkus (articles that left the listing). A partial/uncertain publication returns reason ebayVariationReconciliationPending with retryable=true. Retry the same operation to check eBay first; never withdraw or delete to repair it. Confirmed recovery updates CRM links without publishing again. Needs listing creation armed on the eBay connection, and is refused until the workspace owner switches on AI publishing. Idempotent. The result echoes the workspace.

NameTypeReqDescription
marketplaceIdstring–eBay marketplace id (EBAY_IT, EBAY_DE…) for a FIRST save, when the connection sells on several. A saved listing keeps its marketplace; omit it then.
modelstringyesThe product model: its code — the productGroupId get_product and search_products return for every article of it — or its id. Its active articles on the eBay channel become the listing's variations.

No output schema declared.

No examples provided.

schedule_content_post ~251

Schedule a post to be published at a time, or cancel its schedule. Obriym itself publishes it to every ready channel of the post within about 15 minutes after that time — the AI client does not need to be running then. This is how regular publishing is set up: create several drafts, then schedule each. Needs the owner's "AI may publish to social channels" switch to schedule (see publishingEnabled in list_content_channels); cancelling (scheduledAt: null) does not. A post that is published or being published cannot be scheduled. Returns a warning when no channel of the post is ready yet. Echoes the workspace.

NameTypeReqDescription
idstringyesThe publication id returned by create_content_post or list_content_posts.
scheduledAt–yesWhen to publish, as an ISO 8601 date-time WITH its time-zone offset, e.g. "2026-10-12T10:00:00+03:00". At least one minute and at most one year ahead; list_content_channels returns the workspace time…

No output schema declared.

No examples provided.

search_companies ~209

List and search this workspace's companies, filtered by industry/status/owner, sorted and paginated. Returns summary rows (id, name, industry, size, status, owner, contactCount) plus pagination { page, perPage, total }. Use get_company to fetch one company's full detail by id.

NameTypeReqDescription
industrystring–Filter to companies in this industry. Omit for any industry.
ownerIdstring–Filter to companies owned by this workspace member's user id.
pageinteger–1-based page number of results to return. Default 1.
perPageinteger–Number of companies per page (1-100). Default 25.
qstring–Free-text search over the company name. Omit for no text filter.
sortDirstring–Sort direction by name. Default asc.
statusstring–Filter by relationship status. Omit for any. Allowed: prospect, active, inactive.

No output schema declared.

No examples provided.

search_contacts ~235

List and search this workspace's contacts, filtered by company/owner/tag, sorted and paginated. Returns summary rows (id, firstName, lastName, email, phone, jobTitle, company, owner, tags) plus pagination { page, perPage, total }. Use get_contact to fetch one contact's full detail by id.

NameTypeReqDescription
companyIdstring–Filter to contacts at this company id (from search_companies).
ownerIdstring–Filter to contacts owned by this workspace member's user id.
pageinteger–1-based page number of results to return. Default 1.
perPageinteger–Number of contacts per page (1-100). Default 25.
qstring–Free-text search over name, email and company. Omit for no text filter.
sortBystring–Field to sort by. Default name. Allowed: name, email, createdAt.
sortDirstring–Sort direction. Default asc.
tagstring–Filter to contacts carrying this tag. Omit for any tag.

No output schema declared.

No examples provided.

search_deals ~248

List and search pipeline deals, filtered by stage/owner/company/contact/stale and paginated. Returns summary rows (id, title, stage, amount, probability, owner, company, contact, next-action, isStale) plus pagination { page, perPage, total }. Use get_deal to fetch one deal's full detail by id.

NameTypeReqDescription
companyIdstring–Filter to deals linked to this company id (from search_companies).
contactIdstring–Filter to deals linked to this contact id (from search_contacts).
ownerIdstring–Filter to deals owned by this workspace member's user id.
pageinteger–1-based page number of results to return. Default 1.
perPageinteger–Number of deals per page (1-100). Default 25.
qstring–Free-text search over the deal title. Omit for no text filter.
stageIdstring–Filter to deals in this pipeline stage id (from list_pipeline_stages).
stalestring–Set "true" to return only stale deals (past their next-action date or long untouched).

No output schema declared.

No examples provided.

search_leads ~336

List and search this workspace's leads, filtered by text/status/source/created-date/stale and paginated. Returns summary rows (id, name, contact, company, status, source, assignee, tags, next-action, isStale, timestamps) plus pagination { page, perPage, total }, newest first. Use get_lead to fetch notes, position and score for one lead by id.

NameTypeReqDescription
fromstring–Only leads created at or after this ISO 8601 timestamp (e.g. 2026-01-31T00:00:00Z).
pageinteger–1-based page number of results to return. Default 1.
perPageinteger–Number of results per page (1-100). Default 20.
qstring–Free-text search over lead name, email, phone, or company. Omit for no text filter.
sourcestring–Filter by lead source key (e.g. website, referral, telegram). Use list_lead_sources to see the workspace's keys. Omit for all sources.
stale––Set true to return only stale leads: not unqualified/converted and either past their next-action date or untouched for more than 7 days.
statusstring–Filter by lead status. Omit to return every status. Allowed: new, contacted, qualified, unqualified, converted.
tostring–Only leads created at or before this ISO 8601 timestamp (e.g. 2026-02-28T23:59:59Z).

No output schema declared.

No examples provided.

search_marketplace_categories ~302

Find the category id a marketplace uses, to link it to a catalog category. Read-only. Pass the platform (prom, rozetka, olx, amazon or google_merchant) and a query, or for OLX and Rozetka a parentId to browse one level of the tree (no query and no parentId lists the top level). Sources differ: Google Merchant searches the bundled Google product taxonomy and needs no connection; OLX, Rozetka and Amazon ask the marketplace through the connected adapter (connected tells you whether one exists); Prom publishes no category directory, so only rubrics already seen on this merchant's own Prom listings are returned (partial tells you the list may be incomplete, note explains why). OLX only accepts a LEAF category: check isLeaf and keep browsing with parentId until you reach one. Results are candidates for the USER to choose from: when several fit, show them and ask, never pick one silently. Then pass the chosen id in marketplaceCategories of update_category or create_category.

NameTypeReqDescription
parentId––Browse one level of the marketplace tree under this id (OLX and Rozetka). Omit, together with query, to list the top level.
platformstringyesThe marketplace whose categories to look up.
querystring–Words describing the shelf, e.g. the CRM category's name ('кросівки', 'running shoes'). At least two characters.

No output schema declared.

No examples provided.

search_products ~936

List and search active catalog products, filtered by category/brand/collection/model (productGroupId — the other colours and sizes of one model)/size/color/price/stock/tag/type, or by supplier and the supplier's last stock report (supplierId, supplierStock), sorted by name, price, newest or popularity (units sold in the last 90 days), and paginated. Returns each product's catalog fields — price and prices per currency, stock (null when the shop does not count it; see trackInventory), availability, variant fields (productGroupId, color, size, material and the rest), attributes (every characteristic), category, brand — plus its model, warehouse and supplier by name and supplierOffers (what the supplier last said: quantity, restock date, purchase price, state), and pagination { page, perPage, total }. Use get_product to fetch one product's full detail by id or SKU.

NameTypeReqDescription
brandIdstring–Filter to one brand by its id. Empty string means any brand.
categoryIdstring–Filter to one category by its id. Empty string means any category.
collectionstring–Filter to the products of one collection, by its slug from GET /collections. Only a collection that is visible and in season matches — an unknown, hidden or out-of-season slug is reported as not foun…
colorstring–Filter to products whose color equals this value, ignoring letter case (the product's own color field, not a free-form attribute). Empty means any color.
inStockstring–Set "true" to return only products with stock available. Empty means include out-of-stock.
maxPricenumber–Only products priced at or below this amount (workspace currency).
minPricenumber–Only products priced at or above this amount (workspace currency).
pageinteger–1-based page number of results to return. Default 1.
perPageinteger–Number of products per page (1-100). Default 20.
productGroupIdstring–Filter to the variants of one model: products whose productGroupId equals this value exactly. It is the merchant's (or supplier's) own model code, so letter case is part of it. Use it to render the o…
qstring–Free-text search over product name and SKU. Empty for no text filter.
sizestring–Filter to products whose size equals this value, ignoring letter case (the product's own size field). Empty means any size.
sortstring–Sort order. Empty sorts by name. Allowed: name_asc, name_desc, price_asc, price_desc, newest, popular — popular ranks by units sold in confirmed, processing, ready-to-ship, shipped or delivered order…
statusstring–Filter by catalog status. Empty keeps the storefront default of active only. Use "draft" to find products waiting to be reviewed (marketplace imports and unknown SKUs from orders land there), or "any…
stockStatestring–Filter by stock state, for products that track inventory. "low" returns products at or under their reorder threshold; "out" returns products with nothing left. Empty applies no stock-state filter.
supplierIdstring–Only products bought from this supplier — an id from list_suppliers — or "none" for products with no supplier. Omit for any supplier.
supplierStockstring–Only products whose supplier feed (e.g. Sipec) last reported this: in_stock (quantity above zero), arriving (none now, a restock date given), out_of_stock (none, no date), unknown (the supplier has n…
tagstring–Filter to products carrying this tag. Empty means any tag.
typestring–Filter by product type. Empty for any; "simple" or "bundle".
warehouseIdstring–Filter to products in one warehouse by its id, from the warehouse list. Use "none" for products assigned to no warehouse — they match no id, so nothing else surfaces them. Empty means any warehouse.…

No output schema declared.

No examples provided.

select_workspace ~76

Re-bind this OAuth connection to the workspace selected by the user. Takes effect on the next tool call. Use the organizationId returned by list_workspaces or by WORKSPACE_SELECTION_REQUIRED; never invent or guess it.

NameTypeReqDescription
organizationIdstringyesThe workspace organizationId chosen by the user from list_workspaces or WORKSPACE_SELECTION_REQUIRED.

No output schema declared.

No examples provided.

set_brand_image ~169

Set or remove the picture (logo) of ONE brand. Pass a public https image link in url (JPEG, PNG or WebP, at most 2 MB; a bigger file is refused, there is no resize) — Obriym stores its own copy and the previous picture is deleted only after the new one is in place. Pass url: null to remove the current picture. Idempotent in effect: repeating it leaves the same picture. Use list_brands to find the brand id. The result echoes the workspace.

NameTypeReqDescription
brandIdstringyesThe brand id from list_brands.
url–yesA public https image link (JPEG, PNG or WebP, at most 2 MB) to use as the brand picture, or null to remove the current picture.

No output schema declared.

No examples provided.

set_category_image ~164

Set or remove the picture of ONE category. Pass a public https image link in url (JPEG, PNG or WebP, at most 2 MB; a bigger file is refused, there is no resize) — Obriym stores its own copy and the previous picture is deleted only after the new one is in place. Pass url: null to remove the current picture. Idempotent in effect: repeating it leaves the same picture. Use list_categories to find the category id. The result echoes the workspace.

NameTypeReqDescription
categoryIdstringyesThe category id from list_categories.
url–yesA public https image link (JPEG, PNG or WebP, at most 2 MB) to use as the category picture, or null to remove the current picture.

No output schema declared.

No examples provided.

set_channel_membership ~251

Mark or unmark up to 100 products for one connected sales channel (prom, rozetka, ebay, olx, …). It changes what the CRM intends to send: on Prom and Rozetka the next feed pull adds or drops the product; on eBay it only makes the product a channel member — a listing exists only after create_ebay_drafts and publish_ebay_drafts. It never arms a sync. Adding picks up active products only. Returns { affected, skipped } — skipped were already in that state. Refused until the workspace owner switches on AI publishing. Idempotent. The result echoes the workspace.

NameTypeReqDescription
listedbooleanyestrue marks the products for this channel; false unmarks them. This only changes what the CRM intends to send — it never arms a sync and never creates a listing by itself. Unmarking a product on Prom…
platformstringyesThe connected sales channel to change membership on (e.g. prom, rozetka, ebay, olx).
productIdsarrayyesThe exact products to change, at most 100 ids fetched with search_products.

No output schema declared.

No examples provided.

set_ebay_default_fulfillment_policy ~219

Set the eBay connection's default shipping (fulfillment) policy for one eBay site, or null to remove it. Products without their own choice carry it in every new draft and when a draft goes live; LIVE listings keep the policy they have — change those with bulk_set_ebay_fulfillment_policy. The policy is checked against eBay's live list first; with no default, listings use the first policy eBay returns. Returns marketplaceId, previousFulfillmentPolicyId, fulfillmentPolicyId and the policy. Refused until the workspace owner switches on AI publishing. Idempotent. The result echoes the workspace.

NameTypeReqDescription
fulfillmentPolicyId–yesA fulfillmentPolicyId from list_ebay_fulfillment_policies, for the same marketplace. null removes the default: listings without their own choice then use the first policy eBay returns.
marketplaceIdstring–An eBay MARKETPLACE id such as EBAY_IT. Omit it when the eBay connection sells on one site.

No output schema declared.

No examples provided.

set_lead_sources ~150

Create or update a workspace lead source: set its label and active state by key (built-in or custom, lowercase_with_underscores). Idempotent — re-sending the same key updates it. Archiving the fallback 'other' source is not allowed. Use list_lead_sources to see current sources. The result echoes the operating workspace.

NameTypeReqDescription
isActivebooleanyesWhether the source is selectable for new leads. Set false to archive it (the fallback 'other' source cannot be archived).
keystringyesStable source key, lowercase_with_underscores (built-in or custom).
labelstringyesHuman-readable label shown for this source in the UI.

No output schema declared.

No examples provided.

set_product_channel_price ~369

Set — or clear — the price ONE sales channel gets for ONE product, instead of the product's ordinary price in that currency. Send price as a decimal string to set it (with an optional compareAtPrice, the old price, higher than price) or price null to remove the override so the channel gets the ordinary price again. Per platform and currency: Prom, Rozetka, eBay, Amazon, Shopify, WooCommerce, OLX or Google Merchant. Send only an amount the person stated. The new price reaches the channel the same way a price edit does — only where the owner armed price writes. This is not the price-list row for a currency (upsert_product_prices). Idempotent; clearing a missing override is not an error. Returns { changed }. Read get_product_pricing first. Echoes the workspace.

NameTypeReqDescription
compareAtPrice––The old (struck-through) price on this channel, higher than price; omit or null for none. Ignored when price is null.
currencystringyesThe currency the channel sells in (uppercase 3-letter ISO code). get_product_pricing and the channel's readiness show which currency a channel uses.
idstringyesThe product id returned by search_products or get_product — never a SKU or a name.
platformstringyesThe sales channel this price is for: prom, rozetka, woocommerce, shopify, olx, amazon, ebay or google_merchant.
price–yesThe price this ONE channel gets, instead of the product's ordinary price in that currency, as a decimal string above zero. null removes the override — the channel then gets the ordinary price again.…

No output schema declared.

No examples provided.

set_product_ebay_fulfillment_policy ~340

Choose the eBay shipping (fulfillment) policy of ONE product, or with fulfillmentPolicyId null return it to the connection default. A product with no eBay listing stores the choice for its next draft. A draft or LIVE listing has its eBay offer updated in place — no relisting — when listing writes are armed on the eBay connection, and the offer is then read back to confirm; with listing writes off a live listing is refused and a draft stores the choice for go-live. Per-service shipping cost overrides tied to the old policy are removed (droppedShippingCostOverrides). Returns productId, sku, offerId, marketplaceId, previousFulfillmentPolicyId, newFulfillmentPolicyId, status (updated, unchanged, saved, unverified, failed), verified and error — tell the user a listing changed only when status is updated. Refused until the workspace owner switches on AI publishing. Idempotent. The result echoes the workspace.

NameTypeReqDescription
fulfillmentPolicyId–yesA fulfillmentPolicyId from list_ebay_fulfillment_policies, for the same marketplace. null removes the product's own choice so the connection default (then eBay's first policy) applies.
marketplaceIdstring–An eBay MARKETPLACE id such as EBAY_IT — never the eBay connection id. Omit it when the eBay connection sells on one site; the server uses that one. Required when the connection sells on several, unl…
productIdstringyesA product id returned by search_products.

No output schema declared.

No examples provided.

set_product_price_tiers ~257

Replace ONE product's wholesale quantity breaks in ONE currency — 'from 12 units, 12.40 each'. The list you send becomes the whole set for that currency (at most 10; each quantity at least 2 and once; a bigger quantity must cost less per unit); an empty list removes all its breaks. The product must already be priced in that currency. Breaks apply to buyers outside the team (the customer portal and connected partners), never to the website or marketplaces, and the buyer gets the better of a break or their own discount. Idempotent. Returns { count }. Read get_product_pricing first. Echoes the workspace.

NameTypeReqDescription
currencystringyesThe currency of these breaks (uppercase 3-letter ISO code). The product must already be priced in it — its own currency or a price-list row.
idstringyesThe product id returned by search_products or get_product — never a SKU or a name.
tiersarrayyesThe wholesale breaks for that currency, at most 10. This list REPLACES the product's breaks in that currency; an empty list removes them all. Each quantity once, and a bigger quantity always costs le…

No output schema declared.

No examples provided.

sync_ebay_fulfillment_policies ~163

Re-read the eBay shipping (fulfillment) policies from eBay for every site the connection sells on, or one marketplaceId, and refresh the copy the CRM keeps — after the seller created, renamed or deleted a policy in Seller Hub. Returns the same shape as list_ebay_fulfillment_policies; check staleAssignments: products whose chosen policy eBay no longer has will be refused at their next draft or go-live until another policy is chosen. Changes no listing and no choice. Use list_ebay_fulfillment_policies for an ordinary read.

NameTypeReqDescription
marketplaceIdstring–An eBay MARKETPLACE id such as EBAY_IT. Omit it to refresh every marketplace the eBay connection sells on.

No output schema declared.

No examples provided.

transition_deal ~120

Move a deal to a pipeline stage by its id. Closed-lost stages require a lostReason. Use search_deals for the deal id and list_pipeline_stages for the target stageId. The result echoes the operating workspace.

NameTypeReqDescription
idstringyesThe deal id returned by search_deals.
lostReason––Reason the deal was lost. Required when the target stage is a Closed-lost stage; otherwise omit.
stageIdstringyesThe target pipeline stage id to move the deal to (from list_pipeline_stages).

No output schema declared.

No examples provided.

update_brand ~160

Update fields on an existing catalog brand by id: name, slug, description, website and description translations. Provide a patch with at least one field; use list_brands first to find the id and current values. Renaming a brand changes the vendor name sent to marketplaces, so rename only on the user's explicit request; the name is never translated. Translations REPLACE the whole set when sent (an empty array removes them all) and are left untouched when omitted — translate only the brand's own description, add no facts. The result is the updated brand and echoes the operating workspace.

NameTypeReqDescription
idstringyesThe brand id returned by list_brands.
patchobjectyesThe brand fields to update; include at least one changed field.

No output schema declared.

No examples provided.

update_category ~246

Update fields on an existing catalog category by id: name, parent, slug, description, Google category, marketplaceCategories and translations. Provide a patch with at least one field; use list_categories first to find the id and current values. The slug is normalized to Latin. The parent must exist in this workspace and cannot create a loop. Translations REPLACE the whole set when sent (an empty array removes them all) and are left untouched when omitted — translate only the category's own name and description, add no facts. marketplaceCategories ({ prom, rozetka, olx, amazon, google_merchant }) links marketplace category ids: a string sets one, null clears it, an omitted platform is left untouched. Look ids up with search_marketplace_categories first and never guess them; the format is always checked on write, and against the marketplace while it is connected (OLX must be a leaf category; a Google id must exist in the Google taxonomy). The result is the updated category and echoes the operating workspace.

NameTypeReqDescription
idstringyesThe category id returned by list_categories.
patchobjectyesThe category fields to update; include at least one changed field.

No output schema declared.

No examples provided.

update_company ~111

Update fields on a company by id. Provide a patch with at least one field. representationState is explicit and never inferred from contacts. primaryContactId can select an existing contact already linked to this same non-individual company; send null to clear it. Use search_companies first to find the company id. The result echoes the operating workspace.

NameTypeReqDescription
idstringyesThe company id returned by search_companies.
patchobjectyesThe company fields to update; include at least one changed field.

No output schema declared.

No examples provided.

update_contact ~75

Update fields on a contact by id. Provide a patch with at least one field. Use search_contacts first to find the contact id. The result echoes the operating workspace.

NameTypeReqDescription
idstringyesThe contact id returned by search_contacts.
patchobjectyesThe contact fields to update; include at least one changed field.

No output schema declared.

No examples provided.

Install

How do I install the Obriym CRM MCP server?

Obriym CRM is a hosted endpoint at https://obriym-crm.com/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · obriym-crm.com

# add to Claude Code
claude mcp add --transport http com-obriym-crm-mcp 'https://obriym-crm.com/api/mcp'
Common questions

What is the Obriym CRM MCP server?

Obriym CRM is an MCP server listed in the public MCP registry as com.obriym-crm/mcp. Operate Obriym CRM from your AI assistant: leads, deals, orders, catalog, stock, marketplaces. This page covers its hosted endpoint (https://obriym-crm.com/api/mcp).

Is the Obriym CRM MCP server safe to use?

Obriym CRM scores 90 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Obriym CRM MCP server expose?

Obriym CRM exposes 113 tools: search_leads, get_lead, list_conversations, get_lead_conversation, search_deals, and 108 more. Their descriptions and schemas cost roughly 25,704 tokens of context every time the server is loaded.

Does the Obriym CRM MCP server require authentication?

Yes. Obriym CRM asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Obriym CRM MCP server still maintained?

Obriym CRM is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What did VerifyMCP test on the Obriym CRM MCP server?

VerifyMCP ran 13 checks on Obriym CRM, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.