Polecenia

Wpisz polecenie, na przykład „ile mam zapłacić”, „ile vatu w stawce 23” albo „pobierz pdf”. Odpowiedzi liczy kod aplikacji, bez sieci.

Wróć na stronę główną

Dla programistów: serwer MCP

Tekst przygotowany bez przeglądu prawnika · zaktualizowano 28.10.2026

Ostrzeżenie: wyniki widzi Twój klient MCP

Wyniki narzędzi widzi model Twojego klienta MCP na jego warunkach. Treść faktur jest oznaczona jako niezaufana.

Serwer MCP nie jest jeszcze publicznie dostępny. Pakiet sprawdzksef-mcp nie został opublikowany w rejestrze npm, więc polecenie npx z tej strony zgłosi błąd 404, dopóki go nie wydamy. Poniżej opisujemy, jak będzie działać (wersja w poleceniach: 0.0.1).

Serwer MCP pozwala Twojemu programowi AI (np. Claude Desktop) wywoływać funkcje SprawdźKSeF na plikach z Twojego komputera: otworzyć fakturę, sprawdzić jej zgodność ze schematem, porównać PDF z XML, znaleźć duplikaty, pobrać dane do przelewu. Serwer działa lokalnie i po pobraniu pakietu nie łączy się z siecią.

Zaktualizowano 28 października 2026 · informacja ogólna, nie porada podatkowa

1. Co to jest MCP

MCP (Model Context Protocol) to otwarty protokół, którym programy AI wywołują narzędzia dostarczane przez lokalne lub zdalne serwery. W tym wariancie serwer jest uruchamiany na Twoim komputerze i komunikuje się z klientem przez standardowe wejście i wyjście (stdio).1 Faktury czyta lokalny proces, a nie nasz serwer; nie mamy zresztą żadnego serwera, który je przetwarza.

Model AI Twojego klienta zobaczy wyniki wywołań narzędzi, więc dane z nich trafiają do niego na warunkach dostawcy tego klienta. Jeśli nie chcesz, żeby treść faktur opuszczała komputer, użyj klienta z modelem lokalnym albo klienta bez modelu (patrz punkt 8).

2. Wymagania

  • Node.js w wersji 22 lub nowszej. Do uruchomienia MCP Inspectora (punkt 8) potrzebujesz Node 22.19 lub nowszego.
  • Klient MCP, który obsługuje serwery stdio (np. Claude Desktop).1
  • Brak konta i klucza API od nas. Serwer jest darmowy, a koszt modelu AI zależy od klienta, którego używasz.

3. Uruchomienie

npx -y sprawdzksef-mcp@0.0.1 --allow /ścieżka/do/katalogu/z/fakturami

Zawsze podawaj dokładną wersję (na przykład @0.0.1, a nie @latest). Dzięki temu aktualizacja następuje wtedy, gdy ją wybierzesz. Aby zaktualizować, zmień numer wersji w poleceniu lub konfiguracji klienta. Pakiet ma być publikowany z poświadczeniem pochodzenia (npm provenance).

4. Konfiguracja klienta

Przykład dla Claude Desktop. Plik konfiguracyjny to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) albo %APPDATA%\Claude\claude_desktop_config.json (Windows); do otwarcia go służy w ustawieniach zakładka „Developer” i przycisk „Edit Config”.1 Po zmianie trzeba całkowicie zamknąć i uruchomić klienta ponownie.1

{
  "mcpServers": {
    "sprawdzksef": {
      "command": "npx",
      "args": ["-y", "sprawdzksef-mcp@0.0.1", "--allow", "/Users/anna/Faktury"]
    }
  }
}

Ścieżki w args muszą być bezwzględne.1 Wersję zamień na aktualną po wydaniu. Inne klienty z polem mcpServers używają podobnego formatu, ale sprawdź ich dokumentację.

5. Dostęp do plików

  • --allow <katalog>: serwer może czytać pliki z tego katalogu. Możesz podać kilka.
  • --allow-write <katalog>: serwer może zapisywać nowe pliki (PDF, CSV) tylko w tym katalogu, domyślnie wyłączone. Istniejących plików nie nadpisuje.
  • Serwer rozwiązuje ścieżki do rzeczywistych i odrzuca dowiązania symboliczne wychodzące z katalogu, fragmenty .. oraz ścieżki spoza dozwolonych katalogów.
  • Limity rozmiaru: 10 MB dla XML, 200 MB dla ZIP, 50 MB dla PDF.
  • Pakiet pobierzesz z rejestru npm przy pierwszym uruchomieniu (npx); później serwer działa bez sieci. Serwer nie wykonuje żądań sieciowych. Logi trafiają tylko na stderr i nie zawierają treści faktur.

6. Narzędzia

Wszystkie narzędzia poza render_pdf i export_table tylko czytają. Dwa wymienione zapisują plik i działają wyłącznie z opcją --allow-write.

NarzędzieCo robi
detect_documentrozpoznaje rodzaj pliku (FA(3), FA(2), UPO, PDF, ZIP, inny XML)
parse_invoicezwraca dane faktury (pozycje stronicowane po 200)
get_invoice_fieldzwraca jedno pole faktury z jego etykietą
summarize_invoicekrótkie podsumowanie: strony, kwoty, VAT wg stawek, termin, numer KSeF
get_payment_detailsodbiorca, rachunek z danych płatności, kwota, termin, tytuł przelewu z numerem KSeF, ostrzeżenia
validate_ksef_numbersprawdza długość, wzorzec i sumę kontrolną numeru KSeF
validate_invoicesprawdza zgodność ze schematem, kontrole techniczne KSeF i sumy
explain_errorwyjaśnia po polsku kod błędu z walidacji
explain_fieldobjaśnia pole lub adnotację z odnośnikiem do źródła
build_qr_code_ibuduje link i obraz kodu QR typu I dla faktury
decode_qrodczytuje kody QR z obrazu lub PDF
verify_qrporównuje kod QR z plikiem; wynik zawsze z zastrzeżeniem, że to nie potwierdza obecności faktury w KSeF
find_duplicateswykrywa duplikaty w zestawie plików
match_pdf_xmldopasowuje PDF do XML i wskazuje rozbieżności
batch_summarytabela zbiorcza z filtrami i sumami po walutach
export_tablezapisuje tabelę do CSV (wymaga --allow-write; XLSX planowany później)
render_pdfzapisuje wizualizację faktury jako PDF z kodem QR (wymaga --allow-write)

Funkcje związane z oknem przeglądarki (np. otwarcie strony MF, druk, nawigacja, wpisanie numeru KSeF) nie są dostępne w MCP. Numer KSeF przekazujesz wtedy jako argument narzędzia.

Planowane później: porównanie dwóch faktur (compare_invoices), interfejs wiersza poleceń (CLI) i, za flagą, udostępnianie narzędzi agentowi w przeglądarce (WebMCP). Zdalny serwer MCP rozważamy tylko wtedy, gdy znajdzie się hosting w planie darmowym bez karty. Jeśli nie, narzędzia zostaną wyłącznie lokalne.

7. Bezpieczeństwo

  • Treść faktury to dane niezaufane. Nazwy, opisy i adresy wpisuje wystawca faktury i może on umieścić tam tekst przypominający polecenie dla AI. W odpowiedziach oznaczamy takie pola znacznikiem untrusted: true. Skonfiguruj klienta tak, aby nie wykonywał poleceń z treści faktury, i zwracaj uwagę na prośby o dodatkowe działania.
  • Najmniejsze uprawnienia. Udostępniaj tylko katalogi z fakturami. Zapis włączaj tylko wtedy, gdy go potrzebujesz.
  • Numer rachunku do przelewu pochodzi wyłącznie z danych płatności faktury. Jeśli w treści jest inny numer konta, narzędzie get_payment_details zwróci ostrzeżenie. Zawsze potwierdź rachunek u sprzedawcy innym kanałem, zanim zrobisz przelew.
  • Odpowiedzialność za działania agenta AI leży po stronie klienta, którego używasz.

8. Wypróbowanie bez modelu AI

Serwer możesz sprawdzić w MCP Inspector, oficjalnym darmowym narzędziu projektu MCP do testowania serwerów. Uruchamia się je przez npx i wymaga Node 22.19.0 lub nowszego.2 Pozwala ono wywołać narzędzia ręcznie, bez modelu AI i bez konta:

npx @modelcontextprotocol/inspector npx -y sprawdzksef-mcp@0.0.1 --allow /ścieżka/do/faktur

9. Przykłady poleceń dla AI

Wynik zależy od modelu klienta; poniższe zdania są przykładami, nie gwarancją.

  • „Sprawdź faktury z folderu Faktury i wskaż duplikaty.”
  • „Czy PDF faktury X zgadza się z jej XML?”
  • „Ile, na jakie konto i z jakim tytułem mam zapłacić za fakturę Y?”
  • „Zapisz tabelę wszystkich faktur do CSV.” (wymaga --allow-write)

Licencja

Treść tej strony: licencja CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/deed.pl), autor: SprawdźKSeF (sprawdzksef.pl).

Źródła

  1. Model Context Protocol, „Connect to local MCP servers”: lokalizacja pliku claude_desktop_config.json (macOS i Windows), format mcpServers z command i args, ścieżki bezwzględne, konieczność ponownego uruchomienia klienta; serwery stdio uruchamiane lokalnie. https://modelcontextprotocol.io/docs/develop/connect-local-servers (dostęp 2026-10-28). wróć, 2, 3, 4, 5

  2. Model Context Protocol, „MCP Inspector”: npx @modelcontextprotocol/inspector, wymaga Node 22.19.0 lub nowszego, narzędzie do testowania i debugowania serwerów MCP. https://modelcontextprotocol.io/docs/tools/inspector (dostęp 2026-10-28). wróć