Strojový překlad, nekontrolovaný rodilým mluvčím. Referenční je anglická verze.

API a integraceUpravit na GitHubuZdroj: docs/deploy/mcp-http.md

Provoz kshana-mcp přes HTTP (vlastní hosting)

Pasáž pojmenovávající klienty AI třetích stran je zde vynechána; je v docs/deploy/mcp-http.md na GitHubu.

Kshana nehostuje žádný koncový bod. Neexistuje sdílený server kshana, na který by se klient dal nasměrovat. Provozujete jej na vlastním stroji, v kontejneru nebo cloudovém projektu a vlastníte jeho řízení přístupu i náklady. Server 0.40.0 je ten, který je v tomto repozitáři: jeho hodnoty nesou své štítky VALIDATED nebo MODELLED stejně jako přes stdio.

Bezpečné výchozí hodnoty#

Ovládací prvek Chování
Adresa pro navázání Pouze loopback (127.0.0.1, ::1). Samotný port (--http 8080) znamená 127.0.0.1:8080.
Non-loopback Vyžaduje --allow-remote a token typu bearer v proměnné prostředí KSHANA_MCP_HTTP_TOKEN (16 znaků nebo více). Bez obojího server odmítne spustit. S obojím vypíše varování, že naslouchá i mimo tento stroj.
Autentizace Authorization: Bearer <token> při každém požadavku, pokud je token nastaven (lze jej nastavit i na loopbacku). Porovnává se v konstantním čase. Chybějící nebo chybný: 401.
Souborový systém Žádný. Nástroje pro soubory IQ (iq_*) jsou v režimu HTTP vypnuty bez ohledu na to, co říká KSHANA_MCP_IQ_DIR; každý jiný nástroj přijímá svůj scénář vložený přímo a odmítne takový, který pojmenovává soubor. Žádný argument nástroje nečte ani nezapisuje cestu.
Velikost těla --max-body-bytes, výchozí 5 MiB (strop scénáře je 4 MiB). Nad ním: 413, ať je délka deklarována, nebo je tělo dělené na části.
Doba odpovědi --request-timeout-secs, výchozí 120. Nad ním: 408. Toto omezuje, jak dlouho volající čeká, nikoli práci: běh, který již probíhá, nelze zastavit, takže po 408 pokračuje a dokončí se na pozadí.
Souběžnost --max-concurrent, výchozí 8. Nad ním požadavek dostane 503 s Retry-After okamžitě; žádný se neřadí do fronty.
Fond práce Každé volání nástroje běží na blokujícím vlákně uvnitř fondu o --max-concurrent slotech, nikdy na asynchronních pracovních vláknech, takže dlouhý běh nemůže zabránit serveru v odpovídání. Slot se uvolní, až když skončí samotný běh, nikoli když volající to vzdá: opuštěné běhy se proto nemohou hromadit nad velikost fondu a volání, které najde fond plný, je odmítnuto jako zaneprázdněné.
Rozpočet práce Scénář, který žádá mnohem víc než přibalené příklady, je odmítnut před během: více než 1000 realizací Monte Carlo (runs), mřížka parametrů s více než 1000 uzly, více než 5000 členských běhů (uzly mřížky krát realizace) nebo časová mřížka s více než 2 miliony epoch. Chyba uvádí pole, které snížit. Stejný rozpočet platí přes stdio; příkazový řádek kshana žádný nemá.
CORS Hlavička Access-Control-* se nikdy neodesílá. Požadavek nesoucí hlavičku Origin je odmítnut (403), pokud není pojmenován pomocí --allow-origin <scheme://host[:port]>; * se nepřijímá.
Hlavička Host Kontroluje se proti názvům loopbacku nebo adrese pro navázání plus každému --allowed-host. Za proxy nebo na adrese URL platformy zadejte --allowed-host your.domain. Cokoli jiného: 403.
Relace Žádné. Každý POST dostane odpověď JSON; neudržuje se žádná tabulka relací ani otevřený proud server-sent events.

kshana-mcp TLS neukončuje. Když je dosažitelný mimo jediný stroj, předřaďte mu HTTPS (TLS vaší platformy nebo reverzní proxy) a udržujte token v tajnosti; token typu bearer přes prosté HTTP lze na drátě přečíst.

Místně#

kshana-mcp --http 127.0.0.1:8080

Konfigurace klienta (klient s URL; hlavičku přidejte, pouze když je nastaven token):

{ "mcpServers": { "kshana": { "url": "http://127.0.0.1:8080/mcp",
    "headers": { "Authorization": "Bearer ${KSHANA_MCP_HTTP_TOKEN}" } } } }

Docker#

export KSHANA_MCP_HTTP_TOKEN="$(openssl rand -hex 32)"
docker run --rm -p 127.0.0.1:8080:8080 -e KSHANA_MCP_HTTP_TOKEN \
  ghcr.io/ashfordeou/kshana-mcp:0.40.0 \
  --http 0.0.0.0:8080 --allow-remote --allowed-host localhost:8080 --allowed-host 127.0.0.1:8080

Uvnitř kontejneru musí server naslouchat na 0.0.0.0, takže potřebuje --allow-remote a token. Zveřejnění portu jako 127.0.0.1:8080:8080 jej ponechá na vašem stroji; 127.0.0.1: vynechejte, jen když jej chcete vystavit, a pak před něj předřaďte ukončení TLS. docker compose a šablony pro Fly.io a Cloud Run jsou v mcp-http/.

Šablony (nasazujete je vy; Kshana žádnou neprovozuje)#

Každá spouští publikovaný obraz, nastavuje --allowed-host na název hostitele platformy, který v souboru nahradíte, a pro HTTPS se spoléhá na platformu.

Nastavte na platformě limit CPU a paměti#

Časový limit, fond a rozpočet omezují, kolik práce se připustí, ale jedno připuštěné volání může stále dlouho využívat jádro a velký výsledek může zabrat stovky megabajtů. Nastavte pevný limit i na kontejneru: šablony žádají 2 CPU a 1 GiB (cpus a mem_limit v Compose, [[vm]] ve Fly, resources.limits v Cloud Run). Držte --max-concurrent na počtu CPU nebo pod ním.

Čím není#

  • Není to služba pro více nájemců. Každý, kdo drží token, spouští simulace na vašem hardwaru; nad rámec výše uvedených limitů neexistují kvóty pro jednotlivé uživatele.
  • Pouze poradní charakter, nikoli typově schválené navigační zařízení: za navigaci zůstává odpovědný provozovatel. Výstupy simulátoru jsou hodnoty pro analýzu, buď vypočtené z modelu, nebo ověřené proti nezávislé vnější referenci, jako všude jinde v Kshana.