Skip to content

Commit dc00bb3

Browse files
authored
fix: use new agent config (#7)
Signed-off-by: Calum Murray <[email protected]>
1 parent d473dca commit dc00bb3

7 files changed

Lines changed: 63 additions & 57 deletions

File tree

01-getting-started/README.md

Lines changed: 31 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,6 @@ The server uses **streamable HTTP transport** with `mcp.run(transport="streamabl
3535

3636
## Quick Start
3737

38-
### 0. Configure the Judge LLM
39-
40-
MCPChecker uses an LLM to verify test results. Set these environment variables before running tests, for instance with OpenAI:
41-
42-
```bash
43-
export JUDGE_BASE_URL="https://api.openai.com/v1"
44-
export JUDGE_API_KEY="sk-your-key-here"
45-
export JUDGE_MODEL_NAME="gpt-4o-mini"
46-
```
47-
48-
The judge LLM evaluates whether the agent completed tasks correctly by analyzing the agent's output.
49-
5038
### 1. Install Prerequisites
5139

5240
**Install Claude Code** (AI agent):
@@ -60,6 +48,14 @@ curl -fsSL https://claude.ai/install.sh | bash
6048

6149
See the [official installation guide](https://github.com/anthropics/claude-code?tab=readme-ov-file#get-started) for Windows and other installation methods.
6250

51+
**Install the Claude ACP agent adapter:**
52+
53+
```bash
54+
npm install -g @agentclientprotocol/claude-agent-acp
55+
```
56+
57+
This provides the `claude-agent-acp` command used by MCPChecker to run Claude Code as an ACP-compatible agent.
58+
6359
**Install uv** (Python package manager):
6460
```bash
6561
curl -LsSf https://astral.sh/uv/install.sh | sh
@@ -116,6 +112,20 @@ You should see:
116112

117113
This quickstart includes a complete evaluation setup. Let's look at what gets tested and how it's defined:
118114

115+
### The Agent Configuration (`evals/agent.yaml`)
116+
117+
```yaml
118+
kind: Agent
119+
metadata:
120+
name: "claude-code-acp"
121+
acp:
122+
cmd: "claude-agent-acp"
123+
```
124+
125+
**What this does:**
126+
- Defines an ACP (Agent Client Protocol) agent that uses Claude Code via the `claude-agent-acp` adapter
127+
- This agent configuration is referenced by both the eval runner and the LLM judge
128+
119129
### The Main Eval Configuration (`evals/eval.yaml`)
120130

121131
```yaml
@@ -124,19 +134,19 @@ metadata:
124134
name: "demo-server-test"
125135
126136
config:
127-
# Use Claude Code as the AI agent
137+
# Use Claude Code as the AI agent (via ACP)
128138
agent:
129-
type: "builtin.claude-code"
139+
type: file
140+
path: agent.yaml
130141
131142
# MCP server configuration
132143
mcpConfigFile: mcp-config.yaml
133144
134-
# LLM judge configuration
145+
# LLM judge configuration (reuses the same agent)
135146
llmJudge:
136-
env:
137-
baseUrlKey: JUDGE_BASE_URL
138-
apiKeyKey: JUDGE_API_KEY
139-
modelNameKey: JUDGE_MODEL_NAME
147+
ref:
148+
type: file
149+
path: agent.yaml
140150
141151
# Test tasks
142152
taskSets:
@@ -150,9 +160,9 @@ config:
150160
```
151161

152162
**What this does:**
153-
- Configures **Claude Code** as the agent that will attempt the tasks
163+
- Configures **Claude Code** as the agent via the ACP adapter defined in **agent.yaml**
154164
- Points to **mcp-config.yaml** to connect to your MCP server
155-
- Defines the **judge LLM** settings (using your environment variables)
165+
- The **LLM judge** also references **agent.yaml**, so no separate judge configuration is needed
156166
- Loads tasks from **tasks/add.yaml** and asserts the `add` tool must be used
157167

158168
### The Task Definition (`evals/tasks/add.yaml`)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
kind: Agent
2+
metadata:
3+
name: "claude-code-acp"
4+
acp:
5+
cmd: "claude-agent-acp"

01-getting-started/evals/eval.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ metadata:
55
config:
66
# Use Claude Code as the AI agent
77
agent:
8-
type: "builtin.claude-code"
8+
type: "file"
9+
path: agent.yaml
910

1011
# MCP server configuration
1112
mcpConfigFile: mcp-config.yaml
1213

1314
# LLM judge configuration
1415
llmJudge:
15-
env:
16-
baseUrlKey: JUDGE_BASE_URL
17-
apiKeyKey: JUDGE_API_KEY
18-
modelNameKey: JUDGE_MODEL_NAME
16+
ref:
17+
type: file
18+
path: agent.yaml
1919

2020
# Test tasks
2121
taskSets:

02-linux-mcp-server/README.md

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,15 @@ curl -fsSL https://anthropic.com/install-claude-code | sh
3333

3434
For more installation options, see the [official installation guide](https://github.com/anthropics/claude-code).
3535

36-
### 2. Install MCPChecker
36+
### 2. Install the Claude ACP Agent Adapter
37+
38+
```bash
39+
npm install -g @agentclientprotocol/claude-agent-acp
40+
```
41+
42+
This provides the `claude-agent-acp` command used by MCPChecker to run Claude Code as an ACP-compatible agent. It is also used as the LLM judge.
43+
44+
### 3. Install MCPChecker
3745

3846
Download the latest release:
3947

@@ -44,7 +52,7 @@ chmod +x mcpchecker-linux-amd64
4452
sudo mv mcpchecker-linux-amd64 /usr/local/bin/mcpchecker
4553
```
4654

47-
### 3. Install Linux MCP Server
55+
### 4. Install Linux MCP Server
4856

4957
```bash
5058
pip install --user linux-mcp-server
@@ -62,22 +70,6 @@ which linux-mcp-server
6270

6371
For more installation options and documentation, see the [Linux MCP Server documentation](https://rhel-lightspeed.github.io/linux-mcp-server/).
6472

65-
### 4. Configure Judge LLM
66-
67-
MCPChecker uses an LLM to verify test results. Set these environment variables:
68-
69-
```bash
70-
export JUDGE_BASE_URL="https://api.openai.com/v1"
71-
export JUDGE_API_KEY="sk-your-key-here"
72-
export JUDGE_MODEL_NAME="gpt-4o-mini"
73-
```
74-
75-
**Why a judge LLM?** Testing AI agents requires flexible verification. Instead of exact string matching, we use an LLM to verify if the output is semantically correct.
76-
77-
For example, instead of checking for the exact string "Fedora Linux 43", the judge checks if the output "contains information about the operating system". This allows the test to pass even if the formatting varies, as long as the required information is present.
78-
79-
Each verification step includes a `reason` explaining what the judge is checking, which helps with debugging when tests fail.
80-
8173
## What Gets Tested
8274

8375
This quickstart tests two diagnostic tools from the Linux MCP Server:
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
kind: Agent
2+
metadata:
3+
name: "claude-code-acp"
4+
acp:
5+
cmd: "claude-agent-acp"

02-linux-mcp-server/evals/eval.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ metadata:
55
config:
66
# Use Claude Code as the AI agent
77
agent:
8-
type: "builtin.claude-code"
8+
type: file
9+
path: agent.yaml
910

1011
# MCP server configuration
1112
mcpConfigFile: mcp-config.yaml
1213

1314
# LLM judge configuration
1415
llmJudge:
15-
env:
16-
baseUrlKey: JUDGE_BASE_URL
17-
apiKeyKey: JUDGE_API_KEY
18-
modelNameKey: JUDGE_MODEL_NAME
16+
ref:
17+
type: file
18+
path: agent.yaml
1919

2020
# Test tasks
2121
taskSets:

03-evolution-case-study/README.md

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -181,18 +181,12 @@ Since the **code is identical**, differences in test results prove documentation
181181

182182
### Prerequisites
183183

184-
See [getting-started](../getting-started/) for installation of:
184+
See [getting-started](../01-getting-started/) for installation of:
185185
- Claude Code
186+
- `@agentclientprotocol/claude-agent-acp` (Claude ACP agent adapter)
186187
- mcpchecker
187188
- uv (Python package manager)
188189

189-
Set judge LLM environment variables:
190-
```bash
191-
export JUDGE_BASE_URL="https://api.openai.com/v1"
192-
export JUDGE_API_KEY="sk-your-key-here"
193-
export JUDGE_MODEL_NAME="gpt-4o-mini"
194-
```
195-
196190
### Run Both Iterations
197191

198192
**Iteration 1 - Bad Documentation:**

0 commit comments

Comments
 (0)