Autonomous research agent with web search, source analysis, and report synthesis. Built on Pi agent core. Available as CLI, programmatic API, and MCP server. Features: - 4 built-in tools: web_search, read_url, save_note, synthesize_report - CLI with TUI and print modes - Programmatic API via ResearchAgent class - MCP server with 3 tools: research, quick_search, read_url - Skills system for custom research behavior - Automatic .env file loading for API keys - Configurable max turns, output formats (markdown/JSON/bullet) - Automatic report saving to research-output/
7.2 KiB
Pi Research Agent MCP Server
MCP (Model Context Protocol) server для автономного исследования. Позволяет другим агентам вызывать research agent для глубокого исследования тем.
Установка
npm install @earendil-works/pi-research-agent
Настройка
Переменные окружения
Создайте .env файл в корне проекта:
TAVILY_API_KEY=***
OPENROUTER_API_KEY=***
LLM_MODEL=minimax/minimax-m3
Подключение к MCP клиенту
Claude Desktop
Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"research-agent": {
"command": "node",
"args": ["/path/to/pi-research/packages/research-agent/dist/mcp-cli.js"],
"env": {
"TAVILY_API_KEY": "***",
"OPENROUTER_API_KEY": "***"
}
}
}
}
Cursor
Добавьте в .cursor/mcp.json в корне проекта:
{
"mcpServers": {
"research-agent": {
"command": "node",
"args": ["./node_modules/@earendil-works/pi-research-agent/dist/mcp-cli.js"]
}
}
}
Другие MCP клиенты
Любой MCP-совместимый клиент может подключиться к серверу через stdio:
node /path/to/pi-research/packages/research-agent/dist/mcp-cli.js
Доступные инструменты
research
Выполняет глубокое автономное исследование темы. Агент ищет в интернете, читает источники, сохраняет находки и генерирует подробный отчёт с цитатами.
Параметры:
topic(string, required): Тема для исследованияmaxTurns(number, optional, default: 15): Максимальное количество ходов исследованияformat(string, optional, default: "markdown"): Формат отчёта ("markdown", "json", "bullet")
Пример использования:
{
"topic": "Квантовые вычисления 2026",
"maxTurns": 10,
"format": "markdown"
}
Возвращает:
- Полный отчёт с executive summary, ключевыми находками, цитатами источников
- Список собранных заметок с уровнем уверенности (high/medium/low)
- Метаданные: количество ходов, количество заметок
quick_search
Быстрый поиск в интернете без полного research flow. Полезен для быстрого поиска информации.
Параметры:
query(string, required): Поисковый запросmaxResults(number, optional, default: 10): Максимальное количество результатов
Пример использования:
{
"query": "последние разработки в квантовых вычислениях",
"maxResults": 5
}
Возвращает:
- Список результатов поиска с заголовками, URL и сниппетами
read_url
Извлекает контент из URL. Полезен для чтения конкретных статей или страниц.
Параметры:
url(string, required): URL для чтенияmaxLength(number, optional, default: 10000): Максимальное количество символов для извлечения
Пример использования:
{
"url": "https://example.com/article",
"maxLength": 5000
}
Возвращает:
- Извлечённый текст со страницы
Программное использование
import { createResearchMcpServer } from "@earendil-works/pi-research-agent";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = createResearchMcpServer();
const transport = new StdioServerTransport();
await server.connect(transport);
Как это работает
- Инициализация: MCP клиент подключается к серверу через stdio
- Вызов инструмента: Клиент вызывает
research,quick_searchилиread_url - Выполнение:
research: Создаёт ResearchAgent, выполняет полное исследование (поиск → чтение → сохранение → синтез)quick_search: Выполняет быстрый поиск через Tavily APIread_url: Извлекает контент из URL
- Результат: Возвращает структурированный результат через MCP protocol
Примеры использования
Исследование с Claude
User: Исследуй последние разработки в области квантовых вычислений
Claude: [вызывает research tool]
- Ищет в интернете
- Читает 5-10 источников
- Сохраняет ключевые находки
- Генерирует отчёт на 2000+ слов
- Возвращает результат с цитатами
Быстрый поиск с Cursor
User: @research-agent Найди информацию о Rust async runtime
Cursor: [вызывает quick_search tool]
- Возвращает 10 результатов поиска
- Пользователь может выбрать URL для глубокого чтения
Чтение конкретной статьи
User: Прочитай эту статью: https://example.com/article
Agent: [вызывает read_url tool]
- Извлекает текст статьи
- Возвращает контент для анализа
Ограничения
- Tavily API: Бесплатный план — 1000 запросов/месяц
- Время выполнения: Полное исследование может занять 2-5 минут
- Контекст: Отчёты могут быть очень длинными (5000-10000 слов)
Troubleshooting
"TAVILY_API_KEY environment variable is not set"
Убедитесь что переменные окружения установлены:
export TAVILY_API_KEY=***
export OPENROUTER_API_KEY=***
Или добавьте их в .env файл.
MCP server не отвечает
Проверьте что:
- Node.js версия >= 22.19.0
- Все зависимости установлены:
npm install - Пакет собран:
npm run build
Ошибки типов TypeScript
MCP SDK использует Zod для валидации схем. Если возникают ошибки типов, используйте as any для схем (как в текущей реализации).
Лицензия
MIT