MCP-сервер
Model Context Protocol (MCP) - открытый стандарт для подключения инструментов к ИИ-агентам. Через MCP-сервер srezai.ru агент получает поиск и исследования как встроенные инструменты, без ручной интеграции REST.
Эндпоинт
Сервер работает по транспорту Streamable HTTP на едином адресе. Авторизация - тем же ключом srz_live_…, что и REST:
https://srezai.ru/api/mcpПодключение
Добавьте srezai.ru в конфигурацию MCP-клиента, указав ваш API-ключ в заголовке Authorization:
{
"mcpServers": {
"srezai": {
"url": "https://srezai.ru/api/mcp",
"headers": {
"Authorization": "Bearer srz_live_ВАШ_КЛЮЧ"
}
}
}
}Формат ключа и правила безопасности - в разделе Аутентификация.
DeepSeek Harness
DSH собирается из профилей: базовые слои плагинов плюс ваш слой правок. MCP-сервер подключается одной записью в патч-слой профиля - файл ~/.dsh/profiles/<профиль>/cordis.patch.yml, где <профиль> - тот, который вы запускаете (web, tui, headless). Базовый cordis.yml править не нужно, он пуст по замыслу.
- insert:
- id: mcp-srezai
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: srezai
transport: streamable-http
url: https://srezai.ru/api/mcp
headers:
Authorization: Bearer srz_live_ВАШ_КЛЮЧПакет моста (@deepseek-ai/dsh-mcp-client) уже входит в поставку DSH - ставить отдельно нечего. После правки соединение перечитывается на живую, а если профиль не подхватил патч - перезапустите его: dsh --profile web. Инструменты появятся у модели под именами mcp__srezai__web_search, mcp__srezai__read_url и остальными: пространство имён - это serverName из записи. Пошаговая инструкция со скриншотом конфига - в разделе DeepSeek Harness.
Мост понимает и локальный запуск: вместо transport: streamable-http укажите transport: stdio с command: npx и args: ['-y', 'srezai-mcp']. Для нашего сервера это не требуется - он отвечает по HTTP.
Если клиент не умеет HTTP
Часть клиентов подключает MCP-серверы только запуском процесса. Для них есть пакет srezai-mcp: он поднимается локально и пересылает вызовы на тот же эндпоинт. Ставить отдельно не нужно, npx скачает его сам:
{
"mcpServers": {
"srezai": {
"command": "npx",
"args": ["-y", "srezai-mcp"],
"env": { "SREZAI_API_KEY": "srz_live_ВАШ_КЛЮЧ" }
}
}
}Инструменты и их параметры пакет запрашивает у сервера, а не хранит в себе, поэтому новые появляются без обновления версии. Нужен Node 18+. Исходники - srezai-mcp на GitHub, зеркало - на GitVerse.
Открытый код
Мост открыт под лицензией MIT - его можно прочитать целиком перед тем, как отдавать ему ключ. Кода немного: приём строки JSON-RPC из stdin, пересылка на /api/mcp с вашим ключом и вывод ответа в stdout. Список инструментов и цены живут на сервере, поэтому в пакете их нет.
- github.com/srezai-team/srezai-mcp - основной репозиторий, там же релизы и теги версий.
- gitverse.ru/a1_ai_a4b/srezai-mcp - зеркало для тех, кому GitHub недоступен или неудобен. Обновляется вслед за основным; PR принимаются только на GitHub, иначе истории разъедутся.
Доступные инструменты
- web_search - веб-поиск с категориями и фильтрами. Параметры:
query(обязателен),category,timeRange,language,num,excerpts(подтянуть реальный текст топ-страниц),includeDomains/excludeDomains(искать только на указанных сайтах или исключить их, до 10 доменов). Та же логика, что и у /api/v1/search. - image_search - поиск изображений. Параметры:
query(обязателен),timeRange,safe. См. /api/v1/media. - read_url - текст страницы в чистом markdown. Параметры:
url(обязателен),maxChars(200-50000),offset(продолжить чтение длинной страницы),engine(autoпо умолчанию),fresh(минуя кеш). Не влезло вmaxChars- в конце ответа готовое значениеoffsetдля следующего вызова, так что документ любого объёма читается по частям под ваш контекст. Скриншот не делает - дешевле и быстрееfetch_page. См. /api/v1/read. - read_urls - то же чтение для пачки ссылок. Параметры:
urls(обязателен, 1-5 адресов; на платном тарифе до 10),maxChars,engine,fresh. Страницы читаются параллельно, упавшая ссылка не отменяет остальные, каждая тарифицируется как отдельное чтение.offsetздесь нет намеренно: он был бы общим на весь батч - продолжение адресуется наread_url. См. Несколько страниц за раз. - fetch_page - скриншот и структура страницы. Параметры:
url(обязателен),maxChars(сколько символов текста вернуть, 200-50000). Открывает страницу в браузере и возвращает скриншот картинкой (её видит vision-модель), ссылку на полноразмерный PNG и текст в markdown. См. /api/v1/fetch. - extract - структурированные данные со страницы по вашей JSON Schema. Параметры:
urlилиurls(1-5 ссылок, на платном тарифе до 10; одна схема на все),schema(обязателен),instruction,engine. Возвращает только описанные схемой поля; чего на странице нет -null. См. /api/v1/extract. - verify_claim - проверка утверждения по источникам. Параметры:
claim(обязателен, до 500 символов),maxSources(2-5),timeRange,language,query. Сам ищет источники, читает их и возвращает вердикт с дословными цитатами; цитата, не найденная в тексте страницы, отбрасывается вместе с доводом. Вердиктыmixedиunverified- нормальный результат, а не ошибка. См. /api/v1/verify. - answer_search - полный RAG-цикл с семантическим ранжированием. Параметры:
query(обязателен),depth(fast/balanced/deep),language. Поиск → BGE-reranker отбирает топ по релевантности → чтение страниц → синтез ответа. Возвращает готовый ответ с указаниемrelevanceкаждого источника (0-1). См. Answer Search. - deep_research - агентное исследование. Параметр:
query(обязателен). Синхронный вызов на 10 сек - 2 мин. См. DeepResearch. - get_usage - остаток на счёте, расход суточной квоты, burst-лимит и цены инструментов в кредитах. Без параметров. Вызов бесплатный и квоту не расходует, поэтому агент может спросить остаток даже упёршись в лимит. REST-аналога нет: в REST то же самое приходит в заголовках X-RateLimit-*.
Проверка: список инструментов
Убедиться, что сервер отвечает и ключ принят, можно вызовом tools/list по JSON-RPC 2.0. Заголовок Accept обязателен - сервер отвечает потоком text/event-stream:
curl -X POST https://srezai.ru/api/mcp \
-H "Authorization: Bearer srz_live_ВАШ_КЛЮЧ" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'