MCP — integracja z asystentami AI#
KSeFka obsługuje protokół MCP (Model Context Protocol) — standard pozwalający asystentom AI (Claude, Cursor i innym) bezpośrednio tworzyć faktury, zarządzać kontrahentami i pobierać dane bez opuszczania czatu.
Wymagania#
- Zainstalowana aplikacja KSeFka
- Skonfigurowana firma (Ustawienia → Firmy)
- Wybrane środowisko KSeF (test / demo / produkcja)
Uruchomienie serwera#
Serwer MCP uruchamia się przez CLI jako proces stdio — klient AI zarządza jego cyklem życia automatycznie:
ksefka mcp
Domyślnie serwer startuje w środowisku zapisanym w preferencjach aplikacji (ostatnio wybranym w sidebarze). Możesz nadpisać środowisko startowe flagą --env:
ksefka mcp --env test
Szybsza konfiguracja: Wklej do czatu z AI: https://ksefka.com/llms.txt — asystent sam się skonfiguruje i wyjaśni jak zacząć.
Konfiguracja Claude Desktop#
Otwórz plik konfiguracyjny Claude Desktop (claude_desktop_config.json) i dodaj wpis:
{
"mcpServers": {
"ksefka": {
"command": "ksefka",
"args": ["mcp"]
}
}
}Lokalizacja pliku konfiguracyjnego:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Konfiguracja Cursor#
W ustawieniach Cursor przejdź do MCP Servers i dodaj:
{
"ksefka": {
"command": "ksefka",
"args": ["mcp"]
}
}Przełączanie środowiska#
Jedna sesja serwera MCP może swobodnie przełączać się między środowiskami KSeF (test / demo / produkcja) bez restartu klienta AI. Dwa narzędzia:
get_environment— zwraca aktualnie aktywne środowisko, ID i nazwę aktywnej firmy. Wywołaj przed każdą mutacją, żeby mieć pewność gdzie pracujesz.switch_environment— zmienia aktywne środowisko natest,demolubproduction. Zmiana jest sesyjna — po restarcie klienta serwer wraca do środowiska startowego: wartości flagi--env, a jeśli nie została podana, do środowiska zapisanego w preferencjach aplikacji desktopowej. Zmiany przezswitch_environmentnie są utrwalane.
⚠️ Gdy aktywne środowisko to production, asystent AI ma w instrukcjach zadanie potwierdzać z Tobą każdą operację mutującą (tworzenie faktur, wysyłanie do KSeF, zmiany kontrahentów).
Uwaga: flaga --company-id w CLI dotyczy wyłącznie środowiska startowego. Po switch_environment serwer odczytuje aktywną firmę z preferencji nowego środowiska — ID firm są różne w każdej bazie.
Przełączanie firmy#
Jeśli w danym środowisku masz skonfigurowanych kilka firm, sesja MCP może przełączać się między nimi bez restartu klienta AI. Dwa narzędzia:
list_companies— zwraca listę firm dostępnych w bazie danych aktualnie aktywnego środowiska. Każdy element maid,company_name,niporaz flagęis_session_activewskazującą firmę używaną przez bieżącą sesję MCP. Tylko aktywne środowisko — żeby zobaczyć firmy z innego, najpierw wywołajswitch_environment.switch_company— zmienia aktywną firmę w obrębie bieżącego środowiska. Parametrcompany_id(zlist_companies). Zmiana jest sesyjna — nie modyfikuje preferencji aplikacji desktopowej i nie zmienia środowiska. Po restarcie klienta lub poswitch_environmentaktywna firma wraca do firmy zapisanej w preferencjach środowiska.
⚠️ Gdy aktywne środowisko to production, asystent AI powinien potwierdzić z Tobą zmianę firmy przed wywołaniem switch_company. Każda kolejna mutacja zapisze się dla nowo wybranej firmy.
Reset przy zmianie środowiska: wywołanie switch_environment z innym środowiskiem zawsze resetuje aktywną firmę do firmy z preferencji tego środowiska. Jeśli wcześniej zmieniłeś firmę przez switch_company, ta zmiana nie propaguje się do innego środowiska i nie jest zachowywana po powrocie do poprzedniego — każde wejście do innego środowiska zaczyna się od jego domyślnej firmy. Wyjątek: wywołanie switch_environment ze środowiskiem, w którym już jesteś, jest no-op'em i nie resetuje firmy (zachowuje aktualny switch_company).
Dostępne narzędzia#
| Narzędzie | Opis |
|---|---|
| Sesja | |
get_environment | Zwraca aktywne środowisko KSeF, ID i nazwę aktywnej firmy |
switch_environment | Przełącza aktywne środowisko (test / demo / production) bez restartu — sesyjnie. Resetuje aktywną firmę do firmy z preferencji nowego środowiska |
list_companies | Lista firm dostępnych w bazie aktywnego środowiska, z oznaczeniem aktywnej |
switch_company | Przełącza aktywną firmę w obrębie bieżącego środowiska — sesyjnie, bez zmiany środowiska |
| Faktury | |
list_invoices | Lista faktur z filtrowaniem po kierunku, miesiącu, statusie, kontrahencie i wartości |
get_invoice | Szczegóły faktury wraz z pozycjami |
create_invoice | Utwórz fakturę (VAT, korygującą, zaliczkową, rozliczeniową) — dane jako obiekt JSON |
finalize_invoice | Przenieś szkic do stanu "gotowa do wysłania do KSeF" |
unfinalize_invoice | Cofnij finalizację faktury z powrotem do szkicu |
copy_invoice | Skopiuj fakturę jako nowy szkic z dzisiejszą datą |
mark_invoice_paid | Oznacz fakturę jako opłaconą lub nieopłaconą (lokalna adnotacja użytkownika, nie pole KSeF/XML) |
export_invoice | Eksportuj fakturę do PDF i/lub XML (PRO). PDF zawiera kod QR, gdy faktura ma numer KSeF lub certyfikat offline |
open_invoice | Otwórz fakturę w aplikacji desktopowej do podglądu lub edycji |
| Załączniki | |
attach_file | Dodaj załącznik do faktury (pdf, png, jpg, jpeg, webp, gif, bmp, tiff). Pierwszy załącznik faktury otrzymanej jest darmowy; każdy kolejny załącznik faktury otrzymanej oraz dowolny załącznik faktury wystawionej wymagają licencji PRO |
get_attachments | Lista załączników faktury |
remove_attachment | Usuń załącznik faktury |
| Faktury cykliczne | |
list_recurring | Lista harmonogramów faktur cyklicznych aktywnej firmy |
get_recurring | Szczegóły harmonogramu faktury cyklicznej |
create_recurring_from_invoice | Utwórz harmonogram faktury cyklicznej na podstawie istniejącej faktury — kopiuje pozycje, kontrahenta i ustawienia płatności |
pause_recurring | Wstrzymaj harmonogram faktury cyklicznej |
resume_recurring | Wznów wstrzymany harmonogram faktury cyklicznej |
generate_recurring | Wygeneruj kolejne wystąpienie faktury cyklicznej teraz, niezależnie od daty |
process_recurring | Przetwórz wszystkie zaległe harmonogramy — generuje faktury dla wszystkich, których data następnego wystąpienia już minęła |
delete_recurring | Usuń harmonogram faktury cyklicznej |
| Kontrahenci | |
list_contractors | Lista kontrahentów z wyszukiwaniem po nazwie lub NIP |
get_contractor | Pełne dane kontrahenta |
create_contractor | Dodaj nowego kontrahenta |
update_contractor | Zaktualizuj dane kontrahenta |
delete_contractor | Usuń (dezaktywuj) kontrahenta |
lookup_company_by_nip | Pobierz dane firmy z rejestru GUS BIR1 na podstawie NIP |
| Produkty | |
list_products | Lista produktów/usług z katalogu |
get_product | Szczegóły produktu |
create_product | Dodaj produkt do katalogu |
| Raporty i kursy walut | |
monthly_summary | Podsumowanie miesięczne: suma przychodów i kosztów |
dashboard_stats | Statystyki bieżącego miesiąca |
fetch_nbp_rate | Kurs średni NBP dla waluty na dany dzień |
| Szablony i KSeF | |
list_templates | Lista szablonów faktur |
ksef_authorize | Zapisz token autoryzacyjny KSeF |
Przykład#
Wpisujesz do czatu:
AI kolejno wywołuje:
list_contractors— szuka "Acme" w bazie kontrahentówcreate_invoice— tworzy fakturę: kierunekissued, 1 pozycja (10 h × 200 zł, VAT 23%), kontrahent z poprzedniego kroku, termin płatności +14 dniopen_invoice— otwiera fakturę w aplikacji do podglądu i ewentualnej korekty
Efekt: w KSeFce pojawia się gotowy szkic faktury na kwotę 2460 zł brutto (2000 zł netto + 460 zł VAT). Możesz go przejrzeć, poprawić i wysłać do KSeF — bez ręcznego wypełniania formularza.
Serwer MCP zawiera wbudowane instrukcje dla AI dotyczące faktur korygujących, zaliczkowych, rozliczeniowych oraz faktur w walutach obcych z automatycznym kursem NBP.