Ksef
БесплатноНе проверенEnables AI assistants to interact with the Polish National e-Invoice System (KSeF) for authentication, invoice creation, validation, and retrieval via 30 tools.
Описание
Enables AI assistants to interact with the Polish National e-Invoice System (KSeF) for authentication, invoice creation, validation, and retrieval via 30 tools.
README
Pierwszy publiczny MCP server do Krajowego Systemu e-Faktur (KSeF) — API v2.
Uwierzytelnianie (JWT), wystawianie, walidacja i pobieranie e-faktur przez AI. Kompatybilny z Claude Desktop, Claude Code i ChatGPT.
KSeF API v2 (2026) — nowe endpointy, JWT Bearer auth, osobne sesje online/batch. Dokumentacja API: api.ksef.mf.gov.pl/docs/v2 | Dokumentacja integracji: github.com/CIRFMF/ksef-docs
Funkcje
Narzedzia (30 toolow)
| Narzedzie | Opis | Sprint | Typ |
|---|---|---|---|
ksef_env_info |
Srodowisko, NIP, status sesji | 1 | odczyt |
ksef_auth_init |
Rozpocznij sesje KSeF (token) | 1 | akcja |
ksef_auth_status |
Status aktywnej sesji | 1 | odczyt |
ksef_auth_terminate |
Zakoncz sesje | 1 | akcja |
ksef_invoices_query |
Wyszukaj faktury po datach | 1 | odczyt |
ksef_invoice_get |
Pobierz metadane faktury | 1 | odczyt |
ksef_invoice_status |
Status przetwarzania faktury | 1 | odczyt |
ksef_invoice_xml |
Pobierz XML faktury FA(3) | 1 | odczyt |
ksef_upo_download |
Pobierz UPO sesji | 1 | odczyt |
ksef_draft_create |
Utworz szkic faktury | 2 | akcja |
ksef_draft_get |
Pobierz szkic faktury | 2 | odczyt |
ksef_draft_list |
Lista szkicow | 2 | odczyt |
ksef_draft_update |
Aktualizuj szkic | 2 | akcja |
ksef_draft_delete |
Usun szkic | 2 | akcja |
ksef_draft_validate |
Waliduj szkic wg FA(3) | 2 | odczyt |
ksef_draft_render_xml |
Podglad XML faktury | 2 | odczyt |
ksef_draft_lock |
Zablokuj draft do wysylki | 3 | akcja |
ksef_approval_request |
Zadanie zatwierdzenia | 3 | akcja |
ksef_approval_confirm |
Potwierdz zatwierdzenie | 3 | akcja |
ksef_send_invoice |
Wyslij fakture do KSeF | 3 | akcja |
ksef_audit_log |
Log audytowy operacji | 3 | odczyt |
ksef_correction_create |
Utworz korekte faktury | 4 | akcja |
ksef_batch_open |
Otworz sesje batch | 4 | akcja |
ksef_batch_send_part |
Wyslij czesc batch (ZIP) | 4 | akcja |
ksef_batch_close |
Zamknij sesje batch | 4 | akcja |
ksef_batch_status |
Status przetwarzania batch | 4 | odczyt |
ksef_token_generate |
Wygeneruj nowy token KSeF | 4 | akcja |
ksef_token_list |
Lista tokenow (metadata) | 4 | odczyt |
ksef_token_get |
Szczegoly tokena | 4 | odczyt |
ksef_token_revoke |
Uniewnij token | 4 | akcja |
Instalacja
Z repozytorium (development)
git clone https://github.com/gacabartosz/ksef-mcp.git
cd ksef-mcp
npm install
npm run build
Z npm (po publikacji)
npm install -g ksef-mcp
Konfiguracja
Skopiuj .env.example do .env i uzupelnij:
cp .env.example .env
Zmienne srodowiskowe
| Zmienna | Opis | Wymagana | Domyslnie |
|---|---|---|---|
KSEF_ENV |
Srodowisko: test / demo / prod |
Nie | test |
KSEF_NIP |
NIP podmiotu (10 cyfr) | Tak | - |
KSEF_TOKEN |
Token autoryzacyjny KSeF | Tak | - |
KSEF_KEY_PATH |
Sciezka do klucza prywatnego RSA | Nie | - |
KSEF_CERT_PATH |
Sciezka do certyfikatu | Nie | - |
KSEF_APPROVAL_MODE |
Tryb zatwierdzania: auto / manual |
Nie | manual |
KSEF_DATA_DIR |
Katalog danych (drafty, sesja, audit) | Nie | ~/.ksef-mcp |
KSEF_LOG_LEVEL |
Poziom logow: debug / info / warn / error |
Nie | info |
KSEF_RATE_LIMIT_PER_SECOND |
Limit zapytan na sekunde | Nie | 5 |
KSEF_RATE_LIMIT_PER_MINUTE |
Limit zapytan na minute | Nie | 200 |
KSEF_RATE_LIMIT_PER_HOUR |
Limit zapytan na godzine | Nie | 1000 |
Token KSeF — jak uzyskac
To jest najwazniejsza sekcja jesli chcesz przetestowac integracje z KSeF.
Srodowiska KSeF 2.0
| Srodowisko | Aplikacja Podatnika | API | API docs |
|---|---|---|---|
| PROD | ap.ksef.mf.gov.pl | https://api.ksef.mf.gov.pl/v2 |
docs |
| TEST | ap-test.ksef.mf.gov.pl | https://api-test.ksef.mf.gov.pl/v2 |
docs |
| DEMO | ap-demo.ksef.mf.gov.pl | https://api-demo.ksef.mf.gov.pl/v2 |
docs |
Portal informacyjny: ksef.podatki.gov.pl
Jak uzyskac token KSeF
Token KSeF mozna wygenerowac w Aplikacji Podatnika lub przez API.
Sposob 1: Przez Aplikacje Podatnika (najlatwiejszy)
- Wejdz na Aplikacje Podatnika:
- Produkcja: ap.ksef.mf.gov.pl
- Test: ap-test.ksef.mf.gov.pl
- Demo: ap-demo.ksef.mf.gov.pl
- Zaloguj sie Profilem Zaufanym, podpisem kwalifikowanym lub e-dowodem
- Przejdz do sekcji Tokeny i wygeneruj nowy token:
- Wybierz uprawnienia: odczyt faktur, wystawianie faktur, itp.
- Skopiuj token (wyswietlany tylko raz!)
- Wklej token do konfiguracji MCP (
KSEF_TOKEN)
Generowanie tokenow w Aplikacji Podatnika dostepne do 31 grudnia 2026 r.
Sposob 2: Przez API (po uwierzytelnieniu XAdES)
- Uwierzytelnij sie podpisem elektronicznym: uwierzytelnianie.md
- Wywolaj
POST /tokensz uprawnieniami i opisem - Dostepne uprawnienia:
InvoiceRead,InvoiceWrite,CredentialsRead,CredentialsManage,SubunitManage,EnforcementOperations,Introspection
Dokumentacja tokenow: tokeny-ksef.md
Przeplyw uwierzytelniania (API v2)
Gdy masz token, ksef-mcp automatycznie wykonuje caly flow:
1. POST /auth/challenge → { challenge, timestamp, timestampMs }
2. POST /auth/ksef-token → zaszyfruj token|timestampMs kluczem RSA-OAEP
→ { authenticationToken (JWT), referenceNumber }
3. GET /auth/{referenceNumber} → sprawdz status (polling)
4. POST /auth/token/redeem → Bearer: authToken → { accessToken, refreshToken }
5. Uzyj: Authorization: Bearer {accessToken} do wszystkich wywolan API
6. POST /auth/token/refresh → Bearer: refreshToken → nowy accessToken
Szczegoly: Proces uwierzytelniania KSeF 2.0
Przyklad konfiguracji
KSEF_ENV=prod
KSEF_NIP=5993112591
KSEF_TOKEN=twoj-wygenerowany-token-ksef
Wazne uwagi
- Wymagany polski IP — srodowiska KSeF sa chronione przez WAF i wymagaja polskiego adresu IP
- Produkcja vs Test — na produkcji faktury maja moc prawna! Do testow uzywaj srodowiska TEST
- Test — mozna uzyc fikcyjnych danych, dane sa okresowo usuwane
- Demo — logowanie prawdziwymi danymi (NIP z rejestru), ale faktury bez skutkow prawnych
- Klucze publiczne MF — pobierane automatycznie z
GET /security/public-key-certificates - Mozesz przelaczac srodowisko w runtime toolem
ksef_env_set(bez restartu MCP)
Praca bez dostepu do KSeF (tryb offline)
Wiele narzedzi dziala bez polaczenia z API KSeF:
| Narzedzie | Wymaga KSeF? | Opis |
|---|---|---|
ksef_draft_create |
Nie | Tworzenie szkicow faktur |
ksef_draft_validate |
Nie | Walidacja wg regul FA(3) |
ksef_draft_render_xml |
Nie | Podglad XML |
ksef_draft_get/list/update/delete |
Nie | Zarzadzanie szkicami |
ksef_correction_create |
Nie | Tworzenie korekty (klonowanie lokalne) |
ksef_env_info |
Nie | Informacje o konfiguracji |
ksef_audit_log |
Nie | Odczyt lokalnego logu audytowego |
ksef_auth_init |
Tak | Wymaga polaczenia z KSeF |
ksef_send_invoice |
Tak | Wymaga aktywnej sesji |
ksef_invoices_query |
Tak | Wymaga aktywnej sesji |
ksef_batch_* |
Tak | Wymaga aktywnej sesji |
ksef_token_* |
Tak | Wymaga aktywnej sesji |
Mozesz wiec tworzyc, walidowac i przegladac faktury bez tokena i dostepu do API.
Uzycie z Claude Desktop
Dodaj do ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) lub %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"ksef": {
"command": "node",
"args": ["/sciezka/do/ksef-mcp/dist/index.js"],
"env": {
"KSEF_ENV": "test",
"KSEF_NIP": "0000000001",
"KSEF_TOKEN": "twoj-token-ksef"
}
}
}
}
Po zapisaniu pliku zrestartuj Claude Desktop. Narzedzia KSeF pojawia sie w panelu bocznym.
Uzycie z Claude Code
Dodaj do ~/.claude.json (scope: user):
{
"mcpServers": {
"ksef": {
"command": "node",
"args": ["/sciezka/do/ksef-mcp/dist/index.js"],
"env": {
"KSEF_ENV": "test",
"KSEF_NIP": "0000000001",
"KSEF_TOKEN": "twoj-token-ksef"
}
}
}
}
Lub w .mcp.json w katalogu projektu (scope: project):
{
"mcpServers": {
"ksef": {
"command": "node",
"args": ["/sciezka/do/ksef-mcp/dist/index.js"],
"env": {
"KSEF_ENV": "test",
"KSEF_NIP": "0000000001",
"KSEF_TOKEN": "twoj-token-ksef"
}
}
}
}
Uzycie z claude.ai (Remote Connector)
ksef-mcp mozna podlaczyc jako remote MCP connector w claude.ai:
- Wejdz na claude.ai → Settings → Connectors → Add custom connector
- Wpisz:
- Name:
KSeF - Remote MCP server URL:
https://bartoszgaca.pl/ksef/mcp
- Name:
- Kliknij Add
Serwer odpowiada na Streamable HTTP transport (POST/GET/DELETE na /mcp).
Uwaga: Tokeny KSeF sa przechowywane server-side — claude.ai nie ma dostepu do sekretow.
Self-hosting HTTP transport
Mozesz postawic wlasna instancje:
git clone https://github.com/gacabartosz/ksef-mcp.git
cd ksef-mcp && npm install && npm run build
# Uruchom HTTP server
MCP_PORT=3400 KSEF_ENV=test node dist/http.js
Nginx reverse proxy:
location /ksef/ {
proxy_pass http://127.0.0.1:3400/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 300s;
}
Przeplyw wysylki faktury
Pelny przeplyw od szkicu do wysylki:
1. ksef_auth_init → Uwierzytelnij (challenge → ksef-token → redeem → JWT)
2. ksef_draft_create → Utworz szkic faktury
3. ksef_draft_validate → Zwaliduj wg regul FA(3)
4. ksef_draft_lock → Zablokuj i oblicz hash XML
5. ksef_approval_request → Zadaj zatwierdzenia
6. ksef_approval_confirm → Potwierdz (lub auto jesli KSEF_APPROVAL_MODE=auto)
7. ksef_send_invoice → Auto-otwiera sesje online, szyfruje AES-256-CBC, wysyla
8. ksef_invoice_status → Sprawdz status przetwarzania (sessionRef + invoiceRef)
9. ksef_audit_log → Przejrzyj log audytowy
Przeplyw korekty faktury
1. ksef_correction_create → Sklonuj wyslana fakture jako korekte (z powodem)
2. ksef_draft_update → Zmodyfikuj pozycje korekty
3. (dalej standardowy przeplyw: validate → lock → approval → send)
Przeplyw batch (wysylka zbiorcza, API v2)
1. ksef_batch_open → Otworz sesje batch (podaj file hash + parts) → pre-signed URLs
2. ksef_batch_send_part → Upload czesci na pre-signed URLs
3. ksef_batch_close → Zamknij sesje batch
4. ksef_batch_status → Sprawdz status przetwarzania (GET /sessions/{ref})
Tryb automatycznego zatwierdzania
Ustaw KSEF_APPROVAL_MODE=auto aby pominac reczne zatwierdzanie. W tym trybie ksef_approval_request automatycznie potwierdza approval.
Uwaga: Tryb automatyczny jest wygodny do testow, ale w produkcji zalecany jest tryb
manualdla pelnej kontroli.
Testowanie narzedzi (stdio)
Mozesz testowac narzedzia bezposrednio przez stdin/stdout:
Lista narzedzi
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | \
KSEF_NIP=0000000001 node dist/index.js 2>/dev/null | jq .
Informacje o srodowisku
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"ksef_env_info","arguments":{}}}' | \
KSEF_NIP=0000000001 KSEF_ENV=test node dist/index.js 2>/dev/null | jq .
Utworzenie szkicu faktury
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"ksef_draft_create","arguments":{"sellerNip":"0000000001","sellerName":"Firma Test Sp. z o.o.","sellerAddress":"ul. Testowa 1, 00-001 Warszawa","buyerNip":"9999999999","buyerName":"Klient Test S.A.","buyerAddress":"ul. Przykladowa 10, 00-002 Krakow","invoiceNumber":"FV/2026/001","issueDate":"2026-03-08","sellDate":"2026-03-08","currency":"PLN","items":[{"name":"Usluga programistyczna","quantity":1,"unitPrice":10000,"vatRate":23,"unit":"szt"}]}}}' | \
KSEF_NIP=0000000001 node dist/index.js 2>/dev/null | jq .
Walidacja szkicu
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"ksef_draft_validate","arguments":{"id":"ID-DRAFTU-Z-KROKU-WYZEJ"}}}' | \
KSEF_NIP=0000000001 node dist/index.js 2>/dev/null | jq .
Rate limiting
Wbudowany rate limiter chroni przed przekroczeniem limitow API KSeF:
- 5 zapytan/sekunde (domyslnie)
- 200 zapytan/minute (domyslnie)
- 1000 zapytan/godzine (domyslnie)
Limity mozna dostosowac zmiennymi srodowiskowymi:
KSEF_RATE_LIMIT_PER_SECOND=10
KSEF_RATE_LIMIT_PER_MINUTE=300
KSEF_RATE_LIMIT_PER_HOUR=2000
Dodatkowo:
- Odpowiedz 429 (Too Many Requests) — automatyczne odczekanie wg naglowka
Retry-Afteri ponowienie - Bledy 500/502/503 — automatyczne ponowienie z exponential backoff (max 3 proby)
- Bledy 400/401/403/440 — brak ponowien (bledy klienta)
Bezpieczenstwo
- Tokeny i klucze nigdy nie sa przekazywane do modelu AI — pozostaja w srodowisku serwera MCP
- NIP-y sa maskowane w logach (
123***90) - NIP-y w audit logu sa hashowane SHA-256
- Wszystkie logi ida na stderr (stdout zarezerwowany dla protokolu MCP)
- Sesja zapisywana z uprawnieniami
0600 - Dwufazowa wysylka — faktura musi byc zwalidowana, zablokowana i zatwierdzona przed wyslaniem
- Hash XML — weryfikowany na kazdym etapie (lock → approval → send)
- Approval TTL — zatwierdzenie wygasa po 15 minutach
- Audit trail — kazda operacja jest logowana w formacie JSONL
Srodowiska KSeF 2.0
| Srodowisko | Aplikacja Podatnika | API | Docs | Logowanie | Dane |
|---|---|---|---|---|---|
prod |
ap.ksef.mf.gov.pl | api.ksef.mf.gov.pl/v2 |
docs | Prawdziwe dane | Moc prawna! |
test |
ap-test.ksef.mf.gov.pl | api-test.ksef.mf.gov.pl/v2 |
docs | Fikcyjne dane | Okresowo usuwane |
demo |
ap-demo.ksef.mf.gov.pl | api-demo.ksef.mf.gov.pl/v2 |
docs | Prawdziwy NIP | Bez skutkow prawnych |
Portal informacyjny: ksef.podatki.gov.pl | Infolinia: 22 330 03 30 (pn-pt 8:00-18:00)
Roadmap
- Sprint 1: Uwierzytelnianie + odczyt faktur (auth, query, session)
- Sprint 2: Kryptografia + szkice faktur + walidacja FA(3)
- Sprint 3: Dwufazowa wysylka + audit trail
- Sprint 4: Korekty + batch + zarzadzanie tokenami
- Sprint 5: Rate limiting + dokumentacja + token testowy
- Sprint 6: Migracja na KSeF API v2 — nowe endpointy, JWT auth, sesje online/batch
Architektura
src/
index.ts — Punkt wejscia MCP (Server + StdioTransport)
mcp/
registry.ts — Rejestr narzedzi (registerTool, collectAll, dispatch)
auth-tools.ts — Narzedzia auth (4)
query-tools.ts — Narzedzia query (5)
draft-tools.ts — Narzedzia draft (7)
send-tools.ts — Narzedzia send (5)
correction-tools.ts — Narzedzia korekt (1)
batch-tools.ts — Narzedzia batch (4)
token-tools.ts — Narzedzia tokenow (4)
domain/
draft.ts — CRUD szkicow, obliczanie sum (+ pola korekcyjne)
validator.ts — Walidacja FA(3): NIP, daty, stawki VAT, sumy
xml-builder.ts — Generator XML FA(3) (fast-xml-parser)
approval.ts — Dwufazowe zatwierdzanie (TTL 15min)
audit.ts — Append-only JSONL audit log
correction.ts — Faktury korygujace (klonowanie wyslanej faktury)
infra/ksef/
client.ts — HTTP client (fetch + rate limit + retry + backoff)
auth.ts — Auth v2 (challenge → ksef-token → redeem → JWT + refresh)
crypto.ts — RSA-OAEP, AES-256-CBC, SHA-256, public key certs
session.ts — Sesja online (open, send encrypted, close, status, UPO)
batch.ts — Sesja batch (open → pre-signed URLs, upload, close, status)
token-client.ts — Zarzadzanie tokenami KSeF (POST/GET/DELETE /tokens)
rate-limiter.ts — Token-bucket rate limiter
utils/
config.ts — Zmienne srodowiskowe, URL-e, katalogi
logger.ts — Logi JSON na stderr z maskowaniem sekretow
errors.ts — toolResult/toolError, KsefApiError
Licencja
MIT -- zobacz LICENSE
Autor
Bartosz Gaca — bartoszgaca.pl | GitHub
Установка Ksef
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/gacabartosz/ksef-mcpFAQ
Ksef MCP бесплатный?
Да, Ksef MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Ksef?
Нет, Ksef работает без API-ключей и переменных окружения.
Ksef — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Ksef в Claude Desktop, Claude Code или Cursor?
Открой Ksef на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Stripe
Payments, customers, subscriptions
автор: Stripemalamutemayhem/unclick-agent-native-endpoints
110+ tools for AI agents spanning social media, finance, gaming, music, AU-specific services, and utilities. Zero-config local tools plus platform connectors. n
автор: malamutemayhemwhiteknightonhorse/APIbase
Unified API hub for AI agents with 56+ tools across travel (Amadeus, Sabre), prediction markets (Polymarket), crypto, and weather. Pay-per-call via x402 micropa
автор: whiteknightonhorsetrackerfitness729-jpg/sitelauncher-mcp-server
Deploy live HTTPS websites in seconds. Instant subdomains ($1 USDC) or custom .xyz domains ($10 USDC) on Base chain. Templates for crypto tokens and AI agent pr
Compare Ksef with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории finance
