CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

InvoiceXML

invoicexml/invoicexml-mcp
27 toolsHTTPregistry active
Summary

Exposes the InvoiceXML API to create, validate, convert, and extract compliant e-invoices across European standards like Factur-X, ZUGFeRD, XRechnung, UBL, and Peppol BIS Billing 3.0. The same .NET codebase runs in two modes: self-hosted with a single API key or as a hosted service with OAuth 2.1 and dynamic client registration. You get typed tools for invoice operations without handling the XML schema complexity yourself. Reach for this when you need AI agents to generate or process e-invoices that meet regulatory requirements in France, Germany, or across PEPPOL networks. The architecture keeps auth cleanly separated so switching between deployment modes is just a config change.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

7 tools
create_invoiceGenerate a compliant e-invoice from a structured invoice document. Choose the format that matches the buyer's jurisdiction: 'ubl' for Peppol / international Peppol BIS Billing 3.0, 'cii' for generic UN/CEFACT CII XML, 'xrechnung' for German public sector, 'facturx' for French...3 params

Generate a compliant e-invoice from a structured invoice document. Choose the format that matches the buyer's jurisdiction: 'ubl' for Peppol / international Peppol BIS Billing 3.0, 'cii' for generic UN/CEFACT CII XML, 'xrechnung' for German public sector, 'facturx' for French...

Parameters* required
formatstring
Target e-invoicing format. Must be one of: ubl, cii, xrechnung, facturx, zugferd.one of ubl · cii · xrechnung · facturx · zugferd
invoiceobject
The invoice document. EN 16931 BT-first model: at minimum supply invoiceNumber, currency, seller, buyer, lines, totals and vatBreakdowns.
optionsobject
Optional PDF render settings. Ignored for XML formats. Defaults to English face with no brand colour.
render_invoiceRender a plain-XML e-invoice into a human-readable PDF preview. Pick the matching 'format': 'ubl' for UBL 2.1 / Peppol BIS 3.0, 'cii' for UN/CEFACT CII, 'xrechnung' for German XRechnung. The output is a VISUAL PDF only; it does NOT embed the XML. To produce a hybrid Factur-X /...4 params

Render a plain-XML e-invoice into a human-readable PDF preview. Pick the matching 'format': 'ubl' for UBL 2.1 / Peppol BIS 3.0, 'cii' for UN/CEFACT CII, 'xrechnung' for German XRechnung. The output is a VISUAL PDF only; it does NOT embed the XML. To produce a hybrid Factur-X /...

Parameters* required
xmlstring
The invoice XML as plain text. Provide exactly one of xml / xmlUrl.
formatstring
Source XML profile. Must be one of: ubl, cii, xrechnung.one of ubl · cii · xrechnung
xmlUrlstring
A public https:// URL to the XML; the server fetches it. Provide exactly one of xml / xmlUrl.
languagestring
Language of the human-readable PDF face: EN, DE, or FR. Defaults to EN.one of EN · DE · FRdefault: EN
embed_invoiceCombine an existing PDF and an EN 16931 CII XML into a hybrid PDF/A-3 e-invoice. Pick 'format' = 'facturx' or 'zugferd' for the output branding. The XML MUST be a UN/CEFACT Cross Industry Invoice (CII) document; UBL is not accepted here (convert it first with 'convert_invoice'...5 params

Combine an existing PDF and an EN 16931 CII XML into a hybrid PDF/A-3 e-invoice. Pick 'format' = 'facturx' or 'zugferd' for the output branding. The XML MUST be a UN/CEFACT Cross Industry Invoice (CII) document; UBL is not accepted here (convert it first with 'convert_invoice'...

Parameters* required
xmlstring
The CII invoice XML as plain text. Provide exactly one of xml / xmlUrl.
formatstring
Output hybrid format. Must be one of: facturx, zugferd.one of facturx · zugferd
pdfUrlstring
A public https:// URL to the PDF. Provide exactly one of pdfUrl / pdfBase64.
xmlUrlstring
A public https:// URL to the CII XML. Provide exactly one of xml / xmlUrl.
pdfBase64string
The PDF as base64 (small files only). Provide exactly one of pdfUrl / pdfBase64.
extract_invoiceExtract content from a hybrid PDF/A-3 e-invoice (Factur-X or ZUGFeRD). Choose 'target': 'json' for a structured invoice document (fields like seller, buyer, lines, totals), or 'xml' for the raw embedded EN 16931 CII XML. The PDF must contain an embedded XML attachment; if it d...3 params

Extract content from a hybrid PDF/A-3 e-invoice (Factur-X or ZUGFeRD). Choose 'target': 'json' for a structured invoice document (fields like seller, buyer, lines, totals), or 'xml' for the raw embedded EN 16931 CII XML. The PDF must contain an embedded XML attachment; if it d...

Parameters* required
pdfUrlstring
A public https:// URL to the PDF; the server fetches it. Provide exactly one of pdfUrl / pdfBase64.
targetstring
What to extract: 'json' for a structured invoice document, 'xml' for the embedded CII XML.one of json · xml
pdfBase64string
The PDF as base64 (small files only). Provide exactly one of pdfUrl / pdfBase64.
validate_pdf_invoiceValidate a hybrid PDF/A-3 e-invoice that has an EN 16931 CII XML embedded inside: Factur-X or ZUGFeRD. Pick 'format' = 'facturx' or 'zugferd' (both run the same validation pipeline; pick the one the user named). Use THIS tool for PDF invoices; for plain XML (UBL / CII / XRechn...3 params

Validate a hybrid PDF/A-3 e-invoice that has an EN 16931 CII XML embedded inside: Factur-X or ZUGFeRD. Pick 'format' = 'facturx' or 'zugferd' (both run the same validation pipeline; pick the one the user named). Use THIS tool for PDF invoices; for plain XML (UBL / CII / XRechn...

Parameters* required
formatstring
Validation profile. Must be one of: facturx, zugferd.one of facturx · zugferd
pdfUrlstring
A public https:// URL to the PDF; the server fetches it. Provide exactly one of pdfUrl / pdfBase64.
pdfBase64string
The PDF as base64 (small files only). Provide exactly one of pdfUrl / pdfBase64.
convert_invoiceConvert an e-invoice from one format to another (a deterministic syntax transform, no AI). Set 'sourceFormat' and 'targetFormat', each one of: ubl, cii, xrechnung, facturx, zugferd. Supported conversions: ubl<->cii, xrechnung->ubl/cii, ubl/cii->xrechnung, facturx/zugferd->ubl/...6 params

Convert an e-invoice from one format to another (a deterministic syntax transform, no AI). Set 'sourceFormat' and 'targetFormat', each one of: ubl, cii, xrechnung, facturx, zugferd. Supported conversions: ubl<->cii, xrechnung->ubl/cii, ubl/cii->xrechnung, facturx/zugferd->ubl/...

Parameters* required
xmlstring
For an XML source (ubl/cii/xrechnung): the source XML as text.
pdfUrlstring
For a hybrid-PDF source (facturx/zugferd): a public https:// URL to the PDF.
xmlUrlstring
For an XML source (ubl/cii/xrechnung): a public https:// URL to the XML.
pdfBase64string
For a hybrid-PDF source (facturx/zugferd): the source PDF as base64 (small files only).
sourceFormatstring
Source format. One of: ubl, cii, xrechnung, facturx, zugferd.one of ubl · cii · xrechnung · facturx · zugferd
targetFormatstring
Target format. One of: ubl, cii, xrechnung, facturx, zugferd.one of ubl · cii · xrechnung · facturx · zugferd
validate_xml_invoiceValidate a plain-XML e-invoice against the EN 16931 XSD and Schematron rules. Pick the matching 'format': 'ubl' for UBL 2.1 / Peppol BIS 3.0, 'cii' for UN/CEFACT CII, 'xrechnung' for German XRechnung (CIUS-XR). Use THIS tool for plain XML; for Factur-X / ZUGFeRD hybrid PDFs us...3 params

Validate a plain-XML e-invoice against the EN 16931 XSD and Schematron rules. Pick the matching 'format': 'ubl' for UBL 2.1 / Peppol BIS 3.0, 'cii' for UN/CEFACT CII, 'xrechnung' for German XRechnung (CIUS-XR). Use THIS tool for plain XML; for Factur-X / ZUGFeRD hybrid PDFs us...

Parameters* required
xmlstring
The invoice XML as plain text. Provide exactly one of xml / xmlUrl.
formatstring
Validation profile. Must be one of: ubl, cii, xrechnung.one of ubl · cii · xrechnung
xmlUrlstring
A public https:// URL to the XML; the server fetches it. Provide exactly one of xml / xmlUrl.

InvoiceXML MCP Server

A Model Context Protocol server that exposes the InvoiceXML API to AI agents. Covers Factur-X, ZUGFeRD, XRechnung, UBL / CII, and Peppol BIS Billing 3.0.

The same codebase runs in two deployment shapes, selected at startup by one environment variable:

ModeWho runs itAuth
Self-hostedYou, on your own machine or serverA single API key in env or appsettings.json
HostedInvoiceXML, on its own infrastructureOAuth 2.1 + Dynamic Client Registration against invoicexml.com

Both run the same binary; only the configuration differs. The repository is platform-independent — it knows nothing about where or how you host it.

Architecture

+----------------------+   ProjectReference   +----------------------+
|  InvoiceXml.Mcp.Core | -------------------> |  InvoiceXml.Mcp.Host |
|  (SDK: client+tools) |                      |  (the deployable)    |
+----------------------+                      +----------------------+

InvoiceXml.Mcp.Core is a small, transport-agnostic SDK:

  • IInvoiceXmlClient — typed client over the public REST API
  • HttpInvoiceXmlClient — the only implementation; consumes an HttpClient from IHttpClientFactory
  • InvoiceXmlClientOptions — base URL, timeout (no auth)
  • AddInvoiceXmlMcpCore(IServiceCollection, IConfiguration) — DI entry point; returns the IHttpClientBuilder so the host attaches auth as a DelegatingHandler

The SDK never sees credentials. The host applies them through the HTTP pipeline. That seam is what lets one codebase serve both deployment modes.

InvoiceXml.Mcp.Host is an ASP.NET Core 10 app:

  • Reads Mcp:AuthMode (ApiKey or OAuth) at startup
  • Wires the matching DelegatingHandler onto the Core HTTP client via AddHostAuth(...)
  • Serves the MCP endpoint at POST /, a human-friendly welcome page at GET /, and /health

Adding a new auth mode = one arm in AuthExtensions.cs plus a small folder under Auth/<Mode>/. Adding a new tool = one [McpServerTool] class. Nothing else changes.

Repository layout

invoicexml-mcp/
├── src/
│   ├── InvoiceXml.Mcp.Core/              # the SDK: client, models, tools
│   │   ├── Enums/  Interfaces/  Models/  Options/  Services/  Tools/  Extensions/
│   └── InvoiceXml.Mcp.Host/              # the deployable host
│       ├── Auth/{ApiKey,OAuth}/          # the two auth modes
│       ├── Configuration/
│       ├── Program.cs
│       └── appsettings.json              # safe defaults, no secrets
├── tests/
│   ├── InvoiceXml.Mcp.Core.Tests/
│   └── InvoiceXml.Mcp.Host.Tests/
├── Directory.Build.props                 # repo-wide MSBuild defaults
├── Directory.Packages.props              # Central Package Management
├── global.json                           # pins the .NET SDK
└── InvoiceXml.Mcp.slnx

Running locally

You need a .NET 10 SDK and an InvoiceXML API key.

# 1. Provide your API key (pick one):

# A. dotnet user-secrets (recommended — kept outside the repo)
dotnet user-secrets --project src/InvoiceXml.Mcp.Host set "Mcp:ApiKey:Value" "your-key"

# B. environment variable
$env:INVOICEXML_API_KEY = "your-key"

# 2. Run
dotnet run --project src/InvoiceXml.Mcp.Host

GET http://localhost:5004/ shows a welcome page in a browser; the MCP endpoint is POST http://localhost:5004/; GET /health returns { "status": "ok" }.

Configuration

{
  // Required in OAuth mode. The public origin where this MCP server is reachable.
  // Used in the protected-resource metadata response.
  "McpUri": "https://mcp.example.com",

  "InvoiceXml": {
    "BaseUrl": "https://api.invoicexml.com",   // override for staging / local
    "Timeout": "00:01:40"
  },

  "Mcp": {
    "AuthMode": "ApiKey",                       // "ApiKey" | "OAuth"
    "ApiKey": {
      "Value": ""                               // ApiKey mode: NEVER commit a real key
    },
    "OAuth": {
      "AuthorizationServer": "https://invoicexml.com",
      "ScopesSupported": [ "api_token.read" ]
    },
    "FileInput": {                              // limits for the URL-fetch input mode
      "MaxFileSizeBytes": 5242880,
      "FetchTimeout": "00:00:30"
    }
  }
}

Environment variable equivalents (double underscore = nesting):

VariableMaps to
INVOICEXML_API_KEYMcp:ApiKey:Value (friendly alias)
Mcp__ApiKey__ValueMcp:ApiKey:Value
Mcp__AuthModeMcp:AuthMode (ApiKey or OAuth)
Mcp__OAuth__AuthorizationServerMcp:OAuth:AuthorizationServer
McpUriMcpUri (root-level)
InvoiceXml__BaseUrlInvoiceXml:BaseUrl

OAuth mode

When Mcp:AuthMode=OAuth the host stops accepting a static API key and instead:

  1. Returns 401 with WWW-Authenticate: Bearer resource_metadata="…" for any POST / that has no Bearer token.
  2. Serves GET /.well-known/oauth-protected-resource pointing MCP clients at invoicexml.com as the authorization server.
  3. Forwards the inbound Bearer token verbatim on every outbound call to the InvoiceXML API (the API is the source of truth for token validity; the MCP server does not validate tokens locally).

The dance an MCP client performs:

client → MCP  POST /                           → 401 + resource_metadata
client → /.well-known/oauth-protected-resource → { authorization_servers: [invoicexml.com] }
client → invoicexml.com/.well-known/oauth-authorization-server
                                               → { authorize, token, register endpoints }
client → invoicexml.com/oauth/register         → client_id + client_secret  (DCR)
client → invoicexml.com/oauth/authorize        → user consents, gets code
client → invoicexml.com/oauth/token            → access_token  (= user's API key)
client → MCP  POST /  + Authorization: Bearer  → 200, tool call flows through

Deployment

The host is a standard ASP.NET Core app — run it however you run .NET services (systemd, a container, a PaaS, etc.; the repo doesn't prescribe one):

dotnet publish src/InvoiceXml.Mcp.Host -c Release -o ./publish
# then run ./publish/InvoiceXml.Mcp.Host on your host

Set configuration via environment variables on the host (never commit secrets):

  • ASPNETCORE_ENVIRONMENT=Production
  • Mcp__AuthMode=ApiKey (or OAuth)
  • Mcp__ApiKey__Value=… / INVOICEXML_API_KEY=… (ApiKey mode)
  • McpUri=https://your-public-url and Mcp__OAuth__AuthorizationServer=https://invoicexml.com (OAuth mode)

Terminate TLS at your reverse proxy / load balancer and forward to the host's HTTP port. The server is stateless, so you can run multiple instances behind a load balancer.

License

MIT — see LICENSE.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Categories
Search & Web Crawling
Registryactive
TransportHTTP
UpdatedMay 29, 2026
View on GitHub

Related Search & Web Crawling MCP Servers

View all →
Google Search

com.mcparmory/google-search

Scrape Google search results with SERP data, ads, and knowledge panels
25
Brave Search

io.github.pipeworx-io/brave-search

Brave Search MCP — independent web index (no Google/Bing dependency)
Serper Search and Scrape

marcopesani/mcp-server-serper

Serper MCP Server supporting search and webpage scraping
154
Brave Search Mcp Server

brave/brave-search-mcp-server

Brave Search MCP Server: web results, images, videos, rich results, AI summaries, and more.
1.2k
Google Search Console

com.mcparmory/google-search-console

Query search analytics, manage sitemaps, and inspect site URLs and status
25
Google Search Console

acamolese/google-search-console-mcp

Google Search Console MCP server: SEO audits, performance queries, URL inspection, indexing checks.
3