
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
kairos-lang-mcp
Advanced tools
MCP server for the Kairos schedule definition language — evaluate definitions (list/next), validate them, and look up the descriptor reference, from any MCP client
An MCP server for Kairos, the schedule definition language (https://kairos-lang.org). It lets an AI client evaluate a schedule definition deterministically — every firing in a range, or the next N — validate a definition, and read the descriptor reference.
The server is a thin wrapper over the reference implementation's CLI: the tools return exactly what
kairos list --json / kairos next --json print (the CliReport, schema at
https://kairos-lang.org/schema/cli-report.schema.json). Points are epoch milliseconds and are the
identity; dates are one-to-one civil labels. Out-of-coverage intervals come back as annotations,
never as silently dropped points.
日本語: README.ja.md
Node.js 20 or later. The server speaks MCP over stdio.
npx -y kairos-lang-mcp # start on stdio (what an MCP client runs for you)
npx -y kairos-lang-mcp --version
Claude Code
claude mcp add kairos-lang -- npx -y kairos-lang-mcp
Claude Desktop (claude_desktop_config.json) and other stdio clients:
{
"mcpServers": {
"kairos-lang": { "command": "npx", "args": ["-y", "kairos-lang-mcp"] }
}
}
| tool | input | output |
|---|---|---|
kairos_list | source, from, to, tz, supply?, explain? | CliReport for [from, to) — all firings, interval annotations, coverage summary |
kairos_next | source, tz, from? (default: today in tz), n? (default 1), horizonYears? (default 10), supply?, explain? | CliReport for the next n firings; found < requested means fewer than n exist within the horizon (the CLI's exit code 2) |
kairos_validate | source, tz, supply? | {ok, version, diagnostics: [{kind, message}], expressions} — lexing, syntax, static rules and premise resolution, without evaluating a range |
kairos_reference | word, lang? | the reference page for one descriptor (roll, within, nth, segmentBy, …; README lists them) |
Resources: kairos://llms.txt (the language overview for AI readers) and
kairos://reference/{ja|en}/{word} (the same pages as kairos_reference).
tz is requiredThe CLI defaults to the machine's time zone; an AI caller has no machine, so every evaluating tool
takes tz (an IANA name such as Asia/Tokyo). It decides how labels and the [from, to) endpoints
are read. If the definition's premise declares tz:, evaluation uses that zone — tz still labels
the output.
Recommended practice: define your premise once and keep it. A premise names the calendar system, the zone, the week start and the holiday tables:
premise JP {
calendar-system: Gregorian; tz: "Asia/Tokyo"; wkst: Mon
national = [2026-01-01, 2026-01-12, 2026-02-11, 2026-02-23, 2026-03-20, 2026-04-29, 2026-05-03..2026-05-06,
2026-07-20, 2026-08-11, 2026-09-21..2026-09-23, 2026-10-12, 2026-11-03, 2026-11-23] covering: 2026..2026
satSun = everyDay |> filter(d => weekday(d) == Sat or weekday(d) == Sun)
bizDay = everyDay \ (satSun | national)
}
@JP
everyDay |> within(month) |> last |> roll(Preceding, on: bizDay)
Keeping that text next to your schedules turns tacit knowledge ("our business days") into explicit
knowledge that every call reuses — and the covering: clause makes the table's expiry visible in the
output (runwayDays) instead of letting it rot silently.
supply resolves external(kind: dates | instants) bindings with a static bundle, exactly like the
CLI's --supply: { "binding" | "Premise.binding": { "dates": ["YYYY-MM-DD", …] | "instants": [ms, …], "covering": "2026-01-01..2026-12-31", "asof": "2026-10-01" } } — schema at
https://kairos-lang.org/schema/supply.schema.json.
Errors are returned as data, not as protocol errors, so the model can read and fix them.
kairos_list / kairos_next: {command, version, error: {kind: "usage" | "supply" | "static", message}}
with isError: true. kairos_validate: {ok: false, version, diagnostics: [{kind, message}]} (a finding, not
an error — no isError). kairos_reference: {error: {kind: "usage", message}, words} with isError: true
for an unknown descriptor. usage is the shape of the call (bad zone, window over 10 years, source over 64 KB),
supply a violation of the supply contract, static anything the language reports about the definition
(lexing, syntax, static rules, evaluation). Diagnostics are in Japanese — the reference implementation's
canonical output language; the report itself is language-neutral JSON (the same as the CLI's --json).
The spec in English (https://kairos-lang.org/en/spec/) defines what each diagnostic means.
Evaluation window at most 10 years; n at most 1000; horizonYears at most 10; source at most
64 KB. These guard against accidents, not against adversaries.
This package is kairos-lang-mcp — the MCP server for the schedule definition language at https://kairos-lang.org.
It is unrelated to other npm packages that carry the name Kairos (such as kairos-mcp or kairos-mcp-server), which
serve other projects that happen to share the word.
The server's version tracks kairos-lang (same number, same contract); it depends on
kairos-lang for evaluation and on @modelcontextprotocol/sdk for the protocol.
Apache-2.0. The bundled reference pages and llms.txt are copies from the same repository.
FAQs
MCP server for the Kairos schedule definition language — evaluate definitions (list/next), validate them, and look up the descriptor reference, from any MCP client
The npm package kairos-lang-mcp receives a total of 202 weekly downloads. As such, kairos-lang-mcp popularity was classified as not popular.
We found that kairos-lang-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.