mcp-headless-test
- Repo stars 0
- Author updated Live
- Author repo skills-registry
- Domain
- AI
- Compatible agents
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- Trust score
- 88 / 100 · community maintained
- Author / version / license
- @tomevault-io · no license declared
- Token usage
- Lean
- Setup complexity
- Guided setup
- External API key
- Required · Anthropic
- Operating systems
- macOS · Linux · Windows
- Runtime requirements
- Node.js
- Permissions
-
- Read-only
- Env read
- Write / modify
- Network behavior
- External requests
- Install commands
- 26 variants
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: mcp-headless-test
description: Run live tests of the Ariadne MCP server using Claude Code in headless mode. Tests tool discover…
category: ai
runtime: Node.js
---
# mcp-headless-test output preview
## PART A: Task fit
- Use case: Run live tests of the Ariadne MCP server using Claude Code in headless mode. Tests tool discovery, invocation, and filtering. Use when validating MCP server changes or checking integration with Claude Code. Use when this capability is needed..
- Inputs: target material, constraints, expected output, and acceptance criteria.
- Evidence boundary: follow “Purpose / Prerequisites / Running the Tests” and do not present inference as author intent.
## PART B: Execution result
- **01** The card summarizes the use case; runtime output centers on “Run live tests of the Ariadne MCP server using Claude Code in headless mode. Tests tool discovery, invocation, and filtering. Use when validating MCP server changes or checking integration with Claude Code. Use when this capability is needed.”.
- **02** When the source has headings, the agent prioritizes “Purpose / Prerequisites / Running the Tests” so the result follows the author’s structure.
- **03** Typical output includes task judgment, concrete steps, required commands or file edits, validation, and follow-up options.
- **04** Risk context follows the fingerprint: read files, read environment variables, write/modify files; may access external network resources; requires Anthropic API keys.
## Running Rules
- read files, read environment variables, write/modify files; may access external network resources; requires Anthropic API keys.
- Validate with a small sample before expanding scope.
- Return the result, validation criteria, and next iteration options. The source does not require a stable slash command. After installation, invoke the skill by name and describe the task.
Name target files or source material, expected output, forbidden changes, and whether network or shell access is allowed. Permission fingerprint: read files, read environment variables, write/modify files.
Start with a small task and check whether the result follows “Purpose / Prerequisites / Running the Tests”. Inspect diffs, logs, previews, or tests before expanding scope.
Confirm the final output includes a concrete result, evidence, and next action. If it stays generic, tighten inputs, boundaries, and acceptance criteria.
---
name: mcp-headless-test
description: Run live tests of the Ariadne MCP server using Claude Code in headless mode. Tests tool discover…
category: ai
source: tomevault-io/skills-registry
---
# mcp-headless-test
## When to use
- Run live tests of the Ariadne MCP server using Claude Code in headless mode. Tests tool discovery, invocation, and fil…
- Use it when the task has clear inputs, repeatable steps, and validation criteria.
## What to provide
- Target material, scope, expected result, and forbidden changes.
- Whether network, commands, file writes, or external services are allowed.
## Execution rules
- Organize steps around “Purpose / Prerequisites / Running the Tests” and keep inference separate from source facts.
- read files, read environment variables, write/modify files; may access external network resources; requires Anthropic API keys.
- Validate with a small sample before expanding the task.
## Output requirements
- Return the deliverable, key evidence, validation method, and next action.
- Mark missing information as unknown; do not invent commands, platforms, or dependencies. The author source anchors workflow facts; repository files anchor sources and commands; Fluxly only adds fit, limitations, and quality judgment.
skill "mcp-headless-test" {
input -> user goal + target files + boundaries + acceptance criteria
context -> Purpose / Prerequisites / Running the Tests
rules -> SKILL.md triggers / order / output contract
runtime -> Node.js | read files, read environment variables, write/modify files | may access external network resources
guardrails -> requires Anthropic API keys + small-sample validation + diff/log review
output -> copyable result + checklist + next iteration
} 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 |
Source: CRJFisher/ariadne — distributed by TomeVault.
Decide Fit First
Design Intent
How To Use It
Boundaries And Review