Atelier B MCP Server
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Atelier B MCP Server Typecheck the Airlock machine in the SafetySystem project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Atelier B MCP Server
An MCP (Model Context Protocol) server that connects Claude AI with Atelier B, the formal methods IDE for the B-method.
This server enables Claude to directly interact with Atelier B projects: typechecking components, generating proof obligations, running the automatic prover, generating C code, and managing project files.
Works with Atelier B Community Edition 24.04.2 (
ATELIER B (Community Edition) version 24.04.2, B Compilerversion/24.08), which is the version every tool is developed and tested against. Other 24.x releases are expected to work, since the server drivesbbatchthrough its documented command names, but they are not tested. Commands available only in the Professional edition,vr(verify_rule) among them, are deliberately not exposed; see docs/coverage.md.Also requires Python 3.11+ and mcp 2.0+.
History
Most recent first.
Date | Change |
2026-08-19 | Phase 1 closed: fifteen bbatch commands added, coverage 25 % to 54 %. Project check, archive and restore, make-all and remake, Rust generation, plus: what is left to prove ( |
2026-08-19 | Projects created by the server now appear in the workspace you browse. Atelier B can hold several workspaces, each being a directory of |
2026-08-13 | Ported to the mcp 2.0 protocol, upper version bound lifted |
2026-08-06 | PMI proof files read through the sibling PO file, so proof state is attributed to the right proof obligation |
2026-08-06 | B sources moved to |
Related MCP server: BlenderMCP
Architecture
Claude Desktop (MCP Client)
| MCP Protocol (stdio, JSON-RPC 2.0)
v
MCP Server (Python)
| subprocess (stdin/stdout)
v
bbatch.exe (Atelier B CLI)
| filesystem
v
B Projects (bdp/ + lang/ + src/ directories)The server wraps Atelier B's bbatch command-line interface, translating MCP tool calls into bbatch commands and parsing the output back into structured responses. Files are returned exactly as they are on disk; when a PMI file is read, its per-PO entries are paired with the labels of the sibling PO file so they can be attributed to the right proof obligation (see docs/PMI_PMM_ORDERING.md).
Available Tools
Category | Tools |
Project Management |
|
Verification |
|
External provers (NG projects) |
|
Code Generation |
|
Project Operations |
|
Diagnostics |
|
File Operations |
|
Prerequisites
Python 3.11+
Atelier B Community Edition 24.04.2 with
bbatch.exe(the tested version; see the note at the top)Claude Desktop (or any MCP-compatible client)
Installation
# Clone the repository
git clone https://github.com/CLEARSY/atelierb-mcp.git
cd atelierb-mcpAll remaining commands are run from this repository root (the directory that
contains pyproject.toml), not from the inner atelierb_mcp/ package directory.
Recommended: install into a virtual environment
On recent Linux distributions (and macOS with Homebrew Python), installing into
the system interpreter fails with error: externally-managed-environment
(PEP 668). Use a virtual environment:
python -m venv .venv
# Activate it
source .venv/bin/activate # Linux / macOS
# .venv\Scripts\activate # Windows (PowerShell / cmd)
# Install dependencies (run from the repository root)
pip install -e .
# Or install with dev dependencies
pip install -e ".[dev]"Re-activate the environment (source .venv/bin/activate) in any new shell before
running the server. When configuring an MCP client, point command at the
interpreter inside .venv (for example .venv/bin/python) so it uses the
installed dependencies.
Configuration
Copy .env.example and adjust paths:
cp .env.example .envEnvironment variables:
Variable | Description | Default |
| Path to Atelier B installation |
|
| Path to B projects workspace | (none -- must be set) |
| bbatch executable name |
|
| Command timeout in seconds |
|
Important: You must set ATELIERB_PATH and ATELIERB_WORKSPACE to match your local Atelier B installation and B projects directory.
Claude Desktop Integration
Add to your Claude Desktop configuration (%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"atelierb": {
"command": "python",
"args": ["-m", "atelierb_mcp.server"],
"env": {
"ATELIERB_PATH": "C:\\Program Files\\Atelier B Community Edition 24.04.2 24.04.2",
"ATELIERB_WORKSPACE": "C:\\path\\to\\your\\B\\workspace"
}
}
}
}Adjust ATELIERB_PATH and ATELIERB_WORKSPACE to match your local setup, then restart Claude Desktop.
Usage Examples
Once configured, you can ask Claude:
"List all Atelier B projects in the workspace"
"Typecheck the Airlock machine in the SafetySystem project"
"Run B0 check on the Airlock_i implementation"
"Generate proof obligations and run the prover on Airlock"
"Show the proof status of the SafetySystem project"
"Generate C code for the Airlock component"
Development
# Run tests
pytest tests/ -v
# Run only unit tests (skip integration tests requiring bbatch)
pytest tests/ -v -m "not integration"
# Type checking
mypy atelierb_mcp/
# Linting
ruff check atelierb_mcp/
# Test with MCP Inspector
npx @modelcontextprotocol/inspector python -m atelierb_mcp.serverProject Structure
atelierb_mcp/
├── server.py # MCP server entry point with tool definitions
├── bbatch_wrapper.py # Async subprocess wrapper for bbatch CLI
├── parsers.py # Output parsers for bbatch responses
├── config.py # Pydantic settings management
└── tools/
├── project_tools.py # Project management tools
├── proof_tools.py # Verification tools (typecheck, prove, etc.)
├── file_tools.py # File access tools
└── code_tools.py # C code generation tools
tests/
├── conftest.py # pytest fixtures with mock bbatch
├── test_parsers.py # Parser unit tests
└── test_bbatch_wrapper.py # Wrapper tests
docs/
├── ARCHITECTURE.md # Detailed architecture documentation
├── DEPLOYMENT_GUIDE.md # Step-by-step deployment instructions
└── bbatch_commands.md # bbatch CLI command referenceHow This Project Was Built
This project was developed using Claude Code (Anthropic's CLI for Claude). The entire codebase -- server implementation, tools, parsers, tests, and documentation -- was written through interactive sessions with Claude Code, guided by a development plan and iterative refinement.
Documentation
Architecture - System architecture and design
Deployment Guide - Step-by-step deployment instructions
bbatch Commands - Atelier B CLI reference
License
Copyright (C) 2026 CLEARSY
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
See LICENSE.md for the full license text.
Available Tools
18 toolsatelierb_add_componentA
Add a new B component (machine, refinement, or implementation) to a project. Creates the file in src/ with a template and registers it with Atelier B.
Inputs: project_name (required), component_name (required), component_type (required), content.
atelierb_b0checkA
B0 check a B component to verify it is B0 compliant (required before C code generation)
Inputs: project_name (required), component_name (required).
atelierb_create_projectA
Create a new Atelier B project in the workspace with bdp, lang, and src subdirectories
Inputs: project_name (required), project_type.
atelierb_generate_cA
Generate C code for a single B component (implementation or basic machine). Output goes to lang/c directory.
Inputs: project_name (required), component_name (required), profile.
atelierb_generate_project_cA
Generate C code for a complete B project from a toplevel component. Output goes to lang/c directory.
Inputs: project_name (required), toplevel_component (required), profile, generate_main.
atelierb_infos_projectB
Get detailed information about an Atelier B project
Inputs: project_name (required).
atelierb_list_componentsA
List all components (machines, refinements, implementations) in a project
Inputs: project_name (required).
atelierb_list_filesA
List B source files in the workspace. Supports filtering by project and extension (.mch, .ref, .imp, .erf, etc.)
Inputs: project_name, extension_filter.
atelierb_list_projectsA
List all available Atelier B projects
Inputs: no named parameters.
atelierb_list_project_structureA
Get the directory structure of a B project showing files and subdirectories
Inputs: project_name (required).
atelierb_pogenerateB
Generate proof obligations for a B component
Inputs: project_name (required), component_name (required), differential.
atelierb_proveB
Run automatic prover on a B component. Force levels: 0-3 (auto), 10-13 (forced), -1 (fast), -2 (replay)
Inputs: project_name (required), component_name (required), force.
atelierb_read_fileA
Read the content of a B source file (.mch, .ref, .imp, etc.), C code (.c, .h), or Makefile from the workspace. Content is returned verbatim. For a .pmi file, a 'po_labels' list names the proof obligation each entry of its flat theories (ProofState, MethodList, PassList) belongs to; those entries carry no operation name of their own, so do not try to infer it from their position.
Inputs: file_path (required).
atelierb_remove_componentA
Remove a component from an Atelier B project. Optionally delete the source file from disk.
Inputs: project_name (required), component_name (required), delete_file.
atelierb_remove_projectA
Remove an Atelier B project. WARNING: If delete_files is true, permanently deletes all project files!
Inputs: project_name (required), delete_files.
atelierb_statusB
Get proof status of a component or entire project
Inputs: project_name (required), component_name.
atelierb_typecheckB
Typecheck a B component to verify syntax and type correctness
Inputs: project_name (required), component_name (required).
atelierb_write_fileA
Write or update the content of a B source file (.mch, .ref, .imp, etc.), C code (.c, .h), or Makefile in the workspace. Creates a backup by default.
Inputs: content (required), file_path (required), create_backup.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 18 tools
Most tools target distinct resource-action pairs (project, component, proof, file, code generation). Potential confusion exists between infos_project and list_project_structure, and between list_files and list_components, but the descriptions are detailed enough to disambiguate.
All tools share the 'atelierb_' prefix, but the verb-noun pattern is inconsistent. 'infos_project' lacks a verb, 'status' is a bare noun, and 'b0check' and 'pogenerate' embed the object before the verb in an unusual way. A more uniform pattern like 'check_b0' or 'generate_po' would be clearer.
18 tools is at the high end (16-25 feels heavy). For a specialized B-method IDE, the count is understandable, but some read-only informational tools (infos_project, list_project_structure, list_files) could potentially be consolidated to reduce interface surface.
The tool set provides comprehensive lifecycle coverage: project and component CRUD, typecheck/B0 check, proof obligation generation/proving/status, file read/write, and C code generation for both components and entire projects. There are no major gaps in the B development workflow.
Maintenance
Related MCP Connectors
One workspace of tools for Claude and ChatGPT: connect 600+ apps, generate media, build tools.
AI personas with a lasting, encrypted memory per project, for Claude Code. Hosted in France.
Connect Claude to your Platform7n workspaces: chat, links, work and decks. One-click OAuth.
Connect Claude to your Platform7n workspaces: chat, links, work and decks. One-click OAuth.
1
Related MCP Servers
- AlicenseBqualityDmaintenanceBridges Claude AI with Xcode, enabling AI-powered code assistance, project management, and automated development tasks securely on your local machine.76157 npm387MIT
- AlicenseAqualityDmaintenanceConnects Blender to Claude AI, enabling AI-assisted 3D modeling, scene creation, object manipulation, material control, and code execution directly in Blender through natural language prompts.17MIT
- FlicenseNot gradedqualityDmaintenanceConnects Claude AI to any development project (Django, Next.js, Laravel, etc.) with 15+ universal tools for shell, file, git, logs, Docker, tests, and more.1-
- AlicenseNot gradedqualityBmaintenanceConnect Claude AI to Dassault Systemes CATIA V5 via the Model Context Protocol (MCP). Drive CATIA V5 CAD modeling from Claude Desktop or Claude Code using natural language.167MIT