Content
<h1 align="center">
<img src=".github/img/pluginIcon.png" width="128" height="128" alt="Ru BizGen Plugin Icon"/>
<br />
Ru BizGen
</h1>
<p align="center">
<a href="https://plugins.jetbrains.com/plugin/29294-ru-bizgen"><img src="https://img.shields.io/jetbrains/plugin/v/29294?style=for-the-badge" alt="Version"/></a>
<a href="https://plugins.jetbrains.com/plugin/29294-ru-bizgen/reviews"><img src="https://img.shields.io/jetbrains/plugin/r/rating/29294?style=for-the-badge" alt="Rating" /></a>
<a href="https://plugins.jetbrains.com/plugin/29294-ru-bizgen"><img src="https://img.shields.io/jetbrains/plugin/d/29294?style=for-the-badge" alt="Downloads" /></a>
<br />
<a href="https://github.com/DmitryEm506/Ru-BizGen/actions"><img src="https://img.shields.io/github/actions/workflow/status/DmitryEm506/Ru-BizGen/ci-dev.yml?branch=dev&style=for-the-badge" alt="Build Status" /></a>
<a href="https://dmitryem506.github.io/Ru-BizGen/"><img src="https://img.shields.io/badge/kdoc-ready-blue?style=for-the-badge" alt="Documentation" /></a>
<a href="https://dmitryem506.github.io/Ru-BizGen/images/kover/index.html"><img src="https://img.shields.io/badge/coverage-Kover-blue?style=for-the-badge" alt="Code Coverage" /></a>
<a><img src="https://img.shields.io/badge/JetBrains-Verified-blue?style=for-the-badge" alt="JetBrains Verified" /></a>
<a><img src="https://img.shields.io/badge/IntelliJ%20IDEA-2024.2+-blue?style=for-the-badge&logo=intellij-idea" alt="IntelliJ IDEA Version" /></a>
</p>
# Tool List
Accelerate development with instant generation of realistic test data directly in the code editor.
## ⚠️ Important
Any matches with real confidential data (INN, account numbers, card numbers, SNILS, phone numbers, organization names,
OGRN, OKTMO, and others) are random and not intended for use in real systems.
All data is generated **locally within the plugin**, without access to external services.
## ✨ Main Features
- 🚀 **Fast generation** of data directly in the editor
- ⌨️ **Hotkeys** (default Ctrl+Alt+E, can be reassigned)
- 🎛️ **Flexible generator settings** (order, enable/disable)
- 🔔 **Customizable notifications** about generator triggering
- 👀 **Result preview** before insertion
- 📋 **Integration with Alt+Ins** — available in the standard IntelliJ code generation dialog
- 🔄 **Updates without resetting settings** — order and selected generators are saved automatically
## 🧩 Available Generators
<p align="center">
<img src=".github/img/generators.png" width="800" alt="Available Generators" />
</p>
- 💰 **Bank details:** settlement account (RUB, CNY), correspondent account, BIC, SWIFT (Russian banks), IBAN (RF and Turkey)
- 👤 **Individual:** full name (full, abbreviated, initials), INN, bank card number, phone number, SNILS
- 🏢 **Legal data:** INN (individual and legal entities), OGRN (IP and legal entities), OKTMO (8 and 11 digits), KPP
- 🏛️ **Organization name:** in Russian and English
- 📍 **Geodata:** country and address in realistic formats
- 🔢 **Miscellaneous:** UUID
## ▶️ How to Use
<p align="center">
<img src=".github/img/main.gif" width="800" alt="Usage Sample" />
</p>
Call the generator window and insert test data directly into the code — without copying from third-party services.
### Invocation Methods
- `Ctrl+Alt+E` (Windows/Linux) or `⌘⌥E` (Mac)
- `Alt+Ins` → **Ru BizGen**
- `Shift+Shift` → **Ru BizGen**
## ⚙️ Advanced Settings
Available at: **Settings → Tools → Ru BizGen**
<p align="center">
<img src=".github/img/settings.png" width="800" alt="Settings Overview" />
</p>
Settings allow you to manage generator behavior and customize them to your needs.
<p align="center">
<img src=".github/img/work-sample.gif" width="800" alt="Settings Overview" />
</p>
### Generator Management
- ✔️ Enable/disable generators
- ⬆️⬇️ Change order
- 🔄 Reset to default settings
### Notifications and Preview
- 🔔 Choose notification method
- 👀 Preview generation result
- 📋 Quick generator testing
## 💎 Benefits
- ⏱️ **Time savings** — generation in microseconds
- 🧩 **Flexibility** — easily adapts to project tasks
- 💻 **Convenience** — works directly in the IDE
- 🛠️ **For developers** — created by developers for developers
---
# 🤖 MCP Server
In addition to the IntelliJ IDEA plugin, Ru BizGen is available as an **MCP server** (Model Context Protocol).
This allows you to connect test data generation to any MCP-compatible AI clients
(Claude Desktop, Cursor, Cline, Windsurf, etc.) and generate data directly in the chat or through an AI agent.
All data is generated **locally**, without access to external services — just like in the plugin.
## ✨ Features
- 🧩 **31 MCP tools** — one for each generator (same as in the plugin)
- 🔒 **Fully local generation** — no network calls, data does not leave your computer
- ⚡ **Microsecond performance** — same algorithms as in the plugin
- 🌐 **Streamable HTTP transport** — modern MCP protocol over HTTP
- 🐳 **Docker-ready** — ready `Dockerfile` and `docker-compose.yml`
- 📋 **Stable tool names** — names are calculated from UUID identifiers of generators, not from class names, and do not change during refactoring
## 🛠 Technology Stack
| Component | Version |
|:---------------|:----------------|
| MCP Kotlin SDK | 0.13.0 |
| Ktor / Netty | 3.4.3 |
| JDK | 21 |
| Transport | Streamable HTTP |
## ▶️ Quick Start
The MCP server can be launched in three ways.
### Method 1. Gradle (from sources)
```bash
# Build distribution
./gradlew :ru-bizgen-mcp:installDist
# Launch (default 127.0.0.1:8081)
./ru-bizgen-mcp/build/install/ru-bizgen-mcp/bin/ru-bizgen-mcp
# With explicit host/port specification
./ru-bizgen-mcp/build/install/ru-bizgen-mcp/bin/ru-bizgen-mcp --host=0.0.0.0 --port=9090
```
### Method 2. Docker
```bash
docker build -f ru-bizgen-mcp/Dockerfile -t ru-bizgen-mcp .
docker run -p 8081:8081 ru-bizgen-mcp
```
### Method 3. Docker Compose
```bash
docker compose -f ru-bizgen-mcp/docker-compose.yml up -d
```
After launching, the server is available at `http://127.0.0.1:8081`.
## ⚙️ Configuration
Parameters are passed as command-line arguments:
| Parameter | Default | Description |
|:----------|:-------------|:------------------------------------------------|
| `--host=` | `127.0.0.1` | Binding address (`0.0.0.0` — all interfaces) |
| `--port=` | `8081` | MCP server port |
### Healthcheck
The `GET /health` endpoint returns `{"status":"UP"}` — convenient for Docker healthcheck and monitoring:
```bash
curl http://127.0.0.1:8081/health
```
## 🔌 Connecting an MCP Client
The MCP server uses **Streamable HTTP** transport. The MCP endpoint is `http://127.0.0.1:8081/mcp`.
### Cursor
`Settings → Cursor Settings → MCP → Add MCP Server`:
```json
{
"mcpServers": {
"ru-bizgen": {
"url": "http://127.0.0.1:8081/mcp"
}
}
}
```
### Claude Desktop
Add to `claude_desktop_config.json` (support for Streamable HTTP in current versions):
```json
{
"mcpServers": {
"ru-bizgen": {
"type": "streamableHttp",
"url": "http://127.0.0.1:8081/mcp"
}
}
}
```
> **💡 Universal:** any MCP client with Streamable HTTP support connects via the URL `http://<host>:<port>/mcp`.
## 🧩 Available Tools (27)
Each tool has a format `generate_<snake_case>`. Tools do not accept parameters — each call returns a new random value.
### Technical
| Tool | Description |
|:----------|:----------------|
| `generate_uuid` | UUID as a string |
### Bank Details
| Tool | Description |
|:------------------------|:--------------------------------------|
| `generate_account_rub` | Settlement RUB account (20 digits) |
| `generate_account_cny` | Settlement CNY account (20 digits) |
| `generate_bank_account` | Correspondent account (20 digits) |
| `generate_bik` | BIC (9 digits) |
| `generate_swift_ru8` | SWIFT Russian banks (8 characters) |
| `generate_swift_ru11` | SWIFT Russian banks (11 characters) |
| `generate_iban_ru` | IBAN RF (33 characters) |
| `generate_iban_turkish` | IBAN Turkey (26 characters) |
| Tool | Description |
|:--------------------------|:---------------------------------|
| `generate_inn_individual` | Individual INN (12 digits) |
| `generate_inn_legal` | Legal Entity INN (10 digits) |
| `generate_ogrn_legal` | Legal Entity OGRN (13 digits) |
| `generate_ogrn_ip` | IP OGRN (15 digits) |
| `generate_kpp` | KPP (9 digits) |
| `generate_oktmo8` | OKTMO (8 digits) |
| `generate_oktmo11` | OKTMO (11 digits) |
| `generate_org_ru_name` | Organization Name (Russian) |
| `generate_org_eng_name` | Organization Name (English) |
### Geographic Data
| Tool | Description |
|:-------------------|:------------------------------------------------|
| `generate_address` | Address (index, city, etc.) |
| `generate_country` | Country (code, name in Russian and English, alpha2, alpha3) |
### Personal Data
| Tool | Description |
|:----------------------------------|:---------------------------------|
| `generate_card_number` | Bank Card Number (16 digits) |
| `generate_fio_full` | Full Name (Last Name, First Name, Patronymic) |
| `generate_fio_short` | Short Name (Last Name, Initials) |
| `generate_fs` | Initials (First Initial, Last Name) |
| `generate_phone_number_ru_format` | Phone Number: +7 (XXX) NNN-NN-NN |
| `generate_phone_number_ru_digit` | Phone Number: 7XXXNNNNNNN |
| `generate_snils` SNILS (11 digits |
> **⚠️ Important:** All generated values are random and do not relate to real entities. Co data are random.
---
# ⚡ Performance Report
presents the results of testing the speed of generators, performed using [](https://github.com/open)
(Java Microbenchmark Harness).
All measurements are conducted in isolated conditions to ensure accuracy and reproducibility of results.
## 🛠
| Component | Specification |
|:---------------------------|:---------------------------------------------------------------|
| **Virtual Machine** JDK 64-Bit Server VM (21.0.11+TS) |
| **JDK Version** | 21.11 |
|ing Framework** | JMH.36 |
| Goal** | Measuring the time of a single generator call |
## ⚙️ JMH Configuration
### 📈 Measurement Mode **Main Mode:** `AverageTime` (average time per operation **Unit of Measurement:** microsecondss) per operation
### 🔥 Warmup Phase
All JVM to optimize the code performance.
* **Numberations:** 5
* Duration:** 1 s
### ⏱️ Measurement Phase
Direct measurement of performance.
* **Number of Iterations:** 10
* **Iteration Duration:** 2 s
### 🖥 JVMEach test is run in process for experiment purity.
* **Number of Forks:** 2
* **JVM ParametersXms2g -Xmx2g -XX:+UseG1GC`
## 📊 Test Results
| Generator | Average Time µs/op | Allocated Data Volume in KB |
|----------------------------------------------------------------------|---------------------|------------------------------|
| UuidAsStrGenerator - _UUID as String_ | 0.455611 | 0.391 |
| AccountRubGenerator - _RUB Account (20)_ | 0.530002 | 1.077 |
| AccountCnyGenerator - _CNY Account (20)_ | 0.526572 | 1.082 |
| InnIndividualGenerator - _Individual INN (12)_ | 0.109294 | 0.345 |
| InnLegalGenerator - _Legal Entity INN (10)_ | 0.078663 | 0.266 |
| KppGenerator - _KPP (9)_ | 1.367849 | 2.458 |
| OgrnLegalGenerator - _Legal Entity OGRN (13)_ | 1.781428 | 3.101 |
| OgrnIpGenerator - _IP OGRN (15)_ | 1.428 | 2. |
| OrgRuNameGenerator - _Organization._ | 739 | 478 |
| OrgGenerator - _Organization. English Name_ | 0. | 0.311 |
| BikGenerator -K (9)_ 0.064798 |.244 |
|Generator - _Correspondent Account (20)_ | 727044 | 1 |
| Swift8 _SWIFT RU)_ | 0766 | 0 |
| Swift11RuGenerator - _SWIFT RU ( | 0.477214 0. |
| IbanRuGenerator - _IBAN RU ( | 2.281 | 4.696 IbanTurkish _IBAN TR (26)_ | 1.626916 | 3.277| AddressGenerator - _Address (index, region, city.)_ | 975766 | 5.888 |
| Country _Country (code, Russian and English, alpha2, alpha3)_ | 1561 | 2 |
| Oktmo - _OKTMO)_ | 0847 | 0.055 |
| Oktmo11Generator - _OKTMO (11)_ | 0. | 0. |
| CardNumberGeneratorCard Number (16)_ 0.329218 | 0.505 FIOFullGenerator - _ (Last Name, First Name, Patronymic)_ | 0.524937 0.617 |
IOShortGenerator - _ (Last Name, Initials)_ | 0.497833 | 0.566 |
| FIOInitialsGenerator - _Initials (First Initial, Last Name)_ | 0.500494 | 0.566 |
| PhoneNumberRuFormatGenerator - _: +7 (XXXNN-NN-NN | 0.283 | 0.658| PhoneNumberRuDigitGenerator - _Phone Number: NNN_ 0.251596 | 0.535 |
ilsGenerator - _SN11)_ | 0.626880 | 1.029 |
| PassportRuSpacedGenerator - _Russian Passport (with space)_ | 0.744428 | 1.208 |
| PassportRuCompactGenerator - _Russian Passport (without space)_ | 0.709420 | 1.208 |
| ForeignPassportRuNumberGenerator - Passport (number)_ | 0.391653 | 0.704 |
| ForeignPassportRuMrzGenerator - _Foreign Passport (MRZ)_ | 2.902907 | 3.551 |
> **💡 Conclusion:** All generators operate in the **microsecond,
> providing an in the IDE interface without the user.
> Note:** Running benchmarks and occurs in the `ru-bizgen-perf/` module
MCP Config
Below is the configuration for this MCP Server. You can copy it directly to Cursor or other MCP clients.
mcp.json
Connection Info
You Might Also Like
No recommendations available