# 安装 Iris

- 类型: MCP 工具
- 说明: 为 MCP 智能体输出按质量、安全与成本进行标准化评分评估。
- 仓库: https://github.com/iris-eval/mcp-server

## 方式一 · 一键代装（复制提示词让 AI 代劳）

### Claude Code
```
请帮我安装 askskill 上的 "Iris" MCP 服务：
执行：claude mcp add 'io-github-iris-eval-mcp-server' -- npx -y @iris-eval/mcp-server
```

### Codex
```
请帮我安装 askskill 上的 "Iris" MCP 服务：
在 ~/.codex/config.toml 中添加：
[mcp_servers.io-github-iris-eval-mcp-server]
command = "npx"
args = ["-y","@iris-eval/mcp-server"]
然后重启 Codex 生效
```

### Cursor
```
请帮我安装 askskill 上的 "Iris" MCP 服务：
在 .cursor/mcp.json 的 "mcpServers" 中添加：
"io-github-iris-eval-mcp-server": { "command": "npx", "args": ["-y","@iris-eval/mcp-server"] }
然后在 Cursor 设置 > MCP 中启用
```

## 方式二 · 命令行安装（原生命令与配置）

### Claude Code
```bash
claude mcp add --env IRIS_API_KEY=YOUR_VALUE --env IRIS_API_KEY_FILE=YOUR_VALUE --env IRIS_ALLOW_UNAUTHENTICATED=YOUR_VALUE --env IRIS_DB_PATH=YOUR_VALUE --env IRIS_SQLITE_DRIVER=YOUR_VALUE --env IRIS_SEARCH_BUDGET_MS=YOUR_VALUE --env IRIS_SEARCH_INDEX=YOUR_VALUE --env IRIS_LOG_LEVEL=YOUR_VALUE --env IRIS_HOME=YOUR_VALUE --env IRIS_ANTHROPIC_API_KEY=YOUR_VALUE --env IRIS_OPENAI_API_KEY=YOUR_VALUE --env IRIS_LLM_JUDGE_MAX_COST_USD_PER_EVAL=YOUR_VALUE --env IRIS_RELEVANCE_JUDGE_MODEL=YOUR_VALUE --env IRIS_RELEVANCE_JUDGE_DAILY_BUDGET_USD=YOUR_VALUE --env IRIS_RELEVANCE_JUDGE_MAX_CALLS_PER_REQUEST=YOUR_VALUE --env IRIS_RELEVANCE_JUDGE_REDACT=YOUR_VALUE --env IRIS_CITATION_ALLOW_FETCH=YOUR_VALUE --env IRIS_DASHBOARD=YOUR_VALUE --env IRIS_DASHBOARD_PORT=YOUR_VALUE --env IRIS_PORT=YOUR_VALUE --env IRIS_OTEL_ENDPOINT=YOUR_VALUE --env IRIS_CITATION_DOMAINS=YOUR_VALUE --env IRIS_TRANSPORT=YOUR_VALUE --env IRIS_HOST=YOUR_VALUE --env IRIS_ALLOWED_ORIGINS=YOUR_VALUE --env IRIS_DASHBOARD_HOST=YOUR_VALUE --env IRIS_OTEL_HEADERS=YOUR_VALUE --env IRIS_OTEL_SERVICE_NAME=YOUR_VALUE --env IRIS_OTEL_TIMEOUT_MS=YOUR_VALUE --env IRIS_WEBHOOK_URL=YOUR_VALUE --env IRIS_WEBHOOK_SECRET=YOUR_VALUE --transport stdio io-github-iris-eval-mcp-server -- npx -y @iris-eval/mcp-server
```
需要环境变量：IRIS_API_KEY, IRIS_API_KEY_FILE, IRIS_ALLOW_UNAUTHENTICATED, IRIS_DB_PATH, IRIS_SQLITE_DRIVER, IRIS_SEARCH_BUDGET_MS, IRIS_SEARCH_INDEX, IRIS_LOG_LEVEL, IRIS_HOME, IRIS_ANTHROPIC_API_KEY, IRIS_OPENAI_API_KEY, IRIS_LLM_JUDGE_MAX_COST_USD_PER_EVAL, IRIS_RELEVANCE_JUDGE_MODEL, IRIS_RELEVANCE_JUDGE_DAILY_BUDGET_USD, IRIS_RELEVANCE_JUDGE_MAX_CALLS_PER_REQUEST, IRIS_RELEVANCE_JUDGE_REDACT, IRIS_CITATION_ALLOW_FETCH, IRIS_DASHBOARD, IRIS_DASHBOARD_PORT, IRIS_PORT, IRIS_OTEL_ENDPOINT, IRIS_CITATION_DOMAINS, IRIS_TRANSPORT, IRIS_HOST, IRIS_ALLOWED_ORIGINS, IRIS_DASHBOARD_HOST, IRIS_OTEL_HEADERS, IRIS_OTEL_SERVICE_NAME, IRIS_OTEL_TIMEOUT_MS, IRIS_WEBHOOK_URL, IRIS_WEBHOOK_SECRET

### Codex
```bash
codex mcp add --env IRIS_API_KEY=YOUR_VALUE --env IRIS_API_KEY_FILE=YOUR_VALUE --env IRIS_ALLOW_UNAUTHENTICATED=YOUR_VALUE --env IRIS_DB_PATH=YOUR_VALUE --env IRIS_SQLITE_DRIVER=YOUR_VALUE --env IRIS_SEARCH_BUDGET_MS=YOUR_VALUE --env IRIS_SEARCH_INDEX=YOUR_VALUE --env IRIS_LOG_LEVEL=YOUR_VALUE --env IRIS_HOME=YOUR_VALUE --env IRIS_ANTHROPIC_API_KEY=YOUR_VALUE --env IRIS_OPENAI_API_KEY=YOUR_VALUE --env IRIS_LLM_JUDGE_MAX_COST_USD_PER_EVAL=YOUR_VALUE --env IRIS_RELEVANCE_JUDGE_MODEL=YOUR_VALUE --env IRIS_RELEVANCE_JUDGE_DAILY_BUDGET_USD=YOUR_VALUE --env IRIS_RELEVANCE_JUDGE_MAX_CALLS_PER_REQUEST=YOUR_VALUE --env IRIS_RELEVANCE_JUDGE_REDACT=YOUR_VALUE --env IRIS_CITATION_ALLOW_FETCH=YOUR_VALUE --env IRIS_DASHBOARD=YOUR_VALUE --env IRIS_DASHBOARD_PORT=YOUR_VALUE --env IRIS_PORT=YOUR_VALUE --env IRIS_OTEL_ENDPOINT=YOUR_VALUE --env IRIS_CITATION_DOMAINS=YOUR_VALUE --env IRIS_TRANSPORT=YOUR_VALUE --env IRIS_HOST=YOUR_VALUE --env IRIS_ALLOWED_ORIGINS=YOUR_VALUE --env IRIS_DASHBOARD_HOST=YOUR_VALUE --env IRIS_OTEL_HEADERS=YOUR_VALUE --env IRIS_OTEL_SERVICE_NAME=YOUR_VALUE --env IRIS_OTEL_TIMEOUT_MS=YOUR_VALUE --env IRIS_WEBHOOK_URL=YOUR_VALUE --env IRIS_WEBHOOK_SECRET=YOUR_VALUE io-github-iris-eval-mcp-server -- npx -y @iris-eval/mcp-server
```
配置文件 ~/.codex/config.toml：
```toml
[mcp_servers.io-github-iris-eval-mcp-server]
command = "npx"
args = ["-y","@iris-eval/mcp-server"]

[mcp_servers.io-github-iris-eval-mcp-server.env]
IRIS_API_KEY = "YOUR_VALUE"
IRIS_API_KEY_FILE = "YOUR_VALUE"
IRIS_ALLOW_UNAUTHENTICATED = "YOUR_VALUE"
IRIS_DB_PATH = "YOUR_VALUE"
IRIS_SQLITE_DRIVER = "YOUR_VALUE"
IRIS_SEARCH_BUDGET_MS = "YOUR_VALUE"
IRIS_SEARCH_INDEX = "YOUR_VALUE"
IRIS_LOG_LEVEL = "YOUR_VALUE"
IRIS_HOME = "YOUR_VALUE"
IRIS_ANTHROPIC_API_KEY = "YOUR_VALUE"
IRIS_OPENAI_API_KEY = "YOUR_VALUE"
IRIS_LLM_JUDGE_MAX_COST_USD_PER_EVAL = "YOUR_VALUE"
IRIS_RELEVANCE_JUDGE_MODEL = "YOUR_VALUE"
IRIS_RELEVANCE_JUDGE_DAILY_BUDGET_USD = "YOUR_VALUE"
IRIS_RELEVANCE_JUDGE_MAX_CALLS_PER_REQUEST = "YOUR_VALUE"
IRIS_RELEVANCE_JUDGE_REDACT = "YOUR_VALUE"
IRIS_CITATION_ALLOW_FETCH = "YOUR_VALUE"
IRIS_DASHBOARD = "YOUR_VALUE"
IRIS_DASHBOARD_PORT = "YOUR_VALUE"
IRIS_PORT = "YOUR_VALUE"
IRIS_OTEL_ENDPOINT = "YOUR_VALUE"
IRIS_CITATION_DOMAINS = "YOUR_VALUE"
IRIS_TRANSPORT = "YOUR_VALUE"
IRIS_HOST = "YOUR_VALUE"
IRIS_ALLOWED_ORIGINS = "YOUR_VALUE"
IRIS_DASHBOARD_HOST = "YOUR_VALUE"
IRIS_OTEL_HEADERS = "YOUR_VALUE"
IRIS_OTEL_SERVICE_NAME = "YOUR_VALUE"
IRIS_OTEL_TIMEOUT_MS = "YOUR_VALUE"
IRIS_WEBHOOK_URL = "YOUR_VALUE"
IRIS_WEBHOOK_SECRET = "YOUR_VALUE"
```
需要环境变量：IRIS_API_KEY, IRIS_API_KEY_FILE, IRIS_ALLOW_UNAUTHENTICATED, IRIS_DB_PATH, IRIS_SQLITE_DRIVER, IRIS_SEARCH_BUDGET_MS, IRIS_SEARCH_INDEX, IRIS_LOG_LEVEL, IRIS_HOME, IRIS_ANTHROPIC_API_KEY, IRIS_OPENAI_API_KEY, IRIS_LLM_JUDGE_MAX_COST_USD_PER_EVAL, IRIS_RELEVANCE_JUDGE_MODEL, IRIS_RELEVANCE_JUDGE_DAILY_BUDGET_USD, IRIS_RELEVANCE_JUDGE_MAX_CALLS_PER_REQUEST, IRIS_RELEVANCE_JUDGE_REDACT, IRIS_CITATION_ALLOW_FETCH, IRIS_DASHBOARD, IRIS_DASHBOARD_PORT, IRIS_PORT, IRIS_OTEL_ENDPOINT, IRIS_CITATION_DOMAINS, IRIS_TRANSPORT, IRIS_HOST, IRIS_ALLOWED_ORIGINS, IRIS_DASHBOARD_HOST, IRIS_OTEL_HEADERS, IRIS_OTEL_SERVICE_NAME, IRIS_OTEL_TIMEOUT_MS, IRIS_WEBHOOK_URL, IRIS_WEBHOOK_SECRET

### Cursor
配置文件 .cursor/mcp.json：
```json
{
  "mcpServers": {
    "io-github-iris-eval-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@iris-eval/mcp-server"
      ],
      "env": {
        "IRIS_API_KEY": "YOUR_VALUE",
        "IRIS_API_KEY_FILE": "YOUR_VALUE",
        "IRIS_ALLOW_UNAUTHENTICATED": "YOUR_VALUE",
        "IRIS_DB_PATH": "YOUR_VALUE",
        "IRIS_SQLITE_DRIVER": "YOUR_VALUE",
        "IRIS_SEARCH_BUDGET_MS": "YOUR_VALUE",
        "IRIS_SEARCH_INDEX": "YOUR_VALUE",
        "IRIS_LOG_LEVEL": "YOUR_VALUE",
        "IRIS_HOME": "YOUR_VALUE",
        "IRIS_ANTHROPIC_API_KEY": "YOUR_VALUE",
        "IRIS_OPENAI_API_KEY": "YOUR_VALUE",
        "IRIS_LLM_JUDGE_MAX_COST_USD_PER_EVAL": "YOUR_VALUE",
        "IRIS_RELEVANCE_JUDGE_MODEL": "YOUR_VALUE",
        "IRIS_RELEVANCE_JUDGE_DAILY_BUDGET_USD": "YOUR_VALUE",
        "IRIS_RELEVANCE_JUDGE_MAX_CALLS_PER_REQUEST": "YOUR_VALUE",
        "IRIS_RELEVANCE_JUDGE_REDACT": "YOUR_VALUE",
        "IRIS_CITATION_ALLOW_FETCH": "YOUR_VALUE",
        "IRIS_DASHBOARD": "YOUR_VALUE",
        "IRIS_DASHBOARD_PORT": "YOUR_VALUE",
        "IRIS_PORT": "YOUR_VALUE",
        "IRIS_OTEL_ENDPOINT": "YOUR_VALUE",
        "IRIS_CITATION_DOMAINS": "YOUR_VALUE",
        "IRIS_TRANSPORT": "YOUR_VALUE",
        "IRIS_HOST": "YOUR_VALUE",
        "IRIS_ALLOWED_ORIGINS": "YOUR_VALUE",
        "IRIS_DASHBOARD_HOST": "YOUR_VALUE",
        "IRIS_OTEL_HEADERS": "YOUR_VALUE",
        "IRIS_OTEL_SERVICE_NAME": "YOUR_VALUE",
        "IRIS_OTEL_TIMEOUT_MS": "YOUR_VALUE",
        "IRIS_WEBHOOK_URL": "YOUR_VALUE",
        "IRIS_WEBHOOK_SECRET": "YOUR_VALUE"
      }
    }
  }
}
```
一键安装：cursor://anysphere.cursor-deeplink/mcp/install?name=io-github-iris-eval-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBpcmlzLWV2YWwvbWNwLXNlcnZlciJdLCJlbnYiOnsiSVJJU19BUElfS0VZIjoiWU9VUl9WQUxVRSIsIklSSVNfQVBJX0tFWV9GSUxFIjoiWU9VUl9WQUxVRSIsIklSSVNfQUxMT1dfVU5BVVRIRU5USUNBVEVEIjoiWU9VUl9WQUxVRSIsIklSSVNfREJfUEFUSCI6IllPVVJfVkFMVUUiLCJJUklTX1NRTElURV9EUklWRVIiOiJZT1VSX1ZBTFVFIiwiSVJJU19TRUFSQ0hfQlVER0VUX01TIjoiWU9VUl9WQUxVRSIsIklSSVNfU0VBUkNIX0lOREVYIjoiWU9VUl9WQUxVRSIsIklSSVNfTE9HX0xFVkVMIjoiWU9VUl9WQUxVRSIsIklSSVNfSE9NRSI6IllPVVJfVkFMVUUiLCJJUklTX0FOVEhST1BJQ19BUElfS0VZIjoiWU9VUl9WQUxVRSIsIklSSVNfT1BFTkFJX0FQSV9LRVkiOiJZT1VSX1ZBTFVFIiwiSVJJU19MTE1fSlVER0VfTUFYX0NPU1RfVVNEX1BFUl9FVkFMIjoiWU9VUl9WQUxVRSIsIklSSVNfUkVMRVZBTkNFX0pVREdFX01PREVMIjoiWU9VUl9WQUxVRSIsIklSSVNfUkVMRVZBTkNFX0pVREdFX0RBSUxZX0JVREdFVF9VU0QiOiJZT1VSX1ZBTFVFIiwiSVJJU19SRUxFVkFOQ0VfSlVER0VfTUFYX0NBTExTX1BFUl9SRVFVRVNUIjoiWU9VUl9WQUxVRSIsIklSSVNfUkVMRVZBTkNFX0pVREdFX1JFREFDVCI6IllPVVJfVkFMVUUiLCJJUklTX0NJVEFUSU9OX0FMTE9XX0ZFVENIIjoiWU9VUl9WQUxVRSIsIklSSVNfREFTSEJPQVJEIjoiWU9VUl9WQUxVRSIsIklSSVNfREFTSEJPQVJEX1BPUlQiOiJZT1VSX1ZBTFVFIiwiSVJJU19QT1JUIjoiWU9VUl9WQUxVRSIsIklSSVNfT1RFTF9FTkRQT0lOVCI6IllPVVJfVkFMVUUiLCJJUklTX0NJVEFUSU9OX0RPTUFJTlMiOiJZT1VSX1ZBTFVFIiwiSVJJU19UUkFOU1BPUlQiOiJZT1VSX1ZBTFVFIiwiSVJJU19IT1NUIjoiWU9VUl9WQUxVRSIsIklSSVNfQUxMT1dFRF9PUklHSU5TIjoiWU9VUl9WQUxVRSIsIklSSVNfREFTSEJPQVJEX0hPU1QiOiJZT1VSX1ZBTFVFIiwiSVJJU19PVEVMX0hFQURFUlMiOiJZT1VSX1ZBTFVFIiwiSVJJU19PVEVMX1NFUlZJQ0VfTkFNRSI6IllPVVJfVkFMVUUiLCJJUklTX09URUxfVElNRU9VVF9NUyI6IllPVVJfVkFMVUUiLCJJUklTX1dFQkhPT0tfVVJMIjoiWU9VUl9WQUxVRSIsIklSSVNfV0VCSE9PS19TRUNSRVQiOiJZT1VSX1ZBTFVFIn19
需要环境变量：IRIS_API_KEY, IRIS_API_KEY_FILE, IRIS_ALLOW_UNAUTHENTICATED, IRIS_DB_PATH, IRIS_SQLITE_DRIVER, IRIS_SEARCH_BUDGET_MS, IRIS_SEARCH_INDEX, IRIS_LOG_LEVEL, IRIS_HOME, IRIS_ANTHROPIC_API_KEY, IRIS_OPENAI_API_KEY, IRIS_LLM_JUDGE_MAX_COST_USD_PER_EVAL, IRIS_RELEVANCE_JUDGE_MODEL, IRIS_RELEVANCE_JUDGE_DAILY_BUDGET_USD, IRIS_RELEVANCE_JUDGE_MAX_CALLS_PER_REQUEST, IRIS_RELEVANCE_JUDGE_REDACT, IRIS_CITATION_ALLOW_FETCH, IRIS_DASHBOARD, IRIS_DASHBOARD_PORT, IRIS_PORT, IRIS_OTEL_ENDPOINT, IRIS_CITATION_DOMAINS, IRIS_TRANSPORT, IRIS_HOST, IRIS_ALLOWED_ORIGINS, IRIS_DASHBOARD_HOST, IRIS_OTEL_HEADERS, IRIS_OTEL_SERVICE_NAME, IRIS_OTEL_TIMEOUT_MS, IRIS_WEBHOOK_URL, IRIS_WEBHOOK_SECRET
