Maskinöversättning, inte granskad av en modersmålstalare. Engelska är referensen.

API:er och integrationerRedigera på GitHubKälla: docs/deploy/mcp-http.md

Köra kshana-mcp över HTTP (egen drift)

Ett stycke som nämner AI-klienter från tredje part är utelämnat här; det finns i docs/deploy/mcp-http.md på GitHub.

Kshana tillhandahåller ingen slutpunkt. Det finns ingen delad kshana-server att peka en klient mot. Du kör den på din egen maskin, i din egen container eller i ditt eget molnprojekt, och du äger dess åtkomstkontroll och kostnad. Servern 0.40.0 är den som finns i det här förrådet: dess siffror bär sina etiketter VALIDATED eller MODELLED precis som över stdio.

De säkra standardvärdena#

Kontroll Beteende
Bindningsadress Endast loopback (127.0.0.1, ::1). En ensam port (--http 8080) betyder 127.0.0.1:8080.
Non-loopback Kräver --allow-remote och en bearer-token i miljövariabeln KSHANA_MCP_HTTP_TOKEN (16 tecken eller fler). Utan båda vägrar servern att starta. Med båda skriver den ut en varning om att den lyssnar utanför den här maskinen.
Autentisering Authorization: Bearer <token> på varje begäran när en token är satt (den kan sättas på loopback också). Jämförs i konstant tid. Saknas den eller är fel: 401.
Filsystem Ingen. IQ-filverktygen (iq_*) är avstängda i HTTP-läge vad KSHANA_MCP_IQ_DIR än säger; varje annat verktyg tar sitt scenario inbäddat och vägrar ett som anger en fil. Inget verktygsargument läser eller skriver en sökväg.
Kroppsstorlek --max-body-bytes, standard 5 MiB (scenariotaket är 4 MiB). Över den: 413, oavsett om längden är deklarerad eller kroppen är chunkad.
Svarstid --request-timeout-secs, standard 120. Över den: 408. Det här begränsar hur länge en anropare väntar, inte arbetet: en körning som redan pågår kan inte stoppas, så den fortsätter efter 408 och slutförs i bakgrunden.
Samtidighet --max-concurrent, standard 8. Utöver den får en begäran 503 med Retry-After direkt; ingen köas.
Arbetspool Varje verktygsanrop körs på en blockerande tråd i en pool med --max-concurrent platser, aldrig på de asynkrona arbetarna, så en lång körning kan inte hindra servern från att svara. En plats frigörs först när själva körningen slutar, inte när anroparen ger upp: övergivna körningar kan därför inte hopa sig över poolens storlek, och ett anrop som finner poolen full avvisas som upptaget.
Arbetsbudget Ett scenario som ber om mycket mer än de medföljande exemplen avvisas innan det körs: fler än 1000 Monte Carlo-realisationer (runs), ett parameterrutnät med fler än 1000 noder, fler än 5000 medlemskörningar (rutnätsnoder gånger realisationer), eller ett tidsrutnät med fler än 2 miljoner epoker. Felet anger vilket fält som ska sänkas. Samma budget gäller över stdio; kommandoraden kshana har ingen.
CORS Något Access-Control-*-huvud skickas aldrig. En begäran som bär ett Origin-huvud avvisas (403) om det inte anges med --allow-origin <scheme://host[:port]>; * accepteras inte.
Host-huvud Kontrolleras mot loopback-namn, eller bindningsadressen plus varje --allowed-host. Bakom en proxy eller på en plattforms-URL, ange --allowed-host your.domain. Allt annat: 403.
Sessioner Inga. Varje POST får ett JSON-svar; ingen sessionstabell och ingen server-sent-event-ström hålls öppen.

TLS avslutas inte av kshana-mcp. När den kan nås utanför en enda maskin, sätt HTTPS framför den (din plattforms TLS, eller en omvänd proxy) och håll token hemlig; en bearer-token över vanlig HTTP kan läsas på tråden.

Lokalt#

kshana-mcp --http 127.0.0.1:8080

Klientkonfiguration (en URL-klient; lägg till huvudet bara när en token är satt):

{ "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

Inuti containern måste servern lyssna på 0.0.0.0, så den behöver --allow-remote och token. Att publicera porten som 127.0.0.1:8080:8080 håller den på din maskin; ta bort 127.0.0.1: bara när du menar att exponera den, och avsluta då TLS framför den. Mallar för docker compose och Fly.io och Cloud Run finns i mcp-http/.

Mallar (du driftsätter dem; Kshana kör inga)#

Var och en kör den publicerade avbilden, sätter --allowed-host till plattformens värdnamn som du ersätter i filen, och förlitar sig på plattformen för HTTPS.

Sätt en CPU- och minnesgräns på plattformen#

Tidsgränsen, poolen och budgeten begränsar hur mycket arbete som släpps in, men ett insläppt anrop kan ändå använda en kärna under lång tid och ett stort resultat kan använda hundratals megabyte. Sätt en hård gräns på containern också: mallarna ber om 2 CPU:er och 1 GiB (cpus och mem_limit i Compose, [[vm]] i Fly, resources.limits i Cloud Run). Håll --max-concurrent vid eller under antalet CPU:er.

Vad den inte är#

  • Ingen tjänst för flera hyresgäster. Den som har token kör simuleringar på din hårdvara; det finns inga kvoter per användare utöver gränserna ovan.
  • Rådgivande, inte typgodkänd navigationsutrustning: operatören är fortsatt ansvarig för navigeringen. Simulatorns utdata är modellerade eller validerade siffror för analys, som överallt annars i Kshana.