Back to Browse

Versum Agent Assistant MCP Server

Developer ToolsUse Caution4.2MCP RegistryLocalRemote
Free

Server data from the Official MCP Registry

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

About

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

Remote endpoints: streamable-http: https://versum.suverse.io/mcp

Security Report

4.2
Use Caution4.2High Risk

This is a thin stdio wrapper that forwards every MCP tool call, unchanged and unauthenticated, to the hosted Versum endpoint at versum.suverse.io/mcp, plus a local reader for business websites. No malicious patterns, hardcoded secrets, or shell injection were found, and the permissions match the stated purpose. The main concerns are that the upstream can add or change tools without review, that tool arguments (which may include customer names, emails and delivery addresses for order placement) leave the machine, and that the reader's shared cache is on by default and sends URLs and an install ID to the vendor. Supply chain analysis found 6 known vulnerabilities in dependencies (0 critical, 4 high severity).

9 files analyzed · 12 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

process_spawn

Check that this permission is expected for this type of plugin.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

File System Write

Writes or modifies files on your machine. Check that this is expected for the tool.

env_vars

Check that this permission is expected for this type of plugin.

How to Install & Connect

Available as Local & Remote

This plugin can run on your machine or connect to a hosted endpoint. during install.

Documentation

View on GitHub

From the project's GitHub README.

Versum Agent Assistant

Versum — local businesses, connected to AI

MCP License: MIT Cards ToolSDK MCP Registry

AI agents can find a local business, see what it sells, check availability and price, and open a real order or booking.

Why

Local businesses are close to invisible to AI agents. Their menus, price lists and booking pages are written for people, an agent cannot phone the shop, and many businesses have no website an agent could use at all. Versum reads what each business publishes, turns it into one card per business with real links to order, book or ask, and serves the cards to any MCP client.

60-second quickstart

The MCP door (streamable HTTP, no key needed):

https://versum.suverse.io/mcp

Config for an MCP client that takes a JSON server list with streamable-HTTP servers (checked by connecting the official MCP TypeScript SDK client with exactly this entry: 15 tools listed, a live call answered):

{
  "mcpServers": {
    "versum": { "type": "http", "url": "https://versum.suverse.io/mcp" }
  }
}

One request — search_catalog with {"query": "a dozen red roses delivered", "location": "Miami, FL", "limit": 3} — and the live answer (2026-11-02), cut to the first business:

{
  "found": 12,
  "returned": 3,
  "businesses": [
    {
      "id": "f2f197e1-7e39-4794-9e3c-54a77a75ef24",
      "name": "More Than Flowers",
      "trade": "Florist",
      "miles_away": 2.1,
      "offerings": [
        {
          "id": "e9a2aebb-cd9e-4627-8d8d-84d866a26bee",
          "title": "Three Dozen Roses - Hot Pink",
          "price": 135,
          "availability": "in_stock",
          "link": "https://morethanflowersmiami.com/miami-more-than-flowers/three-dozen-roses-hot-pink.html?ref=versum"
        }
      ],
      "can": ["check_delivery", "contact", "order"],
      "links": {
        "order": "https://morethanflowersmiami.com/miami-more-than-flowers/mayflower-wrapped-bouquet.html?ref=versum",
        "contact": "tel:+17865876195"
      }
    }
  ]
}

Read any business website yourself

reader/ is Versum's own open reader: the same readers the catalogue runs, on your machine, for any website — items with prices, the doors to order, book or ask, hours and contacts, every value with the words it was read from. No Google, no proxy, no browser; robots.txt obeyed; a model only with your own ANTHROPIC_API_KEY (--no-model turns it off).

cd reader && npm install && npm run build
node dist/cli.cjs read https://example-business.com --pretty

Its shared cache is free and on by default (--no-share or VERSUM_SHARE=0 turns it off): what is sent and kept is in reader/README.md and the privacy policy.

How to search (for agents)

The server sends these rules to every client in its instructions; the short version:

  1. Turn the person's request into a business type and a place. «I'm locked out of my car in Tampa» → locksmith, Tampa. «My AC is blowing warm air, 33618» → hvac, 33618. You don't need the catalogue's internal niche keys: list_niches and search_catalog match ordinary words.
  2. Pick the tool: you know the name → find_business; you know the type → list_cards; you don't, or you need a specific item («vegan pizza», «brake pads») → search_catalog.
  3. No place, no guess. If the request has no city or ZIP, ask the person. The catalogue answers location_needed rather than picking a place for you.
  4. A result is a candidate. Check the card: what it lists, whether it comes to the customer (at_customer: confirmed / confirmed not / unknown), the service area, the doors.
  5. Keep facts apart: opening hours are not free time, an item price is not the final total, «nearby» is not «serves your area», no data is not «no».
  6. Next step through the right door: menu or catalogue to look, book to book, quote_order for a total, request_to_owner to ask the owner (only where a channel is connected), otherwise the phone.
  7. Nothing on the person's behalf without their permission — no requests, bookings, orders or payments.

Each result says why it matched (match.basis: a confirmed item, the business's own words, a category tag, or the category only). When the catalogue cannot tell what kind of business a raw phrase needs, it says so and suggests close types instead of returning look-alikes.

Tools

toolwhat it doesmain parameters
list_nichesthe trades the catalogue knows near a place, with countslocation, radius_miles, niche
list_cardsevery business of one trade near a place, in one fixed orderniche, location (required), query, needed_by, max_price, deliver_to, page
find_businessa business by its namename (required), location
search_cataloga match by meaning, when the trade is not knownquery (required), location, fulfillment, max_price, only_local
get_cardone business in full: what it sells, what can be done, how it reaches youid
get_businesssynonym of get_cardid
get_offeringone thing in full, with its price checked again right nowid
get_productsynonym of get_offeringid
quote_orderwhat an order would cost delivered to an address — asked of the shop's own cart, nothing orderedoffering_id, deliver_to (required), quantity, options
check_availabilityask the business's own system: in stock now, which slots are freebusiness_id, offering_id (required), from, to
place_orderplace an order in the business's own system; the buyer pays on the platform's checkout pagebusiness_id, lines (required), customer
book_slotbook a slot in the business's own calendar (Square Appointments)business_id, offering_id, start_at, customer (required)
order_statuswhat became of an order or a booking placed through this doororder_id
request_to_ownersend a request to the business's verified owner (Telegram, e-mail or WhatsApp) — not a booking until the owner confirmsbusiness_id, what, customer, idempotency_key (required), date, time, quantity, branch, note
request_statuswhat became of a request: delivery (sent · link_given · expired · failed) and the owner's answer (declined · other_time · available = free but not booked · confirmed = booked)request_id

check_availability, place_order and book_slot work for businesses whose owner connected Shopify or Square (the card shows live_data, and a connected door). Shopify: place_order returns the shop's own checkout link with the items in the cart; the buyer gives their details and pays on Shopify. For every other business the card's doors link to its own order and booking pages.

request_to_owner works for businesses whose owner claimed the card and connected a channel; for the others it answers no_channel with the card's other doors. Retrying with the same idempotency_key never sends a second request.

Example: quote_order — Flowers of Miami, 12 roses

{"offering_id": "a05bbf1c-32c0-4a56-9038-310b0c35b852", "deliver_to": "1000 Brickell Ave, Miami, FL 33131"} — «Tiny Bouquet of 12 Red Roses with Baby Breath», live answer of 2026-11-02, from the shop's own cart:

option the shop's cart offersshippingtotal
Local Delivery (picked first by the shop)$20.00$80.25
Local Pickup$0.00$58.85

Item $55.00; the totals include the shop's own tax for this address. placed: false — nothing was ordered; only the delivery address was sent (no name, e-mail or phone), and the cart session was emptied afterwards. delivery_date came back unknown: the shop does not publish one through its cart.

The business card

get_card returns one card per business. The full schema, inferred from live cards of every kind of business, is schema/card.schema.json. The main parts:

  • identity — id, name, address, location, phone, email, website, hours / hours_folded, page_url

  • offerings — what it sells: each with id, title, price, currency, availability, link

  • actions (the doors) — order, book, reserve, request_quote, contact, check_delivery; each with a real url (or tel: / mailto:) and the provider when it is a platform

  • fulfillment — delivery, pickup and the rest, with what is known and what is not

  • reach — how an agent can deal with the business, in one word:

    reachmeaning
    online_platformorders or bookings go through a platform (a shop, ordering or booking system)
    own_cartthe business's own website takes the order
    form_onlya request form, no online order
    phone_onlythe telephone is the only door
    no_sitethe business has no website
    not_readthe site could not be read
  • status — unverified: read from the business's own public pages; the owner has not confirmed it. A business whose owner claimed and confirmed its card shows owner_verified. An unclaimed card is one no owner has claimed yet — today, every card.

Taxonomy

Every card belongs to one or more niches (trades): a key, the words people use for it (also_called) and the kinds of things it sells (tags). taxonomy/niches.json lists the 128 niches as of 2026-11-02, read from list_niches; the live catalogue has 130 as of 2026-11-03.

Coverage

cards on the shelf12,064 (live count: the badge above, or /api/public/stats)
niches130
towns and neighborhoods53

As of 2026-11-04 (02:45 UTC). The catalogue grows daily: about 5,000 new pages on 2026-11-02 and 7,000 on 2026-11-03.

doors and prices (2026-11-02, out of 7,415 cards then)
with an online order door860
with an online booking or reservation door1,055
with prices1,045

The densest coverage today is Tampa, St. Petersburg and the eastern Tampa Bay suburbs. Some places are still thin or empty — for example northern Pinellas (Clearwater, Dunedin, Palm Harbor) — and other Florida cities have far fewer cards so far. An empty result near such a place usually means the area is not scanned yet, not that no such business exists.

For business owners

  • versum.suverse.io — find your business, claim it, edit what the card says and publish it.
  • /b/{slug} — every card has a public page, for example versum.suverse.io/b/flowers-of-miami-miami.
  • Connect Shopify or Square from the owner page: the card then shows the store's live items, prices and availability, and agents can place orders and (Square) book slots in the owner's own system.
  • Coming soon: the Shopify App Store listing.

How it works

  1. A scan lists the businesses of a trade in an area.
  2. The analyzer reads each business's own website: menus, price lists, shop catalogues, booking and ordering pages.
  3. Everything it keeps carries the page and the words it was read from; nothing is invented.
  4. One card per business goes on the shelf, with real doors.
  5. Agents ask the MCP door; owners can claim, correct and connect their card.
flowchart LR
  A[Scan an area] --> B[Read the business website]
  B --> C[Card: offerings, prices, doors]
  C --> D[MCP door for agents]
  C --> E["/b/ page + owner site"]
  E -->|owner claims, edits, connects Shopify / Square| C

Listed in

Roadmap

Done:

  • The open reader with a shared cache: reader/.

Next:

  • Publish the npm package @suverselabs/versum-mcp (stdio, typed functions for the tools); its source is in npm/.
  • Listings in more MCP catalogues.
  • WhatsApp click-to-chat doors.

License and contact

MIT for the schemas, the taxonomy, the documentation and the open reader (reader/) in this repository; the hosted catalogue's service code is closed. Privacy Policy · Terms of Service (SuVerse LLC). Contact: info@suverse.io. The compute side of Versum is versum-node.

Reviews

No reviews yet

Be the first to review this server!