Docs

Machine Page Format (MPF)

One page for people. One for machines. Both declared.

Machine Page Format (MPF) is an open format for publishing a machine-readable companion beside an HTML page. The companion carries YAML frontmatter with the publisher’s declarations about the resource, followed by a clean Markdown body. It is generated at build time from the same HTML that people read.

MPF answers a narrow question: what must a publisher expose so that a machine can identify, discover and interpret a public page without guessing facts the publisher could have stated directly?

  • Scope: a machine publishing contract — identity, representation, publisher declarations and discovery, with processing scope as one part of it.
  • Contribution: the declared relationship between a human page and its machine representation.

The human page remains the canonical address. The MPF file is its declared parallel.

Status

Current version 0.7 — Specification 0.7
Previous version 0.6 — Specification 0.6
Reference implementation mpf-build — git.esfi.eu/esfi/mpf
Verified emitters Implementation registry
Version policy Versioning

The specification describes what the reference implementation actually produces. A field name does not give MPF a capability the implementation does not have.

How to read this section

Pages in this section mark every rule with its status:

Marker Meaning
Specification 0.7 Defined in the published specification. Conforming producers and consumers can rely on it.
Reference implementation Behaviour of mpf-build that the specification text does not yet describe. Stable in practice, not yet normative.
ESFI practice A deployment convention used on ESFI sites, outside the builder and outside the specification. Documented so others can reproduce it, not required for conformance.

A mechanism moves from practice to the specification only through a new specification version.

Anatomy of an MPF file

index.html   →   index.mpf
about/index.html   →   about/index.mpf
---
mpf: '0.7'
title: Example page
url: https://example.org/about/
mpf-url: https://example.org/about/index.mpf
organization: Example Publisher
domain: example.org
lang: en
updated: 2026-09-21
author: Example Publisher
provenance: human
source-hash: 3f1c…
toc:
  - level: 1
    text: About
    id: about
spec-origin: example.org
content-origin: example.org
content-id: example:page:about
content-parity:
  html: true
  human-visible-source: true
  hidden-sections: false
index: true
companion-scope:
  cite: true
  summarize: true
  train: false
  index: true
  relay: false
mpf-id: 9a0b…
---

# About {#about}

Clean Markdown body of the page…

Example Publisher — https://example.org

The frontmatter is serialised in stable order. mpf-id is a SHA-256 digest of the complete document before mpf-id itself is inserted; source-hash is a SHA-256 digest of the raw source HTML. Details: Specification 0.7.

What the declarations cover

Group Fields What a reader learns
Identity url, mpf-url, content-id, lang, language-variants Which logical resource this is, where both representations live, and which files are equivalent language versions
Publisher organization, domain, author, spec-origin, content-origin Who stands behind the declarations
Provenance provenance, confidence, c2pa-manifest How the publisher describes the origin and status of the content
Integrity source-hash, mpf-id, signature Whether the pair has drifted, whether this file changed, and whether the declared publisher signed it
Parity content-parity How the machine body relates to what a person sees
Processing scope companion-scope What the publisher intends a machine to do with the content
Lifecycle updated, valid-until, review-after, supersedes, superseded-by Whether the resource is current and what it replaces
Structure toc, section, parent, related, summary, content-type How the page is organised and how it relates to other pages
Publisher to reader companion-instruction, companion-footer, companion-contact, preferred-representation The publisher’s message to the machine reader, its signature line and contact
Indexing index Whether the page appears in the site’s machine indexes

Required fields, optional fields and generation rules: Specification 0.7. Configuration and per-page overrides: Implementation.

Discovery in one paragraph

A machine should find the MPF representation before it starts interpreting HTML. The builder writes llms.txt with an MPF section (version, specification pointer, index path) and llms.mpf, an MPF index of all indexed pages; every page carries its companion at the same path with .mpf in place of .html (Specification 0.7). ESFI sites additionally publish a DNS TXT record and a /.well-known/mpf declaration (ESFI practice). Full reference: Publishing and discovery.

Declarations, not verdicts

Every MPF field is either generated from the source or declared by the publisher. None of them is independent verification.

  • provenance: human states how the publisher describes the origin. It does not prove it.
  • confidence states the publisher’s assessment. It is not validation.
  • companion-scope states intended processing. It is not a technical lock and it does not replace applicable law.
  • source-hash shows whether the pair has drifted. It does not establish that the content is true.
  • A signature shows that a particular key signed a particular file. It does not show that the claims inside are correct.

A consuming system should keep these distinctions in its own data model and judge each signal for what it actually establishes.

Relationship to other standards

MPF works alongside other efforts in the same space. It does not replace them.

Standard What it addresses
robots.txt Crawler access preferences
llms.txt A lightweight entry point for language models; MPF extends the site’s llms.txt with an MPF section
TDMRep A W3C Community Group protocol for expressing the EU text and data mining reservation
RSL Publisher licensing terms for AI use
AIPREF (IETF) A vocabulary for AI usage preferences; work in progress at the IETF
C2PA Cryptographic content provenance and credentials; an MPF file can point to a C2PA manifest with c2pa-manifest

What MPF does not claim

  • Not a truth system. Declarations are declarations; verification requires independent evidence.
  • Not a legal instrument. train: false records a stated position, not a contract and not a lock. Its legal effect depends on applicable law.
  • Not an enforcement mechanism. No field is enforced by the format.
  • Not a replacement for HTML. The human page remains canonical.
  • Not a gatekeeper. Publishing and reading MPF require no ESFI service, registration or permission.

Further