Skip to content

Connectors block 18B: Chatwoot, Mercado Pago, Shoptet, PlentyONE and 6 more from customers' connectors - #1210

Merged
helpcodeai merged 5 commits into
mainfrom
helpcodeai/block18b-new-adapters
Oct 22, 2026
Merged

helpcodeai merged 5 commits into
mainfrom
helpcodeai/block18b-new-adapters

Conversation

@helpcodeai

Copy link
Copy Markdown
Contributor

Why

Paying and trial users on Cloud have been building these connectors by hand (base URL, tools, keys) because the catalog has no adapter for the vendor. Every adapter below is built from such a working connector: its tools succeed in tool_invocations and its key was still valid on 22 Oct 2026.

Adapter Evidence on Cloud
Chatwoot self-hosted instance, 157 hand-built tools, 43 successful calls in 14 days; "chatwoot" searched by 2 workspaces
Mercado Pago release report list, generate and download, 25 successful calls (paying workspace)
Shoptet orders on a .cz and a .sk shop, 10 successful calls; searched by 2 workspaces
PlentyONE search variations, create item, update variation; on the October wishlist
French Company Data BODACC notices by SIREN, 23 successful calls (paying); searches for france, sirene, insee
Flour 29 tools, 569 successful calls and 1 error (paying), the heaviest new vendor
Aurora Inbox funnel report, stages, teams, bookings: 73 successful calls
SellAuth analytics and invoices, 23 successful calls (paying)
openrouteservice directions, matrix, optimisation
OCR.space OCR of an image URL; "ocr" searched by 8 workspaces

Adapters (10, all listed)

  • Chatwoot (intl/chatwoot, support, 26 tools): profile, account, inboxes, inbox agents, agents, teams, labels, canned responses, custom attributes, conversations (list, count, advanced filter, get), messages, contacts (list, search, get, conversations), reports (summary with previous period, time series, per agent/inbox/team, live open/unattended). Writes: chatwoot_send_message and chatwoot_create_conversation installed switched off; chatwoot_set_conversation_labels on, annotated as replacing the label list. Cloud or self-hosted (CHATWOOT_URL). The Platform API is left out. Inbox channel secrets (provider_config, hmac_token) and the user's own token in /profile are removed by the response mappings.
  • Mercado Pago (br/mercado-pago, payments, 13 tools): account, payment search (paged, at most 100) and detail, merchant orders, payment methods, subscriptions, and the released money and account money reports (list, generate, download). It moves no money: no refunds, payouts or preferences. Generating a report is the only write, annotated as one.
  • Shoptet (intl/shoptet, e-commerce, 23 tools, read-only): e-shop, orders, order detail and history, order statuses and sources, products by guid or code, categories, brands, stocks, supplies and movements, customers and groups, invoices, credit notes, proformas, payment and shipping methods.
  • PlentyONE (de/plentyone, e-commerce, 20 tools): LOGIN_TOKEN against /rest/login with an API user. Webstores, orders (/orders/search), order detail, order statuses, referrers, items, variations, item texts, warehouses, stock, categories, manufacturers, units, sales prices, contacts. plentyone_create_item and plentyone_update_variation install switched off.
  • French Company Data (fr/fr-company-data, government, 7 tools, no API key): API Recherche d'entreprises (search, SIREN/SIRET lookup, near a point), BODACC notices by SIREN and BODACC search, BALO notices, DGE financial ratios from filed accounts.
  • Flour (de/flour, erp, 17 tools, read-only): stocks, branches, points of sale, articles (search, find by number or EAN, get, stock, availability, movements), documents (list, get), sold articles per period, business partners, POS journals, stocktakes, statistics. Flour publishes its OpenAPI at backend.flour.cloud/api (not linked from its website) and issues tokens via developer@flour.io, so the adapter is listed rather than unlisted. Terminal, TSE and bank fields are removed by the mappings. The documented /documents/topseller route answered 500 on every call, so it is left out; flour_get_sold_articles covers it.
  • Aurora Inbox (intl/aurora-inbox, crm, 18 tools, read-only, sends nothing): teams, stages, funnel report, users, tags, chat search, chat, chat tags and opportunities, contacts, custom properties, companies, channels, WhatsApp templates, calendar, bookings, scheduling set-up.
  • SellAuth (intl/sellauth, e-commerce, 13 tools, read-only): shops, analytics, revenue graph, top products and customers, invoices (list, get), products (list, get), customers, feedback, tickets, coupons. Delivered product keys, the shop's Discord and webhook secrets, payment proofs and IPs are removed by the mappings.
  • openrouteservice (intl/openrouteservice, maps, 8 tools, compute only): geocode, autocomplete, reverse geocode, directions, matrix, isochrones, route optimisation (VROOM), POIs, on the current host api.heigit.org (HeiGIT retires api.openrouteservice.org in November 2026).
  • OCR.space (intl/ocr-space, data, 2 tools): read an image or PDF from a URL, make a searchable PDF. connector.config.errorWhen turns OCR.space's HTTP 200 + IsErroredOnProcessing into a failed call.

Each adapter has instructions (setup, where the key comes from, base URL, workflow, limits, errors), envVarMeta, verifyHints, a parameter-free probe (or fixed probe params), a logo, and a *.live.spec.ts with static checks (prefix, every argument reaches the request, writes off and annotated, no reuse of the customer's hand-built tool names, every tool documented, no secrets in mapped output) and a live part gated behind RUN_<SLUG>_LIVE=1.

Logos: Chatwoot from Simple Icons (CC0), Mercado Pago reuses the existing Mercado Pago mark (mercado-libre.svg), PlentyONE is the vendor's "P" mark recoloured; the others are text monograms like immobilienscout24.svg.

Verification

Read-only checks ran on 22 Oct 2026 inside the Cloud backend container, with the customers' existing credentials decrypted there by the app's own helpers (nothing printed or copied out; only HTTP status and response shapes were looked at). The checks used each adapter's own paths, query parameters and response mappings. No write, send or delete endpoint was called with customer credentials, no OAuth refresh tokens were used, and nothing cost money. Keyless APIs were called directly; OCR.space was checked with its public demo key instead of the customer's quota.

Adapter Live read-only Matched working definition Docs only
Chatwoot 22 of 23 reads set_conversation_labels (9 ok), send_message (1 ok), create_conversation (1 ok) list_team_members (the account has no teams)
Mercado Pago 10 reads, incl. CSV and XLSX report downloads create_release_report (4 ok) get_merchant_order (no orders on the account), create_settlement_report
Shoptet all 23
PlentyONE 14 reads create_item (1 ok), update_variation (1 ok) search_orders, get_order, list_order_statuses, search_contacts: the customer's API user lacks those rights (403 names the missing right, which confirms the routes)
French Company Data all 7 (keyless)
Flour all 17
Aurora Inbox all 18
SellAuth all 13
openrouteservice all 8 (compute only, free key)
OCR.space both, with the public demo key

Official or popular MCP servers for these vendors were reviewed where they exist; nothing from them is copied or named here.

Cloud vs self-hosted

The adapters behave the same in both modes: they are catalog JSON installed per workspace, with the user's own credentials. On Cloud, calls leave from the Cloud egress; Chatwoot and PlentyONE take the instance address, so a self-hosted Chatwoot behind a private network is only reachable from a self-hosted AnythingMCP. Nothing is Cloud-only or edition-gated.

Counts

517 to 527 adapters, 23 to 24 keyless, 8,023 tools: README (4 languages), CITATION.cff, glama.json, package.json, server.json. Block 18A (#1209) touches other adapters and may touch the same count lines; a rebase only needs those numbers re-run.

Tests

Run from packages/backend unless noted, on this branch rebased on v0.45.5:

  • node scripts/validate-adapters.mjs --warn (root): 541 passed, 0 failed; no warnings on the new adapters
  • node scripts/regenerate-catalog.mjs (root): 541 adapters across 15 regions
  • node scripts/adapter-count.mjs --check (root): OK, 527 adapters, 24 keyless, 8,023 tools
  • npm run lint: 0 errors (11 existing warnings); two unrelated files rewritten by eslint --fix were reverted
  • npx tsc --noEmit -p tsconfig.json: clean
  • npm test: 745 suites passed (4 skipped), 22,191 tests passed, 1,548 skipped, 0 failed
  • the ten new specs: 10 suites passed; RUN_FR_COMPANY_DATA_LIVE=1 and RUN_OCR_SPACE_LIVE=1 (demo key) live parts passed

Follow-up

  • Website guides in 7 languages for each of the 10 listed adapters, in a separate website PR (list in .context/review-1022/block18b-adapters.json).
  • Customers whose hand-built connectors these replace can be pointed at the catalog adapters; not contacted, Matteo decides.
  • Not built: Kilanka, Falco, Tezga, BlockCypher/Helius, Trybe and the rest of the tail from the 22 Oct report.

Comment thread packages/backend/src/adapters/intl/openrouteservice.live.spec.ts Fixed
@helpcodeai
helpcodeai force-pushed the helpcodeai/block18b-new-adapters branch from 8fef5ae to 86331c1 Compare October 22, 2026 17:29
@helpcodeai
helpcodeai enabled auto-merge (squash) October 22, 2026 17:29
@helpcodeai
helpcodeai merged commit 99ea1c3 into main Oct 22, 2026
14 checks passed
@helpcodeai
helpcodeai deleted the helpcodeai/block18b-new-adapters branch October 22, 2026 17:42
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 22, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants