mcp
Add, remove, and test MCP (Model Context Protocol) servers by editing meta/mcp.json. Tools from connected servers appear automatically as mcp__<server>__<tool>.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Add, remove, and test MCP (Model Context Protocol) servers by editing meta/mcp.json. Tools from connected servers appear automatically as mcp__<server>__<tool>.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Create a new sub-agent — no Terraform, no Docker by default. Starts as a systemd service, patched into the bridge immediately so @agent works right away.
Commit and push repo changes to GitHub using the standard Iris workflow.
Search the web using Perplexity AI API. Returns sourced, up-to-date information.
Send an email via Resend API from ${IRIS_EMAIL_FROM:-iris@example.com}. Use when human escalation is needed or to deliver results outside Slack/Telegram.
Transcribe an audio file (m4a, mp3, wav, ogg, webm) to text using OpenAI Whisper API. Use when a user shares a voice note or audio attachment.
Expose a local port as a public HTTPS subdomain under IRIS_BASE_DOMAIN. Writes nginx config, obtains SSL cert via certbot, reloads nginx.
| name | mcp |
| description | Add, remove, and test MCP (Model Context Protocol) servers by editing meta/mcp.json. Tools from connected servers appear automatically as mcp__<server>__<tool>. |
Connect external toolsets to yourself via the Model Context Protocol. Servers
configured in <workspace>/meta/mcp.json are connected by the runtime and
their tools become directly callable by you, named mcp__<server>__<tool>.
The config hot-reloads before each message — no restart needed. Current
per-server status is always visible in your system prompt under
"## MCP Servers".
<workspace>/meta/mcp.json (next to channels.json):
{
"servers": {
"everything": {
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-everything"]
},
"linear": {
"transport": "http",
"url": "https://mcp.linear.app/mcp",
"headers": { "Authorization": "Bearer ${LINEAR_MCP_TOKEN}" }
}
}
}
Per-server optional fields: enabled (default true), allowedTools
(array of tool names, trailing-* wildcard supported; absent = all tools),
timeoutMs (per-call, default 30000), connectTimeoutMs (default 10000),
and for stdio servers env (extra environment variables for the child
process).
/iris/.env first (e.g.
LINEAR_MCP_TOKEN=...) and reference it as ${LINEAR_MCP_TOKEN} in
mcp.json. Never paste secrets into mcp.json — it may be committed.
A new .env var requires sudo systemctl restart iris to enter the
process environment (the only case needing a restart; mcp.json edits
themselves hot-reload).meta/mcp.json with your edit/write tools.curl -s 127.0.0.1:${IRIS_API_PORT:-3000}/mcp/status | jq
# with API auth enabled:
curl -s -H "Authorization: Bearer $IRIS_API_TOKEN" 127.0.0.1:${IRIS_API_PORT:-3000}/mcp/status | jq
This refreshes from mcp.json immediately and reports per-server status
(connected / failed / disabled), toolNames, and any error. A bad
server never breaks the runtime — it's just listed as failed until fixed.
"enabled": false on the entry.allowedTools to just the tools you need — fewer tools
keeps your toolset (and prompt-injection surface) small.journalctl -u iris | grep '\[mcp' (connects, failures,
stdio stderr, dropped tools).npx-based servers can be slow on first run (cold download) — raise
connectTimeoutMs if a server times out once then works./mcp/status retries immediately.