# Первый инструмент

После установки в Crank уже есть демо-пример Frankfurter. Он показывает полный путь от REST endpoint-а до MCP-инструмента.

## 1. Откройте операции

Перейдите в раздел **Операции**. В списке должна быть операция:

```text
frankfurter_latest_rate
```

Она вызывает публичный API:

```text
GET https://api.frankfurter.dev/v1/latest
```

Входные параметры:

```json
{
  "base": "USD",
  "quote": "EUR"
}
```

Crank преобразует их в query-параметры:

```text
base=USD&symbols=EUR
```

## 2. Проверьте операцию

Откройте операцию и перейдите к тестированию. Используйте пример:

```json
{
  "base": "USD",
  "quote": "EUR"
}
```

Успешный ответ Frankfurter выглядит так:

```json
{
  "amount": 1.0,
  "base": "USD",
  "date": "2026-06-19",
  "rates": {
    "EUR": 0.87207
  }
}
```

## 3. Откройте агента

Перейдите в раздел **Агенты**. Демо создает агента:

```text
currency-rates
```

Этот агент публикует только инструмент `frankfurter_latest_rate`.

## 4. Создайте API-ключ

Перейдите в раздел **API ключи**, выберите агента `currency-rates` и создайте ключ. Полное значение ключа показывается только один раз.

## 5. Подключите MCP-клиент

MCP endpoint агента имеет вид:

```text
https://your-crank-host/mcp/v1/default/currency-rates
```

Клиент должен передавать API-ключ агента в заголовке авторизации.

Подробные HTTP-примеры для `initialize`, `tools/list` и `tools/call` находятся в [MCP-интерфейсе](./mcp-interface.md) и [практических API-примерах](./api-examples.md).
