Content
# METR - <span style="color: red">M</span>CP 1C:<span style="color: red">E</span>nterprise <span style="color: red">T</span>est <span style="color: red">R</span>unner
[](https://github.com/alkoleft/mcp-onec-test-runner/releases)
[](https://github.com/alkoleft/mcp-onec-test-runner/releases)
[](https://www.gnu.org/licenses/gpl-3.0)
[](https://github.com/alkoleft/mcp-onec-test-runner/issues)
[](https://github.com/alkoleft/mcp-onec-test-runner/pulls)
[](https://github.com/alkoleft/mcp-onec-test-runner/commits/master)
[](https://github.com/alkoleft/mcp-onec-test-runner/stargazers)
[](https://github.com/alkoleft/mcp-onec-test-runner)



[](https://github.com/1C-Company/1c-edt-issues/issues/1758)
A tool that allows you to run YaXUnit tests and build 1C projects directly from AI assistants (Claude, GPT, Cursor, VS Code, etc.) using the MCP (Model Context Protocol).
## Description
MCP 1C:Enterprise Test Runner is an MCP server that connects to your 1C:Enterprise project and provides the assistant with commands for building (updating the database) and running YaXUnit tests.
## Quick Start
1. Check [technical requirements](#technical-requirements)
2. Download the **jar** file from the [latest release](https://github.com/alkoleft/mcp-onec-test-runner/releases) page
3. Prepare the [application configuration](docs/APPLICATION_CONFIGURATION.md)
4. [Connect](docs/IDE_SETUP.md) the MCP server
## Key Features
**The most important things METR can do:**
| Feature | What it provides |
| --- | --- |
| 🔨 **1C Project Build** | Automated build without manual steps |
| 🚀 **Run all tests and individual modules** | Full quality check or quick spot checks |
| 🛠️ **Run configurator and enterprise** | Environment management from the assistant |
| ✅ **Syntax check** | Quality control through Configurator and 1C:EDT |
| ⚡ **Fast EDT conversion** | Acceleration due to auto-start of EDT CLI in interactive mode |
👉 [Full feature description](docs/FEATURES.md)
```mermaid
flowchart LR
subgraph " "
A["🚀 Request for<br/>test execution"]
B["🔍 Analysis<br/>of changes"]
C{"📊 Are there<br/>changes?"}
J{"🧩 EDT format?"}
I["🔁 Conversion<br/>from EDT"]
D["🔨 Project<br/>build"]
E["🧪 Test<br/>execution"]
F{"✅ Build<br/>successful?"}
G["❌ Build<br/>error"]
H["📋 Test<br/>results"]
end
A --> B
B --> C
C -->|Yes| J
C -->|No| E
J -->|Yes| I
J -->|No| D
I --> D
D --> F
F -->|Yes| E
F -->|No| G
E --> H
%% Modern styles with gradients and shadows
classDef startNode fill:#4FC3F7,stroke:#0277BD,stroke-width:3px,color:#fff,font-weight:bold
classDef processNode fill:#81C784,stroke:#388E3C,stroke-width:3px,color:#fff,font-weight:bold
classDef decisionNode fill:#FFB74D,stroke:#F57C00,stroke-width:3px,color:#fff,font-weight:bold
classDef successNode fill:#A5D6A7,stroke:#4CAF50,stroke-width:3px,color:#fff,font-weight:bold
classDef errorNode fill:#EF5350,stroke:#C62828,stroke-width:3px,color:#fff,font-weight:bold
class A startNode
class B,D,E,I processNode
class C,F,J decisionNode
class H successNode
class G errorNode
```
> Note: when using the `EDT` project format and auto-start enabled (`app.tools.edt-cli.auto-start: true`), EDT CLI starts in interactive mode in advance. This reduces initialization time and accelerates the "Conversion from EDT" step.
## Technical Requirements
- JDK 17+
- 1C:Enterprise platform 8.3.10+
- YaXUnit framework
- 1C:Enterprise Development Tools 2025.1+ (for EDT format; see [Issue #1758](https://github.com/1C-Company/1c-edt-issues/issues/1758))
## Running the MCP Server
```bash
java -jar mcp-yaxunit-runner.jar
```
## MCP Configuration
### Prerequisites
1. **Build the project** and create a JAR file
2. **Ensure the JAR file is accessible** for execution
3. **Create a configuration file** for your project
### Creating a Configuration File
Before configuring the MCP server, create a configuration file for your project. The `src/main/resources/application-yaxunit.yml` file is an example - copy it and customize it to your needs.
Full step-by-step guide: [Application Configuration](docs/APPLICATION_CONFIGURATION.md)
#### Main settings:
- **`app.base-path`** - base path to your project
- **`app.source-set`** - description of project modules (paths, types, purpose)
- **`app.connection.connection-string`** - connection string to the infobase
- **`app.format`** - project format (`DESIGNER` | `EDT`)
- **`app.platform-version`** - 1C platform version (optional)
- **`app.tools.builder`** - builder type (`DESIGNER` | `IBCMD`)
- **`app.tools.edt-cli`** - EDT CLI options (optional, for `app.format: EDT`)
##### Configuration scheme (brief)
```yaml
app:
id: string? # optional
format: DESIGNER|EDT # default: DESIGNER
base-path: string # absolute path
source-set: # >=1 element with type: CONFIGURATION
- path: string # relative path from base-path
name: string # unique name
type: CONFIGURATION|EXTENSION
purpose: [ MAIN | TESTS | YAXUNIT ]
connection:
connection-string: string # required
user: string? # optional
password: string? # optional
tools:
builder: DESIGNER|IBCMD # required
edt-cli: # optional; requires 1C:EDT >= 2025.1
auto-start: boolean # default: false
version: string # default: "latest"
interactive-mode: boolean # default: true
working-directory: string? # EDT workspace
startup-timeout-ms: number # default: 30000
command-timeout-ms: number # default: 300000
ready-check-timeout-ms: number # default: 5000
platform-version: string? # format x[.x]+, e.g. 8.3.22.1709
```
#### Source Configuration
To work correctly with YaXUnit tests, configure `source-set`:
```yaml
source-set:
# Main configuration (required)
- path: "configuration"
name: your-config-name
type: "CONFIGURATION"
purpose: [ "MAIN" ]
# Test module
- path: "tests"
name: tests
type: "EXTENSION"
purpose: [ "TESTS", "YAXUNIT" ]
```
#### Example Structure
```yaml
app:
id: your-project-name
base-path: "/path/to/your/project/"
source-set:
- path: "configuration"
name: your-config
type: "CONFIGURATION"
purpose: ["MAIN"]
connection:
connection-string: "File='/path/to/your/infobase/';"
platform-version: "8.3.24.1234"
tools:
builder: DESIGNER
```
### MCP Server Configuration
Detailed instructions for configuring the MCP server for various IDEs and AI assistants: **[IDE Setup](docs/IDE_SETUP.md)**
Includes:
- Configuration for Claude Desktop
- Configuration for VS Code
- Support for other MCP-compatible clients (Cursor, Continue, Cody)
- Configuration verification and troubleshooting
- Environment variables
- Usage examples
## Available MCP Tools
- `run_all_tests` - run all tests
- `run_module_tests` - run module tests
- `build_project` - build the project
- `dump_config` - dump configuration (FULL/INCREMENTAL/PARTIAL)
- `launch_app` - launch 1C applications (Configurator, thin/thick client)
- `list_modules` - get a list of modules
- `get_configuration` - get configuration
- `check_platform` - check platform
- `check_syntax_edt` - check sources via 1C:EDT (validate)
- `check_syntax_designer_config` - execute CheckConfig in 1C Configurator
- `check_syntax_designer_modules` - execute CheckModules in 1C Configurator
## Development Roadmap 🚀
- [x] 🔄 EDT Support + Smart Conversion
- [x] **EDT (Enterprise Development Tools) Integration**
- [ ] **Smart Module Conversion** - automatic copying and updating when changing a module
- [x] **Automatic Change Detection** in source code
- [x] 🖥️ IBCMD Support
- [x] **IBCMD Integration** for automated builds
- [ ] 🌐 WebSocket Test Execution
- **Fast Test Execution**
- [ ] 📦 Configuration Deployment
- [x] **FULL** - full deployment
- [x] **INCREMENTAL** - incremental deployment
- [x] **PARTIAL** - partial deployment
## Development
### Pre-Development
1. **Fork the repository** on GitHub
2. **Clone the repository**:
```bash
git clone https://github.com/YOUR_USERNAME/mcp-onec-test-runner.git
cd mcp-onec-test-runner
```
3. **Add upstream repository**:
```bash
git remote add upstream https://github.com/alkoleft/mcp-onec-test-runner.git
```
### Project Build
```bash
./gradlew build
```
### Creating Executable JAR
```bash
./gradlew bootJar
```
### Test Execution
```bash
./gradlew test
```
### Code Coverage Analysis
```bash
./gradlew jacocoTestReport
```
### Code Style Check
```bash
./gradlew ktlintCheck
```
## Documentation
- [Key Features](docs/FEATURES.md) — detailed description of all METR features
- [Application Configuration](docs/APPLICATION_CONFIGURATION.md) — step-by-step guide to configuring `application.yml`
- [IDE Setup](docs/IDE_SETUP.md) — detailed instructions for setting up MCP server in various IDEs and AI assistants
- [Changelog](CHANGELOG.md) — project change history
## License
GPL-3.0 License
Connection Info
You Might Also Like
everything-claude-code
Complete Claude Code configuration collection - agents, skills, hooks,...
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
cc-switch
All-in-One Assistant for Claude Code, Codex & Gemini CLI across platforms.
servers
Model Context Protocol Servers
servers
Model Context Protocol Servers
Time
A Model Context Protocol server for time and timezone conversions.