Кастомные MCP-серверы
Подключайте любые MCP-совместимые серверы к Agent Nine. Это позволяет интегрировать собственные инструменты, базы данных, API или внутренние сервисы.
Что такое MCP?
MCP (Model Context Protocol) — открытый стандарт для подключения AI-ассистентов к внешним инструментам и данным. Любой сервис, реализующий протокол MCP, может быть подключён к Agent Nine.
Настройка
1. Создайте конфиг
Создайте файл .agent-nine/mcp.json в корне вашего проекта:
json
{
"servers": [
{
"name": "my-database",
"command": "npx",
"args": ["@my-org/mcp-postgres", "--connection-string", "postgresql://localhost/mydb"],
"description": "Запросы к базе данных проекта"
}
]
}2. Перезапустите Agent Nine
Десктоп-приложение обнаружит конфиг и подключится к MCP-серверу автоматически.
3. Используйте
После подключения Agent Nine может использовать инструменты вашего MCP-сервера:
text
Запроси из базы всех пользователей, созданных на этой неделеФормат конфигурации
Каждая запись сервера поддерживает:
| Поле | Обязательно | Описание |
|---|---|---|
name | Да | Уникальное имя сервера |
command | Да | Команда для запуска |
args | Нет | Аргументы команды |
env | Нет | Переменные окружения |
description | Нет | Описание для интерфейса |
Пример: несколько серверов
json
{
"servers": [
{
"name": "postgres",
"command": "npx",
"args": ["@modelcontextprotocol/server-postgres", "postgresql://localhost/app"],
"description": "База данных приложения"
},
{
"name": "redis",
"command": "npx",
"args": ["@modelcontextprotocol/server-redis"],
"env": {
"REDIS_URL": "redis://localhost:6379"
},
"description": "Кэш Redis"
},
{
"name": "internal-api",
"command": "node",
"args": ["./tools/mcp-server.js"],
"description": "Внутренний API компании"
}
]
}Популярные MCP-серверы
| Сервер | Пакет | Описание |
|---|---|---|
| PostgreSQL | @modelcontextprotocol/server-postgres | Запросы к PostgreSQL |
| SQLite | @modelcontextprotocol/server-sqlite | Работа с SQLite |
| Filesystem | @modelcontextprotocol/server-filesystem | Изолированный доступ к файлам |
| Brave Search | @modelcontextprotocol/server-brave-search | Поиск через Brave |
| Puppeteer | @modelcontextprotocol/server-puppeteer | Автоматизация браузера |
| Memory | @modelcontextprotocol/server-memory | Постоянное хранилище ключ-значение |
| Slack | @modelcontextprotocol/server-slack | Работа со Slack |
| Google Maps | @modelcontextprotocol/server-google-maps | Места, маршруты, геокодинг |
Больше серверов на modelcontextprotocol.io.
Создание своего MCP-сервера
Если нужна кастомная интеграция, вы можете написать свой MCP-сервер:
- Используйте MCP SDK (
@modelcontextprotocol/sdk) - Определите инструменты (функции, которые AI может вызывать)
- Запустите как stdio-процесс
- Добавьте в
.agent-nine/mcp.json
Минимальный пример
javascript
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server({ name: "my-server", version: "1.0.0" }, {
capabilities: { tools: {} }
});
server.setRequestHandler("tools/list", async () => ({
tools: [{
name: "get_weather",
description: "Get current weather for a city",
inputSchema: {
type: "object",
properties: {
city: { type: "string", description: "City name" }
},
required: ["city"]
}
}]
}));
server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "get_weather") {
const city = request.params.arguments.city;
return { content: [{ type: "text", text: `Weather in ${city}: Sunny, 22°C` }] };
}
});
const transport = new StdioServerTransport();
await server.connect(transport);Решение проблем
Сервер не появляется
- Убедитесь, что
.agent-nine/mcp.jsonв корне проекта - Перезапустите десктоп-приложение после добавления конфига
- Проверьте, что команда установлена и запускается
Сервер падает
- Проверьте логи сервера в десктоп-приложении (Настройки → MCP)
- Убедитесь, что все необходимые переменные окружения установлены
- Попробуйте запустить команду вручную, чтобы увидеть ошибки
Инструменты не работают
- Agent Nine обнаруживает инструменты автоматически от MCP-сервера
- Если инструмент не появляется, проверьте что сервер возвращает его в
tools/list
