iris-eval/mcp-server

iris-eval/mcp-server

от iris-eval
Iris - open-source MCP сервер для оценки безопасности и качества AI-агентов. Проверяет вывод на PII, инъекции, галлюцинации, контролирует стоимость. Логирует трассировки, имеет веб-дашборд. Работает с любым MCP-клиентом без SDK.

Iris — stop shipping agents on vibes

Glama Score Install in Cursor Install in VS Code npm version GitHub stars CI OpenSSF Scorecard OpenSSF Best Practices License: MIT Docker PulseMCP mcp.so

Iris scores every agent run for quality, safety, and cost — on your machine, with no SDK and no account. Most agent projects check quality by running a few remembered prompts and eyeballing the output. Iris replaces that with numbers you can audit: your agent's runs land in a SQLite database on your disk, 26 built-in rules score them deterministically — PII, prompt injection, hallucination markers, cost thresholds, and the agent's own tool calls — free, with no LLM calls, and an optional LLM judge with a hard per-eval cost cap handles the semantic questions. Every rule is inspectable and editable, because a judge you can't audit is just vibes with a number on it. MIT licensed, no telemetry. Nothing leaves your machine unless you turn one of these on: an OpenTelemetry endpoint (IRIS_OTEL_ENDPOINT), which exports traces to the collector you name; the LLM judge with your own key, which sends the text it judges to that provider, and whose citation check fetches the pages an output cites; or a webhook, which posts ids, the verdict and rule names, never the text, to the address you set.

Инструменты были проиндексированы:
compare_runsтолько чтениеидемпотентный

Сделало ли это изменение агента хуже? Сравнивает два запуска: хуже, лучше, эквивалентно или слишком мало данных, чтобы сказать. Что делает. Сопоставляет по case_key (McNemar exact), иначе Newcombe. Правило засчитывается только там, где оно сработало; нет better, если второй запуск оценивался на меньшем. Отказывается сравнивать несопоставимые запуски, если не задан force. Локально, без вызова модели. Подробности: iris://capabilities. Когда не использовать. Для оценки одного вывода (evaluate_output). Как гейт: он сообщает; блокировка - ваша политика. Возвращает. JSON: comparable, incomparable_because, forced, method, before, after, difference, paired, worse, better, improvement_withheld, call, smallest_detectable, equivalent_within, coverage, critical_rises, rules_tested, regressions, improvements, discordant, discordant_total, summary, dataset. Ошибки. IRIS_INVALID_ARGUMENT (пустой run id, нет baseline, неверный margin или dataset); IRIS_STORAGE_ERROR. При сбоях возвращает {"error":{code,message,recovery}} с isError; следуйте recovery. Родственные. log_trace - записывает в запуск; get_traces - находит трассировки запуска.

Сравнить запуски

Параметры
  • afterstringобязательный

    run id для сравнения с ним

  • beforestring

    id baseline-запуска (run в log_trace); не указывайте, чтобы использовать запуск, закреплённый с помощью PATCH /api/v1/runs/:id

  • datasetstring

    Ограничивает оба запуска ключами кейсов этого датасета (его id или label); тогда каждый подсчёт охватывает только эти кейсы.

  • equivalence_marginnumber

    δ для теста эквивалентности, как разница в доле успешных прохождений (0.05 = пять процентных пунктов). Если не задан: эквивалентность не проверяется; насколько далеко могут расходиться два запуска и всё ещё считаться одинаковыми, выбираете вы.

  • forceboolean

    Сравнивает даже тогда, когда запуски нельзя строго сопоставить; ответ всё равно сообщает, что изменилось.

compare_tracesтолько чтениеидемпотентный

Насколько надёжно агент отвечает на один и тот же вопрос? Доля успешных прохождений по каждому кейсу, нестабильные кейсы и интервал, учитывающий повторы. Что делает. Группирует оценки по case_key (или сессии) и сообщает долю успешных прохождений для каждого кейса с интервалом Уилсона, нестабильные кейсы, начиная с наименее надёжных, и общую долю по кейсам с точным интервалом, а не по объединённым попыткам. Детерминированный, локальный, без вызова модели. Подробности: iris://capabilities. Когда не использовать. Для сравнения двух запусков (compare_runs). Для оценки вывода (evaluate_output). Возвращает. JSON: case_key, group_by, question, cases, attempts, overall, pooled, flaky_cases, by_case, summary. Ошибки. IRIS_STORAGE_ERROR. Отсутствие совпадающих оценок означает cases 0, а не ошибку. При сбоях возвращается {"error":{code,message,recovery}} с isError; следуйте recovery. Родственные инструменты. compare_runs - сравнивает два запуска между собой; log_trace - записывает выполнение с case_key; get_traces - читает сами трассировки.

Сравнивает трассы

Параметры
  • case_keystring

    Сузьте до одного случая - самый быстрый способ спросить: «этот один вопрос нестабилен?»

  • group_byenum

    case_key (по умолчанию): повторы одного вопроса; session: ходы одного диалога, поэтому сессия, на которую ответили двумя способами, выглядит нестабильной, а строки by_case содержат идентификаторы сессий.

  • min_attemptsinteger

    Игнорирует случаи, которые запрашивались меньше указанного числа раз (по умолчанию 1). Нельзя доказать, что случай, запрошенный один раз, нестабилен.

  • questionenum

    Считывает rate для ОДНОГО вопроса: учитываются только оценки, которые его оценивали, и попытка проходит, когда прошли все правила, отвечающие на него, а не составной вердикт.

  • runstring

    Сужает до одного запуска; не читает ни одну оценку, которая содержит ключ case.

  • sessionstring

    Сужает до одной сессии (ходы, записанные с этим session_id)

delete_rule

Удаляет развёрнутое пользовательское правило, либо, с параметром enabled, отключает или повторно включает его без удаления; изменение вступает в силу при следующем вызове evaluate_output. Что делает. Без enabled: удаляет правило и создаёт запись аудита; deleted принимает значение false, если ни одно правило не имеет такого id. С enabled: false останавливает его срабатывание и оставляет его в хранилище, true повторно включает его. Прошлые оценки не затрагиваются. Подробности: iris://capabilities. Когда не следует использовать. Для встроенных правил (их нет в хранилище). Для замены правила (deploy_rule с параметром replace: true). Возвращает. JSON: deleted, rule_id, toggled, enabled, rule. Ошибки. IRIS_STORAGE_ERROR. Некорректный rule_id отклоняется. Сбои возвращают {"error":{code,message,recovery}} с isError; следуйте recovery. Сопутствующие инструменты. deploy_rule: добавляет или заменяет правило; list_rules: находит id; evaluate_output: где срабатывает правило.

Удаляет или отключает пользовательское правило.

Параметры
  • enabledboolean

    Если указан, правило сохраняется: false отключает его (перестаёт срабатывать), true снова включает. Если не указывать, правило удаляется.

  • rule_idstringобязательный

    ID правила для удаления или переключения (формат: rule-<hex>); полученный из ответа list_rules или deploy_rule

delete_trace

Удаляет одну сохранённую трассировку по id; её спаны удаляются вместе с ней, а каждая связанная с ней оценка сохраняет свой вердикт и теряет свой текст. Что делает. Связанные оценки сохраняют свои вердикты и баллы; их текст стирается, и проставляется erased_at. deleted равно false, если ни одна трассировка не имеет этого id. Каждое удаление аудируется в iris://audit. Полные подробности: iris://capabilities. Когда не следует использовать. Чтобы массово удалять данные по истечении срока (retention.days). Чтобы изменить трассировку: трассировки неизменяемы. Возвращает. JSON: deleted, trace_id. Ошибки. IRIS_STORAGE_ERROR. Некорректный trace_id отклоняется. Сбои возвращают {"error":{code,message,recovery}} с isError; следуйте recovery. Смежные инструменты. log_trace: сохраняет трассировку; get_traces: находит трассировку для удаления; delete_rule: то же самое для правил.

Удалить трассировку

Параметры
  • trace_idstringобязательный

    Trace id для удаления (32-символьный hex в нижнем регистре; полученный из ответа log_trace или get_traces)

deploy_rule

Развёртывает пользовательское правило, которое срабатывает при каждом будущем вызове evaluate_output своего бандла: сохраняется, действует немедленно, аудируется. Что делает. Сохраняет правило и загружает его в работающий движок. eval_type определяет, КОГДА оно срабатывает (для этого бандла и eval_type="all"); severity определяет, что делает сбой: low и medium снижают оценку, high и critical проваливают вердикт. definition.type выбирает проверку, definition.config - её ключи. Занятое имя отклоняется, если только replace не равно true. Полное описание: iris://capabilities. Когда не использовать. Для разовой проверки (custom_rules в evaluate_output). Чтобы приостановить правило (delete_rule с enabled: false). Возвращает. JSON: rule, replaced, warning. Ошибки. IRIS_DUPLICATE_RULE; IRIS_INVALID_RULE_CONFIG, указывающая поле; IRIS_STORAGE_ERROR. При сбоях возвращается {"error":{code,message,recovery}} с isError; следуйте recovery. Родственные инструменты. list_rules - посмотреть, что развёрнуто; delete_rule - удалить или отключить; evaluate_output - где оно срабатывает.

Развернуть пользовательское правило

Параметры
  • definitionobjectобязательный

    Проверка: type, config и необязательный weight; неизвестный ключ отклоняется.

  • descriptionstring

    Что проверяет это правило и почему это важно.

  • eval_typeenum

    Бандл, в котором срабатывает это правило (и при eval_type="all"); передайте один из eval_type / evalType

  • evalTypeenum

    camelCase-алиас параметра eval_type. Принимается для совместимости, но предпочтительно использовать eval_type: во всех инструментах каноничен snake_case.

  • namestringобязательный

    Человекочитаемое имя правила (1-80 символов; используется в результатах eval). Должно быть уникальным среди развёрнутых правил, если только не указано replace=true.

  • replaceboolean

    true заменяет развёрнутое правило с тем же именем (id новый, аудит сохраняется); false (по умолчанию) отклоняет

  • severityenum

    Что означает ПРОВАЛ этого правила. low/medium: информационный - влияет только на взвешенный балл (плюс сортировка на дашборде и аудит-оповещения). high/critical: жесткий провал - провальная оценка этого правила принудительно устанавливает общий passed=false независимо от взвешенного балла.

  • source_moment_idstring

    Необязательный id Decision Moment, из которого пришло это правило; передайте один из source_moment_id / sourceMomentId

  • sourceMomentIdstring

    camelCase-алиас для source_moment_id, принимается для совместимости. Предпочитайте source_moment_id.

evaluate_outputидемпотентный

Оценивает вывод детерминированными правилами: вердикт ship с его обоснованием, доказательства по каждому правилу, что осталось неоценённым. Что делает. eval_type выбирает набор или all (по умолчанию). Правило, которому не хватает входных данных, ПРОПУСКАЕТСЯ и никогда не проходит: input ОБЯЗАТЕЛЕН при eval_type="relevance"; tool_calls, tools, cost_usd, expected питают остальные. Один только trace_id оценивает сохранённую трассу. Полные подробности: iris://capabilities. Когда не использовать. Для семантической оценки (evaluate_with_llm_judge). Как входной файрвол: правила читают вывод. Возвращает. JSON: id, trace_id, reference_trace_id, verdict, coverage, provenance, run_id, interpretations, erased_at, eval_type, score, passed, rule_results, rules_evaluated, rules_skipped, insufficient_data, critical_failures, critical_skipped, categories, note, rules_changed. Ошибки. IRIS_UNKNOWN_TRACE (ничего не записано); IRIS_STORAGE_ERROR. При сбоях возвращает {"error":{code,message,recovery}} с isError; действуйте согласно recovery. Смежные инструменты. log_trace: сначала запишите запуск; list_rules: что нужно каждому правилу.

Оценить вывод

Параметры
  • cost_usdnumber

    Стоимость в USD для cost bundle и любого правила cost_threshold; если не указана, сохранённая стоимость trace_id (заявленная или оценённая), иначе они пропускают, а не проходят.

  • custom_rulesobject[]

    До 10 одноразовых правил; они срабатывают при любом eval_type (при eval_type="custom" выполняются только они)

  • eval_typeenum

    Набор правил: completeness | relevance | safety | cost | custom | all (по умолчанию, указывается в ответе)

  • expectedstring

    Ожидаемый вывод для сравнения: к нему обращается только правило expected_coverage из набора completeness; правила relevance его НЕ используют (правила relevance сравнивают вывод с input)

  • expected_trajectoryobject

    Что агент должен был СДЕЛАТЬ: tool_calls с mode и args (tool_sequence); step_budget и tolerance (step_budget)

  • inputstring

    Запрос и любые предоставленные исходные материалы ОБЯЗАТЕЛЬНЫ, когда eval_type="relevance"; также служат основой для сигналов галлюцинаций.

  • outputstring

    Выходной текст для оценки (ответ агента, который оценивается по правилам). Опустите его с trace_id, чтобы оценить сохранённый вывод трейса.

  • token_usageobject

    Разбивка расхода токенов: учитывается только в пакете затрат (eval_type="cost" или "all"; используется для правил токен-бюджета)

  • tool_callsobject[]

    Вызовы инструментов, которые сделал агент, по порядку, как их записывает log_trace; если они опущены, правила траектории их пропускают. Загружается из trace_id при сохранении.

  • toolsobject[]

    Результат вашего MCP tools/list, дословно; даёт правилам проверить аргументы вызова. Загружается из trace_id, если он сохранён

  • trace_idstring

    Сохранённый трейс (из log_trace / get_traces). Сам по себе он оценивает трейс в том виде, в каком тот сохранён, и результат становится вердиктом трейса. Если output, input, tool_calls, tools, cost_usd или token_usage отличаются от записи или указан один eval_type, результат хранится рядом с трейсом (reference_trace_id) и никогда не заменяет его вердикт. Неизвестный id отклоняется до того, как что-либо будет оценено

evaluate_runsидемпотентный

Пересчитывает каждую трассу в запуске по текущим правилам в новый запуск, чтобы изменение правил можно было сравнить, а не перезаписать. Что делает. Записывает вердикты в НОВЫЙ запуск; исходный запуск никогда не меняется. Трассы, уже оценённые по текущему набору правил, пропускаются, так что повторный вызов ничего не делает. Работает локально, без обращения к модели. Подробности: iris://capabilities. Когда не использовать. Для оценки нового выполнения (log_trace, затем evaluate_output). Возвращает. JSON: source_run, run, ruleset_hash, traces, evaluated, already_current, failed, passed, not_checked, summary, rules_changed. Ошибки. IRIS_INVALID_ARGUMENT (пустой id запуска или в целевом запуске уже есть вердикты); IRIS_UNKNOWN_TRACE (исходный запуск пуст); IRIS_STORAGE_ERROR. Трассы, которые нельзя оценить, попадают в failed. При сбое возвращается {"error":{code,message,recovery}} с isError; действуйте согласно recovery. Смежные. compare_runs - сравнивает два запуска после этого; evaluate_output - пересчитывает одну трассу; get_traces - читает запуск.

Оценивает запуски.

Параметры
  • intostring

    Идентификатор запуска для новых вердиктов; по умолчанию равен <run>+reeval-<ruleset hash>, стабилен при повторах

  • labelstring

    имя для нового запуска, отображаемое в списках

  • runstringобязательный

    запуск для повторного скоринга - то, что вы передали как run в log_trace

evaluate_with_llm_judgeвнешний мир

Оценивает вывод с помощью LLM-судьи на вашем собственном ключе: оценка от 0 до 1, обоснование, затраты. Что делает. Вызывает Anthropic или OpenAI с IRIS_ANTHROPIC_API_KEY или IRIS_OPENAI_API_KEY; Iris никогда не выступает прокси. correctness требует expected, relevance - input, faithfulness - source_material. Стоимость в худшем случае сначала сверяется с max_cost_usd. Подробности: iris://capabilities. Когда не использовать. Для проверок длины, ключевых слов, PII или стоимости (evaluate_output, бесплатно). Возвращает. JSON: id, reference_trace_id, score, passed, verdict, pass_threshold, self_reported_pass, disagreement, rationale, dimensions, model, provider, template, input_tokens, output_tokens, cost_usd, latency_ms, raw_response_id, warnings. Ошибки. IRIS_JUDGE_NOT_ENABLED (в recovery есть шаги); IRIS_JUDGE_UNKNOWN_MODEL; IRIS_UNKNOWN_TRACE; IRIS_BUDGET_EXCEEDED; IRIS_PROVIDER_ERROR. При сбоях возвращается {"error":{code,message,recovery}} с isError; следуйте recovery. Смежные. evaluate_output - бесплатный детерминированный путь; verify_citations - привязка цитат к источникам.

Оценить с помощью LLM Judge

Параметры
  • agent_modelstring

    Модель, создавшая вывод, для предупреждения о том же семействе, когда ни одна связанная трассировка его не записывает.

  • expectedstring

    Вы не прислали текст для перевода. В сообщении только правила перевода и строка «Reference answer (required for correctness template)», но нет самого исходного текста. Пришлите текст, который нужно перевести, и я выполню перевод по заданным правилам.

  • inputstring

    Не вижу текста для перевода — пришлите его, и я сразу переведу.

  • max_cost_usdnumber

    Ограничение стоимости в USD для этого вызова; по умолчанию берётся из IRIS_LLM_JUDGE_MAX_COST_USD_PER_EVAL или равно 0.25. Худший случай (две попытки, полный max_output_tokens) вычисляется перед вызовом, и вызов отклоняется, если он превышает лимит.

  • max_output_tokensinteger

    Лимит токенов на вывод Judge; по умолчанию 512.

  • modelstringобязательный

    ID модели. Поддерживаются: anthropic = claude-fable-5-1 | claude-opus-5-5 | claude-sonnet-5 (и платная линейка 4.x); openai = gpt-5 | gpt-5-mini | gpt-4.1-mini (а также платные 4o, o3/o4 и снятые с поддержки id o1); неизвестный id отклоняется с полным списком платных моделей. Обязательный параметр: стоимость различается в сто раз между моделями.

  • outputstringобязательный

    Выводимый агентом текст для оценки.

  • providerenum

    Автоматически определяется по модели, если не указано.

  • source_materialstring

    Предоставленные источники RAG (обязательно для шаблона верности)

  • temperaturenumber

    Температура сэмплирования 0.0–1.0. По умолчанию 0.0 (детерминированный).

  • templateenumобязательный

    Вопрос, на который отвечает судья; для correctness нужен expected, для relevance - input, а faithfulness и task_completed читают source_material

  • timeout_msinteger

    Таймаут на запрос; по умолчанию 60_000

  • trace_idstring

    Сохраняет эту оценку рядом с сохранённой трассой (id из log_trace / get_traces). Она отображается вместе с трассой и никогда не заменяет её вердикт; неизвестный id отклоняется ДО вызова судьи

get_tracesтолько чтениеидемпотентный

Запрашивает сохранённые трейсы с фильтрами, пагинацией и сортировкой; опционально с дашборд-сводкой. Что делает. Только чтение, локально. agent_name и framework по точному совпадению, since и until включительно, min_score и max_score по последней оценке каждого трейса, а q: полнотекстовый поиск с ранжированием и сниппетом. limit от 1 до 1000 (по умолчанию 50). Перевёрнутый диапазон отклоняется и никогда не возвращается пустой страницей. Подробности: iris://capabilities. Когда не использовать. Для оценки трейса (evaluate_output) или его создания (log_trace). Как живой поток: опрашивай с backoff. Возвращает. JSON: traces, total, limit, offset, summary, search. Ошибки. IRIS_STORAGE_ERROR. Границы вне диапазона отклоняются с указанием значений; отсутствие совпадений - это total 0, а не ошибка. Сбои возвращают {"error":{code,message,recovery}} с isError; следуй recovery. Смежные инструменты. log_trace - записывает выполнение; evaluate_output - оценивает один вывод; delete_trace - удаляет один трейс.

Получить трассы

Параметры
  • agent_namestring

    Фильтрует по имени агента - точное совпадение (без подстановочных знаков)

  • frameworkstring

    Фильтрует по фреймворку агентов — точное соответствие (например, langchain, autogen).

  • include_summaryboolean

    Включите сводную статистику дашборда в тот же ответ: экономит дополнительный запрос при приёме данных для дашбордов.

  • limitinteger

    Результатов на странице (по умолчанию 50, максимум 1000, значения, превышающие максимум, отклоняются)

  • max_scorenumber

    Фильтр максимальной оценки eval (0..1; значения вне диапазона отклоняются): применяется к ПОСЛЕДНЕЙ оценке eval для каждого трейса.

  • min_scorenumber

    Минимальный балл (0..1) последней оценки каждого трейса; не больше max_score

  • offsetinteger

    Смещение пагинации с нуля: пропускает первые N результатов (неотрицательное целое число)

  • qstring

    Выполняет полнотекстовый поиск по входным данным, выходным данным, значениям вызовов инструментов, значениям метаданных, а также значениям атрибутов и событий span. Каждое слово должно присутствовать; "фраза в кавычках"; word* для префикса от 3 символов (1 для CJK). Регистр и диакритические знаки игнорируются. Не более 16 термов, 4 из них префиксы.

  • sessionstring

    Фильтрует по идентификатору сессии: реплики одного разговора, записанные с session_id

  • sincestring

    Нижняя граница включительно: метка времени или дата в формате ISO 8601; всё остальное отклоняется.

  • sort_byenum

    Сортирует по timestamp | latency_ms | cost_usd | relevance (по умолчанию relevance при q, иначе timestamp)

  • sort_orderenum

    Порядок сортировки: asc | desc (по умолчанию desc: сначала новые / наибольшие)

  • untilstring

    Верхняя граница временной метки ISO 8601 (или даты): возвращает трейсы с временной меткой <= этой границы; не должна быть раньше since.

list_rulesтолько чтениеидемпотентный

Реестр правил: каждое встроенное правило с тем, что ему нужно, его фактическая критичность и заявленная точность, плюс каждое развёрнутое пользовательское правило. Что делает. Только чтение, без сети. built_in никогда не сужается фильтрами; правило, у которого нет нужных зависимостей, пропускается, но никогда не проходит проверку. Прежде чем доверять passed: true, проверяйте critical и criticalSource. rules - это хранилище пользовательских правил, фильтруется по eval_type и enabled_only. Полное описание: iris://capabilities. Когда не использовать. Чтобы добавить, удалить или приостановить правило (deploy_rule, delete_rule); встроенные правила изменять нельзя. Возвращает. JSON: rules, total, enabled_count, built_in, quarantined, plugins. Ошибки. IRIS_INTERNAL_ERROR, если хранилище не удаётся прочитать; если хранилище отсутствует, возвращается пустой список. Сбои возвращают {"error":{code,message,recovery}} с isError; следуйте recovery. Связанные инструменты. deploy_rule - добавляет пользовательское правило; delete_rule - удаляет, отключает или повторно включает правило; evaluate_output - запускает полный конвейер проверки.

Перечисляет правила.

Параметры
  • enabled_onlyboolean

    Возвращает только включённые пользовательские правила (правило, отключённое через delete_rule, остаётся в хранилище и не срабатывает)

  • eval_typeenum

    Фильтрует пользовательские правила по одной категории eval (точное совпадение); built_in никогда не фильтруется

log_trace

Сохраняет одно выполнение агента (входные данные, выходные данные, вызовы инструментов, спаны, стоимость, токены) и возвращает trace_id, по которому привязываются последующие вызовы. Что делает. Записывает один неизменяемый трейс в локальное хранилище; дедупликации нет. Обязателен только agent_name; сохраняйте tool_calls, tools, cost и input/output, чтобы правила могли их оценить. evaluate: true (вместе с output) ещё и оценивает его в этом же вызове, ровно так же, как это сделал бы evaluate_output. Полные сведения: iris://capabilities. Когда не использовать. Чтобы оценить сохранённый трейс (evaluate_output с его trace_id). Чтобы изменить его (delete_trace, затем записать снова). Возвращает. JSON: trace_id, status, cost_usd, cost_source, cost_estimate, evaluation. Ошибки. IRIS_STORAGE_ERROR; IRIS_INVALID_ARGUMENT, если evaluate имеет значение true без output. Неизвестные или некорректные аргументы отклоняются с перечислением допустимых ключей. При сбоях возвращается {"error":{code,message,recovery}} с isError; следуйте recovery. Связанные инструменты. evaluate_output - оценивает сохранённые выходные данные; get_traces - запрашивает то, что попало в журнал; delete_trace - удаляет один трейс.

Лог трассировки

Параметры
  • agent_namestringобязательный

    Имя агента: используется для фильтрации в get_traces (например, "customer-support-bot")

  • case_keystring

    Что делает этот вопрос одним и тем же от запуска к запуску (fixture или test id); сопоставляет трассировки. Выводится из входных данных, если не указан.

  • cost_usdnumber

    Общая стоимость в USD, сохранённая как указано. Если пропущено: оценивается по количеству токенов и модели (metadata.model или spans) по прейскурантной цене и помечается как estimated

  • eval_typeenum

    При evaluate: true - bundle для запуска (по умолчанию: каждый bundle, отмеченный в ответе)

  • evaluateboolean

    Также оценивает сохранённый трейс в этом вызове, точно так же, как это сделал бы evaluate_output; требует output.

  • frameworkstring

    Идентификатор фреймворка агента (например, langchain, autogen, custom)

  • inputstring

    Входной текст агента - пользовательский запрос или входные данные из вышестоящего источника, которые привели к этому результату.

  • latency_msnumber

    Общее время выполнения в миллисекундах (сквозная задержка агента от начала до конца).

  • metadataobject

    Непрозрачные теги ключ-значение (например, {requestId, userId, env}) доступны для запроса в дашборде, но не через фильтры get_traces.

  • outputstring

    Текст вывода агента - то, что агент создал (передайте в evaluate_output для оценки).

  • runstring

    Батч, к которому относится это выполнение (CI job id, sweep); compare_runs сравнивает два запуска.

  • session_idstring

    Диалог, которому принадлежит этот ход; группирует свои ходы. Читает из SEP-414 baggage, если не указано.

  • spansobject[]

    Подробные спаны выполнения (иерархическое дерево спанов с таймингами, атрибутами, событиями); спан без start_time берёт метку времени трейса

  • timestampstring

    Метка времени трассировки (ISO 8601); по умолчанию now(), если не указано.

  • token_usageobject

    Использование токенов (prompt/completion/total и cache_read_tokens / cache_creation_tokens: кэшированная часть prompt_tokens) - рассчитывает стоимость трейса, когда cost_usd не указан.

  • tool_callsobject[]

    Вызовы инструментов, сделанные по порядку, каждый { tool_name, input?, output?, latency_ms?, error? }; правила траектории оценивают их.

  • toolsobject[]

    Результат tools/list вашего MCP, дословно; позволяет правилам позже проверить аргументы вызова.

verify_citationsвнешний мир

Подкреплена ли каждая ссылка в выводе своим источником? Извлекает, загружает (по желанию, с защитой от SSRF) и оценивает на вашем ключе. Что делает. Загружает только при allow_fetch или IRIS_CITATION_ALLOW_FETCH=1, блокируя приватные адреса. Один вызов судьи на каждую разрешённую ссылку, с ограничением по max_cost_usd_total; overall_score равен supported / judged, null, если ничего не оценивалось. Полные детали: iris://capabilities. Когда не использовать. Без ссылок (evaluate_output). Без IRIS_ANTHROPIC_API_KEY или IRIS_OPENAI_API_KEY. Возвращает. JSON: id, reference_trace_id, overall_score, passed, verdict, total_unsupported, total_citations_found, total_resolved, total_judged, total_supported, total_cost_usd, citations. Ошибки. IRIS_JUDGE_NOT_ENABLED, IRIS_JUDGE_UNKNOWN_MODEL, IRIS_UNKNOWN_TRACE (до любых расходов); IRIS_JUDGE_FAILED, когда все вызовы судьи провалились. При сбоях возвращается {"error":{code,message,recovery}} с isError; следуйте recovery. Смежные. evaluate_with_llm_judge - семантическая оценка; evaluate_output - бесплатный детерминированный путь.

Проверить ссылки

Параметры
  • allow_fetchboolean

    Разрешает исходящие HTTP-запросы для разрешения URL/DOI. По умолчанию значение равно IRIS_CITATION_ALLOW_FETCH=1; в противном случае false. В любом случае защищено от SSRF.

  • domain_allowliststring[]

    Ограничивает выборку доменными именами из этого списка (допускается сопоставление по суффиксу). Объединяется с переменной окружения IRIS_CITATION_DOMAINS.

  • max_citationsinteger

    Максимум цитат для проверки (лишние пропускаются, не вызывают ошибку); по умолчанию 20, максимум 50

  • max_cost_usd_totalnumber

    Ограничивает ОБЩУЮ стоимость judge по всем цитатам в этом вызове; по умолчанию 1.00 USD - пайплайн останавливается, когда следующий вызов превысил бы её

  • modelstringобязательный

    Модель-судья для проверки каждой ссылки. Поддерживаются: anthropic = claude-fable-5-1 | claude-opus-5-5 | claude-sonnet-5 (а также платная линейка 4.x); openai = gpt-5 | gpt-5-mini | gpt-4.1-mini (а также платные 4o, o3/o4 и снятые с поддержки id o1); неизвестный id отклоняется с показом полного списка платных моделей.

  • outputstringобязательный

    Вывод агента, содержащий цитаты для проверки.

  • per_source_max_bytesinteger

    Ограничение размера тела для каждого URL; по умолчанию 5 МБ.

  • per_source_timeout_msinteger

    Таймаут загрузки для каждого URL; по умолчанию 10_000

  • providerenum

    Автоматически определяется по модели, если не указано.

  • trace_idstring

    Хранит результат проверки рядом с сохранённым трейсом (id из log_trace / get_traces). Отображается вместе с трейсом и никогда не заменяет его вердикт; неизвестный id отклоняется перед любым fetch или вызовом judge.

0.20.0основная
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.1
0.12.0
0.11.0
0.10.0
0.9.0
0.8.2
0.8.1
0.8.0
0.7.0
0.6.0
0.5.1
0.5.0
0.4.6
0.4.5
0.4.4
0.4.3-rc.0
0.4.2
0.4.1
0.4.0
0.4.0-rc.1
0.3.1
0.3.0
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0

Выберите клиент, чтобы установить iris-eval/mcp-server:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "iris-eval-mcp-server-654nzjrdpa": {
      "command": "npx",
      "args": [
        "@iris-eval/mcp-server"
      ]
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "iris-eval-mcp-server-654nzjrdpa": {
      "command": "npx",
      "args": [
        "@iris-eval/mcp-server"
      ]
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "iris-eval-mcp-server-654nzjrdpa": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "@iris-eval/mcp-server"
      ]
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"iris-eval-mcp-server-654nzjrdpa\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"@iris-eval/mcp-server\"]}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "iris-eval-mcp-server-654nzjrdpa": {
      "command": "npx",
      "args": [
        "@iris-eval/mcp-server"
      ]
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add iris-eval-mcp-server-654nzjrdpa -- npx @iris-eval/mcp-server

Либо через JSON-конфиг:

claude mcp add-json iris-eval-mcp-server-654nzjrdpa "{\"command\":\"npx\",\"args\":[\"@iris-eval/mcp-server\"]}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add iris-eval-mcp-server-654nzjrdpa -- npx @iris-eval/mcp-server

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.iris-eval-mcp-server-654nzjrdpa]
command = "npx"
args = ["@iris-eval/mcp-server"]
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите iris-eval/mcp-server, а в поле команды запуска — строку ниже:
npx @iris-eval/mcp-server

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "iris-eval-mcp-server-654nzjrdpa": {
      "command": "npx",
      "args": [
        "@iris-eval/mcp-server"
      ]
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "iris-eval-mcp-server-654nzjrdpa": {
      "command": "npx",
      "args": [
        "@iris-eval/mcp-server"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например iris-eval-mcp-server-654nzjrdpa.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: iris-eval-mcp-server-654nzjrdpa
    command: npx
    args:
      - "@iris-eval/mcp-server"
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "iris-eval-mcp-server-654nzjrdpa": {
      "command": "npx",
      "args": [
        "@iris-eval/mcp-server"
      ]
    }
  }
}

Похожие MCP-сервера

kitao/pyxel-mcp

kitao/pyxel-mcp

от kitao

MCP сервер для ретро-игрового движка Pyxel. AI-агенты запускают и анализируют Pyxel-программы без окна (headless) с изоляцией процессов и структурированным выводом. Полезен при создании игр на Python с LLM.

Python⭐ 30
tactual-dev/tactual

tactual-dev/tactual

от tactual-dev

Tactual — MCP сервер для оценки навигационных затрат screen-reader: сколько нажатий нужно, чтобы найти и активировать каждый элемент. Помогает веб-разработчикам выявлять неоптимальные пути и улучша...

TypeScript⭐ 1
qainsights/jmeter-mcp-server

qainsights/jmeter-mcp-server

от qainsights

MCP инструмент для выполнения JMeter тестов и анализа производительности. Запускает нагрузочные тесты, парсит JTL-отчёты, выявляет узкие места и генерирует HTML-дашборды. Пригодится QA-инженерам и ...

Python⭐ 74
TCSoftInc/testcollab-mcp-server

TCSoftInc/testcollab-mcp-server

от tcsoftinc

Интегрируйте AI-ассистентов с TestCollab: управляйте тест-кейсами, тест-планами и наборами через API. Полезен тестировщикам и QA-инженерам для работы с тестовой документацией через Claude, Cursor и другие MCP-клиенты.

TypeScript⭐ 4
corralimited/snapdiff-mcp

corralimited/snapdiff-mcp

от corralimited

MCP сервер для визуального сравнения веб-страниц через SnapDiff API. Позволяет разработчикам и QA автоматически снимать скриншоты, сравнивать UI на изменения и рендерить HTML/CSS в картинки. Подход...

TypeScript⭐ 5
callstackincubator/agent-device

callstackincubator/agent-device

от callstackincubator

agent-device — CLI для автоматизации устройств, позволяющий AI-агентам открывать приложения на iOS, Android и десктопе, инспектировать UI, взаимодействовать с элементами и собирать отладочную инфор...

TypeScript⭐ 5078
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин