# Настройка MCP

Руководство по настройке Model Context Protocol в OneAPA.

<figure><img src="/files/81cNyCJnr5ohT1goZtpD" alt=""><figcaption></figcaption></figure>

## Что такое MCP

**Model Context Protocol (MCP)** — открытый протокол для взаимодействия языковых моделей с внешними инструментами и источниками данных.

### Преимущества MCP

| Преимущество       | Описание                            |
| ------------------ | ----------------------------------- |
| **Стандартизация** | Единый протокол для всех интеграций |
| **Расширяемость**  | Легко добавлять новые инструменты   |
| **Экосистема**     | Множество готовых MCP серверов      |
| **Совместимость**  | Работает с Cursor, Claude и другими |

## OneAPA как MCP сервер

OneAPA автоматически предоставляет все инструменты агентов через MCP протокол.

### Как это работает

```
┌─────────────────┐         ┌─────────────────┐
│   MCP клиент    │         │     OneAPA      │
│   (Cursor,      │────────►│   MCP Server    │
│    Claude)      │◄────────│                 │
└─────────────────┘         └─────────────────┘
       │                           │
       │  tools/list              │
       │─────────────────────────►│
       │                          │
       │  [список инструментов]   │
       │◄─────────────────────────│
       │                          │
       │  tools/call              │
       │─────────────────────────►│
       │                          │
       │  [результат]             │
       │◄─────────────────────────│
```

### Использование в Cursor

Добавьте OneAPA как MCP сервер в настройках Cursor:

```json
{
  "mcpServers": {
    "oneapa": {
      "url": "http://localhost:9000/mcp",
      "transport": "http"
    }
  }
}
```

## OneAPA как MCP клиент

OneAPA может использовать внешние MCP серверы как источники инструментов.

### Справочник "MCP серверы"

Внешние MCP серверы настраиваются в справочнике `APA_MCPСерверы`.

#### Реквизиты

| Реквизит         | Тип    | Описание                           |
| ---------------- | ------ | ---------------------------------- |
| **Наименование** | Строка | Название сервера                   |
| **URL**          | Строка | Адрес MCP сервера                  |
| **Токен**        | Строка | Токен авторизации (если требуется) |
| **Активен**      | Булево | Включён ли сервер                  |

### Добавление MCP сервера

1. Откройте справочник "MCP серверы"
2. Создайте новый элемент
3. Заполните поля:

| Поле         | Пример                      |
| ------------ | --------------------------- |
| Наименование | FileSystem MCP              |
| URL          | <http://localhost:8080/mcp> |
| Токен        | (если требуется)            |
| Активен      | ✓                           |

4. Сохраните

### Подключение к агенту

1. Откройте агента
2. Перейдите на вкладку "MCP серверы"
3. Добавьте нужные серверы
4. Сохраните

```
┌─────────────────────────────────────────────────────────────┐
│  Агент: Помощник                                            │
├─────────────────────────────────────────────────────────────┤
│  [Основное] [Инструменты] [MCP серверы] [Пользователи]     │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│  MCP серверы:                                                │
│  ┌───────────────────────────────────────────────────────┐  │
│  │ ☑ FileSystem MCP                                       │  │
│  │ ☑ GitHub MCP                                           │  │
│  │ ☐ Database MCP                                         │  │
│  └───────────────────────────────────────────────────────┘  │
│                                                              │
│                                [Добавить] [Удалить]          │
└─────────────────────────────────────────────────────────────┘
```

## Примеры MCP серверов

### Файловая система

Позволяет агенту работать с файлами.

```json
{
  "name": "FileSystem MCP",
  "url": "http://localhost:8080",
  "capabilities": ["read_file", "write_file", "list_directory"]
}
```

### GitHub

Работа с репозиториями GitHub.

```json
{
  "name": "GitHub MCP",
  "url": "https://mcp.github.com",
  "token": "ghp_xxxxx"
}
```

### База данных

Выполнение SQL запросов.

```json
{
  "name": "Database MCP",
  "url": "http://localhost:8081",
  "capabilities": ["query", "execute"]
}
```

## Создание MCP инструмента в OneAPA

### В справочнике "Инструменты"

Для создания инструмента, работающего через MCP:

1. Создайте элемент в справочнике "Инструменты"
2. Установите флаг **MCP**
3. Заполните описание

```
┌─────────────────────────────────────────────────────────────┐
│  Инструмент: Поиск в файлах                                 │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│  ☑ MCP (инструмент через MCP протокол)                      │
│                                                              │
│  Описание:                                                   │
│  ┌─────────────────────────────────────────────────────────┐│
│  │ Поиск текста в файлах указанного каталога               ││
│  └─────────────────────────────────────────────────────────┘│
│                                                              │
│  Параметры:                                                  │
│  ┌─────────────────────────────────────────────────────────┐│
│  │ directory | string | Путь к каталогу                    ││
│  │ pattern   | string | Шаблон поиска                      ││
│  └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
```

### Вызов MCP инструмента

При вызове агент отправляет запрос к MCP серверу:

```json
{
  "method": "tools/call",
  "params": {
    "name": "search_files",
    "arguments": {
      "directory": "/data",
      "pattern": "*.log"
    }
  }
}
```

## Протокол MCP

### Методы

| Метод            | Описание                      |
| ---------------- | ----------------------------- |
| `tools/list`     | Список доступных инструментов |
| `tools/call`     | Вызов инструмента             |
| `resources/list` | Список ресурсов               |
| `resources/read` | Чтение ресурса                |
| `prompts/list`   | Список промптов               |
| `prompts/get`    | Получение промпта             |

### Формат инструмента

```json
{
  "name": "get_weather",
  "description": "Получить погоду в городе",
  "inputSchema": {
    "type": "object",
    "properties": {
      "city": {
        "type": "string",
        "description": "Название города"
      }
    },
    "required": ["city"]
  }
}
```

## Безопасность MCP

### Рекомендации

1. **Ограничьте доступ** — используйте токены авторизации
2. **Шифруйте трафик** — используйте HTTPS для внешних серверов
3. **Логируйте вызовы** — отслеживайте использование инструментов
4. **Проверяйте входные данные** — валидируйте параметры

### Пример с токеном

```
┌─────────────────────────────────────────────────────────────┐
│  MCP сервер: Sensitive Data MCP                             │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│  URL: https://secure-mcp.company.local                       │
│  Токен: [••••••••••••••••••••]                              │
│  ☑ Активен                                                  │
└─────────────────────────────────────────────────────────────┘
```

## Отладка MCP

### Проверка доступности сервера

```bash
# Получение списка инструментов
curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{"method": "tools/list"}'
```

### Тестовый вызов инструмента

```bash
curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "method": "tools/call",
    "params": {
      "name": "test_tool",
      "arguments": {}
    }
  }'
```

## Устранение проблем

### MCP сервер недоступен

1. Проверьте URL сервера
2. Проверьте, что сервер запущен
3. Проверьте firewall

### Ошибка авторизации

1. Проверьте токен
2. Убедитесь, что токен не истёк
3. Проверьте формат токена (Bearer, Basic и т.д.)

### Инструменты не появляются

1. Выполните синхронизацию с Proxy
2. Проверьте, что MCP сервер добавлен в агента
3. Проверьте логи Proxy на ошибки

## Далее

{% content-ref url="/pages/TiKILijmgz67ITQIyG89" %}
[Broken mention](broken://pages/TiKILijmgz67ITQIyG89)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.onerpa.ru/ai-platforma-oneapa/nastrojki/nastrojka-mcp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
