Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Create and check EU e-invoices (XRechnung, ZUGFeRD, Factur-X, Peppol) locally. Free, no API key.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"conformo": {
"command": "npx",
"args": [
"-y",
"@conformo/mcp-server"
]
}
}
}ターミナルでこれを実行します
claude mcp add conformo -- npx -y @conformo/mcp-serverプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"conformo": {
"command": "npx",
"args": [
"-y",
"@conformo/mcp-server"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"conformo": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@conformo/mcp-server"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント arsalmurad で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.2.3)がレジストリに届いたのは昨日です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Detailing Manager
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Connect your auto detailing studio's tasks, cars, clients and revenue to Claude or ChatGPT.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Let Claude, Cursor or any MCP client make and check European e-invoices: XRechnung, ZUGFeRD / Factur-X PDF, Peppol BIS Billing 3.0, plain CII and UBL.
validate_invoice runs the official KoSIT, CEN and Peppol rules plus the XSDs. Its verdicts match the official KoSIT validator 100% on the official test invoices, and the full comparison is public.Quick start for Claude Code: claude mcp add conformo -- npx -y @conformo/mcp-server. Other clients are below. Needs Node.js 20 or newer. MCP Registry name: io.github.arsalmurad/conformo.
Then ask your agent things like:
Every tool is a thin wrapper over @conformo/toolkit. Two transports: stdio (default, for desktop clients) and stateless Streamable HTTP (for a shared deployment).
| Tool | What it does | Read-only |
|---|---|---|
create_invoice | Structured invoice (JSON object) to XML: cii, cii-extended, ubl, xrechnung-cii, xrechnung-ubl, peppol-ubl. | yes |
create_invoice_pdf | Same input to a Factur-X / ZUGFeRD PDF/A-3 (en16931, xrechnung, extended). Returns base64, or writes outputPath. | no |
validate_invoice | XML text or base64 PDF. Detects syntax and profile, runs XSD and the matching rule sets, reports which ran. Optional country FR or DE. | yes |
convert_invoice | XML or PDF in, another syntax out. | yes |
parse_invoice | XML or PDF to the invoice JSON model. | yes |
get_country_requirements | Mandates, dates, thresholds and sources per country, plus what Conformo itself supports. | yes |
explain_validation_rule | A rule id such as BR-CO-15: official wording, plain-language meaning and fix. | yes |
All tools declare an outputSchema and return structuredContent plus a text fallback. Money is always integer minor units (EUR 12.34 is 1234). The input schema of create_invoice documents every field with its BT/BG identifier. Input problems come back as an isError result listing every issue (path, BT id, message), never a stack trace.
The commands below use the published package name. From a checkout, replace npx -y @conformo/mcp-server with npx tsx /absolute/path/to/conformo/packages/mcp-server/src/server.ts.
Add to claude_desktop_config.json (Settings, Developer, Edit Config):
{
"mcpServers": { "conformo": { "command": "npx", "args": ["-y", "@conformo/mcp-server"] } } }
On Windows, if npx is not found, use "command": "cmd" with "args": ["/c", "npx", "-y", "@conformo/mcp-server"].
claude mcp add conformo -- npx -y @conformo/mcp-server
claude mcp add --transport http conformo https://mcp.example.com/mcp
.cursor/mcp.json in the project, or ~/.cursor/mcp.json for all projects:
{
"mcpServers": { "conformo": { "command": "npx", "args": ["-y", "@conformo/mcp-server"] } } }
outputPathcreate_invoice_pdf can write a file instead of returning base64. The path must end in .pdf, stay inside the server's working directory, and not exist yet unless overwrite: true. Set CONFORMO_MCP_ALLOW_ANY_PATH=1 to lift the directory limit.
conformo-mcp --http --port 8787 --host 127.0.0.1 --max-body-bytes 8388608
| Flag | Env | Default |
|---|---|---|
--port | CONFORMO_MCP_PORT | 8787 (0 picks a free port; the URL is printed on stderr) |
--host | CONFORMO_MCP_HOST | 127.0.0.1 |
--max-body-bytes | CONFORMO_MCP_MAX_BODY_BYTES | 8388608 (8 MiB); larger bodies get 413 |
Endpoints: POST /mcp (JSON-RPC, JSON responses), GET /healthz (liveness), GET/DELETE /mcp answer 405. The server is stateless: a fresh server and transport per request, no session ids, no data kept between calls. It has no authentication and no TLS.
Do not expose the port directly. Run it on a private interface and put a reverse proxy with TLS and authentication in front (a bearer token check, mTLS, or your identity-aware proxy). Because it is stateless you can run any number of replicas behind a load balancer with no sticky sessions. Bind to 0.0.0.0 only inside a container or private network.
Dockerfile:
FROM node:22-slim
WORKDIR /app RUN npm install -g @conformo/mcp-server ENV CONFORMO_MCP_HOST=0.0.0.0 CONFORMO_MCP_PORT=8787 EXPOSE 8787 USER node HEALTHCHECK CMD node -e "fetch('http://127.0.0.1:8787/healthz').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))" CMD ["conformo-mcp", "--http"]
Caddy example (token auth and TLS in front):
mcp.example.com {
@authed header Authorization "Bearer {env.MCP_TOKEN}" handle @authed { reverse_proxy 127.0.0.1:8787 } respond "unauthorized" 401 }
Note that invoices contain personal and commercial data: whoever can reach the endpoint can send invoices through it, and you carry the usual obligations for the traffic your proxy logs.
valid: true means the rule sets listed in ruleSets and the XSD passed. It is not a statement that any tax authority, buyer or network will accept the invoice.get_country_requirements reports a sourced dataset; entries marked unverified are not confirmed from an official source. It is not legal advice.Design decisions are recorded in DECISIONS.txt.