chore: publish clean community baseline
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user