Skip to main content
Glama
ksef-mcp
by gacabartosz

ksef-mcp

npm license KSeF Node 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

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


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 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)

  1. Wejdz na Aplikacje Podatnika:

  2. Zaloguj sie Profilem Zaufanym, podpisem kwalifikowanym lub e-dowodem

  3. Przejdz do sekcji Tokeny i wygeneruj nowy token:

    • Wybierz uprawnienia: odczyt faktur, wystawianie faktur, itp.

    • Skopiuj token (wyswietlany tylko raz!)

  4. 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)

  1. Uwierzytelnij sie podpisem elektronicznym: uwierzytelnianie.md

  2. Wywolaj POST /tokens z uprawnieniami i opisem

  3. 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:

  1. Wejdz na claude.ai → Settings → Connectors → Add custom connector

  2. Wpisz:

    • Name: KSeF

    • Remote MCP server URL: https://bartoszgaca.pl/ksef/mcp

  3. 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 manual dla 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-After i 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

Available Tools

32 tools
ksef_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_logA
Read-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_statusA
Read-only

Sprawdź status aktywnej sesji KSeF — czy jest aktywna, tokeny, ważność.

Inputs: no named parameters.

ksef_auth_terminateA
Destructive

Zakończ aktywną sesję KSeF (unieważnij refresh token). Operacja nieodwracalna.

Inputs: no named parameters.

ksef_batch_closeA
Destructive

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_partA
Destructive

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_statusA
Read-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_deleteA
Destructive

Usuń draft faktury. Można usunąć tylko drafty w statusie draft lub error.

Inputs: id (required).

ksef_draft_getA
Read-only

Pobierz draft faktury po ID. Zwraca pełne dane draftu z obliczonymi kwotami.

Inputs: id (required).

ksef_draft_listA
Read-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_xmlA
Read-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_infoA
Read-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_getA
Read-only

Pobierz fakturę XML po numerze KSeF. Wymaga aktywnej sesji. Zwraca pełny XML faktury.

Inputs: ksefNumber (required).

ksef_invoices_queryA
Read-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_statusA
Read-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_xmlA
Read-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_invoiceA
Destructive

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_getA
Read-only

Pobierz szczegóły tokena KSeF. Wymaga aktywnej sesji. Zwraca metadane — nigdy wartość tokena.

Inputs: referenceNumber (required).

ksef_token_listA
Read-only

Wyświetl listę tokenów KSeF. Wymaga aktywnej sesji. Zwraca metadane — nigdy wartości tokenów.

Inputs: pageSize, continuationToken.

ksef_token_revokeA
Destructive

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_downloadA
Read-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

    A3.6/5.0

    Scored across 32 tools

    Disambiguation3/5

    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.

    Naming Consistency4/5

    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.

    Tool Count2/5

    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.

    Completeness4/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables 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