# caveat-lang [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/WSattazahn/caveat-lang  
**GitHub Stars:** 1  
**npm Downloads (last month):** 3818  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/caveat-lang

## Description
Authoring bridge for Caveat: validate, check and test programs; explain decisions; find dependents.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "caveat-lang": {
    "command": "npx",
    "args": ["-y","--no-install","caveat-lang"]
  }
}
```

## Documentation

## What caveat-lang MCP server does

The caveat-lang MCP server provides an authoring bridge for Caveat, an embeddable decision runtime with a small rules language. It is intended for agents and applications that need to work with Caveat programs rather than treat decisions as unexplained outputs.

Caveat carries evidence and its caveats through computations. A value derived from an observation retains the recorded grounds that support it. Decisions can be reconsidered when later evidence conflicts with an earlier result, while the original basis and the reason for reopening remain available.

The bridge covers the authoring tasks described for the package: validating programs, checking them, running tests, explaining decisions, and finding dependents. These operations help an agent inspect both whether a program is acceptable and how its results relate to recorded evidence.

## How it works

Caveat programs express rules and policies in the Caveat language. Evidence is supplied to the runtime, which computes values and records the dependencies used by those computations. Explanations are checked against those recorded dependencies; an explanation that cites something outside a value's dependencies is rejected.

Decisions retain a journal of their grounds. When new knowledge changes a decision's status, Caveat can reopen it without removing the reasons behind the earlier choice. A later qualification can affect current values built from the evidence and future values that read it, while archived readings and decisions preserve what they previously knew.

The package also supports saved programs and restore operations. Source digests identify the source associated with a save, but they do not authenticate the save or its history.

## Setup and configuration

The published preview is `caveat-lang@0.1.0-rc.19` and requires Node 20 or later. A Rust installation is not needed. Install it in an otherwise empty directory with:

```sh
npm init -y
npm install caveat-lang@0.1.0-rc.19
```

The package has no npm runtime dependencies. Its unambiguous CLI command is `caveat-lang`; `caveat` is also supported as a shorthand. The repository provides an agent quickstart and an official Python client for integrations.

## Tools and capabilities

The caveat-lang MCP server is suited to workflows that need to:

- Validate Caveat source before using it.
- Check programs and run their scenarios.
- Test programs against authored cases.
- Explain computed values and decisions using recorded dependencies.
- Find dependents of evidence or other program elements.
- Inspect why a decision was reopened after evidence changed.

The command-line examples include `caveat-lang test` for a scenario file and `caveat-lang explain` for a program plus event data. `caveat-lang doctor` checks the installation, and `caveat-lang demo agent` demonstrates observation, assessment, correction, and revision.

## Limitations and notes

The caveat-lang MCP server does not authenticate supplied evidence or authorize external actions. Hosts remain responsible for resource budgets. History windows do not bound save size, and restoring a save does not authenticate its history.

A refused operation is not completed, so an integrating host must inspect operation outcomes. The project describes its verification boundaries separately: formal model theorems, sampled native and WebAssembly conformance, mutation controls, and runtime tests do not prove the evidence itself is true or that every explanation is complete.

The current package is a 0.1.0 release candidate. The project identifies rc.19 as a feature-freeze candidate and notes that it fixes restoration for a session that reopened a decision because of a caveat and later withdrew that caveat.

_Full upstream README: https://allmcps.com/mcp/caveat-lang/readme_

