# PeppolStatus [Health: Active]

**Category:** 📊 Monitoring  
**Repository:** https://peppolstatus.com/mcp  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/peppolstatus

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

## Tools
Capabilities this server exposes over MCP:

- **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.
- **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_network_summary** — Get the network summary

Current host verdict counts, open incidents and anomalies in the last 24h.
- **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 per-host uptime is exposed.
- **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 section rollup, region, FR-only département + size class, BE-only province + postcode + mandate scope, legal-form family, and company age), the same categorical cuts cross-tabbed by company-age band (`cuts_by_age`), and the trend (monthly new adopters plus per-run penetration history). Region cells carry ISO 3166-2 (BE) / INSEE région (FR) codes and sector cells the NACE division code, so the choropleth joins geometry with no string matching. Numerator cells below 10 matched companies are suppressed (`on_peppol`/`penetration` null, `suppressed` true); denominators are never suppressed. Cached for a day (data moves monthly).
- **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.
- **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 hourly by the batch runner. Not paginated (the envelope's `next_cursor` is always null).
- **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) → bare SeatID. Not paginated (the envelope's `next_cursor` is always null).
- **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 directory) resolves to the current Provider; the returned `key` is always the canonical current one.
- **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 completion); movers change Provider (both sides resolved to the current identity); leavers deregister while served. Defaults to the trailing 30 days.
- **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. Bounded to 500 rows (never paginated; next_cursor null).
- **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 from that bounded top-N facet, so a hostname with a signing cert but outside the top-N carries a null count (unknown), not zero. The provider is resolved from the most-recent open signing cert with the precedence curated mapping (verified) → unverified cert-CN — the same as `/v1/aps`. Not paginated (the envelope's `next_cursor` is always null).
- **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.
- **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 an auto-bucketed timeline chart.
- **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`, `provenance`, and the company-register cuts `entity_type`, `sector`, `size`, `region`, `postcode`), `registered` + `vat_liable` booleans, and a smart `q` (a `scheme::value`/bare value hits the ID index; free text runs a trigram name-contains). First-page `meta` carries estimated totals and rollup facets; `meta.filter_count` is a bounded exact count that degrades to null (never an error) if it exceeds the query timeout. Discovered participants carry no name/card fields (privacy).
- **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. Keyless-cacheable — safe for the marketing site to hit directly.
- **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` only, never folded into a bucket. Keyless-cacheable.
- **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.
- **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.

## Claude Desktop Quick Installation
Remote MCP endpoint (confidence: medium). Install path inferred — verify against the README before running it. Add as a URL/SSE server in your client:

```json
"mcpServers": {
  "peppolstatus": {
    "url": "https://peppolstatus.com/mcp"
  }
}
```

## Documentation
No cached documentation available for this listing yet. Check the repository above for the README and setup instructions.

