xmlvalid MCP
An official MCP server provided by xmlvalid that allows AI agents to validate XML documents against various schemas (XSD, DTD, RelaxNG) and e-invoice standards (EN 16931, Peppol, XRechnung). It provides tools to validate documents, search schemas, and explain validation errors or business rules.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://xmlvalid.com/mcpWhat you can do with it
- Validate XML documents against XSD, DTD, or RelaxNG schemas
- Check e-invoices against EN 16931, Peppol, or XRechnung rules
- Search for available schemas in the public catalog
- Explain specific XML error messages or business rule violations
Source and maintenance
Protocol and capabilities
- Server
- xmlvalid 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 5 advertised
- Resources
- 0 advertised
- Resource templates
- 0 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
5 advertised
validate_xml — Validate Xml
Validate an XML document with xmlvalid: well-formedness, an XSD, DTD or RelaxNG schema, and for e-invoices the Schematron business rules of EN 16931, Peppol BIS, XRechnung, Factur-X and national formats. Pass the document as `xml` (its text) or `url` (a public http(s) address), and a `schema`: a catalog slug from search_schemas, a saved schema ("@orders-v3"), or "auto" to use the e-invoice profile the document names. Without a schema only well-formedness is checked. Returns valid, errors and warnings with line, column, message, rule and a help_url explaining each. Counts as one API validation of the key's monthly quota.
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "A public http(s) URL of the document, fetched by xmlvalid."
},
"xml": {
"type": "string",
"description": "The XML document itself. Use url instead for a document on the web."
},
"name": {
"type": "string",
"description": "A file name to show in the result, such as invoice-42.xml."
},
"wait": {
"type": "integer",
"default": 30,
"maximum": 60,
"minimum": 0,
"description": "Seconds to wait for the result before returning a pending status to poll with get_validation."
},
"schema": {
"type": "string",
"description": "A catalog slug (see search_schemas), \"@<name>\" for a saved schema, or \"auto\" for the e-invoice profile the document names. Leave out to check well-formedness only."
},
"rules_version": {
"type": "string",
"description": "Pin Schematron rule sets to releases, as rule-set@version, comma-separated (peppol-bis-3-ubl@3.0.21): the call fails with rules_version_mismatch when one has moved on. The result's rule_sets lists the releases that ran."
}
}
}{
"title": "Validate Xml",
"openWorldHint": true
}get_validation — Get Validation
The status and result of a validation started with validate_xml that was still running when it returned (status "queued" or "running"). Results are kept for 24 hours.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The id validate_xml returned."
}
}
}{
"title": "Get Validation",
"readOnlyHint": true
}search_schemas — Search Schemas
Search xmlvalid's catalog of official XML schemas (UBL, CII, Peppol, XRechnung, Factur-X, ISO 20022, HL7, sitemaps…) by name, namespace, root element or area. Returns each schema's slug to pass to validate_xml, its version and the business rules it checks. No API key needed.
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Words to look for, such as \"peppol invoice\", \"xrechnung cii\" or \"pain.001\". Leave out to list the first schemas."
}
}
}{
"title": "Search Schemas",
"readOnlyHint": true
}explain_error — Explain Error
Explain an XML parsing or schema validation error message: what it means, why it happens and how to fix it, with an example. Understands libxml2 (xmllint, PHP, Python lxml, xmlvalid), Java (Xerces cvc-* codes, SAXParseException) and .NET (System.Xml) wording; paste the message as reported, stack trace prefix included. No API key needed.
{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string",
"description": "The error message, as the parser or validator reported it."
}
}
}{
"title": "Explain Error",
"readOnlyHint": true
}explain_rule — Explain Rule
Explain an e-invoicing business rule by its id, such as BR-CO-15, BR-DE-1, PEPPOL-EN16931-R001 or a national CIUS rule: its message, level, the rule sets it belongs to, why invoices fail it and how to fix them. No API key needed.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The rule id as the validator reports it, such as BR-CO-15."
}
}
}{
"title": "Explain Rule",
"readOnlyHint": true
}Prompts
0 advertised
Resources
0 advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 3486 ms
- 95th percentile latency
- 3486 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 3486 ms · metadata changed · 5 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http xmlvalid-mcp https://xmlvalid.com/mcpCodex
codex mcp add xmlvalid-mcp --url https://xmlvalid.com/mcpCursor
{
"mcpServers": {
"xmlvalid-mcp": {
"url": "https://xmlvalid.com/mcp"
}
}
}Cline
{
"mcpServers": {
"xmlvalid-mcp": {
"type": "streamableHttp",
"url": "https://xmlvalid.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"xmlvalid-mcp": {
"type": "http",
"url": "https://xmlvalid.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http xmlvalid-mcp https://xmlvalid.com/mcpClaude Desktop
{
"mcpServers": {
"xmlvalid-mcp": {
"url": "https://xmlvalid.com/mcp"
}
}
}Windsurf
{
"mcpServers": {
"xmlvalid-mcp": {
"serverUrl": "https://xmlvalid.com/mcp"
}
}
}Let your agent find its tools
Find servers like xmlvalid MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other developer tools servers
Do you run xmlvalid MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.