Skip to main content
Glama
Dev10x-Guru
by Dev10x-Guru
README.md
# ksef-mcp

Lokalny serwer MCP do KSeF (Krajowy System e-Faktur), zbudowany przez Dev10x.Guru.

Uruchamiany na własnej maszynie przez `uvx` — dane faktur nie przechodzą przez żadną
usługę pośredniczącą.

## Stan projektu

Wczesny etap. Obecnie repozytorium zawiera wyłącznie szkielet pakietu i jedno narzędzie
diagnostyczne (`server_info`). Narzędzia do wyszukiwania i pobierania faktur nie są
jeszcze zaimplementowane — model domenowy jest w trakcie ustalania.

## Wymagania

- Python 3.13.14 — pin dokładny, nie dolna granica (`.python-version`
  oraz `requires-python` w `pyproject.toml`). `uv` pobierze ten interpreter
  sam, więc nie trzeba instalować go ręcznie.

  Zasada obowiązuje w całym projekcie: przypinamy konkretne wersje, nigdy
  zakresy — także zależności. Rozjazd interpretera pociąga rozjazd
  rozwiązanych wersji bibliotek, a `uvx` i tak rozwiązuje wersję za nas.
- [`uv`](https://docs.astral.sh/uv/)

## Instalacja i uruchomienie

Serwer komunikuje się przez stdio i jest uruchamiany przez klienta MCP, nie ręcznie.

Konfiguracja w kliencie MCP (`.mcp.json`, `claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "ksef": {
      "command": "uvx",
      "args": ["ksef-mcp"]
    }
  }
}
```

Aby uruchomić wersję z lokalnego katalogu roboczego zamiast z PyPI:

```json
{
  "mcpServers": {
    "ksef": {
      "command": "uvx",
      "args": ["--from", "/ścieżka/do/ksef-mcp", "ksef-mcp"]
    }
  }
}
```

## Rozwój

`make help` wypisuje wszystkie dostępne komendy.

```bash
make install              # uv sync --group dev
make test                 # uv run pytest z pokryciem
make lint                 # pre-commit na całym drzewie
make upgrade-requirements # uv lock --upgrade
make build-requirements   # eksport do requirements/*.txt
```

Linting i formatowanie idą wyłącznie przez pre-commit — to ta sama ścieżka,
która blokuje commit, więc lokalny przebieg nie rozjeżdża się z hookiem.

Pokrycie testami jest egzekwowane na poziomie 100% (`fail_under` w `pyproject.toml`),
więc lokalny przebieg i CI stosują identyczny próg.

## Bezpieczeństwo danych

Token KSeF nie powinien trafiać do pliku konfiguracyjnego klienta MCP — te pliki są
zwykłym tekstem na dysku. Docelowo serwer będzie czytał poświadczenia z keyringu
systemowego.

## Licencja

AGPL-3.0-only. Pełny tekst w pliku [LICENSE](LICENSE).

TDQS

A3.8/5.0

Scored across 1 tool

Disambiguation5/5

With only a single tool there is no possibility of overlap or misselection; server_info has one clear purpose.

Naming Consistency5/5

The lone tool uses a clean snake_case noun-style name, so no convention conflicts exist within the set.

Tool Count2/5

A KSeF (Polish e-invoicing) connector exposing only a version-reporting tool is far too thin; one trivial tool cannot represent the domain's scope.

Completeness1/5

There are no tools for the core invoicing lifecycle (submitting, fetching, or querying invoices/sessions), leaving the surface severely incomplete for what a KSeF connector implies.

Maintenance

ActivityNo data
ResponsivenessUnresponsive