chore: publish clean community baseline
Deploy / deploy (push) Failing after 9s
CI / Rust Checks (push) Successful in 5m4s
CI / UI Checks (push) Failing after 5s
CI / Frontend E2E (push) Has been skipped
CI / Deployment Manifests (push) Has been skipped

This commit is contained in:
github-ops
2026-06-17 06:15:46 +00:00
commit 73b44eb93b
317 changed files with 72433 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
# Примеры Dadata
В этой папке лежат примеры операций Crank для Dadata. Их можно импортировать в интерфейсе Crank и использовать как основу для MCP-инструментов.
Dadata не предоставляет эти методы полностью без ключей. Для работы нужны ключи из личного кабинета Dadata:
- `Authorization: Token <API_KEY>` нужен для всех примеров.
- `X-Secret: <SECRET_KEY>` дополнительно нужен для методов стандартизации.
В YAML-файлах стоят заглушки `Token CHANGE_ME_DADATA_API_KEY` и `CHANGE_ME_DADATA_SECRET_KEY`. Перед использованием замените их в настройках операции на реальные значения. Не добавляйте ключи во входные параметры инструмента: тогда MCP-клиент и агент смогут их увидеть.
## Группа “Паспорта”
- `passports/dadata_clean_passport.operation.yaml` проверяет и разбирает номер паспорта через метод стандартизации.
- `passports/dadata_suggest_fms_unit.operation.yaml` ищет подразделение ФМС/МВД по коду или названию.
## Группа “Автомобили”
- `cars/dadata_clean_vehicle.operation.yaml` распознает марку и модель автомобиля из свободного текста.
- `cars/dadata_suggest_car_brand.operation.yaml` ищет марку автомобиля по русскому или английскому названию.
## Как проверить
1. Импортируйте нужный YAML-файл в Crank.
2. Замените заголовки-заглушки на реальные ключи Dadata.
3. Запустите тест операции в интерфейсе Crank.
4. Создайте агента, привяжите к нему операции одной группы и опубликуйте агента.
5. Подключите MCP-клиент к опубликованному агенту и вызовите нужный инструмент.
Документация Dadata:
- Проверка паспорта: https://dadata.ru/api/clean/passport/
- Подразделения ФМС/МВД: https://dadata.ru/api/suggest/fms_unit/
- Стандартизация автомобилей: https://dadata.ru/api/clean/vehicle/
- Марки автомобилей: https://dadata.ru/api/suggest/car_brand/
@@ -0,0 +1,94 @@
format_version: "1"
kind: operation
operation:
id: op_dadata_clean_vehicle
name: dadata_clean_vehicle
display_name: Распознать автомобиль
category: dadata_cars
protocol: rest
security_level: standard
enabled: true
status: draft
version: 1
target:
kind: rest
base_url: https://cleaner.dadata.ru
method: POST
path_template: /api/v1/clean/vehicle
static_headers:
Content-Type: application/json
Accept: application/json
Authorization: Token CHANGE_ME_DADATA_API_KEY
X-Secret: CHANGE_ME_DADATA_SECRET_KEY
input_schema:
type: object
required: true
fields:
vehicle:
type: string
required: true
output_schema:
type: object
required: true
fields:
source:
type: string
required: false
result:
type: string
required: false
brand:
type: string
required: false
model:
type: string
required: false
qc:
type: integer
required: true
input_mapping:
rules:
- source: $.mcp.vehicle
target: $.request.body[0]
required: true
output_mapping:
rules:
- source: $.response.body[0].source
target: $.output.source
required: false
- source: $.response.body[0].result
target: $.output.result
required: false
- source: $.response.body[0].brand
target: $.output.brand
required: false
- source: $.response.body[0].model
target: $.output.model
required: false
- source: $.response.body[0].qc
target: $.output.qc
required: true
execution_config:
timeout_ms: 10000
retry_policy: null
response_cache: null
auth_profile_ref: null
headers: {}
protocol_options: null
streaming: null
tool_description:
title: Распознать автомобиль
description: Распознает марку и модель автомобиля из свободного текста через Dadata.
tags:
- dadata
- vehicle
- car
- rest
examples:
- input:
vehicle: форд фокус
config_export:
format_version: "1"
export_mode: portable
created_at: 2026-06-18T00:00:00Z
updated_at: 2026-06-18T00:00:00Z
@@ -0,0 +1,95 @@
format_version: "1"
kind: operation
operation:
id: op_dadata_suggest_car_brand
name: dadata_suggest_car_brand
display_name: Найти марку автомобиля
category: dadata_cars
protocol: rest
security_level: standard
enabled: true
status: draft
version: 1
target:
kind: rest
base_url: https://suggestions.dadata.ru
method: POST
path_template: /suggestions/api/4_1/rs/suggest/car_brand
static_headers:
Content-Type: application/json
Accept: application/json
Authorization: Token CHANGE_ME_DADATA_API_KEY
input_schema:
type: object
required: true
fields:
query:
type: string
required: true
count:
type: integer
required: false
output_schema:
type: object
required: true
fields:
value:
type: string
required: false
id:
type: string
required: false
name:
type: string
required: false
name_ru:
type: string
required: false
input_mapping:
rules:
- source: $.mcp.query
target: $.request.body.query
required: true
- source: $.mcp.count
target: $.request.body.count
required: false
default_value: 5
output_mapping:
rules:
- source: $.response.body.suggestions[0].value
target: $.output.value
required: false
- source: $.response.body.suggestions[0].data.id
target: $.output.id
required: false
- source: $.response.body.suggestions[0].data.name
target: $.output.name
required: false
- source: $.response.body.suggestions[0].data.name_ru
target: $.output.name_ru
required: false
execution_config:
timeout_ms: 10000
retry_policy: null
response_cache: null
auth_profile_ref: null
headers: {}
protocol_options: null
streaming: null
tool_description:
title: Найти марку автомобиля
description: Ищет марку автомобиля в справочнике Dadata по русскому или английскому названию.
tags:
- dadata
- vehicle
- car
- rest
examples:
- input:
query: форд
count: 5
config_export:
format_version: "1"
export_mode: portable
created_at: 2026-06-18T00:00:00Z
updated_at: 2026-06-18T00:00:00Z
@@ -0,0 +1,87 @@
format_version: "1"
kind: operation
operation:
id: op_dadata_clean_passport
name: dadata_clean_passport
display_name: Проверить паспорт
category: dadata_passports
protocol: rest
security_level: standard
enabled: true
status: draft
version: 1
target:
kind: rest
base_url: https://cleaner.dadata.ru
method: POST
path_template: /api/v1/clean/passport
static_headers:
Content-Type: application/json
Accept: application/json
Authorization: Token CHANGE_ME_DADATA_API_KEY
X-Secret: CHANGE_ME_DADATA_SECRET_KEY
input_schema:
type: object
required: true
fields:
passport:
type: string
required: true
output_schema:
type: object
required: true
fields:
source:
type: string
required: false
series:
type: string
required: false
number:
type: string
required: false
qc:
type: integer
required: true
input_mapping:
rules:
- source: $.mcp.passport
target: $.request.body[0]
required: true
output_mapping:
rules:
- source: $.response.body[0].source
target: $.output.source
required: false
- source: $.response.body[0].series
target: $.output.series
required: false
- source: $.response.body[0].number
target: $.output.number
required: false
- source: $.response.body[0].qc
target: $.output.qc
required: true
execution_config:
timeout_ms: 10000
retry_policy: null
response_cache: null
auth_profile_ref: null
headers: {}
protocol_options: null
streaming: null
tool_description:
title: Проверить паспорт
description: Проверяет формат и действительность паспорта по данным Dadata.
tags:
- dadata
- passport
- rest
examples:
- input:
passport: "4509 235857"
config_export:
format_version: "1"
export_mode: portable
created_at: 2026-06-18T00:00:00Z
updated_at: 2026-06-18T00:00:00Z
@@ -0,0 +1,101 @@
format_version: "1"
kind: operation
operation:
id: op_dadata_suggest_fms_unit
name: dadata_suggest_fms_unit
display_name: Найти подразделение ФМС/МВД
category: dadata_passports
protocol: rest
security_level: standard
enabled: true
status: draft
version: 1
target:
kind: rest
base_url: https://suggestions.dadata.ru
method: POST
path_template: /suggestions/api/4_1/rs/suggest/fms_unit
static_headers:
Content-Type: application/json
Accept: application/json
Authorization: Token CHANGE_ME_DADATA_API_KEY
input_schema:
type: object
required: true
fields:
query:
type: string
required: true
count:
type: integer
required: false
output_schema:
type: object
required: true
fields:
value:
type: string
required: false
code:
type: string
required: false
name:
type: string
required: false
region_code:
type: string
required: false
type:
type: string
required: false
input_mapping:
rules:
- source: $.mcp.query
target: $.request.body.query
required: true
- source: $.mcp.count
target: $.request.body.count
required: false
default_value: 5
output_mapping:
rules:
- source: $.response.body.suggestions[0].value
target: $.output.value
required: false
- source: $.response.body.suggestions[0].data.code
target: $.output.code
required: false
- source: $.response.body.suggestions[0].data.name
target: $.output.name
required: false
- source: $.response.body.suggestions[0].data.region_code
target: $.output.region_code
required: false
- source: $.response.body.suggestions[0].data.type
target: $.output.type
required: false
execution_config:
timeout_ms: 10000
retry_policy: null
response_cache: null
auth_profile_ref: null
headers: {}
protocol_options: null
streaming: null
tool_description:
title: Найти подразделение ФМС/МВД
description: Ищет подразделение, выдавшее паспорт, по коду или названию.
tags:
- dadata
- fms
- passport
- rest
examples:
- input:
query: "772-053"
count: 5
config_export:
format_version: "1"
export_mode: portable
created_at: 2026-06-18T00:00:00Z
updated_at: 2026-06-18T00:00:00Z
@@ -0,0 +1,120 @@
{
"name": "weather_current_open_meteo",
"display_name": "Get Current Weather",
"category": "weather",
"protocol": "rest",
"target": {
"kind": "rest",
"base_url": "https://api.open-meteo.com",
"method": "GET",
"path_template": "/v1/forecast",
"static_headers": {}
},
"input_schema": {
"type": "object",
"required": true,
"fields": {
"latitude": {
"type": "number",
"required": true
},
"longitude": {
"type": "number",
"required": true
}
}
},
"output_schema": {
"type": "object",
"required": true,
"fields": {
"time": {
"type": "string",
"required": true
},
"temperature_c": {
"type": "number",
"required": true
},
"wind_speed_kmh": {
"type": "number",
"required": true
},
"timezone": {
"type": "string",
"required": true
}
}
},
"input_mapping": {
"rules": [
{
"source": "$.mcp.latitude",
"target": "$.request.query.latitude",
"required": true
},
{
"source": "$.mcp.longitude",
"target": "$.request.query.longitude",
"required": true
},
{
"source": "$.mcp.current",
"target": "$.request.query.current",
"required": false,
"default_value": "temperature_2m,wind_speed_10m"
},
{
"source": "$.mcp.timezone",
"target": "$.request.query.timezone",
"required": false,
"default_value": "Europe/Moscow"
}
]
},
"output_mapping": {
"rules": [
{
"source": "$.response.body.current.time",
"target": "$.output.time",
"required": true
},
{
"source": "$.response.body.current.temperature_2m",
"target": "$.output.temperature_c",
"required": true
},
{
"source": "$.response.body.current.wind_speed_10m",
"target": "$.output.wind_speed_kmh",
"required": true
},
{
"source": "$.response.body.timezone",
"target": "$.output.timezone",
"required": true
}
]
},
"execution_config": {
"timeout_ms": 10000,
"headers": {}
},
"tool_description": {
"title": "Get Current Weather",
"description": "Fetch current weather data from Open-Meteo by latitude and longitude.",
"tags": [
"weather",
"rest",
"smoke"
],
"examples": [
{
"input": {
"latitude": 55.75,
"longitude": 37.62
}
}
]
}
}
@@ -0,0 +1,95 @@
format_version: "1"
kind: operation
operation:
name: weather_current_open_meteo
display_name: Get Current Weather
category: weather
protocol: rest
security_level: standard
enabled: true
status: draft
version: 1
target:
kind: rest
base_url: https://api.open-meteo.com
method: GET
path_template: /v1/forecast
static_headers: {}
input_schema:
type: object
required: true
fields:
latitude:
type: number
required: true
longitude:
type: number
required: true
output_schema:
type: object
required: true
fields:
time:
type: string
required: true
temperature_c:
type: number
required: true
wind_speed_kmh:
type: number
required: true
timezone:
type: string
required: true
input_mapping:
rules:
- source: $.mcp.latitude
target: $.request.query.latitude
required: true
- source: $.mcp.longitude
target: $.request.query.longitude
required: true
- source: $.mcp.current
target: $.request.query.current
required: false
default_value: temperature_2m,wind_speed_10m
- source: $.mcp.timezone
target: $.request.query.timezone
required: false
default_value: Europe/Moscow
output_mapping:
rules:
- source: $.response.body.current.time
target: $.output.time
required: true
- source: $.response.body.current.temperature_2m
target: $.output.temperature_c
required: true
- source: $.response.body.current.wind_speed_10m
target: $.output.wind_speed_kmh
required: true
- source: $.response.body.timezone
target: $.output.timezone
required: true
execution_config:
timeout_ms: 10000
retry_policy: null
response_cache: null
auth_profile_ref: null
headers: {}
protocol_options: null
streaming: null
tool_description:
title: Get Current Weather
description: Fetch current weather data from Open-Meteo by latitude and longitude.
tags:
- weather
- rest
- smoke
examples:
- input:
latitude: 55.75
longitude: 37.62
config_export:
format_version: "1"
export_mode: portable
@@ -0,0 +1,4 @@
{
"latitude": 55.75,
"longitude": 37.62
}