coldpass

JoaquimCassano/mcp-movingimagearchive

GitHub ↗ · How this check works

Per-setup public labels: Linux / Haiku: Works

Static status badge · SVG · read-only JSON. Embed with ![Coldpass status](https://coldpass.dev/badge/JoaquimCassano--mcp-movingimagearchive.svg).

mcp-server

Works

The recorded run passed on 1 setup.

Answers apply to each recorded setup, revision and operation. Earlier observations remain in Run details.

Tested on Linux
PlatformHaikuLuna
Linuxyes

Linux / Haiku 5.5: yes · Oct 27, 2026 · 1e39eeac520d · claude-code / 2.1.310 (Claude Code)
Recorded operation: node <guest-path> · local stdio MCP start + initialize + tools/list

Does what it says
2 of 2 claims checked out
  • search_clips returns semantic shot matches for a visual description: Real input produced the expected result: National Wildlife Refuge System

    Source: Semantic shot search by visual description, with color / aspect ratio / year filters.

    Input: {"tool": "search_clips", "arguments": {"query": "red sunset over water", "limit": 2}}

    Expected: top match is from National Wildlife Refuge System

    Command: node <guest-path> tools/call {"tool": "search_clips", "arguments": {"query": "red sunset over water", "limit": 2}}

    Observed: National Wildlife Refuge System\",\"year\":2005,\"durationSeconds\":5.07,\"colorMode\":\"color\",\"aspectRatio\":\"4:3\",\"score\":0.278987,\"pageUrl\":\"https://www.movingimagearchive.com/sources/national-wildlife-refuge-system-8405e0d1?clip=02203def-0487-59fd-b6a1-f0fc6e0bfaa0\",\"sourceDownloadUrl\":\"https://www.movingimagearchive.com/api/sources/national-wildlife-refuge-system-8405e0d1/download\",\"thumbnailUrl\":\"https://pub-075ff01374c04555b51c9bc50f258b42.r2.dev/sources/8405e0d1-5631-51a2-b669-29016c141011/v4-conditional-luna-1/thumbnails/02203def-0487-59fd-b6a1-f0fc6e0bfaa0.jpg\"},{\

  • every shot result includes a shot MP4 download link: Real input produced the expected result: https://www.movingimagearchive.com/api/clips/02203def-0487-59fd-b6a1-f0fc6e0bfaa0/download

    Source: Every shot result includes `clipDownloadUrl` (the shot MP4) and `sourceDownloadUrl` (the full film).

    Input: {"tool": "search_clips", "arguments": {"query": "red sunset over water", "limit": 2}}

    Expected: clipDownloadUrl for the first shot is returned

    Command: node <guest-path> tools/call {"tool": "search_clips", "arguments": {"query": "red sunset over water", "limit": 2}}

    Observed: https://www.movingimagearchive.com/api/clips/02203def-0487-59fd-b6a1-f0fc6e0bfaa0/download\",\"sourceSlug\":\"national-wildlife-refuge-system-8405e0d1\",\"sourceTitle\":\"National Wildlife Refuge System\",\"year\":2005,\"durationSeconds\":5.07,\"colorMode\":\"color\",\"aspectRatio\":\"4:3\",\"score\":0.278987,\"pageUrl\":\"https://www.movingimagearchive.com/sources/national-wildlife-refuge-system-8405e0d1?clip=02203def-0487-59fd-b6a1-f0fc6e0bfaa0\",\"sourceDownloadUrl\":\"https://www.movingimagearchive.com/api/sources/national-wildlife-refuge-system-8405e0d1/download\",\"thumbnailUrl\":\"https

MCP
Yes, observed
Local or hosted
local
Local: runs on your machine
Needs keys or browser
None seen
Maintained
Maintained
actively maintained: last commit 2 days ago; 2 commits and 0 merged PRs in 90 days; 0 open issues, 0 open PRs; no releases

Last commit Oct 24, 2026

Setup time
1 min 17 s
1 min 17 s to a working result
Issue
none found in recorded check
Examples
1 of 1 ran as expected
  • offline parser checks run via pnpm test: command completed successfully

    Source: README.md Setup section, pnpm test # offline parser checks

    Input: pnpm test

    Expected: 4 offline tests pass

    Command: pnpm test

    Observed: Slug accepts slugs and page URLs --- duration_ms: 0.168668 type: 'test' ... # Subtest: toSlug rejects anything that could escape a URL path or file name ok 3 - toSlug rejects anything that could escape a URL path or file name --- duration_ms: 0.204876 type: 'test' ... # Subtest: shotRange spans first start to last end, in either order ok 4 - shotRange spans first start to last end, in either order --- duration_ms: 0.180751 type: 'test' ... 1..4 # tests 4 # suites 0 # pass 4 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 197.043679 $ node --test test/*.test.ts

Evidence
README behavior checked
Agent interfaces
MCP
MCP

Observed interfaces were exercised by the checker. Documentation alone does not confirm compatibility.

MCP context
6 tools · about 1,263 tokens
6 tools · about 1,263 tokens

Largest returned tools/list page in these observations. Compact UTF-8 definition bytes ÷ 4, rounded up; approximate, excluding client framing and tool results. This is context size, not proof that every tool works.

Measured on linux with Haiku 5.5 · Oct 27, 2026 on 1e39eeac520d

Tested with
Claude Code / Haiku 5.5
  • Linux: Claude Code / Haiku 5.5 · agent 2.1.310 (Claude Code) · Checked operation passed · Oct 27, 2026 on 1e39eeac520d

Each entry describes its recorded operation and source revision.

Safety
Made outbound HTTPS connections: yes (hosts not recorded) by <guest-path>

Review signals across current setups: connection review.

Repository processes attempted these non-loopback connections; proxies can hide the final hostname. 216.150.16.1:443 2 findings. 15 attributed processes.

Reviewed as expected for a test run: resolver address lookups that send no data.

Full event, path and process lists for each observed setup:

Repair history and test corrections
Run details

Haiku 5.5

Native agent · Checked operation passed

Checked operation node <guest-path> · local stdio MCP start + initialize + tools/list

Agent-reported scope: Build the MCP server and call its search_clips tool over stdio to find shots matching a visual description, returning clip and full-film download links

MCP server returned: movingimagearchive · version 0.1.0.

MCP tools returned: search_clips, list_sources, get_source, list_collections, get_collection, download. Tool listing does not establish authenticated tool-call success.

Run details
run
JoaquimCassano--mcp-movingimagearchive-claude-haiku-5-5-1793108006667608796
date
Oct 27, 2026
time to working
77.0s
product hosting / execution
Local stdio MCP server in the guest
recorded operation scope
product operation
model
claude-haiku-5-5
agent / version
claude-code / 2.1.310 (Claude Code)
platform
linux
reported cost
$0.009800
Recorded source
https://github.com/JoaquimCassano/mcp-movingimagearchive
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "1e39eeac520d11c78cdfda1b8f57589f05b326ce", "url": "https://github.com/JoaquimCassano/mcp-movingimagearchive"}
Test version
readme-d5b140d3c0f8b95c2dd6fe6fc381a303cacb92679582c22317d8e78b572f0cf2
revision
1e39eeac520d11c78cdfda1b8f57589f05b326ce
Whose fault: not assigned · resolved

Safety: Review signals: 1 connection review.

Review signals: 1 connection review.

Reviewed as expected for a test run: resolver address lookups that send no data.

Repository processes attempted these non-loopback connections; proxies can hide the final hostname. 216.150.16.1:443 10 attributed processes.

OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check.

A short run cannot establish that code is safe.

Connections show IP addresses; proxies can hide the final hostname.

Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.

Full safety evidence →

Answers recorded for this run
  • search_clips returns semantic shot matches for a visual description: Real input produced the expected result: National Wildlife Refuge System

    Source: Semantic shot search by visual description, with color / aspect ratio / year filters.

    Input: {"tool": "search_clips", "arguments": {"query": "red sunset over water", "limit": 2}}

    Expected: top match is from National Wildlife Refuge System

    Command: node <guest-path> tools/call {"tool": "search_clips", "arguments": {"query": "red sunset over water", "limit": 2}}

    Observed: National Wildlife Refuge System\",\"year\":2005,\"durationSeconds\":5.07,\"colorMode\":\"color\",\"aspectRatio\":\"4:3\",\"score\":0.278987,\"pageUrl\":\"https://www.movingimagearchive.com/sources/national-wildlife-refuge-system-8405e0d1?clip=02203def-0487-59fd-b6a1-f0fc6e0bfaa0\",\"sourceDownloadUrl\":\"https://www.movingimagearchive.com/api/sources/national-wildlife-refuge-system-8405e0d1/download\",\"thumbnailUrl\":\"https://pub-075ff01374c04555b51c9bc50f258b42.r2.dev/sources/8405e0d1-5631-51a2-b669-29016c141011/v4-conditional-luna-1/thumbnails/02203def-0487-59fd-b6a1-f0fc6e0bfaa0.jpg\"},{\

  • every shot result includes a shot MP4 download link: Real input produced the expected result: https://www.movingimagearchive.com/api/clips/02203def-0487-59fd-b6a1-f0fc6e0bfaa0/download

    Source: Every shot result includes `clipDownloadUrl` (the shot MP4) and `sourceDownloadUrl` (the full film).

    Input: {"tool": "search_clips", "arguments": {"query": "red sunset over water", "limit": 2}}

    Expected: clipDownloadUrl for the first shot is returned

    Command: node <guest-path> tools/call {"tool": "search_clips", "arguments": {"query": "red sunset over water", "limit": 2}}

    Observed: https://www.movingimagearchive.com/api/clips/02203def-0487-59fd-b6a1-f0fc6e0bfaa0/download\",\"sourceSlug\":\"national-wildlife-refuge-system-8405e0d1\",\"sourceTitle\":\"National Wildlife Refuge System\",\"year\":2005,\"durationSeconds\":5.07,\"colorMode\":\"color\",\"aspectRatio\":\"4:3\",\"score\":0.278987,\"pageUrl\":\"https://www.movingimagearchive.com/sources/national-wildlife-refuge-system-8405e0d1?clip=02203def-0487-59fd-b6a1-f0fc6e0bfaa0\",\"sourceDownloadUrl\":\"https://www.movingimagearchive.com/api/sources/national-wildlife-refuge-system-8405e0d1/download\",\"thumbnailUrl\":\"https

Examples

  • offline parser checks run via pnpm test: command completed successfully

    Source: README.md Setup section, pnpm test # offline parser checks

    Input: pnpm test

    Expected: 4 offline tests pass

    Command: pnpm test

    Observed: Slug accepts slugs and page URLs --- duration_ms: 0.168668 type: 'test' ... # Subtest: toSlug rejects anything that could escape a URL path or file name ok 3 - toSlug rejects anything that could escape a URL path or file name --- duration_ms: 0.204876 type: 'test' ... # Subtest: shotRange spans first start to last end, in either order ok 4 - shotRange spans first start to last end, in either order --- duration_ms: 0.180751 type: 'test' ... 1..4 # tests 4 # suites 0 # pass 4 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 197.043679 $ node --test test/*.test.ts

Local or hosted: local

What the agent did

Build the MCP server and call its search_clips tool over stdio to find shots matching a visual description, returning clip and full-film download links

cd <guest-path> && pwd && ls -la && git status 2>&1 | head -3; id -u; python3 --version; cat README.md 2>/dev/null | head -150
echo $CDP_URL; curl -s -m 10 -i $CDP_URL/json/version; echo; echo EXIT=$?
cd <guest-path> && cat package.json; ls -la .coldpass src test; which node npm pnpm corepack ffmpeg; node -v; npm -v; cat .gitignore
cd <guest-path> && pnpm -v && pnpm install 2>&1 | tail -20 && pnpm build 2>&1 | tail -20; echo EXIT=$?; ls dist 2>&1
cd <guest-path> && pnpm test 2>&1 | tail -25; echo EXIT=$?; curl -s -o /dev/null -m 20 -w "%{http_code}\n" https://www.movingimagearchive.com/api/sources?limit=2 ; curl -s -m 20 -X POST https://www.movingimagearchive.com/api/search -H 'content-type: application/json' -d '{"query":"train","color":"all","aspectRatio":"all","offset":0}' | head -c 300; echo
cd <guest-path> && cat src/index.ts | head -c 7000
cd <guest-path> && { printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"t","version":"1"}}}' '{"jsonrpc":"2.0","method":"notifications/initialized"}' '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_clips","arguments":{"query":"red sunset over water","limit":2}}}'; sleep 8; } | timeout 30 node dist/index.js 2>&1 | tail -c 2500
cd <guest-path> && mkdir -p .coldpass && grep -rniE "setInterval|cron|schedule|--once|--now|webhook|setTimeout" src README.md package.json | head; echo "---"; cat > .coldpass/probe.json <<'EOF'
{"kind":"mcp","argv":["node","<guest-path>"],"cwd":"<guest-path>","tool":"search_clips","arguments":{"query":"red sunset over water","limit":2},"expected_text":"National Wildlife Refuge System"}
EOF
python3 -I -c "import json;json.load(open('<guest-path>'));print('ok')"
cd <guest-path> && cat > .coldpass/claims.json <<'EOF'
[{"kind":"claim","claim":"search_clips returns semantic shot matches for a visual description","source":"Semantic shot search by visual description, with color / aspect ratio / year filters.","input":"query: red sunset over water, limit 2","expected":"top match is from National Wildlife Refuge System","probe_kind":"mcp","argv":["node","<guest-path>"],"tool":"search_clips","arguments":{"query":"red sunset over water","limit":2},"expected_text":"National Wildlife Refuge System","cwd":"<guest-path>"},
{"kind":"claim","claim":"every shot result includes a shot MP4 download link","source":"Every shot result includes `clipDownloadUrl` (the shot MP4) and `sourceDownloadUrl` (the full film).","input":"query: red sunset over water, limit 2","expected":"clipDownloadUrl for the first shot is returned","probe_kind":"mcp","argv":["node","<guest-path>"],"tool":"search_clips","arguments":{"query":"red sunset over water","limit":2},"expected_text":"https://www.movingimagearchive.com/api/clips/02203def-0487-59fd-b6a1-f0fc6e0bfaa0/download","cwd":"<guest-path>"}]
EOF
cat > .coldpass/examples.json <<'EOF'
[{"kind":"example","claim":"offline parser checks run via pnpm test","source":"README.md Setup section, pnpm test   # offline parser checks","input":"pnpm test","expected":"4 offline tests pass","argv":["pnpm","test"],"cwd":"<guest-path>","env":{},"expected_text":"# pass 4"}]
EOF
cat > .coldpass/cycles.json <<'EOF'
{"detected":false,"reason":"Entry points inspected (src/index.ts, src/archive.ts, src/download.ts, package.json scripts, README). The product is an on-demand stdio MCP server that answers tool calls; grep for setInterval/cron/schedule/--once/--now/webhook/setTimeout found nothing. No scheduled or looping cycle exists.","checks":[]}
EOF
for f in claims examples cycles probe; do python3 -I -c "import json,sys;json.load(open('.coldpass/$f.json'));print('$f ok')"; done
cd <guest-path> && <env-var>=<guest-path> timeout 600 python3 -I <guest-path> --validate --replay 2>&1 | tail -c 5000; echo EXIT=${PIPESTATUS[0]}
cd <guest-path> && <env-var>=<guest-path> timeout 600 python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo EXIT=$?; grep -oE '"(valid|ok|passed)": ?(true|false)' <guest-path> | sort | uniq -c; grep -oE '"verdict": ?"[a-z]+"' <guest-path> | sort | uniq -c
cd <guest-path> && cat > .coldpass/report.json <<'EOF'
{"outcome":"working","fault_owner":null,"operation":"Build the MCP server and call its search_clips tool over stdio to find shots matching a visual description, returning clip and full-film download links","operation_scope":"Node >= 20 (guest has Node v22.23.4, pnpm 12.15.0); live network access to movingimagearchive.com required for search; ffmpeg not required for search (only for range downloads, not exercised)","steps":["pnpm install","pnpm build","pnpm test","node <guest-path> (stdio MCP server, tools/call search_clips with query 'red sunset over water')"],"deviations":["Workspace was not a git repository and no pinned-commit fetch was needed since the source snapshot was already present; no Git metadata was created.","Probe and claim argv use the absolute path of dist/index.js, as the README's MCP config example does.","Did not exercise the download tool (would write MP4 files) or get_source/list_sources/get_collection; only search_clips was verified end to end.","No browser was needed; the CDP endpoint (http://<internal-ip>:9226/json/version) returned HTTP 200 with Chrome/155 but was not used by the product.","Scheduling: none exists; cycles.json recorded detected=false."],"stuck_step":null,"main_blocker":null,"plain_failure":null,"suggested_fix":null}
EOF
python3 -I -c "import json;d=json.load(open('<guest-path>'));print(d['outcome'])"; ls -la .coldpass; ls <guest-path> | head -20
Earlier attempts (1)

Luna

Native agent · Not tested

Checked operation node dist/index.js · local stdio MCP start + initialize + tools/list

Agent-reported scope: MCP list_sources call

MCP server returned: movingimagearchive · version 0.1.0.

MCP tools returned: search_clips, list_sources, get_source, list_collections, get_collection, download. Tool listing does not establish authenticated tool-call success.

Run details
run
JoaquimCassano--mcp-movingimagearchive-gpt-6-luna-1793109117028285545
date
Oct 27, 2026
time to working
52.0s
product hosting / execution
Local stdio MCP server in the guest
recorded operation scope
product operation
model
gpt-6-luna
agent / version
codex / codex-cli 0.164.0
platform
linux
reported cost
not reported (not assumed free)
Recorded source
https://github.com/JoaquimCassano/mcp-movingimagearchive
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "1e39eeac520d11c78cdfda1b8f57589f05b326ce", "url": "https://github.com/JoaquimCassano/mcp-movingimagearchive"}
Test version
readme-38e6b13f3b13804effb95797e3466b1a1334da7a232d897cbc8965867f802605
revision
1e39eeac520d11c78cdfda1b8f57589f05b326ce
Current diagnosis: test · harness_fix_required

Repair record fix-519f50c5285fcc155a9e · current status JSON. Original run outcomes remain unchanged.

Failed run: JoaquimCassano/mcp-movingimagearchive · Oct 27, 2026 · Not tested.

Additional warning

Step: MCP tool call

Safety: Review signals: 1 connection review.

Review signals: 1 connection review.

Reviewed as expected for a test run: resolver address lookups that send no data.

Repository processes attempted these non-loopback connections; proxies can hide the final hostname. 216.150.16.1:443 5 attributed processes.

OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check.

A short run cannot establish that code is safe.

Connections show IP addresses; proxies can hide the final hostname.

Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.

Full safety evidence →

Answers recorded for this run
  • The list_sources tool returns archive totals and source films.: Real input produced the expected result: totalSources

    Source: `list_sources` | All source films, sorted featured / recent / by title (`direction: "asc"` for A–Z; the default `desc` gives Z–A), plus archive totals

    Input: {"tool": "list_sources", "arguments": {"sort": "recent", "direction": "desc", "offset": 0, "limit": 3}}

    Expected: archive totals and source films

    Command: node dist/index.js tools/call {"tool": "list_sources", "arguments": {"sort": "recent", "direction": "desc", "offset": 0, "limit": 3}}

    Observed: totalSources\":2280,\"totalShots\":122218,\"nextOffset\":3,\"sources\":[{\"slug\":\"private-life-of-a-cat-a69d5229\",\"title\":\"Private Life of a Cat\",\"year\":1947,\"durationSeconds\":1321.42,\"shotCount\":58,\"publishedAt\":\"2026-09-18T21:45:58.025Z\",\"pageUrl\":\"https://www.movingimagearchive.com/sources/private-life-of-a-cat-a69d5229\",\"sourceDownloadUrl\":\"https://www.movingimagearchive.com/api/sources/private-life-of-a-cat-a69d5229/download\",\"thumbnailUrl\":\"https://pub-075ff01374c04555b51c9bc50f258b42.r2.dev/sources/a69d5229-5821-5c9e-a890-063f8d837d20/v4-conditional-luna-1/th

Local or hosted: local

What the agent did

MCP list_sources call

pwd && ls -la && sed -n '1,240p' README.md && python3 --version && id -u
cat package.json && rg -n "search_clips|list_sources|server|MCP|fetch|tools" src README.md && node --version; pnpm --version; npm --version; git status --short; ls -la .coldpass
find src test -type f -maxdepth 3 -print; cat package.json; sed -n '1,240p' src/index.ts
corepack enable && corepack prepare pnpm@latest --activate && pnpm --version && pnpm install && pnpm build
sudo -n corepack enable && corepack prepare pnpm@10 --activate && pnpm --version
pnpm install && pnpm build
sed -n '1,240p' src/archive.ts
printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_sources","arguments":{"sort":"recent","direction":"desc","offset":0,"limit":3}}}' | node dist/index.js
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
printf '%s\n' '{"kind":"mcp","argv":["node","dist/index.js"],"cwd":"<guest-path>","tool":"list_sources","arguments":{"sort":"recent","direction":"desc","offset":0,"limit":3},"expected_text":""}' > .coldpass/probe.json; printf '%s\n' '[]' > .coldpass/claims.json; printf '%s\n' '{"detected":false,"reason":"README describes request based MCP tools; no scheduler or cycle mechanism is present in the inspected entry points.","checks":[]}' > .coldpass/cycles.json; printf '%s\n' '[]' > .coldpass/examples.json; printf '%s\n' '{"outcome":"blocked","fault_owner":"test","operation":"MCP list_sources call","operation_scope":"pnpm install and build completed; attempted documented live source listing through stdio","steps":["pnpm install","pnpm build","pnpm start"],"deviations":["corepack enable failed without sudo due to EACCES; sudo -n corepack enable succeeded","The stdio tool invocation returned no output"],"stuck_step":"MCP tool call","main_blocker":"node dist/index.js exited successfully but returned empty stdout for the supplied JSON-RPC tools/call message","plain_failure":"The documented server produced no observable response to a real list_sources call.","suggested_fix":"Investigate the MCP stdio transport/client invocation and retry with the project's supported transport."}' > .coldpass/report.json
python3 - <<'PY'
import json, pathlib
p=pathlib.Path('.coldpass')
p.mkdir(exist_ok=True)
probe={'kind':'mcp','argv':['node','dist/index.js'],'cwd':'<guest-path>','tool':'list_sources','arguments':{'sort':'recent','direction':'desc','offset':0,'limit':3},'expected_text':'totalSources'}
(p/'probe.json').write_text(json.dumps(probe))
(p/'claims.json').write_text(json.dumps([{'kind':'claim','claim':'The list_sources tool returns archive totals and source films.','source':'`list_sources` | All source films, sorted featured / recent / by title (`direction: "asc"` for A–Z; the default `desc` gives Z–A), plus archive totals','input':'recent sources, first page','expected':'archive totals and source films','probe_kind':'mcp','argv':['node','dist/index.js'],'tool':'list_sources','arguments':{'sort':'recent','direction':'desc','offset':0,'limit':3},'expected_text':'totalSources','cwd':'<guest-path>'}]))
(p/'cycles.json').write_text(json.dumps({'detected':False,'reason':'Inspected README and entry point: request based MCP tools, with no scheduler or cycle mechanism.','checks':[]}))
(p/'examples.json').write_text('[]')
(p/'report.json').write_text(json.dumps({'outcome':'blocked','fault_owner':'test','operation':'MCP list_sources call','operation_scope':'pnpm install and build completed; attempted live source listing through stdio','steps':['pnpm install','pnpm build'],'deviations':['corepack enable failed without sudo due to EACCES; sudo -n corepack enable succeeded','The stdio tool invocation returned no output'],'stuck_step':'MCP tool call','main_blocker':'node dist/index.js exited successfully but returned empty stdout for the supplied JSON-RPC tools/call message','plain_failure':'The server produced no observable response to a real list_sources call.','suggested_fix':'Retry using a compatible MCP stdio client and inspect transport protocol requirements.'}))
PY
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay