chore: publish clean community baseline
Deploy / deploy (push) Successful in 2m39s
CI / Rust Checks (push) Successful in 5m31s
CI / UI Checks (push) Successful in 5s
CI / Deployment Manifests (push) Successful in 3s
CI / Frontend E2E (push) Successful in 4m29s

This commit is contained in:
github-ops
2026-06-17 06:15:46 +00:00
commit 4bd54ecd5b
317 changed files with 73426 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
# Примеры Frankfurter
В этой папке лежат примеры операций Crank для публичного API Frankfurter. Это бесплатный API курсов валют без ключей доступа.
Публичный адрес API: `https://api.frankfurter.dev`.
## Группа “Курсы валют”
- `rates/frankfurter_latest_rate.operation.yaml` получает последний доступный курс для пары валют.
- `rates/frankfurter_provider_rate.operation.yaml` получает курс от конкретного поставщика данных, например `ECB`.
## Группа “История курсов”
- `history/frankfurter_historical_rate.operation.yaml` получает курс валюты на конкретную дату.
- `history/frankfurter_monthly_rates.operation.yaml` получает месячную динамику курса за период.
## Как использовать в демо
1. Импортируйте нужные YAML-файлы в Crank.
2. Запустите тест операции. Ключи и секреты не нужны.
3. Создайте агента для одной группы операций.
4. Опубликуйте агента и подключите MCP-клиент к его endpoint.
Документация Frankfurter: https://frankfurter.dev/
@@ -0,0 +1,99 @@
format_version: "1"
kind: operation
operation:
id: op_frankfurter_historical_rate
name: frankfurter_historical_rate
display_name: Исторический курс валюты
category: frankfurter_history
protocol: rest
security_level: standard
enabled: true
status: draft
version: 1
target:
kind: rest
base_url: https://api.frankfurter.dev
method: GET
path_template: /v2/rates
static_headers:
Accept: application/json
input_schema:
type: object
required: true
fields:
date:
type: string
required: true
base:
type: string
required: true
quote:
type: string
required: true
output_schema:
type: object
required: true
fields:
date:
type: string
required: true
base:
type: string
required: true
quote:
type: string
required: true
rate:
type: number
required: true
input_mapping:
rules:
- source: $.mcp.date
target: $.request.query.date
required: true
- source: $.mcp.base
target: $.request.query.base
required: true
- source: $.mcp.quote
target: $.request.query.quotes
required: true
output_mapping:
rules:
- source: $.response.body[0].date
target: $.output.date
required: true
- source: $.response.body[0].base
target: $.output.base
required: true
- source: $.response.body[0].quote
target: $.output.quote
required: true
- source: $.response.body[0].rate
target: $.output.rate
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: Возвращает курс валюты на указанную дату через Frankfurter.
tags:
- frankfurter
- currency
- history
- rest
examples:
- input:
date: "2024-01-15"
base: USD
quote: EUR
config_export:
format_version: "1"
export_mode: portable
created_at: 2026-06-19T00:00:00Z
updated_at: 2026-06-19T00:00:00Z
@@ -0,0 +1,111 @@
format_version: "1"
kind: operation
operation:
id: op_frankfurter_monthly_rates
name: frankfurter_monthly_rates
display_name: Месячная динамика курса
category: frankfurter_history
protocol: rest
security_level: standard
enabled: true
status: draft
version: 1
target:
kind: rest
base_url: https://api.frankfurter.dev
method: GET
path_template: /v2/rates
static_headers:
Accept: application/json
input_schema:
type: object
required: true
fields:
from:
type: string
required: true
to:
type: string
required: true
base:
type: string
required: true
quote:
type: string
required: true
output_schema:
type: object
required: true
fields:
first_date:
type: string
required: true
first_rate:
type: number
required: true
first_quote:
type: string
required: true
first_base:
type: string
required: true
input_mapping:
rules:
- source: $.mcp.from
target: $.request.query.from
required: true
- source: $.mcp.to
target: $.request.query.to
required: true
- source: $.mcp.base
target: $.request.query.base
required: true
- source: $.mcp.quote
target: $.request.query.quotes
required: true
- source: $.mcp.group
target: $.request.query.group
required: false
default_value: month
output_mapping:
rules:
- source: $.response.body[0].date
target: $.output.first_date
required: true
- source: $.response.body[0].rate
target: $.output.first_rate
required: true
- source: $.response.body[0].quote
target: $.output.first_quote
required: true
- source: $.response.body[0].base
target: $.output.first_base
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: Возвращает первую точку месячной динамики курса за выбранный период.
tags:
- frankfurter
- currency
- history
- monthly
- rest
examples:
- input:
from: "2024-01-01"
to: "2024-06-30"
base: USD
quote: EUR
config_export:
format_version: "1"
export_mode: portable
created_at: 2026-06-19T00:00:00Z
updated_at: 2026-06-19T00:00:00Z
@@ -0,0 +1,92 @@
format_version: "1"
kind: operation
operation:
id: op_frankfurter_latest_rate
name: frankfurter_latest_rate
display_name: Последний курс валюты
category: frankfurter_rates
protocol: rest
security_level: standard
enabled: true
status: draft
version: 1
target:
kind: rest
base_url: https://api.frankfurter.dev
method: GET
path_template: /v2/rates
static_headers:
Accept: application/json
input_schema:
type: object
required: true
fields:
base:
type: string
required: true
quote:
type: string
required: true
output_schema:
type: object
required: true
fields:
date:
type: string
required: true
base:
type: string
required: true
quote:
type: string
required: true
rate:
type: number
required: true
input_mapping:
rules:
- source: $.mcp.base
target: $.request.query.base
required: true
- source: $.mcp.quote
target: $.request.query.quotes
required: true
output_mapping:
rules:
- source: $.response.body[0].date
target: $.output.date
required: true
- source: $.response.body[0].base
target: $.output.base
required: true
- source: $.response.body[0].quote
target: $.output.quote
required: true
- source: $.response.body[0].rate
target: $.output.rate
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: Возвращает последний доступный курс одной валюты к другой через Frankfurter.
tags:
- frankfurter
- currency
- exchange-rate
- rest
examples:
- input:
base: USD
quote: EUR
config_export:
format_version: "1"
export_mode: portable
created_at: 2026-06-19T00:00:00Z
updated_at: 2026-06-19T00:00:00Z
@@ -0,0 +1,99 @@
format_version: "1"
kind: operation
operation:
id: op_frankfurter_provider_rate
name: frankfurter_provider_rate
display_name: Курс от поставщика данных
category: frankfurter_rates
protocol: rest
security_level: standard
enabled: true
status: draft
version: 1
target:
kind: rest
base_url: https://api.frankfurter.dev
method: GET
path_template: /v2/rates
static_headers:
Accept: application/json
input_schema:
type: object
required: true
fields:
provider:
type: string
required: true
base:
type: string
required: true
quote:
type: string
required: true
output_schema:
type: object
required: true
fields:
date:
type: string
required: true
base:
type: string
required: true
quote:
type: string
required: true
rate:
type: number
required: true
input_mapping:
rules:
- source: $.mcp.provider
target: $.request.query.providers
required: true
- source: $.mcp.base
target: $.request.query.base
required: true
- source: $.mcp.quote
target: $.request.query.quotes
required: true
output_mapping:
rules:
- source: $.response.body[0].date
target: $.output.date
required: true
- source: $.response.body[0].base
target: $.output.base
required: true
- source: $.response.body[0].quote
target: $.output.quote
required: true
- source: $.response.body[0].rate
target: $.output.rate
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: Возвращает курс валюты от выбранного поставщика данных Frankfurter.
tags:
- frankfurter
- currency
- provider
- rest
examples:
- input:
provider: ECB
base: EUR
quote: USD
config_export:
format_version: "1"
export_mode: portable
created_at: 2026-06-19T00:00:00Z
updated_at: 2026-06-19T00: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
}