ksef-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ksef-mcp rozpocznij sesję KSeF dla NIP 1234567890"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ksef-mcp
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 |
| Srodowisko, NIP, status sesji | 1 | odczyt |
| Rozpocznij sesje KSeF (token) | 1 | akcja |
| Status aktywnej sesji | 1 | odczyt |
| Zakoncz sesje | 1 | akcja |
| Wyszukaj faktury po datach | 1 | odczyt |
| Pobierz metadane faktury | 1 | odczyt |
| Status przetwarzania faktury | 1 | odczyt |
| Pobierz XML faktury FA(3) | 1 | odczyt |
| Pobierz UPO sesji | 1 | odczyt |
| Utworz szkic faktury | 2 | akcja |
| Pobierz szkic faktury | 2 | odczyt |
| Lista szkicow | 2 | odczyt |
| Aktualizuj szkic | 2 | akcja |
| Usun szkic | 2 | akcja |
| Waliduj szkic wg FA(3) | 2 | odczyt |
| Podglad XML faktury | 2 | odczyt |
| Zablokuj draft do wysylki | 3 | akcja |
| Zadanie zatwierdzenia | 3 | akcja |
| Potwierdz zatwierdzenie | 3 | akcja |
| Wyslij fakture do KSeF | 3 | akcja |
| Log audytowy operacji | 3 | odczyt |
| Utworz korekte faktury | 4 | akcja |
| Otworz sesje batch | 4 | akcja |
| Wyslij czesc batch (ZIP) | 4 | akcja |
| Zamknij sesje batch | 4 | akcja |
| Status przetwarzania batch | 4 | odczyt |
| Wygeneruj nowy token KSeF | 4 | akcja |
| Lista tokenow (metadata) | 4 | odczyt |
| Szczegoly tokena | 4 | odczyt |
| Uniewnij token | 4 | akcja |
Related MCP server: Polish Business Intelligence MCP
Instalacja
Z repozytorium (development)
git clone https://github.com/gacabartosz/ksef-mcp.git
cd ksef-mcp
npm install
npm run buildZ npm (po publikacji)
npm install -g ksef-mcpKonfiguracja
Skopiuj .env.example do .env i uzupelnij:
cp .env.example .envZmienne srodowiskowe
Zmienna | Opis | Wymagana | Domyslnie |
| Srodowisko: | Nie |
|
| NIP podmiotu (10 cyfr) | Tak | - |
| Token autoryzacyjny KSeF | Tak | - |
| Sciezka do klucza prywatnego RSA | Nie | - |
| Sciezka do certyfikatu | Nie | - |
| Tryb zatwierdzania: | Nie |
|
| Katalog danych (drafty, sesja, audit) | Nie |
|
| Poziom logow: | Nie |
|
| Limit zapytan na sekunde | Nie |
|
| Limit zapytan na minute | Nie |
|
| Limit zapytan na godzine | Nie |
|
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 |
| ||
TEST |
| ||
DEMO |
|
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 opisemDostepne 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 accessTokenSzczegoly: Proces uwierzytelniania KSeF 2.0
Przyklad konfiguracji
KSEF_ENV=prod
KSEF_NIP=5993112591
KSEF_TOKEN=twoj-wygenerowany-token-ksefWazne 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-certificatesMozesz 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 |
| Nie | Tworzenie szkicow faktur |
| Nie | Walidacja wg regul FA(3) |
| Nie | Podglad XML |
| Nie | Zarzadzanie szkicami |
| Nie | Tworzenie korekty (klonowanie lokalne) |
| Nie | Informacje o konfiguracji |
| Nie | Odczyt lokalnego logu audytowego |
| Tak | Wymaga polaczenia z KSeF |
| Tak | Wymaga aktywnej sesji |
| Tak | Wymaga aktywnej sesji |
| Tak | Wymaga aktywnej sesji |
| 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:
KSeFRemote MCP server URL:
https://bartoszgaca.pl/ksef/mcp
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.jsNginx 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 audytowyPrzeplyw 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=2000Dodatkowo:
Odpowiedz 429 (Too Many Requests) — automatyczne odczekanie wg naglowka
Retry-Afteri ponowienieBledy 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
0600Dwufazowa 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 |
|
| Prawdziwe dane | Moc prawna! | ||
|
| Fikcyjne dane | Okresowo usuwane | ||
|
| 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, KsefApiErrorLicencja
MIT -- zobacz LICENSE
Autor
Bartosz Gaca — bartoszgaca.pl | GitHub
Available Tools
32 toolsksef_approval_confirmA
Potwierdź żądanie zatwierdzenia (approval). Weryfikuje, że approval jest aktywne, nie wygasło, i hash się zgadza. Po potwierdzeniu faktura jest gotowa do wysłania.
Inputs: approvalId (required).
ksef_approval_requestA
Utwórz żądanie zatwierdzenia (approval) dla zablokowanego draftu. Approval musi być potwierdzone przed wysłaniem faktury do KSeF. Wygasa po 15 minutach. Jeśli KSEF_APPROVAL_MODE=auto, zatwierdzenie jest automatyczne.
Inputs: id (required).
ksef_audit_logARead-only
Wyświetl ostatnie wpisy z logu audytowego. Log zawiera wszystkie operacje: tworzenie draftów, zatwierdzenia, wysyłki. NIP-y są zahashowane (SHA-256) dla bezpieczeństwa.
Inputs: limit.
ksef_auth_initA
Rozpocznij sesję KSeF używając tokena autoryzacyjnego (API v2). Flow: challenge → ksef-token → token/redeem → JWT access + refresh. NIP, token i środowisko można podać jako argumenty lub ustawić w env.
Inputs: nip, token, environment.
ksef_auth_statusARead-only
Sprawdź status aktywnej sesji KSeF — czy jest aktywna, tokeny, ważność.
Inputs: no named parameters.
ksef_auth_terminateADestructive
Zakończ aktywną sesję KSeF (unieważnij refresh token). Operacja nieodwracalna.
Inputs: no named parameters.
ksef_batch_closeADestructive
Zamknij sesję batch po wysłaniu wszystkich części. Wymaga aktywnej sesji KSeF.
Inputs: referenceNumber (required).
ksef_batch_openA
Otwórz sesję batch do wysyłania wielu faktur jednocześnie (API v2). Wymaga aktywnej sesji KSeF. Podaj rozmiar pliku, hash i listę części. Zwraca numer referencyjny i pre-signed URLs do uploadu części.
Inputs: fileHash (required), fileSize (required), fileParts (required), formCode.
ksef_batch_send_partADestructive
Wyślij część paczki na pre-signed URL uzyskany z ksef_batch_open. Wymaga aktywnej sesji KSeF i otwartej sesji batch.
Inputs: payload (required), uploadUrl (required), ordinalNumber (required), referenceNumber (required), +2 more.
ksef_batch_statusARead-only
Sprawdź status sesji batch (lub online). Wymaga aktywnej sesji KSeF.
Inputs: referenceNumber (required).
ksef_correction_createA
Utwórz korektę faktury na podstawie istniejącego draftu. Oryginalna faktura musi być wysłana do KSeF (mieć ksefReferenceNumber). Tworzy nowy draft z danymi oryginału, statusem 'draft' i powiązaniem z oryginałem.
Inputs: originalDraftId (required), correctionReason (required).
ksef_correction_zeroA
Utwórz korektę zerującą na podstawie danych faktury z KSeF. Zeruje wszystkie pozycje (ilość → 0). Nie wymaga lokalnego draftu oryginału.
Inputs: items (required), buyerNip (required), buyerName (required), issueDate (required), +11 more.
ksef_draft_createA
Utwórz nowy draft faktury. Draft jest zapisywany lokalnie i może być edytowany przed walidacją i wysłaniem do KSeF. Oblicza automatycznie kwoty netto/VAT/brutto.
Inputs: items (required), buyerNip (required), buyerName (required), issueDate (required), +7 more.
ksef_draft_deleteADestructive
Usuń draft faktury. Można usunąć tylko drafty w statusie draft lub error.
Inputs: id (required).
ksef_draft_getARead-only
Pobierz draft faktury po ID. Zwraca pełne dane draftu z obliczonymi kwotami.
Inputs: id (required).
ksef_draft_listARead-only
Wyświetl listę wszystkich draftów faktur. Opcjonalnie filtruj po statusie.
Inputs: status.
ksef_draft_lockA
Zablokuj draft do wysłania. Renderuje XML, oblicza hash SHA-256, ustawia status na 'locked'. Draft musi być wcześniej zwalidowany (ksef_draft_validate). Po zablokowaniu nie można go edytować.
Inputs: id (required).
ksef_draft_render_xmlARead-only
Wygeneruj podgląd XML faktury w formacie FA(3) z draftu. Nie wysyła do KSeF — tylko renderuje XML. Draft powinien być wcześniej zwalidowany (ksef_draft_validate).
Inputs: id (required).
ksef_draft_updateA
Zaktualizuj draft faktury (patch). Można zmienić dowolne pola: dane sprzedawcy/nabywcy, numer, daty, pozycje. Przelicza kwoty automatycznie. Nie można edytować locked/sent.
Inputs: id (required), items, buyerNip, currency, +8 more.
ksef_draft_validateA
Zwaliduj draft faktury wg reguł FA(3). Sprawdza: NIP (suma kontrolna), wymagane pola, poprawność dat, stawki VAT, spójność kwot. Jeśli walidacja przejdzie, status zmienia się na 'validated'.
Inputs: id (required).
ksef_env_infoARead-only
Pokaż aktualne środowisko KSeF, zamaskowany NIP i status sesji. Nie wymaga logowania.
Inputs: no named parameters.
ksef_env_setA
Zmień środowisko KSeF (test/demo/prod), NIP lub token w runtime. Pozwala przełączać się między produkcją a testami bez restartu.
Inputs: environment (required), nip, token.
ksef_invoice_getARead-only
Pobierz fakturę XML po numerze KSeF. Wymaga aktywnej sesji. Zwraca pełny XML faktury.
Inputs: ksefNumber (required).
ksef_invoices_queryARead-only
Wyszukaj faktury w KSeF po zakresie dat. Wymaga aktywnej sesji (ksef_auth_init). Zwraca metadane faktur: numer KSeF, NIP, kwota, data.
Inputs: dateFrom (required), dateTo, dateType, pageSize, +2 more.
ksef_invoice_statusARead-only
Sprawdź status przetwarzania faktury w sesji KSeF. Wymaga aktywnej sesji. Potrzebne: numer referencyjny sesji i numer referencyjny faktury.
Inputs: invoiceReferenceNumber (required), sessionReferenceNumber (required).
ksef_invoice_xmlARead-only
Pobierz XML faktury z KSeF po numerze KSeF (format FA(3)). Alias dla ksef_invoice_get. Wymaga aktywnej sesji.
Inputs: ksefNumber (required).
ksef_send_invoiceADestructive
Wyślij zablokowaną i zatwierdzoną fakturę do KSeF. Wymaga: aktywnej sesji KSeF, draftu w statusie 'locked', potwierdzonego approval z pasującym hashem XML. Szyfruje XML (AES-256-CBC + RSA-OAEP) i wysyła do API KSeF.
Inputs: draftId (required).
ksef_token_generateA
Wygeneruj nowy token KSeF. Wymaga aktywnej sesji KSeF. Zwraca numer referencyjny — NIE wartość tokena (nigdy nie eksponujemy sekretów). Token jest dostarczany przez KSeF osobnym kanałem.
Inputs: description (required), permissions (required).
ksef_token_getARead-only
Pobierz szczegóły tokena KSeF. Wymaga aktywnej sesji. Zwraca metadane — nigdy wartość tokena.
Inputs: referenceNumber (required).
ksef_token_listARead-only
Wyświetl listę tokenów KSeF. Wymaga aktywnej sesji. Zwraca metadane — nigdy wartości tokenów.
Inputs: pageSize, continuationToken.
ksef_token_revokeADestructive
Unieważnij token KSeF. OPERACJA NIEODWRACALNA. Wymaga aktywnej sesji i potwierdzonego approval. Token po unieważnieniu nie może być przywrócony.
Inputs: referenceNumber (required).
ksef_upo_downloadARead-only
Pobierz UPO (Urzędowe Poświadczenie Odbioru) dla faktury z sesji KSeF. UPO potwierdza przyjęcie faktury przez system. Wymaga aktywnej sesji.
Inputs: sessionReferenceNumber (required), invoiceReferenceNumber.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 32 tools
Most tools are clearly separated by resource and action, but ksef_invoice_xml is an explicit alias for ksef_invoice_get, creating a duplicate path to the same operation. Additionally, ksef_env_set and ksef_auth_init both accept NIP/token/environment, and ksef_batch_status overlaps somewhat with session status checks.
The dominant pattern is ksef_<resource>_<action>, which is used consistently across drafts, tokens, batches, and auth. Minor deviations include ksef_send_invoice reversing the order, ksef_invoices_query using a plural while ksef_invoice_get uses singular, and ksef_audit_log being a noun phrase rather than an action.
With 32 tools, the surface is heavy and exceeds the 25-tool threshold where a toolkit becomes difficult to navigate. The draft lifecycle alone accounts for 8 tools, and invoice retrieval has 4 tools including a redundant alias, making the count feel inflated even though each cluster is individually relevant.
The server covers the full KSeF invoice lifecycle well: draft creation through validation, locking, approval, sending, retrieval, corrections, batch sending, token management, and auditing. Minor gaps exist, such as no explicit approval rejection/cancellation tool and limited invoice search filters, but they are workable within the existing flow.
Maintenance
Related MCP Connectors
Poland KSeF 2.0 national e-invoices for AI agents: issue FA(3) faktura, query by KSeF number.
Polish e-invoices (faktury) in KSeF: clients, products, drafts, validation and confirmed issuing.
Polish invoicing and KSeF e-invoicing: issue, send, settle and file a company's documents
Create EU-compliant invoices, manage clients and download PDFs from your AI assistant.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceIntegrates the inFakt API with Claude AI, enabling management of invoices, clients, products, and payments through natural language in Polish.2-
- AlicenseAqualityDmaintenanceProvides AI agents with real-time access to Polish official data: VAT whitelist for company verification and NBP exchange rates, enabling checks on VAT status, company details, and currency conversion without API keys.5MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to issue Poland structured e-invoices (faktura ustrukturyzowana) through KSeF 2.0, handling FA(3) XML building, encrypted session flow, and KSeF number retrieval.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to verify Polish companies and EU VAT numbers against official government registries using 9 tools, with no API key and optional plain REST access.MIT