Validate XML, XSD and e-invoices with XSDHub. Includes error explanations and source URLs.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional: Bearer followed by your existing XSDHub Pro/Team API key. Omit for anonymous access.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Match an XML/XSD or invoice error code or message to an existing guide and explanation. Returns a general guide when no exact match exists.
Explicit existing fixed rule package. Factur-X accepts extracted XML only; KSeF is FA(3) XSD only.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http validation https://xsdhub.com/mcp
Headers
Authorization (optional, not in the config above): Optional: Bearer followed by your existing XSDHub Pro/Team API key. Omit for anonymous access.Match an XML/XSD or invoice error code or message to an existing guide and explanation. Returns a general guide when no exact match exists.
| Argument | Type | Description |
|---|---|---|
| code | string | |
| message | string | |
| standard | string | Explicit existing fixed rule package. Factur-X accepts extracted XML only; KSeF is FA(3) XSD only. |
{
"type": "object",
"required": [],
"properties": {
"code": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"message": {
"type": "string",
"maxLength": 2000,
"minLength": 1
},
"standard": {
"enum": [
"en16931",
"xrechnung",
"facturx",
"ksef",
"ro",
"hr"
],
"type": "string",
"description": "Explicit existing fixed rule package. Factur-X accepts extracted XML only; KSeF is FA(3) XSD only."
}
},
"additionalProperties": false
}Read the supported browser tools, file limits, privacy boundaries and subscription test-mode status. No account or billing access.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Read one public XSDHub page as Markdown, with its canonical source URL. Accepts a public page slug, such as learn/xml-namespaces-explained, about or home.
| Argument | Type | Description |
|---|---|---|
| slug* | string |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 120,
"minLength": 1
}
},
"additionalProperties": false
}List the six fixed invoice packages, versions, scope and limitations, plus generic XML and supplied-XSD support.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Search XSDHub public XML and XSD guides. Returns source URLs and excerpts. Does not validate or upload XML.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query* | string |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 160,
"minLength": 2
}
},
"additionalProperties": false
}Check invoice XML with a fixed EN16931, XRechnung, Factur-X XML, KSeF FA(3), RO or HR package. KSeF is XSD-only; Factur-X checks XML only. No authority or network acceptance check.
| Argument | Type | Description |
|---|---|---|
| xml* | string | Complete UTF-8 XML text, at most 10 MiB. DTDs and entities are blocked. |
| standard* | string | Explicit existing fixed rule package. Factur-X accepts extracted XML only; KSeF is FA(3) XSD only. |
| max_findings | integer | Maximum combined errors and warnings returned (1–100). Validation scope is unchanged. |
| include_guides | boolean | Include guide URLs in validation results. |
{
"type": "object",
"required": [
"xml",
"standard"
],
"properties": {
"xml": {
"type": "string",
"maxLength": 10485760,
"minLength": 1,
"description": "Complete UTF-8 XML text, at most 10 MiB. DTDs and entities are blocked."
},
"standard": {
"enum": [
"en16931",
"xrechnung",
"facturx",
"ksef",
"ro",
"hr"
],
"type": "string",
"description": "Explicit existing fixed rule package. Factur-X accepts extracted XML only; KSeF is FA(3) XSD only."
},
"max_findings": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Maximum combined errors and warnings returned (1–100). Validation scope is unchanged."
},
"include_guides": {
"type": "boolean",
"default": true,
"description": "Include guide URLs in validation results."
}
},
"additionalProperties": false
}Check XML well-formedness. Returns bounded errors and warnings with locations; uses one validation from the daily allowance.
| Argument | Type | Description |
|---|---|---|
| xml* | string | Complete UTF-8 XML text, at most 10 MiB. DTDs and entities are blocked. |
| max_findings | integer | Maximum combined errors and warnings returned (1–100). Validation scope is unchanged. |
| include_guides | boolean | Include guide URLs in validation results. |
{
"type": "object",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string",
"maxLength": 10485760,
"minLength": 1,
"description": "Complete UTF-8 XML text, at most 10 MiB. DTDs and entities are blocked."
},
"max_findings": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Maximum combined errors and warnings returned (1–100). Validation scope is unchanged."
},
"include_guides": {
"type": "boolean",
"default": true,
"description": "Include guide URLs in validation results."
}
},
"additionalProperties": false
}Check XML against supplied XSD 1.0 or 1.1. Accepts one XSD or a local multi-file project with rootSchema; no network resolution. Returns bounded findings.
| Argument | Type | Description |
|---|---|---|
| xml* | string | Complete UTF-8 XML text, at most 10 MiB. DTDs and entities are blocked. |
| xsd | string | UTF-8 XSD text, at most 1 MiB. Use either xsd or schemaFiles. No remote fetching. |
| rootSchema | string | Required with schemaFiles; path of the entry XSD. |
| xsdVersion | string | |
| schemaFiles | array | |
| max_findings | integer | Maximum combined errors and warnings returned (1–100). Validation scope is unchanged. |
| include_guides | boolean | Include guide URLs in validation results. |
{
"type": "object",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string",
"maxLength": 10485760,
"minLength": 1,
"description": "Complete UTF-8 XML text, at most 10 MiB. DTDs and entities are blocked."
},
"xsd": {
"type": "string",
"maxLength": 1048576,
"minLength": 1,
"description": "UTF-8 XSD text, at most 1 MiB. Use either xsd or schemaFiles. No remote fetching."
},
"rootSchema": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Required with schemaFiles; path of the entry XSD."
},
"xsdVersion": {
"enum": [
"1.0",
"1.1"
],
"type": "string",
"default": "1.0"
},
"schemaFiles": {
"type": "array",
"items": {
"type": "object",
"required": [
"path",
"content"
],
"properties": {
"path": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Relative project path, for example schemas/types.xsd."
},
"content": {
"type": "string",
"maxLength": 1048576,
"minLength": 1,
"description": "UTF-8 XSD text, at most 1 MiB. Use either xsd or schemaFiles. No remote fetching."
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1
},
"max_findings": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Maximum combined errors and warnings returned (1–100). Validation scope is unchanged."
},
"include_guides": {
"type": "boolean",
"default": true,
"description": "Include guide URLs in validation results."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 6, 2026.