Kosli MCP server
Commit 13. Nov. 2026Stellt die Kosli API über generische Tools zum Suchen, Lesen und Ausführen von API-Aktionen für LLM-Clients bereit.
Auch bekannt als kosli-dev/mcp-server
- Stars
- 1
- Tools
- —
- Downloads, 30 Tage
- —
- Neueste Version
- —
- Letzter Commit
- 13. Nov. 2026
- Lizenz
- MIT
Was ist Kosli MCP?
Kosli ist ein MCP server. Stellt die Kosli API über generische Tools zum Suchen, Lesen und Ausführen von API-Aktionen für LLM-Clients bereit.
Zusammenfassung generiert aus dem README des Projekts
Über Kosli MCP server
Entwickler können über diesen MCP server direkt über LLM-Clients wie Claude Desktop oder Claude Code mit der Kosli API interagieren. Anstatt für jeden einzelnen Endpoint eigenen Code schreiben zu müssen, stellt der Server einen dynamischen Katalog bereit, der auf der Kosli OpenAPI-Spezifikation basiert. Dies ermöglicht es einer KI, verfügbare API-Aktionen über einen kleinen, konsistenten Satz an Tools zu entdecken und zu nutzen.
Nutzer verbinden sich mit dem Server unter Verwendung eines Kosli API-Tokens und können eine Base URL für verschiedene Umgebungen angeben, wie etwa US- oder EU-Endpoints. Der Server bietet drei primäre Tools: search_actions zum Finden relevanter API-Aktionen mittels natürlicher Sprache, execute_read_action für GET-Requests und execute_write_action für POST-, PUT-, PATCH- oder DELETE-Operationen. Während Read-Aktionen in der Regel automatisch erlaubt sind, erfordern Write-Aktionen eine explizite Bestätigung durch den Nutzer innerhalb des MCP-Clients, um unbeabsichtigte Änderungen an Ressourcen zu vermeiden.
Dieses Setup läuft über stdio und ist darauf ausgelegt, die Tool-Oberfläche minimal zu halten und gleichzeitig sicherzustellen, dass die KI immer Zugriff auf die neuesten API-Funktionen hat, indem der Katalog aus der Live-Spezifikation regeneriert wird.
Was du damit machen kannst
- 1API-Funktionen entdeckenEine KI kann nach spezifischen API-Aktionen mittels natürlicher Sprachabfragen suchen, um die verfügbaren Parameter zu verstehen.
- 2Organisationsdaten abrufenEin Entwickler kann eine KI anweisen, spezifische Details über eine Umgebung oder einen Snapshot über Read-only-Aktionen abzurufen.
- 3Cloud-Ressourcen modifizierenEiner KI kann die Aufgabe übertragen werden, Ressourcen zu erstellen oder zu löschen, sofern der Nutzer die spezifische Aktion und die Parameter bestätigt.
- 4Token-Verbrauch optimierenNutzer können die KI anweisen, nur spezifische Felder aus einer API-Response anzufordern, um die Context Windows klein zu halten.
Geschrieben aus dem README des Projekts. Jeder Use Case wurde gegen ein Zitat daraus geprüft.
Konfiguration
KOSLI_API_TOKEN
| Name | Beschreibung | Typ |
|---|---|---|
| KOSLI_API_TOKEN | — |
Automatisierte Checks
Geluften am 15. Nov. 2026Vollständiger Bericht →Noch nicht verifiziert. Ein Server benötigt einen Score von 80, keine kritischen Befunde und genug Daten für unsere Prüfung. Wie die Checks funktionieren · Was du für mehr Punkte verbessern kannst
- Source Repository verknüpft und erreichbarkosli-dev/mcp-server is public and reachablegithub.com/kosli-dev/mcp-server ↗Bestanden
- Paket nennt dieses Repository als QuelleNicht geprüft
- Build-Provenienz (Sigstore-Attestierung)Nicht geprüft
- Open Source Lizenz (OSI)MITspdx.org/licenses/MIT.html ↗Bestanden
- Commit oder Release im letzten JahrLast commit or release 2026-11-13github.com/kosli-dev/mcp-server ↗Bestanden
- OpenSSF ScorecardNicht geprüft
- Package-Name ähnelt keinem populären PackageNicht geprüft
- Keine kritischen Advisories im Paket oder seinen AbhängigkeitenNicht geprüft
- Keine versteckten Anweisungen an das Modell0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersBestanden
- Destruktive Tools sind markiertNicht geprüft
- Remote-Endpoint beantwortet den MCP-HandshakeNicht geprüft
README
Auf GitHub ansehenKosli MCP Server
A Model Context Protocol server that exposes the Kosli API to LLM clients (Claude Code, Claude Desktop, etc.).
[!WARNING] This server is in beta. Tool names, parameters, and behaviour may change between releases. If you need stability, pin a version — e.g.
npx -y @kosli/mcp-server@0.4.0instead ofnpx -y @kosli/mcp-server.
Rather than hand-coding a tool per endpoint, the server ships a catalog generated from Kosli's OpenAPI spec and exposes three generic tools:
search_actions— fuzzy-search the catalog for relevant API actions by natural-language query.execute_read_action— invoke any GET action by ID (read-only, auto-allowed by MCP clients).execute_write_action— invoke any POST/PUT/PATCH/DELETE action by ID (requires approval in MCP clients — see the caution under Usage).
This keeps the tool surface small and lets the catalog stay in sync with the Kosli API by regenerating. MCP clients use the tool annotations to auto-allow reads while gating writes behind user approval.
Requirements
- Node.js ≥ 22
- A Kosli API token
Install & build
npm install
npm run build
Configure
The server reads configuration from environment variables:
| Variable | Required | Default | Notes |
|---|---|---|---|
KOSLI_API_TOKEN |
yes | — | Preferred. KOSLI_API_KEY is accepted as a fallback. |
KOSLI_BASE_URL |
no | https://app.kosli.com |
EU (default), US (https://app.us.kosli.com), or your single-tenant endpoint. |
Wire up to an MCP client
Claude Code
Run this from your project directory (or use --scope user for global):
claude mcp add kosli \
-e KOSLI_API_TOKEN=your-token \
-- npx -y @kosli/mcp-server
Claude Desktop (Desktop Extension)
Download the latest .mcpb file from Releases, then drag it into Claude Desktop or double-click to install. Claude Desktop will prompt you for your API token. This is the recommended method for Claude Desktop as secrets are stored in the OS keychain rather than in a plain-text config file.
[!NOTE] When installing from a
.mcpbfile, Claude Desktop shows a warning that the extension has not been verified by Anthropic. This is expected for any extension installed from a file rather than from the built-in directory. Sideloaded extensions also do not auto-update — you'll need to download and reinstall new versions manually. Both of these limitations go away once the extension is listed in Anthropic's Connectors Directory.
To check that a downloaded bundle was built from this repository by its release workflow, verify its build provenance with the GitHub CLI:
gh attestation verify kosli-mcp-server-<version>.mcpb --repo kosli-dev/mcp-server
Each release also attaches kosli-mcp-server-<version>.cdx.json, a CycloneDX SBOM listing every package bundled in the .mcpb, so you can check a release against new vulnerability advisories.
The attached file itself is not signed. The signed copy is the one attested against the bundle: verifying it proves that this SBOM was published for the exact .mcpb you downloaded. Read that copy rather than the attached file when it matters:
gh attestation verify kosli-mcp-server-<version>.mcpb --repo kosli-dev/mcp-server \
--predicate-type https://cyclonedx.org/bom --format json \
| jq '.[0].verificationResult.statement.predicate' > sbom.cdx.json
The npm package has no SBOM: it ships no lockfile, so npm resolves its dependencies on each install.
Claude Desktop (manual)
Alternatively, add the following to your claude_desktop_config.json (Settings → Developer → Edit Config). This method auto-updates via npx on each restart, but stores secrets in plain text:
{
"mcpServers": {
"kosli": {
"command": "npx",
"args": ["-y", "@kosli/mcp-server"],
"env": {
"KOSLI_API_TOKEN": "your-token"
}
}
}
}
Other MCP clients
The server communicates over stdio. Point any MCP-compatible client at the package via npx -y @kosli/mcp-server and set the KOSLI_API_TOKEN environment variable.
Local checkout
If you're running from a local checkout instead:
{
"mcpServers": {
"kosli": {
"command": "node",
"args": ["/absolute/path/to/mcp-server/dist/index.js"],
"env": {
"KOSLI_API_TOKEN": "your-token"
}
}
}
}
Usage
Typical LLM flow:
- Call
search_actionswith a natural-language query (e.g."list environments") to discover action IDs and their parameter schemas. - Call
execute_read_action(for GET actions) orexecute_write_action(for POST/PUT/PATCH/DELETE) with the chosenactionIdand aparamsobject.
[!IMPORTANT]
execute_write_actioncreates, modifies, and deletes real resources in your Kosli organization. MCP clients gate these calls behind an approval prompt — read the action ID and parameters before approving. An LLM may select the wrong action, or the right action with the wrong parameters, and approval is the only checkpoint before the call is made. Treat deletions and anything touching service accounts or API keys with particular care.
For GET/DELETE, non-path params become query parameters; for other methods they become the JSON body.
Naming the organization
Both execute tools take an org, so one running server reaches any organization
your token has access to:
{ "actionId": "list_environments", "org": "cyber-dojo", "fields": ["name"] }
It is required for every action whose path contains {org}, which is all but
a few of them. There is no configured default: a call that names no org is
refused rather than sent to one nobody chose.
KOSLI_ORG used to supply that default and has been removed. A config that
still sets it starts fine, the value is ignored, and the server says so on
stderr.
An org can also arrive as params.org. The two must agree: two different names
are rejected rather than resolved, since the same tools perform writes.
A write's request body may not name any of the action's own parameters, org
included. Such a field would overwrite what you supplied and send the request
somewhere else, while the approval prompt still showed your value.
The org must be one name, given as a non-empty string. Anything else is rejected
rather than coerced, because coercing invents a name: ["cyber-dojo", "kosli-public"] would request the org cyber-dojo,kosli-public.
A few actions are not organization-scoped: get_user_default_org,
list_system_attestation_types, the four /schemas/... actions, and the five
*_personal_api_key(s) actions that manage the authenticated user's own API keys.
Passing an org to one of those is rejected rather than ignored.
An org your token cannot reach returns the usual error object with the API's
status, 403 for both a non-member and a non-existent org. Kosli staff accounts
can read any org, so a successful read does not prove a write would be allowed.
Both execute tools accept an optional fields array to request only specific top-level fields from each object in the response. This dramatically reduces response size and token usage:
{
"actionId": "get_snapshot_snapshots__org___env_name___snapshot_expression__get",
"params": { "env_name": "prod-aws", "snapshot_expression": "-1" },
"fields": ["name", "compliant", "fingerprint", "reasons_for_incompliance"]
}
Regenerate the catalog
src/catalog.json is committed and bundled into the build. Refresh it from the live OpenAPI spec with:
npm run generate-catalog
Development
npm test # run the test suite (vitest)
npm run test:watch # watch mode
npm run typecheck # type-check src, test and scripts
npm run build # compile to dist/
npm start # run the built server over stdio
npm run smoke # start the built server and drive it over stdio
npm run pack:mcpb # build a .mcpb bundle for Claude Desktop
npm run pack:mcpb:dev # same, versioned to install over the release in Claude Desktop
Layout
src/
index.ts # bin: builds a server and connects stdio
org.ts # which parameter is the org, shared by three places
server.ts # registers the three MCP tools
config.ts # env-var loading
types.ts # shared types (CatalogEntry, Config, …)
catalog.json # generated action catalog
client/kosli-client.ts
tools/search-actions.ts
tools/execute-action.ts
scripts/
generate-catalog.ts # fetches OpenAPI spec → catalog.json
test/ # vitest specs mirroring src/
Kosli MCP Fragen
Wie installiere ich den Kosli MCP server?
Du kannst ihn via npm mit npm install und npm run build installieren oder direkt mit npx -y @kosli/mcp-server ausführen.
Welche Konfigurationsvariablen sind erforderlich?
Der Server benötigt einen KOSLI_API_TOKEN. Optional kannst du KOSLI_BASE_URL konfigurieren, um auf verschiedene Umgebungen wie US oder EU zu verweisen.
Ist es sicher, Write-Aktionen auszuführen?
Write-Aktionen können echte Ressourcen erstellen, ändern oder löschen. MCP-Clients sollten diese Aufrufe hinter einem Approval-Prompt absichern, um versehentliche Änderungen zu verhindern.