Tlaplus
БесплатноНе проверенExposes the TLA+ toolchain (TLC, SANY, PlusCal, TLATeX) as structured JSON tools via the Model Context Protocol, enabling AI assistants to parse, check, simulat
Описание
Exposes the TLA+ toolchain (TLC, SANY, PlusCal, TLATeX) as structured JSON tools via the Model Context Protocol, enabling AI assistants to parse, check, simulate, and typeset TLA+ specifications.
README
MCP server that exposes the TLA+ toolchain (TLC, SANY, PlusCal, TLATeX) as structured JSON tools over the Model Context Protocol.
Any MCP client tlaplus-mcp TLA+ toolchain
┌────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Claude Code│ │ tla_parse │ │ TLC (checker) │
│ Cursor │───MCP────▶│ tlc_check │───Java───▶│ SANY (parser) │
│ custom app │ (stdio) │ tlc_simulate │ │ PlusCal │
└────────────┘ │ tla_evaluate │ │ TLATeX │
│ pcal_translate │ └──────────────────┘
│ tlc_coverage │
│ tla_state_graph │
│ tlc_trace_spec │
│ tla_tex │
│ │
│ tla://specs │
│ tla://spec/{f} │
│ tla://output │
└──────────────────┘
Installation
npx -y @richashworth/tlaplus-mcp
Configure in Claude Code
Add to your MCP server config (.claude/settings.json or per-project .mcp.json):
{
"mcpServers": {
"tlaplus": {
"command": "npx",
"args": ["-y", "@richashworth/tlaplus-mcp"]
}
}
}
The server auto-downloads tla2tools.jar to ~/.tlaplus-mcp/lib/ on first use. Set TLC_JAR_PATH to override.
Prerequisites
- Node.js 18+
- Java 11+ on
PATH(runs TLC and SANY) - LaTeX (optional, for
tla_texonly)
Tools
| Tool | Description |
|---|---|
tla_parse |
Syntax-check a TLA+ module with SANY |
tlc_check |
Run TLC model checker (exhaustive) |
tlc_simulate |
Run TLC in random simulation mode |
tla_evaluate |
Evaluate a constant TLA+ expression |
pcal_translate |
Translate PlusCal to TLA+ |
tlc_generate_trace_spec |
Generate a trace exploration spec from a counterexample |
tlc_coverage |
Run TLC with action coverage reporting |
tla_tex |
Typeset a spec as PDF via TLATeX |
tla_state_graph |
Parse a TLC DOT state graph into structured JSON |
All tools return structured JSON with a raw_output field for fallback. Errors are returned as isError responses so the LLM can adapt.
Resources
| URI | Description |
|---|---|
tla://specs |
List .tla and .cfg files in the workspace |
tla://spec/{filename} |
Read a specific spec file |
tla://output/latest |
Read the most recent TLC output log |
Configuration
| Environment variable | Description | Default |
|---|---|---|
TLC_JAR_PATH |
Path to tla2tools.jar |
Auto-download to ~/.tlaplus-mcp/lib/ |
TLC_JAVA_OPTS |
JVM options | -Xmx4g -XX:+UseParallelGC |
TLC_TIMEOUT |
Max seconds per TLC run | 300 |
TLC_WORKSPACE |
Base directory for specs | Current working directory |
Development
npm run dev # Watch mode (recompile on change)
npm test # Run all tests (unit + integration)
npm run build # Production build
npm run lint # Run ESLint
npm run format:check # Check Prettier formatting
A pre-commit hook (husky + lint-staged) runs ESLint and Prettier on staged files automatically. CI also gates on both.
Testing
The project has two layers of tests:
Unit tests (src/**/*.test.ts alongside source files) — test individual parsers and tool handlers in isolation with mocked Java/filesystem calls.
Integration tests (src/integration.test.ts) — use the MCP SDK's Client + InMemoryTransport to exercise the full protocol round-trip (client → transport → server → tool handler → response) without needing Java installed. These verify tool registration, schema validation, and response shapes.
npm test # Run everything
npx vitest run src/integration.test.ts # Integration tests only
npx vitest run src/parsers/ # Parser unit tests only
npx vitest run src/tools/ # Tool handler unit tests only
Установка Tlaplus
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/richashworth/tlaplus-mcpFAQ
Tlaplus MCP бесплатный?
Да, Tlaplus MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Tlaplus?
Нет, Tlaplus работает без API-ключей и переменных окружения.
Tlaplus — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Tlaplus в Claude Desktop, Claude Code или Cursor?
Открой Tlaplus на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
автор: xuzexin-hzCompare Tlaplus with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
