@iris-eval/mcp-server 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -10
- package/dist/index.js +11 -3
- package/package.json +1 -1
- package/server.json +2 -2
package/README.md
CHANGED
|
@@ -54,11 +54,25 @@ Add Iris to your MCP config. Works with Claude Desktop, Cursor, Windsurf, and an
|
|
|
54
54
|
|
|
55
55
|
That's it. Your agent discovers Iris and starts logging traces automatically.
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
### Turn on the dashboard
|
|
58
|
+
|
|
59
|
+
Iris ships with a real-time web dashboard showing traces, eval results, cost breakdowns, and rule pass-rates. It's off by default so the MCP server stays lightweight — flip it on with a flag.
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"mcpServers": {
|
|
64
|
+
"iris-eval": {
|
|
65
|
+
"command": "npx",
|
|
66
|
+
"args": ["@iris-eval/mcp-server", "--dashboard"]
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Then open **http://localhost:6920** after your agent runs a trace. The same dashboard is available via CLI:
|
|
58
73
|
|
|
59
74
|
```bash
|
|
60
75
|
npx @iris-eval/mcp-server --dashboard
|
|
61
|
-
# Open http://localhost:6920
|
|
62
76
|
```
|
|
63
77
|
|
|
64
78
|
<details>
|
|
@@ -120,9 +134,10 @@ Self-hosted Iris runs on your machine with SQLite. As your team's eval needs gro
|
|
|
120
134
|
## Examples
|
|
121
135
|
|
|
122
136
|
- [Claude Desktop setup](examples/claude-desktop/) — MCP config for stdio and HTTP modes
|
|
123
|
-
- [TypeScript](examples/typescript/basic-usage.ts) —
|
|
124
|
-
- [
|
|
125
|
-
- [
|
|
137
|
+
- [TypeScript — MCP SDK client](examples/typescript/basic-usage.ts) — connect and invoke tools
|
|
138
|
+
- [HTTP transport (TS + Python)](examples/http-transport/) — full client code for REST-style integration
|
|
139
|
+
- [LangChain instrumentation (Python, conceptual)](examples/langchain/observe-agent.py) — scaffold showing the shape; needs your agent code to be runnable
|
|
140
|
+
- [CrewAI instrumentation (Python, conceptual)](examples/crewai/observe-crew.py) — scaffold; same caveat
|
|
126
141
|
|
|
127
142
|
## Community
|
|
128
143
|
|
|
@@ -150,14 +165,18 @@ Self-hosted Iris runs on your machine with SQLite. As your team's eval needs gro
|
|
|
150
165
|
|
|
151
166
|
| Variable | Description |
|
|
152
167
|
|----------|-------------|
|
|
153
|
-
| `IRIS_TRANSPORT` | Transport type |
|
|
154
|
-
| `IRIS_PORT` | HTTP port |
|
|
155
|
-
| `
|
|
156
|
-
| `
|
|
157
|
-
| `
|
|
168
|
+
| `IRIS_TRANSPORT` | Transport type (`stdio` or `http`) |
|
|
169
|
+
| `IRIS_PORT` | HTTP transport port |
|
|
170
|
+
| `IRIS_HOST` | HTTP transport host (default `127.0.0.1`) |
|
|
171
|
+
| `IRIS_DB_PATH` | SQLite database path |
|
|
172
|
+
| `IRIS_LOG_LEVEL` | Log level: `debug`, `info`, `warn`, `error` |
|
|
173
|
+
| `IRIS_DASHBOARD` | Enable web dashboard (`true`/`false`) |
|
|
174
|
+
| `IRIS_DASHBOARD_PORT` | Dashboard port (default `6920`) |
|
|
158
175
|
| `IRIS_API_KEY` | API key for HTTP authentication |
|
|
159
176
|
| `IRIS_ALLOWED_ORIGINS` | Comma-separated allowed CORS origins |
|
|
160
177
|
|
|
178
|
+
CLI flags take precedence over environment variables when both are set.
|
|
179
|
+
|
|
161
180
|
### Security
|
|
162
181
|
|
|
163
182
|
When using HTTP transport, Iris includes:
|
package/dist/index.js
CHANGED
|
@@ -57,9 +57,14 @@ async function main() {
|
|
|
57
57
|
const httpServers = [];
|
|
58
58
|
// Run data retention cleanup on startup
|
|
59
59
|
if (config.retention.days > 0) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
try {
|
|
61
|
+
const deleted = await storage.deleteTracesOlderThan(config.retention.days);
|
|
62
|
+
if (deleted > 0) {
|
|
63
|
+
logger.info(`Retention cleanup: deleted ${deleted} trace(s) older than ${config.retention.days} days`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
logger.warn(`Retention cleanup skipped: ${err instanceof Error ? err.message : String(err)}`);
|
|
63
68
|
}
|
|
64
69
|
}
|
|
65
70
|
if (config.transport.type === 'http') {
|
|
@@ -74,6 +79,9 @@ async function main() {
|
|
|
74
79
|
const transport = createStdioTransport();
|
|
75
80
|
await mcpServer.connect(transport);
|
|
76
81
|
logger.info('Stdio transport connected');
|
|
82
|
+
if (!config.dashboard.enabled) {
|
|
83
|
+
logger.info(`Tip: run with --dashboard to open the web dashboard on port ${config.dashboard.port}`);
|
|
84
|
+
}
|
|
77
85
|
}
|
|
78
86
|
if (config.dashboard.enabled || config.transport.type === 'http') {
|
|
79
87
|
const dashboardServer = createDashboardServer(storage, config, logger);
|
package/package.json
CHANGED
package/server.json
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"url": "https://github.com/iris-eval/mcp-server",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.2.
|
|
9
|
+
"version": "0.2.3",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "@iris-eval/mcp-server",
|
|
14
|
-
"version": "0.2.
|
|
14
|
+
"version": "0.2.3",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|