MCP 测试
- 作者仓库星标 0
- 作者仓库 skills-registry
MCP Headless Test Pipeline
Purpose
Validate the Ariadne MCP server by running it with Claude Code in headless mode (claude -p). This tests the real user experience rather than just programmatic MCP client behavior.
Prerequisites
Before running tests, ensure:
- Claude Code CLI is installed and configured
- API key is set (either
ANTHROPIC_API_KEYenv var or Claude's configured key) - MCP package is built:
npm run build -w packages/mcp
Running the Tests
Quick Run
cd packages/mcp
./tests/claude-headless-test.sh
Verbose Mode (for debugging)
./tests/claude-headless-test.sh --verbose
Test Scenarios
The script runs 3 tests:
| Test | Name | What It Validates |
|---|---|---|
| 1 | Tool Discovery | Claude can see the list_entrypoints tool |
| 2 | Tool Invocation | Tool runs successfully on fixture code |
| 3 | Filtered Analysis | File/folder filtering parameters work |
Interpreting Results
Success Output
========================================
Ariadne MCP - Claude Headless Tests
========================================
[INFO] Checking prerequisites...
[INFO] All prerequisites met.
[INFO] Test 1: Tool Discovery
[INFO] Checking if Claude can see the list_entrypoints tool...
[INFO] PASS: Tool 'list_entrypoints' discovered
[INFO] Test 2: Tool Invocation
[INFO] Running list_entrypoints on fixture code...
[INFO] - Found 'entry point' in output
[INFO] PASS: Tool invocation succeeded
[INFO] Test 3: Filtered Analysis
[INFO] Testing file/folder filtering parameters...
[INFO] PASS: Filtered analysis completed
========================================
Test Summary
========================================
Total: 3
Passed: 3
Failed: 0
[INFO] All tests passed!
Failure Indicators
| Indicator | Meaning | Action |
|---|---|---|
Claude Code CLI not found |
claude command not in PATH |
Install Claude Code CLI |
MCP server not built |
Missing dist/server.js |
Run npm run build -w packages/mcp |
Tool 'list_entrypoints' not found |
Claude didn't discover the MCP tool | Check MCP config, server logs |
Tool invocation did not produce... |
Tool ran but output unexpected | Check if fixtures exist, review Claude's response |
FAIL: Filtered analysis... |
Folder filtering parameter not working | Check tool schema, parameter handling |
Verifying Correctness
Test 1: Tool Discovery
Expected behavior: Claude should list list_entrypoints when asked about available tools.
Manual verification:
claude -p "What MCP tools do you have?" \
--mcp-config ./packages/mcp/tests/mcp-test-config.json \
--output-format json
Look for output containing:
- Tool name:
list_entrypoints - Description mentioning "entry point" and "call tree"
Test 2: Tool Invocation
Expected behavior: Claude should successfully invoke the tool and return analysis results.
Manual verification:
claude -p "Use list_entrypoints to analyze the codebase" \
--mcp-config ./packages/mcp/tests/mcp-test-config.json
Valid output should contain:
- "Entry Points" header
- Function signatures (e.g.,
function_name(...): return_type) - Tree size indicators (e.g.,
-- N functions) - File locations (e.g.,
Location: ...) - Total count (e.g.,
Total: X entry points)
Test 3: Filtered Analysis
Expected behavior: Tool accepts folders parameter and analyzes only specified directories.
Manual verification:
claude -p "Use list_entrypoints with folders=['functions']" \
--mcp-config ./packages/mcp/tests/mcp-test-config.json
Valid output: Should show entry points only from the functions/ subdirectory of the fixtures.
Test Configuration
The tests use packages/mcp/tests/mcp-test-config.json:
{
"mcpServers": {
"ariadne": {
"type": "stdio",
"command": "node",
"args": ["./packages/mcp/dist/server.js"],
"env": {
"PROJECT_PATH": "./packages/core/tests/fixtures/typescript/code"
}
}
}
}
This points to TypeScript fixtures in packages/core/tests/fixtures/typescript/code/ for deterministic, reproducible tests.
Server Lifecycle Notes
Important: The MCP server process stays alive across tool calls within a session, BUT each tool call creates a fresh Project instance and re-indexes the codebase. This is intentional to support scoped analysis (file/folder filtering).
Performance implication: Large codebases may take 2+ seconds per tool call due to re-indexing.
Troubleshooting
Claude hangs or times out
- Check
ANTHROPIC_API_KEYis valid - Try with
--verboseflag to see debug output - Ensure network connectivity to Anthropic API
Tool not discovered
Verify MCP config path is correct
Check server.js exists:
ls packages/mcp/dist/server.jsTest server directly:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | \ PROJECT_PATH=. node packages/mcp/dist/server.js
Unexpected tool output
- Check fixtures exist:
ls packages/core/tests/fixtures/typescript/code/ - Test with E2E tests first:
npm test -w packages/mcp - Review server stderr for errors (use
--verbose)
Related Files
| File | Purpose |
|---|---|
packages/mcp/tests/claude-headless-test.sh |
Test runner script |
packages/mcp/tests/mcp-test-config.json |
MCP server configuration |
packages/mcp/src/start_server.ts |
Server implementation |
packages/mcp/src/list_entrypoints.e2e.test.ts |
Programmatic E2E tests |
<!-- tomevault:4.0:skill_md:2026-05-23 -->Source: CRJFisher/ariadne — distributed by TomeVault.
- 流狐分类
- AI 智能
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 88 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @tomevault-io · 未声明 license
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 需简单配置
- 是否需要外部 API Key
- 需要 · Anthropic
- 检测到的系统要求
- macOS · Linux · Windows
- 底层运行要求
- Node.js
- 检测到的文件与系统行为
-
- 只读
- 读取环境变量
- 检测到的网络行为
- 允许外网请求
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
作者没有在当前 SKILL.md 中定义固定输出样例。 Validate the Ariadne MCP server by running it with Claude Code in headless mode (claude -p). This tests the real user experience rather than just programmatic MCP client behavior.
Before running tests, ensure: Claude Code CLI is installed and configured API key is set (either ANTHROPICAPIKEY env var or Claude's configured key)
Running the Tests
Quick Run
Verbose Mode (for debugging)
The script runs 3 tests: Test · Name · What It Validates 1 · Tool Discovery · Claude can see the listentrypoints tool
# MCP Headless Test Pipeline
## Purpose
Validate the Ariadne MCP server by running it with Claude Code in headless mode (`claude -p`). This tests the real user experience rather than just programmatic MCP client behavior.
## Prerequisites
Before running tests, ensure:
1. **Claude Code CLI** is installed and configured
2. **API key** is set (either `ANTHROPIC_API_KEY` env var or Claude's configured key)
3. **MCP package is built**:
```bash
npm run build -w packages/mcp
```
## Running the Tests
### Quick Run
```bash
cd packages/mcp
./tests/claude-headless-test.sh
```
### Verbose Mode (for debugging)
```bash
./tests/claude-headless-test.sh --verbose
```
## Test Scenarios
The script runs 3 tests:
| Test | Name | What It Validates |
| ---- | ----------------- | ----------------------------------------------------- |
| 1 | Tool Discovery | Claude can see the `list_entrypoints` tool |
| 2 | Tool Invocation | Tool runs successfully on fixture code |
| 3 | Filtered Analysis | File/folder filtering parameters work |
## Interpreting Results
### Success Output
```text
========================================
Ariadne MCP - Claude Headless Tests
========================================
[INFO] Checking prerequisites...
[INFO] All prerequisites met.
[INFO] Test 1: Tool Discovery
[INFO] Checking if Claude can see the list_entrypoints tool...
[INFO] PASS: Tool 'list_entrypoints' discovered
[INFO] Test 2: Tool Invocation
[INFO] Running list_entrypoints on fixture code...
[INFO] - Found 'entry point' in output
[INFO] PASS: Tool invocation succeeded
[INFO] Test 3: Filtered Analysis
[INFO] Testing file/folder filtering parameters...
… 作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> Purpose → Prerequisites → Running the Tests → Quick Run → Verbose Mode (for debugging) → Test Scenarios
要点 -> Claude Code CLI · API key · MCP package is built · Expected behavior · Manual verification · Important · Performance implication
文件/命令 -> claude -p · ANTHROPICAPIKEY · listentrypoints · Claude Code CLI not found · MCP server not built · dist/server.js · npm run build -w packages/mcp · Tool 'listentrypoints' not found
内容 SHA-256 -> 4f7c06f24968
原文结构
适用与边界
原文中的明确线索
claude -p、ANTHROPICAPIKEY、listentrypoints、Claude Code CLI not found、MCP server not built、dist/server.js、npm run build -w packages/mcp、Tool 'listentrypoints' not found