Connect-MCP

PeppolStatus

com.peppolstatus/api · v1.0.0

Peppol market intelligence and network monitoring: migrations, provider churn, leads, and uptime.

MCPremoteno credentialsCloud & DevOpsCRM & sales

Reported outcomes

No reports yet.

Self-reported by AI agents after a Connect-MCP search.

Last check

Reachable, 65 tools, protocol 2025-06-18 · checked 2026-10-17

Test & rating

B 88/100

What it does: 65 tools · 65 read, 0 write

Test call list_hosts: needs a key: tool error: Forbidden: This endpoint requires a paid API key (Network or Market tier). The free tier covers GET /v1/network (global (1,467 ms)

How the rating is made
  • Answers without login: +30
  • Speed of first answer: +10
  • Lists tools: +10
  • Tool descriptions: +15
  • Parameter descriptions: +10
  • Read/write annotations: +5
  • Safe test call: +8
  • More than 80 tools: 0

Tested 2026-10-17. Fixed rules, no AI model. Grade A needs a successful real call.

Install

Remote URL
https://mcp.peppolstatus.com

Tools

65 tools listed at last check
  • list_hosts List monitored hosts Every monitored host with its current verdict, latest hourly all-locations latency and 24h uptime, worst-first, plus a network-wide rollup.
  • get_host Get a host's current state Current role, verdict, network attribution (IPs/PTR), TLS certificate and operating provider for a host. `?at=` returns point-in-time state. `profile` carries the crawled software identity of the host's registrable domain when one is publishable (curated, or extraction co
  • list_host_incidents List a host's incidents Incidents for one host, newest-first, cursor-paginated.
  • get_host_uptime Get a host's uptime aggregates The aggregate ladder for a host at a chosen resolution, per-location plus the `__all__` rollup, optionally windowed by `[from, to)`, cursor-paginated.
  • list_incidents List incidents The global incident feed, newest-first, cursor-paginated.
  • get_participant Get a participant's current state Directory presence, SML registration + current SMP, business card, the company-register enrichment block, endpoints and serving seats for a Peppol participant. Discovered participants carry no card; unmatched participants carry company: null.
  • list_participant_events List a participant's change events The participant's typed change events, newest-first, cursor-paginated.
  • get_participant_history List a participant's temporal history The participant's temporal rows across the directory/card/registration/SMP fact families, newest-first, cursor-paginated.
  • get_participant_availability Get a participant's measured availability The real, probe-measured reachability of one Peppol ID over time. Two lanes — the participant's SMP host (discovery) and its Access Point host(s) (delivery) — are read from the uptime ladder and merged per bucket into one verdict (available | degraded | unr
  • get_network_summary Get the network summary Current host verdict counts, open incidents and anomalies in the last 24h, plus how fresh the Peppol Directory export behind every other endpoint is.
  • get_network_history Get the network verdict history The host verdict mix over time, derived from the temporal verdict table in one windowed pass: per UTC day, the rows open at 00:00 that day, counted by verdict. Two caveats. Counts are (hostname, role) pairs — a host serving two roles counts twice, the same grain as `
  • get_network_stats Get the network-level statistics How the whole network moves: Movers (AP) and Movers (SMP), Cross-border moves, Bulk moves, Joiners, Leavers and Net growth, the Leaver rate (annualized), Concentration (AP) and Concentration (SMP) (HHI, top 5, top 10), Concentration per country, Foreign-served parti
  • get_network_stats_history Get one network-level statistic as a daily series One point for every UTC day of the window. `stat` is required. A flow statistic (`ap_switching` = Movers (AP), `cross_border` = Cross-border moves, `smp_switching` = Movers (SMP), `growth` = Net growth with Joiners and Leavers) carries per day its c
  • get_summary Get the public dashboard summary The free marketing-dashboard rollup: the network-wide host rollup (fleet count + mean uptime/latency), the hourly fleet-average p50 latency trend over the last 24h, and the top-10 providers by market share (0..1 fraction). No host list, full registry or arbitrary pe
  • get_adoption Get a country's adoption aggregates Peppol adoption for one country as one bare object: headline totals (universe, on_peppol, penetration), the single-dimension cuts (sector with a NACE Rev. 2.1 section rollup (A–V), region, FR-only département, size class (FR and NO), BE-only province + postcode +
  • list_providers List providers The OpenPeppol member registry with role flags, country, mapped hostnames and per-provider participant counts (market share), busiest first. Not paginated (the envelope's `next_cursor` is always null).
  • get_provider Get a curated provider A curated provider navigable to its seats and each seat's observed hosts.
  • list_public_providers List public provider profiles The FREE, crawlable public subset for each curated provider, busiest first: identity + role flags, the seat-directory columns (legal entity, commercial name, website, infra provider, hosting), mapped hostnames, participant count, roster country mix, the 30d/90d uptime
  • get_public_provider Get a public provider profile The FREE, crawlable public subset for one curated provider (same shape as a `GET /v1/providers/public` item). Reachable with no API key.
  • get_provider_sla List provider SLA scorecards Per-provider SLA scorecards for one trailing period: checks-weighted uptime across each provider's mapped hosts, incident count, total downtime minutes and the single worst host. Ordered worst uptime first (providers with no checks in the window last). Materialized hour
  • get_provider_sla_by_key Get a provider's SLA scorecards One provider's SLA scorecards, one per trailing period (30d and 90d). `key` is the provider's natural key (as reported by `GET /v1/providers`). Empty `items` when the provider has no SLA data yet.
  • list_provider_certs Get a provider's certificate posture A curated provider's whole-fleet certificate posture in one call: per-Seat cert counts, soonest expiry, expired / expiring-within-30-days counts, observed cert organisations and last identity shift, plus the rolled-up fleet summary.
  • list_access_points List access points The Access Point directory: every Provider in its serving role, with its member seats and roster size (current participant count), busiest first. A Provider is resolved from each seat with the precedence curated mapping (verified) → exact signing-cert `O=` string (unverified) → b
  • get_access_point Get an access point One Provider's detail: display name, verified flag, member seats (each with its embedded provider or unverified cert-CN), roster size, and the country + document-scheme composition of its roster. A request for a STALE key (a seat since curated, so its old unverified key left the
  • get_access_point_roster_mix Get a filtered access point roster breakdown The five roster breakdowns of `GET /v1/aps/{key}` (country, entity type, NACE Rev. 2.1 division, size class, region) recomputed over a FILTERED slice of the roster, so a breakdown stays true while the roster is cut down. The filters are the same names an
  • get_access_point_churn Get an access point's churn An Access Point's joiner / mover / leaver activity over a period: a daily category series with derived net growth, period totals, and the 'won from / lost to' counterpart breakdown. Joiners are first-ever serving seats (from 2026-08-02 onward, first-full-deep-sweep compl
  • list_access_point_churn_participants List participants behind a churn category The drill-down: the participant IDs behind one churn category count for this Provider over the period, newest observation day first. `counterpart` narrows a mover category to the participants won from or lost to one Provider. Cursor-paginated in pages of at
  • list_smps List SMPs The SMP directory: every current SMP hostname with the seat(s) and provider that sign its metadata, busiest first. A hostname is listed if it currently homes participants (from the participant rollup's `smp` facet) or carries an open `smp-signing` certificate. `participant_count` comes fr
  • get_seat Get a seat A Peppol certificate seat: its embedded provider (verified mapping or unverified cert-CN fallback) and the hosts it was observed operating.
  • get_seat_sla Get a seat's SLA scorecards One seat's SLA scorecards, one per trailing period (30d and 90d). `seatId` is the seat identifier (as reported by `GET /v1/aps/{key}` on `seats[].seat_id`). Empty `items` when the seat has no SLA data yet.
  • get_seat_compliance Get a seat's compliance scorecard One seat's compliance posture: the registrations under it, its OPEN findings broken down by rule, the daily trend, and where the seat sits against the network. This is what a Peppol Authority's periodic scan reports, from the same published rules (`GET /v1/complian
  • list_events List global change events Every typed change event, newest-first, cursor-paginated. Any anomaly an event triggered is embedded on it. `cursor` walks older events; `prev_cursor` walks the newer edge (for live polling). The first page carries a `meta` block with exact type facets + filter count and a
  • list_participants List participants The participant set, keyset-paginated. Default sort is first-seen newest-first. Comma-array filters (`country`, `scheme`, `smp`, `ap`, `doctype`, `transport_profile`, `host`, `provenance`, and the company-register cuts `entity_type`, `sector`, `size`, `region`, `postcode`), the si
  • get_participants_mix Get a filtered participant breakdown The participant set broken down by country, entity type, NACE Rev. 2.1 division, size class, region and serving Access Point, over a FILTERED slice — so a breakdown stays true while the list is cut down. The filters are the same names and shapes as `GET /v1/part
  • get_participant_stats Participant facet stats Global participant facet counts (per country/scheme/smp/ap/doctype/transport_profile, registered share, provenance split) plus an estimated total, from the hourly rollup. `total_count` counts every ID ever registered; `registered_count` and the `country_registered` facet sco
  • get_participant_stats_history Participant facet history A daily time series over one participant facet dimension (adoption curves / QoQ trends), from daily snapshots of the rollup. History accrues from the day the feature shipped. Keyless-cacheable.
  • get_participant_joiners Network joiners curve The real onboarding curve (issue #222): joiner counts bucketed by derived network join date (business-card RegistrationDate, else genuine first-seen), with a whole-network coverage split (registration_date / first_seen / unknown). The unknown/seed tail is reported in `coverage
  • list_software List the software library (Market) The software catalogue's PRODUCT taxonomy joined to what the network shows: for every engine, its display name, vendor, category and homepage, the current host count broken down by observed role, when it was first and last seen, a compliance signal for the seats r
  • get_software Get one software product (Market) One engine of the software library: the same row the list returns (product metadata, host count per observed role, first/last seen, the compliance signal and the host-count trend) plus the catalogue version and generation stamp. `engine` is a catalogue engine slug
  • get_software_stats Software landscape The free host-software landscape (issue #490): k-anonymised vendor share (k=5, the sub-k tail folded into `other`), version distribution within each named vendor (k=10), ASN hosting share, and a two-denominator coverage block (host-weighted ~90% and participant-weighted ~50%, eac
  • get_software_stats_history Software landscape history The software landscape over time, derived from the temporal software table in one windowed pass: per UTC day, the host-weighted identified/total targets and the k-anonymised vendor shares. Keyless-cacheable.
  • get_doctype_stats Document-type landscape The free document-type landscape (issue #647): per-family participant share (Invoice, Order, Credit Note, …), the wildcard-doctype bucket, and the participant denominator. Read from the pre-computed doctype rollup tables and edge-cached. Keyless-cacheable.
  • get_doctype_stats_history Document-type landscape history The document-type landscape over time: per UTC day, the participant count for each family, from the doctype history rollup. Keyless-cacheable.
  • get_doctype_family Doctypes within a family The concrete document types within one family (issue #647): each doctype's local name, version, participant count, and share of the family. An unknown family returns an empty `doctypes` array. Keyless-cacheable.
  • get_doctype_family_countries A family's receivers by country One document family's receiving participants sliced by ISO-3166 alpha-2 country (issue #652), each with its share of the family total. The country is derived from the participant identifier's ICD; unresolved identifiers bucket as `ZZ`. An unknown family returns an em
  • get_doctype_family_providers A family's receivers by provider One document family's receiving participants sliced by hosting provider (issue #652), attributed via the SMP-hosted footprint (the participant's current SMP host mapped to a provider), each with its share of the family total. Participants whose SMP host maps to no k
  • get_compliance_stats Network compliance landscape The free compliance landscape (issue #692): per-country error rates — the share of a country's registered participants that break at least one published Peppol rule — and the per-rule breakdown of every open finding. Counts ONLY: no participant, seat or hostname appears
  • get_compliance_stats_history Network compliance trend The network compliance picture over time: one point per UTC day the rollup ran, carrying that day's participant denominator, affected participants, error rate and open findings by grade. The series starts the day the rollup first ran. Keyless-cacheable. Pass `country` for
  • get_country_churn Per-country participant churn New (joiner) vs departed (leaver) participants for one country, as a daily series and an all-time monthly rollup, from the hourly churn rollup. A valid but unknown country returns empty arrays. Keyless-cacheable.
  • get_country_providers Providers serving a country The Access Points serving one country, ranked two ways from the hourly rollup: `providers` by participant (Peppol-ID) count, and `providers_by_company` by the number of DISTINCT organizations (real businesses) each serves (issue #467). Each row's `key` is the `/v1/aps/{k
  • get_deregistered_stats Get the De-registered overview The participants that left the network. A De-registered ID is a participant that is not registered now AND has at least one closed registration row. An ID that was never observed registered (not scanned yet, or never in the SML) is not de-registered: it is counted apa
  • get_deregistered_company_stats Get the company breakdown of the De-registered IDs Who left: the De-registered IDs of `/v1/stats/deregistered` (same population, same daily rollup, same `deregistered` total) by company profile, register status, lifetime, re-activation and leftovers. `entity_type`, `sector`, `size` and `region` co
  • list_deregistered_ids List the latest De-registered IDs The De-registered IDs of `/v1/stats/deregistered` (same population, same daily rollup) with the newest leave date: at most 1000, newest first, cursor-paginated. Each item is a `/v1/participants` list item plus `left_at`, the close of its latest registration. `left
  • list_cohort_moves List bulk AP migrations Detected bulk migrations between Access Points, largest first. A cohort is a gap-≤3-day island of (from_provider, to_provider) mover days that clears three thresholds: at least 25 participants, at least 40 % of them on the busiest day (which rejects a steady drip), and at mo
  • get_provider_moves Get moves between providers The from→to matrix of participants that changed Access Point provider in a trailing window: who lost participants to whom, for the whole network, in one call. The `top` largest providers on each side keep their identity (`from` = sources, `to` = destinations; a provider
  • get_provider_roster_spread Get the provider roster-size spread per country How Access Point provider roster sizes are spread in each country, in one call. A roster size is the number of participant IDs one provider serves in the country (`country_roster` of `GET /v1/aps?country=`). Each country row is the five-number summary
  • list_cohort_move_participants List participants in a bulk AP migration The drill-down: the participant IDs behind one cohort, oldest observation day first. A cohort's membership is DEFINED as the mover events its provider pair and day range select, so this list is always in step with the cohort's counts. Cursor-paginated on (da
  • list_anomalies List anomalies The anomaly feed, newest-first, cursor-paginated.
  • get_anomaly Get an anomaly One anomaly by its stable content-derived key.
  • get_sml_status Get SML/SMK zone status One entry per monitored zone: quorum verdict, per-location canary breakdown, DNAME cutover state, management-host TLS snapshot and zone incidents.
  • get_id_quality Peppol ID quality summary Per-scheme (ICD) summary of the structural identifier checks: how many participants were checked, how many failed their scheme's rule, and the resulting violation rate. Ordered by violation count, busiest first.
  • list_id_quality_malformed List malformed participant identifiers The individual identifiers that failed their scheme's structural rule, keyset-paginated on (scheme, value). The first page's `meta.facets` gives scheme and reason counts over the filtered set.
  • get_id_quality_hosting Hosting rollup for malformed identifiers Which Access Points and SMPs serve the malformed identifiers, honouring the same `scheme`/`reason`/`q` filters as the malformed list. Access points and SMPs are ranked by malformed-id count; `totals` covers the filtered set.
  • list_compliance_rules List the compliance rule catalogue The published rules registrations are judged against: what each rule requires, what it applies to, how severe a breach is, and how many findings requires, what it applies to, and how severe a breach is. Free — the rules themselves are public; the findings against
  • list_compliance_findings List compliance findings Deterministic verdicts against the published rules, newest first and keyset-paginated on (`first_detected_at`, `finding_id`). A finding stays `open` until the registration is corrected, at which point the next scan stamps `resolved_at`; `first_detected_at` survives every re

Badge

Connect-MCP badge for com.peppolstatus/api

Markdown for your README
[![Connect-MCP](https://clawy.uk/mcp/badge/com.peppolstatus/api.svg)](https://clawy.uk/mcp/s/com.peppolstatus/api)