# MCP-сервер BlockVectra: блокчейн RPC и инструменты документации для ИИ-агентов

> Source: https://docs.blockvectra.com/ru/guides/mcp-server/

MCP-сервер BlockVectra по адресу `https://docs.blockvectra.com/mcp` предоставляет разработчикам и ИИ-агентам 15 инструментов для вызовов блокчейн RPC, статуса сетей, цен и документации. Для подключения API key не нужен: 10 инструментов не требуют его никогда, остальные используют `x-api-key` из заголовков вашего клиента. Установка одной командой: `claude mcp add --transport http blockvectra-docs https://docs.blockvectra.com/mcp`

Эндпоинт: [эндпоинт MCP](https://docs.blockvectra.com/mcp) (HTTP POST, принимающий JSON-RPC 2.0; GET возвращает 405), работает через MCP Streamable HTTP и не хранит состояние (stateless). О файлах для HTTP, публичном JSON и связанном процессе регистрации см. в разделе [Подключение ИИ-агентов](https://docs.blockvectra.com/ru/guides/ai-agents/).

## Инструменты

| Инструмент | Что делает | API key | Тип доступа |
| --- | --- | --- | --- |
| `read_doc` | Читает страницу документации в формате Markdown. | Не нужен | Только чтение |
| `search_docs` | Ищет по заголовкам, путям и кратким описаниям документации. | Не нужен | Только чтение |
| `list_chains` | Выводит список поддерживаемых сетей, параметров и политик методов (GET /v1/chains). | Не нужен | Только чтение |
| `get_status` | Читает актуальный статус сервиса и сетей (GET /v1/status). | Не нужен | Только чтение |
| `get_pricing` | Читает веса Compute Unit, параметры бесплатного плана и значения ключей по умолчанию (GET /v1/plans). | Не нужен | Только чтение |
| `estimate_usage` | Оценивает Compute Unit и стоимость одного или нескольких методов. | Не нужен | Только чтение |
| `how_to_get_api_key` | Возвращает шаги получения API key и способы аутентификации запросов. | Не нужен | Только чтение |
| `get_method_info` | Показывает доступность метода по сетям, вес в CU и цену. | Не нужен | Только чтение |
| `explain_error` | Объясняет значение ошибки, тарификацию, возможность повтора и способ восстановления. | Не нужен | Только чтение |
| `list_docs` | Выводит список всех страниц документации с путём и заголовком. | Не нужен | Только чтение |
| `rpc_call` | Выполняет метод JSON-RPC только для чтения в поддерживаемой сети. | Необязателен: без ключа только для методов из public.methods сети | Только чтение |
| `data_api_get` | Отправляет GET-запрос к Data API поддерживаемой сети. | Обязателен (заголовок x-api-key) | Только чтение |
| `get_account` | Читает баланс аккаунта, CU и лимиты запросов (GET /v1/account). | Обязателен (заголовок x-api-key) | Только чтение |
| `get_deposit_address` | Читает адрес пополнения аккаунта, доступные сети и токены. | Обязателен (заголовок x-api-key) | Только чтение |
| `send_raw_transaction` | Отправляет в сеть уже подписанную необработанную транзакцию (eth_sendRawTransaction). | Необязателен: без ключа только для методов из public.methods сети | Отправляет подписанную транзакцию в сеть |

Эта таблица формируется из реестра инструментов сервера, поэтому в ней перечислены все инструменты, которые возвращает `tools/list`. Аргументы и поля ответа каждого инструмента описаны в его собственной схеме `tools/list`.

### Безопасность API key

Инструментам, требующим ключ, нужен API key для запросов к Data API, операций с аккаунтом или методов RPC за пределами публичных методов сети.

* **Чтение строго из заголовков**: API key считывается исключительно из HTTP-заголовков запроса MCP-клиента (`x-api-key: rgw_...` или `Authorization: Bearer rgw_...`).
* **Никогда не передавайте ключи в чат**: никогда не передавайте API key или приватные ключи в аргументах инструментов и не вставляйте их в чат. Аргументы инструментов и история чата попадают в логи бесед и контекст; передача ключей в аргументах будет отклонена.

При вызове без заголовка API key эти инструменты возвращают `isError: true` и направляют агента к `how_to_get_api_key` и [руководству по программной регистрации](https://docs.blockvectra.com/ru/guides/programmatic-signup/?ref=docs-mcp-server).

## Установка в вашем клиенте

Вы можете подключиться к MCP-серверу документации BlockVectra по адресу `https://docs.blockvectra.com/mcp` в распространенных средах разработки и фреймворках.

Начните работу без API key. Подключитесь к эндпоинту MCP, вызовите list\_chains, затем прочитайте quickstart с помощью read\_doc. Добавьте API key в HTTP-заголовки клиента, когда вам понадобятся Data API или инструменты для работы с аккаунтом. Доступ к RPC без ключа подчиняется политике публичных методов каждой сети.

Заголовок `x-api-key` необязателен. Без API key клиенты могут использовать все инструменты документации только для чтения (`read_doc`, `search_docs`, `list_docs`), обнаружение сетей (`list_chains`), актуальный статус (`get_status`), расчет стоимости (`get_pricing`, `estimate_usage`), пояснения к ошибкам (`explain_error`) и методы, разрешенные на публичных эндпоинтах. При использовании инструментов, требующих ключ (`rpc_call` для ограниченных методов, `send_raw_transaction`, `data_api_get`, `get_account` и `get_deposit_address`), настройте заголовок `x-api-key` со своим API key.

### Claude Code

Подключитесь к MCP-серверу с помощью CLI:

```bash
claude mcp add --transport http blockvectra-docs https://docs.blockvectra.com/mcp
```

Чтобы передать опциональный API key для инструментов, требующих аутентификации, используйте параметр `--header` (или `-H`) и ссылайтесь на переменную окружения, а не вставляйте сам ключ. Используйте одинарные кавычки, чтобы оболочка не раскрывала переменную; Claude Code раскроет `${BLOCKVECTRA_API_KEY}` при запуске сессии:

```bash
claude mcp add --transport http blockvectra-docs https://docs.blockvectra.com/mcp \
  --header 'x-api-key: ${BLOCKVECTRA_API_KEY}'
```

Та же конфигурация в виде файла `.mcp.json` уровня проекта (его же создает `claude mcp add --scope project`):

```json
{
  "mcpServers": {
    "blockvectra-docs": {
      "type": "http",
      "url": "https://docs.blockvectra.com/mcp",
      "headers": { "x-api-key": "${BLOCKVECTRA_API_KEY}" }
    }
  }
}
```

Экспортируйте `BLOCKVECTRA_API_KEY` в окружении, из которого запускается `claude`. При первом запуске `claude` в каталоге с `.mcp.json` Claude Code просит подтвердить сервер уровня проекта; до этого `claude mcp list` показывает его как `Pending approval`.

Для скриптов и CI передайте файл через `--mcp-config` и разрешите инструменты сервера. Ключ остается в окружении, а MCP-клиент сам добавляет заголовок, поэтому агенту не нужна команда оболочки, раскрывающая `$BLOCKVECTRA_API_KEY` (проверка разрешений Claude Code отклоняла такие команды в неинтерактивном режиме с ошибкой `Contains simple_expansion`):

```bash
claude -p "Use rpc_call to run eth_blockNumber on base_mainnet" \
  --mcp-config ./mcp.json --allowedTools "mcp__blockvectra-docs__*"
```

Если ключ задан, результат `rpc_call` дополнительно содержит `cu_charged` и `balance_units`; вызов без ключа возвращает только ответ JSON-RPC. Если переменная не задана, клиент отправляет буквальный текст заголовка, и сервер отвечает `invalid_api_key` (код ошибки `-32024`) вместо перехода на эндпоинт без ключа.

Официальная документация: [Claude Code MCP documentation](https://code.claude.com/docs/en/mcp).

### Cursor

Добавьте сервер в конфигурацию MCP в Cursor:

```json
{
  "mcpServers": {
    "blockvectra": {
      "url": "https://docs.blockvectra.com/mcp"
    }
  }
}
```

Cursor также поддерживает установку в один клик через deep link с использованием конфигурации в формате base64 `eyJ1cmwiOiJodHRwczovL2RvY3MuYmxvY2t2ZWN0cmEuY29tL21jcCJ9` (соответствует `{"url":"https://docs.blockvectra.com/mcp"}`):

```text
cursor://anysphere.cursor-deeplink/mcp/install?name=blockvectra&config=eyJ1cmwiOiJodHRwczovL2RvY3MuYmxvY2t2ZWN0cmEuY29tL21jcCJ9
```

Если требуются аутентифицированные инструменты (Data API или управление аккаунтом), добавьте объект `headers` с вашим API key:

```json
{
  "mcpServers": {
    "blockvectra": {
      "url": "https://docs.blockvectra.com/mcp",
      "headers": {
        "x-api-key": "${env:BLOCKVECTRA_API_KEY}"
      }
    }
  }
}
```

Форма `${env:NAME}` взята из документации Cursor, которая раскрывает переменные в `url` и `headers`; здесь эта форма с Cursor не запускалась. Поместите файл в `.cursor/mcp.json` (проект) или `~/.cursor/mcp.json` (глобально).

Официальная документация: [Cursor MCP documentation](https://cursor.com/docs/context/mcp) и [Cursor install links](https://cursor.com/docs/context/mcp/install-links).

### VS Code

В VS Code настройте сервер в `.vscode/mcp.json` под ключом верхнего уровня `servers` с `type: "http"`:

```json
{
  "servers": {
    "blockvectra": {
      "type": "http",
      "url": "https://docs.blockvectra.com/mcp"
    }
  }
}
```

Если требуются аутентифицированные инструменты, добавьте объект `headers`:

```json
{
  "servers": {
    "blockvectra": {
      "type": "http",
      "url": "https://docs.blockvectra.com/mcp",
      "headers": {
        "x-api-key": "YOUR_API_KEY"
      }
    }
  }
}
```

Для хранения конфиденциальных данных VS Code поддерживает ссылки на входные переменные или файлы переменных окружения вместо прямого указания ключей в коде. Серверы также можно добавлять через палитру команд действием `MCP: Add Server`.

Официальная документация: [VS Code MCP servers documentation](https://code.visualstudio.com/docs/copilot/customization/mcp-servers) и [VS Code MCP configuration reference](https://code.visualstudio.com/docs/agents/reference/mcp-configuration).

### Codex

Добавьте сервер с помощью OpenAI Codex CLI:

```bash
codex mcp add blockvectra --url https://docs.blockvectra.com/mcp
```

В файле `config.toml` укажите URL сервера:

```toml
[mcp_servers.blockvectra]
url = "https://docs.blockvectra.com/mcp"
```

Если требуются аутентифицированные инструменты, настройте заголовки запросов в `config.toml`:

```toml
[mcp_servers.blockvectra]
url = "https://docs.blockvectra.com/mcp"
http_headers = { "x-api-key" = "YOUR_API_KEY" }
```

Либо сопоставьте заголовок с переменной окружения:

```toml
[mcp_servers.blockvectra]
url = "https://docs.blockvectra.com/mcp"
env_http_headers = { "x-api-key" = "BLOCKVECTRA_API_KEY" }
```

Официальная документация: [OpenAI Codex CLI MCP documentation](https://learn.chatgpt.com/docs/extend/mcp?surface=cli).

### Gemini CLI

В конфигурации Gemini CLI добавьте сервер в раздел `mcpServers`, используя `httpUrl` для Streamable HTTP:

```json
{
  "mcpServers": {
    "blockvectra": {
      "httpUrl": "https://docs.blockvectra.com/mcp"
    }
  }
}
```

Если требуются аутентифицированные инструменты, добавьте объект `headers` с вашим API key:

```json
{
  "mcpServers": {
    "blockvectra": {
      "httpUrl": "https://docs.blockvectra.com/mcp",
      "headers": {
        "x-api-key": "YOUR_API_KEY"
      }
    }
  }
}
```

Официальная документация: [Gemini CLI MCP server documentation](https://github.com/google-gemini/gemini-cli/blob/main/docs/tools/mcp-server.md).

### OpenAI Responses API

При вызове OpenAI Responses API передайте MCP-сервер в массиве `tools` с `type: "mcp"`:

```bash
OPENAI_API_BASE="https://api.openai.com/v1"
curl "$OPENAI_API_BASE/responses" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model>",
    "tools": [{
      "type": "mcp",
      "server_label": "blockvectra",
      "server_url": "https://docs.blockvectra.com/mcp",
      "require_approval": "never"
    }],
    "input": "..."
  }'
```

Если требуются аутентифицированные инструменты, добавьте поле `headers` в определение инструмента:

```json
{
  "type": "mcp",
  "server_label": "blockvectra",
  "server_url": "https://docs.blockvectra.com/mcp",
  "headers": { "x-api-key": "YOUR_API_KEY" },
  "require_approval": "never"
}
```

Официальная документация: [OpenAI MCP tools guide](https://developers.openai.com/api/docs/guides/tools-connectors-mcp) и [OpenAI Responses API reference](https://developers.openai.com/api/reference/resources/responses/methods/create).

### Windsurf

В Windsurf настройте сервер в разделе `mcpServers`, используя поле `serverUrl`:

```json
{
  "mcpServers": {
    "blockvectra": {
      "serverUrl": "https://docs.blockvectra.com/mcp"
    }
  }
}
```

Если требуются аутентифицированные инструменты, добавьте объект `headers` с вашим API key:

```json
{
  "mcpServers": {
    "blockvectra": {
      "serverUrl": "https://docs.blockvectra.com/mcp",
      "headers": {
        "x-api-key": "YOUR_API_KEY"
      }
    }
  }
}
```

Windsurf также поддерживает ссылки на переменные окружения, такие как `"x-api-key": "${env:BLOCKVECTRA_API_KEY}"`.

Официальная документация: [Windsurf MCP documentation](https://docs.devin.ai/desktop/cascade/mcp).

### Claude Desktop и claude.ai

Пользовательские коннекторы настраиваются через пользовательский интерфейс:

* **claude.ai**: перейдите в **Настроить (Customize)** > **Коннекторы (Connectors)**, нажмите **+ Добавить (+ Add)**, выберите **Добавить пользовательский коннектор (Add custom connector)** и введите URL:
  ```text
  https://docs.blockvectra.com/mcp
  ```
* **Claude Desktop**: откройте меню настроек аккаунта и настройте пользовательские коннекторы через интерфейс коннекторов.

Подключение по этому URL позволяет Claude искать по руководствам, читать документацию в Markdown, просматривать поддерживаемые сети, проверять статус сети и рассчитывать ориентировочную стоимость без ввода учетных данных.

Официальная документация: [Claude custom connectors guide](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp).

### Проверка подключения и устранение неполадок

В Claude Code команда `claude mcp list` показывает статус каждого сервера. Чтобы узнать, сколько инструментов было зарегистрировано на самом деле, запустите команду один раз с потоковым выводом и прочитайте событие `init` либо прочитайте журнал отладки:

```bash
claude -p "say ok" --mcp-config ./mcp.json --output-format stream-json --verbose
claude -p "say ok" --mcp-config ./mcp.json --debug mcp --debug-file mcp-debug.log
```

Рабочее подключение показывает в событии `init` `"status": "connected"` и инструменты `mcp__blockvectra-docs__*` (например, `list_chains` и `rpc_call`). В журнале отладки ищите строки про `blockvectra-docs`, такие как `Successfully connected` и `Failed to fetch tools`. Если сервер `connected`, но инструменты не появились, прочитайте причину, которую журнал отладки (`--debug mcp`) выводит после `Failed to fetch tools`. Чтобы проверить исправность самого сервера, используйте приведенные ниже вызовы curl.

### Вызов эндпоинта MCP без клиента

Эндпоинт работает по JSON-RPC 2.0 через HTTP POST, поэтому его может вызвать любой HTTP-клиент:

```bash
curl -s https://docs.blockvectra.com/mcp -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

curl -s https://docs.blockvectra.com/mcp -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"rpc_call","arguments":{"chain":"base_mainnet","method":"eth_blockNumber","params":[]}}}'
```

Первый вызов возвращает список инструментов; второй возвращает ответ JSON-RPC в `result.structuredContent`. Идентификаторы сетей — это слаги, например `base_mainnet`; получите их через `list_chains`. Инструментам, требующим ключ, нужен заголовок `x-api-key`; этот вызов читает ваш аккаунт с ключом из переменной окружения:

```bash
curl -s https://docs.blockvectra.com/mcp -H 'content-type: application/json' \
  -H "x-api-key: $BLOCKVECTRA_API_KEY" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"get_account","arguments":{}}}'
```

Он возвращает `key_id`, `plan`, `balance_units`, `balance_cu` и лимиты частоты вызовов ключа в `result.structuredContent`. Если ваш агент выполняет команды через оболочку с проверкой разрешений, такое раскрытие переменной может быть заблокировано; настройте заголовок в MCP-клиенте.

## FAQ

### Нужен ли MCP-серверу BlockVectra API key?

Нет. Для подключения ключ не нужен, а 10 из 15 инструментов не требуют его никогда. `rpc_call` и `send_raw_transaction` работают без ключа только для методов из `public.methods` сети (прочитайте их через `list_chains`). `data_api_get`, `get_account` и `get_deposit_address` требуют заголовок `x-api-key`.

### Может ли MCP-сервер создавать или отзывать API key?

Нет. Ни один инструмент не создает, не выводит список и не отзывает API key. `how_to_get_api_key` лишь возвращает шаги; агент создает ключ по HTTP, следуя [программной регистрации](https://docs.blockvectra.com/ru/guides/programmatic-signup/?ref=docs-mcp-server), а люди создают его в консоли. Ключи никогда не передаются через аргументы инструментов.

### Может ли агент отправлять транзакции через MCP-сервер?

Он может рассылать транзакции, но не подписывать их. `rpc_call` отклоняет методы записи, такие как `eth_sendRawTransaction`, `eth_sendTransaction`, `eth_sign` и `personal_*`. `send_raw_transaction` рассылает через `eth_sendRawTransaction` транзакцию, которую вы уже подписали локально; сервер никогда не хранит и не видит приватный ключ.

### Что происходит, если вызов завершается ошибкой?

Ошибки инструментов возвращают `isError: true` со структурированной причиной. Используйте `explain_error` или [справочник кодов ошибок](https://docs.blockvectra.com/ru/errors/), чтобы узнать, тарифицируется ли сбой и нужно ли повторять запрос.

## Связанные материалы

* [Подключение ИИ-агентов](https://docs.blockvectra.com/ru/guides/ai-agents/): машиночитаемые файлы, публичные JSON-эндпоинты и процесс выбора сети.
* [Программная регистрация](https://docs.blockvectra.com/ru/guides/programmatic-signup/?ref=docs-mcp-server): создайте API key с помощью подписи кошелька без браузера.
* [Примеры для фреймворков агентов](https://docs.blockvectra.com/ru/guides/agent-frameworks/): ElizaOS, viem, wagmi и Coinbase AgentKit.
* [Коды ошибок](https://docs.blockvectra.com/ru/errors/): все ошибки с правилами тарификации и повтора.
