# Versum Agent Assistant (remote · versum.suverse.io)

Local businesses for AI agents: what they sell, prices, delivery quotes, order and booking links.

- Trust score: 69/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `versum.suverse.io`: 69/100 (this document), [markdown](https://verifymcp.io/servers/sudzikcoin-versum-agent-assistant/versum.md), [page](https://verifymcp.io/servers/sudzikcoin-versum-agent-assistant/versum)

## Channel facts

- Endpoint: `https://versum.suverse.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 55/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 10534 tokens (~702/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 10/100
  - Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 95/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 86% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Versum Agent Assistant MCP server?

Versum Agent Assistant is a hosted endpoint at https://versum.suverse.io/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.

### Claude

```bash
claude mcp add --transport http sudzikcoin-versum-agent-assistant 'https://versum.suverse.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "sudzikcoin-versum-agent-assistant": {
      "url": "https://versum.suverse.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "sudzikcoin-versum-agent-assistant": {
      "type": "http",
      "url": "https://versum.suverse.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.sudzikcoin-versum-agent-assistant]
url = "https://versum.suverse.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sudzikcoin-versum-agent-assistant": {
      "type": "remote",
      "url": "https://versum.suverse.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add sudzikcoin-versum-agent-assistant --url 'https://versum.suverse.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  sudzikcoin-versum-agent-assistant:
    url: "https://versum.suverse.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "sudzikcoin-versum-agent-assistant": {
      "Transport": "http",
      "Url": "https://versum.suverse.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add sudzikcoin-versum-agent-assistant -t streamable-http -u 'https://versum.suverse.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "sudzikcoin-versum-agent-assistant": {
      "type": "http",
      "url": "https://versum.suverse.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 69, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “list_cards” rewrote its description, which is the text the model reads
- [security] Tool “list_niches” rewrote its description, which is the text the model reads
- [security] Tool “request_status” rewrote its description, which is the text the model reads
- [security] Tool “request_to_owner” rewrote its description, which is the text the model reads
- [security] Tool “search_catalog” rewrote its description, which is the text the model reads
- [cosmetic] “request_status” added an optional parameter “wait_seconds”

### 2026-11-04 (score 68, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “book_slot” rewrote its description, which is the text the model reads
- [security] Tool “check_availability” rewrote its description, which is the text the model reads
- [security] Tool “find_business” rewrote its description, which is the text the model reads
- [security] Tool “get_business” rewrote its description, which is the text the model reads
- [security] Tool “get_card” rewrote its description, which is the text the model reads
- [security] Tool “get_offering” 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 “list_cards” rewrote its description, which is the text the model reads
- [security] Tool “list_niches” rewrote its description, which is the text the model reads
- [security] Tool “order_status” rewrote its description, which is the text the model reads
- [security] Tool “place_order” rewrote its description, which is the text the model reads
- [security] Tool “quote_order” rewrote its description, which is the text the model reads
- [security] Tool “request_status” rewrote its description, which is the text the model reads
- [security] Tool “request_to_owner” rewrote its description, which is the text the model reads
- [security] Tool “search_catalog” rewrote its description, which is the text the model reads
- [functional improvement] Schema quality: 797 → 683
- [functional] Schema quality: good → excellent
- [cosmetic] “list_niches” added an optional parameter “detail”
- [cosmetic] “quote_order” added an optional parameter “delivery_date”
- [cosmetic] “find_business” reworded the description of “radius_miles”
- [cosmetic] “list_cards” reworded the description of “niche”
- [cosmetic] “list_cards” reworded the description of “query”
- [cosmetic] “list_cards” reworded the description of “radius_miles”
- [cosmetic] “list_niches” reworded the description of “niche”
- [cosmetic] “list_niches” reworded the description of “radius_miles”

### 2026-11-03 (score 67, 0)

- [security] Tool “list_cards” rewrote its description, which is the text the model reads
- [security] Tool “list_niches” rewrote its description, which is the text the model reads
- [security] Tool “search_catalog” rewrote its description, which is the text the model reads
- [functional improvement] Stability: unverified → 0.03
- [functional] Schema quality: excellent → good
- [functional] New tool “request_status”
- [functional] New tool “request_to_owner”

### 2026-11-02 (score 67)

First indexed and scored.

## MCP tools (15)

### `list_niches` (~1852 tokens)

What the catalogue knows, and where

The trades (niches) this catalogue holds near a place, by key, with how many businesses are inside the radius (default 15 miles).
Without `niche`: a compact list of keys. With `niche`: that trade in full — its tags, coverage and the conditions its businesses publish.
A `niche` that is not a key comes back with `variants` and why (a tag, a similar name, a meaning) — nothing is substituted: pick a key.
\`detail: "full"` lists every trade in full.
Coverage: restaurants in Apollo Beach, Brandon, Carrollwood, Gibsonton (+11 more); clothing stores in Apollo Beach, Brandon, Carrollwood, Gibsonton (+3 more); florists in Apollo Beach, Austin, Aventura, Brickell (+21 more); jewelrys in Brandon, St. Petersburg, Tampa; furnitures in Brandon, St. Petersburg, Tampa; nail salons in Apollo Beach, Brandon, Carrollwood, Gibsonton (+6 more); auto parts stores in Lutz, Tampa; jewelry and watch repairs in Apollo Beach, St. Petersburg, Tampa, Temple Terrace; bike repairs in Apollo Beach, St. Petersburg, Tampa; hair salons in Apollo Beach, Gibsonton, Greater Northdale, Odessa (+6 more); truck repairs in Tampa; mattresss in St. Petersburg, Tampa; party rentals in Lutz, Riverview, Ruskin, Tampa; car dealers in Tampa; grocerys in St. Petersburg, Tampa; massages in Apollo Beach, Brandon, Gibsonton, Riverview (+3 more); event venues in Lutz, Riverview, St. Petersburg, Tampa; print shops in Riverview, St. Petersburg, Tampa, Temple Terrace; garden center and nurserys in Ruskin, St. Petersburg, Tampa; pet groomings in Apollo Beach, Riverview, St. Petersburg, Tampa; spas in Apollo Beach, Riverview, St. Petersburg, Tampa (+1 more); barbers in Apollo Beach, New York, Odessa, Riverview (+4 more); bakerys in St. Petersburg, Tampa, Temple Terrace; auto repairs in St. Petersburg, Tampa, Temple Terrace; music lessonss in St. Petersburg, Tampa; pool services in Apollo Beach, St. Petersburg, Tampa, Temple Terrace; liquor stores in Lutz, Tampa; boat rentals in St. Petersburg, Tampa; tailors in St. Petersbur…

Input parameters:

- `detail`: compact (default without a matched niche): keys and counts; full: every niche with tags, coverage and conditions
- `location`: a 5-digit US postcode, a city ("Tampa, FL") or "lat,lng". Optional: without it every niche is listed with its totals.
- `niche`: one niche key: that niche in full (tags, coverage, every condition it publishes). Another word returns `variants` with why, never a substitute
- `radius_miles` (number): How far from the location counts as «here». Default 15 (the same in every tool).

### `list_cards` (~1700 tokens)

Every business of one trade near a place, in one fixed order — the shelf

Every business of ONE trade (`niche`: a key from list_niches, exactly) near `location`, default radius 15 miles, 20 a page.
The order is fixed and is not a ranking: independent businesses, then chains, then marketplaces; inside each, by distance (a trade that comes to the customer: published service area first).
\`query` does NOT filter or reorder businesses: it chooses which ITEM each card shows. To find businesses that have an item, use search_catalog.
Each card: id, name, distance, phone, a few items, `next` (one action), and for what you pass — `needed_by`, `max_price`, `deliver_to` — a state: hours give open_then / closed_then / unknown (never a free slot); an item price within the budget is item_price_within_budget (the total is not known until priced).
\`needed_by`: «today», «tomorrow 19:00», «after 15:00», an interval «tomorrow 08:00 to 17:00», a deadline «by 2026-11-20», a range «this week» — read the same way in every tool.
A `niche` that is not a key returns no cards and the variants to choose from.
Trades on the shelf: restaurant (1272) · hair salon (599) · dentist (574) · barber (447) · nail salon (430) · auto repair (363) · florist (345) · medical clinic (342) · gas station (334) · massage (321) · oil change (308) · print shop (291) · insurance agent (280) · clothing store (277) · beauty salon (274) · accountant (269) · grocery (261) · bakery (248) · appliance repair (235) · lawyer (230) · pizza (228) · notary (225) · storage (223) · real estate agent (222) · pharmacy (216) · optometrist (215) · hvac (214) · chiropractor (212) · catering (203) · auto parts store (202) · event venue (196) · body shop (188) · bar (187) · pet grooming (186) · jewelry (176) · ev charging station (169) · furniture (165) · electrician (163) · coffee shop (160) · photographer (159) · hotel (158) · tire shop (156) · roofer (155) · daycare (153) · car dealer (150) · tutoring (149) · tattoo studio (147) · pressure washing (145) · veterinarian (145) · movers (143) · landscaping (1…

Input parameters:

- `deliver_to`: where it must be brought (a postcode is best): adds can_deliver_to per card — confirmed when the published area names the place, refuted when the business says no, unknown otherwise
- `detail`: task (default): the short card under the task; shelf: the older ≤ 1 KB shelf card
- `intent`: what the user means to do: shapes the items shown and the ONE action in `next` (book → book / check_slot / call; order → order / quote_order / call; quote → quote_order / call; info → call)
- `limit` (integer): cards per page. Default 10.
- `location` (string, required): a 5-digit US postcode (best), a city ("Tampa, FL") or "lat,lng". Required: the shelf is a place.
- `max_price`: the most for ONE offering, in USD: groups the cards in_budget · budget_unknown · over_budget (nobody is left out) and picks the shown offering inside it (exact, then kind, then partial matches); fixe…
- `needed_by`: when: «sunday» / «today» / «2026-11-08» (open that day), «tomorrow 19:00» / «now» (open at that minute), «after 15:00» / «tomorrow after 3pm» (open after then; a free slot only where the source knows…
- `niche` (string, required): a niche key from list_niches, exactly (another word returns the variants to choose from, never a substitute)
- `page`: the `next_page` token of the previous answer
- `properties` (array): facts to read off each card without filtering: property_states {key: "confirmed <value>" | "refuted" | "unknown"}
- `query`: chooses which ITEM each card shows («red roses», «balayage»); it does not filter or reorder businesses — for that, search_catalog
- `radius_miles` (number): Default 15 (the same in every tool).
- `tags`: FILTER by the niche’s own tags, as list_niches gives them («steak house», «italian», «dish»): a card without one of them is left out; the order does not change. Spelling is folded («steakhouse» = «st…

### `find_business` (~329 tokens)

A business by its name

One business the user NAMED, matched by its name near `location` (default radius 15 miles); typos, word order and punctuation are tolerated.
Not in the catalogue → `name_not_found`, and up to 5 nearby businesses that carry the name's distinctive word (never presented as the business asked for).
\`intent`, `query`, `needed_by`, `deliver_to` shape the short card the same way as list_cards.
Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

Input parameters:

- `deliver_to`: where it must be brought (a postcode is best): the card says confirmed / refuted / unknown
- `intent`: what the user means to do with this business
- `location`: a postcode, a city or "lat,lng" — orders the matches by nearness and bounds the nearby list
- `name` (string, required): the business name as the user said it
- `needed_by`: when: «sunday», «tomorrow 19:00», «now», «tomorrow after 15:00» — read on the business’s own clock, three ways (on_day / open_at / slot_after)
- `query`: the thing under the task («red roses», «ribeye»): picks the ≤ 5 items on the card
- `radius_miles` (number): Default 15 (the same in every tool).

### `search_catalog` (~2680 tokens)

A match by meaning, for when the trade is not known — check its results on the cards

Search by what is wanted (an item, a dish, a service, in any language) near `location`, default radius 15 miles, when the trade is not known.
Each business shows its best-fitting items first; `match.fit` says how well: exact (the thing and every asked property), likely (the thing, a property not stated), property (the thing with another quantity or colour), partial (only its main word), none. `nothing_fitting` says so when nothing does.
Conditions you pass come back per business as met / violated / unknown (time: open_then / closed_then / unknown): the item's price is not the total, opening hours are not a delivery time, being near is not being served.
No `location` and nothing fitting → an empty list, not unrelated businesses from anywhere.
Coverage: restaurants in Apollo Beach, Brandon, Carrollwood, Gibsonton (+11 more); clothing stores in Apollo Beach, Brandon, Carrollwood, Gibsonton (+3 more); florists in Apollo Beach, Austin, Aventura, Brickell (+21 more); jewelrys in Brandon, St. Petersburg, Tampa; furnitures in Brandon, St. Petersburg, Tampa; nail salons in Apollo Beach, Brandon, Carrollwood, Gibsonton (+6 more); auto parts stores in Lutz, Tampa; jewelry and watch repairs in Apollo Beach, St. Petersburg, Tampa, Temple Terrace; bike repairs in Apollo Beach, St. Petersburg, Tampa; hair salons in Apollo Beach, Gibsonton, Greater Northdale, Odessa (+6 more); truck repairs in Tampa; mattresss in St. Petersburg, Tampa; party rentals in Lutz, Riverview, Ruskin, Tampa; car dealers in Tampa; grocerys in St. Petersburg, Tampa; massages in Apollo Beach, Brandon, Gibsonton, Riverview (+3 more); event venues in Lutz, Riverview, St. Petersburg, Tampa; print shops in Riverview, St. Petersburg, Tampa, Temple Terrace; garden center and nurserys in Ruskin, St. Petersburg, Tampa; pet groomings in Apollo Beach, Riverview, St. Petersburg, Tampa; spas in Apollo Beach, Riverview, St. Petersburg, Tampa (+1 more); barbers in Apollo Beach, New York, Odessa, Riverview (+4 more); baker…

Input parameters:

- `detail` (string): compact (default): the business, its 1–2 best offerings with prices and links, what can be done, and the date it was read — a few hundred bytes a card. full: everything, including images, the sentenc…
- `fulfillment` (string): HOW it must reach the user, and the four are different questions: delivery = brought to the address; pickup = the user collects; on_site = the user goes there (a salon chair, a dining room); at_custo…
- `limit` (integer): How many BUSINESS CARDS to return. Default 10.
- `location` (string): Where the user is, or where it must happen. A 5-DIGIT US POSTCODE IS BEST ("33139"): it is the only form a business’s own published delivery or service area can be matched against exactly, so a postc…
- `max_price` (number): The most the user will pay for ONE offering, in USD, compared against the lowest number the business published — so "from $45" passes "under $50". An offering priced on request is NOT filtered out: i…
- `needed_by` (string): When it has to happen: "today", "tomorrow", "tomorrow 9am", or an ISO date-time — WITH an offset (2026-10-31T14:00:00-04:00) if you know the user’s zone, because a business whose cut-off is on the RE…
- `only_independent` (boolean): true = leave out chains (a business whose website serves several of the places found). Default false: a chain is kept as a name, a telephone and a website — it was never read, so it has no offerings…
- `only_local` (boolean): true = leave out marketplaces: a business whose shelf names places far from its own address (one local address, hundreds of listings in other cities and countries). Default false: a marketplace is ke…
- `properties` (array): THE OPEN LAYER AS A FILTER: facts a business publishes beyond price and availability — a capacity, a deposit, a duration, whether something is included. Three states per key: a published value that f…
- `query` (string, required): What the user wants, IN THEIR OWN WORDS AND THEIR OWN LANGUAGE: "red roses", "steakhouse", "funeral flowers", "movers 2 bedroom", "ramo de rosas", or the same question in a language not written in th…
- `radius_miles` (number): How far the business may be, in miles. Default 15.

### `get_card` (~291 tokens)

One business in full: what it sells, what can be done, how it reaches you

Free. One business in full, in the same shape for every trade: who it is (name, trade, address,
telephone, e-mail, opening hours, time zone), everything it sells (up to 60 offerings, cheapest first),
the six actions with their links and `required_fields`, how the thing reaches the buyer (delivery,
pickup, on_site, at_customer — with the published area, the fee and the order deadline), and how fresh
each part of that is. `live_data` (platform, synced_at) when the shelf is the business’s own connected
system: then every offering carries `source: connector` with its variants (each with `inventory`: units in
stock as the platform counts them, null = unknown), and an action with method
\`connected` is taken through place_order / book_slot on this door.

Use it when the user asks «can they deliver to me», «are they open now», «what else do they do», or
when search_catalog offered a business with nothing listed and the next step is a telephone call.
Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

Input parameters:

- `id` (string, required): the business id from search_catalog

### `get_offering` (~219 tokens)

One thing in full, with its price checked again right now

Free. One offering in full, with ONE live request to the shop asking for that item’s price and stock
right now (`live_check`). Call it before you quote a price to a person: a catalogue read yesterday is
yesterday’s price. One business is asked at most once every ten minutes however many of its offerings
you open, so walking a shop is one request and not twenty; `from_cache` and `checked_at` say which.
A price list, a menu or a quote form has no single-item door to ask (`ok: false` with the reason) and
the stored reading stands with its date.

Hand `action_url` to the user as it is, ref=versum included.
Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

Input parameters:

- `id` (string, required): the offering id from search_catalog

### `get_product` (~256 tokens)

One thing in full (synonym of get_offering)

SYNONYM of get_offering, kept for agents that already know this name. A «product» is just an offering whose kind is `product`; the same id works in both.

Free. One offering in full, with ONE live request to the shop asking for that item’s price and stock
right now (`live_check`). Call it before you quote a price to a person: a catalogue read yesterday is
yesterday’s price. One business is asked at most once every ten minutes however many of its offerings
you open, so walking a shop is one request and not twenty; `from_cache` and `checked_at` say which.
A price list, a menu or a quote form has no single-item door to ask (`ok: false` with the reason) and
the stored reading stands with its date.

Hand `action_url` to the user as it is, ref=versum included.
Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

Input parameters:

- `id` (string, required): the offering id from search_catalog

### `get_business` (~307 tokens)

One business in full (synonym of get_card)

SYNONYM of get_card, kept for agents that already know this name.

Free. One business in full, in the same shape for every trade: who it is (name, trade, address,
telephone, e-mail, opening hours, time zone), everything it sells (up to 60 offerings, cheapest first),
the six actions with their links and `required_fields`, how the thing reaches the buyer (delivery,
pickup, on_site, at_customer — with the published area, the fee and the order deadline), and how fresh
each part of that is. `live_data` (platform, synced_at) when the shelf is the business’s own connected
system: then every offering carries `source: connector` with its variants (each with `inventory`: units in
stock as the platform counts them, null = unknown), and an action with method
\`connected` is taken through place_order / book_slot on this door.

Use it when the user asks «can they deliver to me», «are they open now», «what else do they do», or
when search_catalog offered a business with nothing listed and the next step is a telephone call.
Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

Input parameters:

- `id` (string, required): the business id from search_catalog

### `quote_order` (~321 tokens)

What an order would cost delivered to an address — asked of the shop’s own cart, nothing ordered

Prices ONE cart in the shop's own public cart (Shopify or WooCommerce) to ONE ZIP, with no personal data, and orders nothing: the cart is emptied afterwards.
Answers the items, delivery options with their prices, the subtotal and what stays unknown (tax and fees at checkout; the delivery date unless the cart names it — `delivery_date` asks for a day).
Other platforms answer «quote not available» with the reason and the order link.
Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

Input parameters:

- `deliver_to` (required): where it must be brought: "33139", "Miami Beach, FL 33139", or {postcode, state, city, address_1}
- `delivery_date`: the day the person wants it delivered ("2026-11-20"): answered as confirmed only when the shop's cart names that day, else «delivery date: unknown»
- `items`: several different items of the SAME shop in one cart (delivery and tax on the whole order); offering_id is then the first of them
- `offering_id` (string, required): the offering id from a card
- `options`: answers to the product page’s own add-on questions; the rest are answered «no»
- `quantity` (integer): default 1
- `variant_id`: a variant id from the card when it lists several

### `check_availability` (~323 tokens)

Ask the business’s own system: is it in stock now · which slots are free

Only for a business whose card shows `live_data` (its items come from its connected Shopify or Square,
not from a page read). For a product: the platform’s stock right now — `state: confirmed | refuted |
unknown` (unknown = the platform does not track stock, which is not «no»). For a service on a platform
with bookings: the free `slots` between `from` and `to` (default: the next 7 days), each with a
\`start_at` that book_slot takes as it is — on the business’s own clock with its offset
(`timezone` names the zone; `start_at_utc` is the same instant). If the card’s `cannot` lists `book`,
the slots are information only and the answer says so. A business without a connection answers `not_connected`.
Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

Input parameters:

- `business_id` (string, required): the business id from the card
- `from`: slots: the window’s start, ISO with an offset
- `offering_id` (string, required): the offering id from the card
- `quantity`: how many — stock is judged against it
- `to`: slots: the window’s end, ISO with an offset
- `variant_id`: the variant (the card lists them when there are several)

### `place_order` (~464 tokens)

Place an order in the business’s own system; the buyer pays on the platform’s checkout page

🔴 ACTS FOR THE USER: call it only after the user has explicitly agreed to this exact action (what, where, when, who) — never on your own judgement.
For a business whose card shows an `order` action with method `connected`. Shopify: returns the shop’s
own checkout link with these items and quantities already in the cart (`status: unknown`, `mode: cart`)
— no customer data is needed or passed, the buyer gives their details and pays on Shopify, and nothing
exists on the shop until they do. Square: an order with a payment link (no customer data either).
WhatsApp: a message to the owner (customer phone or email). Returns `order_id`, `status`, `checkout_url`
— HAND THE CHECKOUT URL TO THE USER AS IT IS: that page takes the money, Versum holds no card and charges
nothing. Stock is checked live first on a platform that tracks it; «not in stock» is an `unavailable`
error and no order or link is given. Send an `idempotency_key` of your own and keep it for a retry: the
same key returns the same answer and the same link (`repeated: true`), never a second one. Lines name
offerings by their card id (and `variant_id` when the card lists several). `status`: unknown (a cart
link: payment is on the platform’s side) · created (the platform holds it) · pending_owner (WhatsApp) ·
confirmed · declined · failed. Get the user’s explicit yes before calling this.
Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

Input parameters:

- `business_id` (string, required)
- `customer`: only where the platform needs it (WhatsApp); omit for Shopify and Square
- `idempotency_key`: your own key for this order; reuse it on a retry
- `lines` (array, required)
- `note`: a note to the business, in the user’s words (not passed on a Shopify cart link)

### `book_slot` (~310 tokens)

Book a slot in the business’s own calendar (Square Appointments)

🔴 ACTS FOR THE USER: call it only after the user has explicitly agreed to this exact action (what, where, when, who) — never on your own judgement.
For a service whose business’s card shows a `book` action with method `connected` and no `book` in its
\`cannot` (a door the platform refuses for this account is marked there, with the reason, at every sync). Take a `start_at`
from check_availability (slots) and the platform books it for the named customer; the answer is the
platform’s own status (created = on the calendar awaiting confirmation · confirmed · declined). A time
the platform does not offer is an `unavailable` error and nothing is booked. Idempotent by
\`idempotency_key` like place_order. Get the user’s explicit yes first.
Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

Input parameters:

- `business_id` (string, required)
- `customer` (object, required)
- `idempotency_key`
- `note`
- `offering_id` (string, required): the service, from the card
- `start_at` (string, required): ISO date-time with an offset, as check_availability gave it
- `variant_id`: the service variation when the card lists several

### `order_status` (~127 tokens)

What became of an order or a booking placed through this door

The status of an `order_id` from place_order or book_slot, asked of the platform again when it is not final (paid? confirmed? declined by the owner?). A Shopify cart link answers `unknown` — payment is on Shopify’s side and the shop does not report it here. Free.
Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

Input parameters:

- `order_id` (string, required)

### `request_to_owner` (~408 tokens)

Send a request to the business’s verified owner (not a booking until the owner confirms)

🔴 ACTS FOR THE USER: call it only after the user has explicitly agreed to this exact action (what, where, when, who) — never on your own judgement.
For a business that takes requests through Versum (a verified owner with Telegram, e-mail or WhatsApp). Sends what,
when, how many, which branch and the person’s name and contact. Requires `idempotency_key`: retrying with the same key
returns the same request. Answers: `sent` (delivered to the owner), `link_given` (WhatsApp: give `whatsapp_url` to the
person — THEY send it; nothing is sent yet), or `no_channel` with the business’s other doors.
After it, tell the person it is NOT a booking yet and where the answer will come (`next_steps.tell_the_person`, `next_steps.answer_goes_to`).
If you can set reminders, schedule a request_status check (`next_steps.check_again_after` is a pause, not a promised reply time) — and only then say you will check; otherwise tell the person how to ask again.
Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

Input parameters:

- `branch`: which location, when the business has several
- `business_id` (string, required): the business id from the card
- `customer` (object, required)
- `date`: YYYY-MM-DD, the business’s local date
- `idempotency_key` (string, required): your own key for this request; the same key never makes a second one
- `note`
- `quantity`
- `time`: HH:MM, the business’s local time
- `what` (string, required): what the person wants (a service, an item, a table for 4 …)

### `request_status` (~254 tokens)

What became of a request to the owner: delivery and the owner’s outcome

Delivery (`sent` · `link_given` · `expired` · `failed`) and the owner’s outcome (`declined` · `other_time` + proposal · `available` = free but NOT booked · `confirmed` = booked). `confirmed: true` only when the owner booked it.
\`wait_seconds` (optional, default 0 = answer now; at most 45 s are used): waits for the owner and returns as soon as the request is answered or final, otherwise the current status when the wait ends (see `wait.ended`).
Waiting is not a promise of an answer, and nothing calls you back afterwards: if it is still waiting, call request_status again later (for example when the person asks). Hanging up does not cancel the request.
Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

Input parameters:

- `request_id` (string, required)
- `wait_seconds` (integer): seconds to wait for the owner's answer (0–60, default 0; at most 45 are used)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/sudzikcoin-versum-agent-assistant/versum#diagnostics

## Score history

- 2026-11-05: 69
- 2026-11-04: 68
- 2026-11-03: 67
- 2026-11-02: 67

## Common questions

### What is the Versum Agent Assistant MCP server?

Versum Agent Assistant is an MCP server listed in the public MCP registry as io.github.sudzikcoin/versum-agent-assistant. Local businesses for AI agents: what they sell, prices, delivery quotes, order and booking links. This page covers its hosted endpoint (https://versum.suverse.io/mcp).

### Is the Versum Agent Assistant MCP server safe to use?

Versum Agent Assistant scores 69 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 Versum Agent Assistant MCP server expose?

Versum Agent Assistant exposes 15 tools: list_niches, list_cards, find_business, search_catalog, get_card, and 10 more. Their descriptions and schemas cost roughly 9,841 tokens of context every time the server is loaded.

### Does the Versum Agent Assistant MCP server require authentication?

No. We connected to Versum Agent Assistant without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Versum Agent Assistant MCP server still maintained?

Versum Agent Assistant 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.

## Links

- Remote endpoint: https://versum.suverse.io/mcp
- Repository: https://github.com/sudzikcoin/versum-agent-assistant
- Website: https://versum.suverse.io/
- Changelog RSS feed: https://verifymcp.io/servers/sudzikcoin-versum-agent-assistant/versum.xml
- Changelog JSON feed: https://verifymcp.io/servers/sudzikcoin-versum-agent-assistant/versum.json
- HTML version of this page: https://verifymcp.io/servers/sudzikcoin-versum-agent-assistant/versum
