coldpass

Collie-Valley/foundry-mcp

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/Collie-Valley--foundry-mcp.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 · cc7262eff4d6 · claude-code / 2.1.310 (Claude Code)
Recorded operation: uv run --directory <guest-path> python run_server.py · local stdio MCP start + initialize + tools/list

Does what it says
1 of 1 claims checked out
  • logout forgets the stored token: Real input produced the expected result: Sesión cerrada: token olvidado.

    Source: - `login` cambia de cuenta; `logout` olvida el token, en memoria y en el sistema.

    Input: {"tool": "logout", "arguments": {}}

    Expected: Sesión cerrada: token olvidado.

    Command: uv run --directory <guest-path> python run_server.py tools/call {"tool": "logout", "arguments": {}}

    Observed: Sesión cerrada: token olvidado.", "type": "text"}], "isError": false}

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

Last commit Oct 27, 2026

Issue
none found in recorded check
Examples
2 of 2 ran as expected
  • Development: the test suite runs with uv run pytest -q: command completed successfully

    Source: README.md Desarrollo

    Input: -q

    Expected: 93 passed

    Command: uv run pytest -q

    Observed: ....................................... [ 41%] ...................................................... [100%] 93 passed, 497 subtests passed in 7.84s

  • Development: style check with uvx ruff check: command completed successfully

    Source: README.md Desarrollo

    Input: .

    Expected: All checks passed!

    Command: uvx ruff check .

    Observed: All checks passed!

Evidence
README behavior checked
Agent interfaces
MCP
MCP

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

MCP context
76 tools · about 11,380 tokens
76 tools · about 11,380 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 cc7262eff4d6

Tested with
Claude Code / Haiku 5.5
  • Linux: Claude Code / Haiku 5.5 · agent 2.1.310 (Claude Code) · Recorded pass invalidated · setup-only proof · Oct 27, 2026 on cc7262eff4d6

Each entry describes its recorded operation and source revision.

Safety
No unexpected network or file activity found in these checks

No problems traced to this repository code in these checks; a short run cannot prove safety. 78 listed items (named-host connections, static matches, dependency advisories) are below and do not change this verdict.

OSV reports a known vulnerability in this dependency version. 4 distinct locations. 39 findings.

Reviewed as expected for a test run: attempted writes that failed, so nothing was written.

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

Repair history and test corrections
Run details

Haiku 5.5

Native agent · Recorded pass invalidated · setup-only proof

Operation / attempted scope uv run --directory <guest-path> python run_server.py · local stdio MCP start + initialize + tools/list

Agent-reported scope: Run the Foundry Boards MCP server from the source checkout (README 'Desarrollo' path) and call its tools against Foundry boards

MCP server returned: foundry-boards · version 0.2.1.

MCP tools returned: login, logout, whoami, list_spaces, list_boards, list_all_boards, get_board, get_task, search_tasks, list_board_presets, create_board, move_board_to_space, add_column, rename_column, set_column_category, set_column_color, reorder_columns, delete_column, create_task, move_task, edit_task, delete_task, create_tasks_from_seeds, add_task_comment, add_task_entry, report_progress, flag_blocker, report_verification, propose_criterion, record_decision, list_criteria, review_criterion, list_decisions, review_decision, review_task_proposal, add_test_case, list_test_cases, mark_test_case, list_test_executions, get_task_comments, get_task_history, transition_task, set_task_hierarchy, set_task_details, set_task_labels, create_epic, list_epics, link_tasks, get_task_links, unlink_tasks, link_repo, get_repo_links, unlink_repo, list_sprints, create_sprint, start_sprint, complete_sprint, assign_task_to_sprint, list_task_attachments, read_task_attachment, upload_task_attachment, delete_task_attachment, create_note, write_note, create_note_collection, move_note, rename_note, delete_note, link_notes, link_note_to_task, list_notes, read_note, search_notes, get_note_backlinks, extract_tasks_from_note, get_task_notes. Tool listing does not establish authenticated tool-call success.

Run details
run
Collie-Valley--foundry-mcp-claude-haiku-5-5-1793135818936732112
date
Oct 27, 2026
time to working
135.3s (historical recorded time; operation proof invalidated)
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.015508
Recorded source
https://github.com/Collie-Valley/foundry-mcp
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "cc7262eff4d666e78c903ac872c26ba9f47b4485", "url": "https://github.com/Collie-Valley/foundry-mcp"}
Test version
readme-d5b140d3c0f8b95c2dd6fe6fc381a303cacb92679582c22317d8e78b572f0cf2
revision
cc7262eff4d666e78c903ac872c26ba9f47b4485
Current diagnosis: test · resolved

native Claude returned a different model

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

Failed run: Collie-Valley/foundry-mcp · Oct 27, 2026 · Our test failed; no repo verdict.

Test-repair rerun: Collie-Valley/foundry-mcp · Oct 27, 2026 · Recorded pass invalidated · setup-only proof.

Double-checks failed run: Collie-Valley/foundry-mcp · Oct 27, 2026.

Fix: fix-bd27ce621a99832252ab.

The run recorded a missing prerequisite and where it got stuck, so the pass did not exercise the product's real operations.

Recorded blocker / warning

Step: Calling board/task tools, which require a signed-in Foundry account

Safety: Review signals: 39 known vulnerability.

Review signals: 39 known vulnerability.

Reviewed as expected for a test run: attempted writes that failed, so nothing was written.

OSV reports a known vulnerability in this dependency version. 4 distinct locations. 39 findings.

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
  • logout forgets the stored token: Real input produced the expected result: Sesión cerrada: token olvidado.

    Source: - `login` cambia de cuenta; `logout` olvida el token, en memoria y en el sistema.

    Input: {"tool": "logout", "arguments": {}}

    Expected: Sesión cerrada: token olvidado.

    Command: uv run --directory <guest-path> python run_server.py tools/call {"tool": "logout", "arguments": {}}

    Observed: Sesión cerrada: token olvidado.", "type": "text"}], "isError": false}

Examples

  • Development: the test suite runs with uv run pytest -q: command completed successfully

    Source: README.md Desarrollo

    Input: -q

    Expected: 93 passed

    Command: uv run pytest -q

    Observed: ....................................... [ 41%] ...................................................... [100%] 93 passed, 497 subtests passed in 7.84s

  • Development: style check with uvx ruff check: command completed successfully

    Source: README.md Desarrollo

    Input: .

    Expected: All checks passed!

    Command: uvx ruff check .

    Observed: All checks passed!

Local or hosted: local

What the agent did

Run the Foundry Boards MCP server from the source checkout (README 'Desarrollo' path) and call its tools against Foundry boards

cd <guest-path> && ls -la && git status 2>&1 | head -3; id -u; python3 --version; cat README.md 2>/dev/null | head -200
cd <guest-path> && find . -maxdepth 2 -not -path './.git*' | head -100; echo CDP=$CDP_URL $<env-var>
cd <guest-path> && sed -n 200,400p README.md
cd <guest-path> && cat run_server.py; cat .env.example; cat mcp.json.example; which uv uvx; ls .github/workflows 2>/dev/null; cat pyproject.toml | head -60
cd <guest-path> && uv --version && cat .github/workflows/ci.yml && (uv sync 2>&1 | tail -15); echo EXIT=$?
cd <guest-path> && uv run pytest -q 2>&1 | tail -25; echo EXIT=${PIPESTATUS[0]}; uvx ruff check . 2>&1 | tail -5
cd <guest-path> && grep -n "def \<email>\|@.*tool(" foundry_mcp/server.py | head -150; grep -n "PRESET\|presets" foundry_mcp/*.py | head -20
cd <guest-path> && timeout 15 curl -sS -o /dev/null -w "%{http_code}\n" https://foundry.collie.digital/api/v1/board-presets 2>&1; echo; cat > <guest-path> <<'EOF'
import json,sys,subprocess
EOF
sed -n 1,60p foundry_mcp/config.py | head -80; sed -n 160,172p foundry_mcp/server.py; sed -n 685,700p foundry_mcp/server.py
cd <guest-path> && sed -n 641,686p foundry_mcp/server.py; grep -n "def logout\|def login" -A3 foundry_mcp/server.py | head; grep -n "_keyring_clear()" foundry_mcp/server.py
cd <guest-path> && mkdir -p .coldpass && grep -n "olvida el token" README.md; grep -n "Cierra la sesi" foundry_mcp/server.py | head -2; grep -c "" README.md; ls <guest-path> 2>/dev/null; grep -n "cron\|schedule\|--once\|webhook" -ri foundry_mcp run_server.py | head -5
cd <guest-path> && cat > probe.json <<'EOF'
{"kind":"mcp","argv":["uv","run","--directory","<guest-path>","python","run_server.py"],"cwd":"<guest-path>","tool":"logout","arguments":{},"expected_text":"Sesión cerrada: token olvidado."}
EOF
cat > claims.json <<'EOF'
[{"kind":"claim","claim":"logout forgets the stored token","source":"- `login` cambia de cuenta; `logout` olvida el token, en memoria y en el sistema.","input":"{}","expected":"Sesión cerrada: token olvidado.","probe_kind":"mcp","argv":["uv","run","--directory","<guest-path>","python","run_server.py"],"tool":"logout","arguments":{},"expected_text":"Sesión cerrada: token olvidado.","cwd":"<guest-path>"}]
EOF
cat > examples.json <<'EOF'
[{"kind":"example","claim":"Development: the test suite runs with uv run pytest -q","source":"README.md Desarrollo","input":"-q","expected":"93 passed","argv":["uv","run","pytest","-q"],"cwd":"<guest-path>","expected_text":"93 passed"},
{"kind":"example","claim":"Development: style check with uvx ruff check","source":"README.md Desarrollo","input":".","expected":"All checks passed!","argv":["uvx","ruff","check","."],"cwd":"<guest-path>","expected_text":"All checks passed!"}]
EOF
cat > cycles.json <<'EOF'
{"detected":false,"reason":"Entry points inspected (run_server.py, foundry_mcp/server.py, __main__.py): the server is a request-driven stdio MCP server started by the client; no cron, schedule, loop, webhook, --once or --now trigger exists in the product code. CI schedules are not product cycles.","checks":[]}
EOF
for f in probe claims examples cycles; do python3 -I -m json.tool $f.json >/dev/null && echo "$f ok"; done
cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -60
cd <guest-path> && cat > report.json <<'EOF'
{"outcome":"needs_credentials","fault_owner":"prerequisite","operation":"Run the Foundry Boards MCP server from the source checkout (README 'Desarrollo' path) and call its tools against Foundry boards","operation_scope":"Local stdio MCP server runs and tests/lint pass without credentials. Board, task and note tools call the Foundry API at https://foundry.collie.digital/api/v1 and need a signed-in Foundry account (FOUNDRY_TOKEN or FOUNDRY_EMAIL+FOUNDRY_PASSWORD, or interactive login). This guest has no account, so those tools were not exercised against Foundry.","steps":["uv --version (uv 0.13.5 already present)","uv sync (README 'Desarrollo': creates .venv with deps and dev group) - succeeded","uv run pytest -q - 93 passed, 497 subtests passed","uvx ruff check . - All checks passed!","uv run --directory <guest-path> python run_server.py (README 'Con una copia del código') - server started as foundry-boards 0.2.1 and listed 74 tools","tools/call logout {} - returned 'Sesión cerrada: token olvidado.' (matches README: 'logout olvida el token')","Unauthenticated API probe: GET https://foundry.collie.digital/api/v1/board-presets returned HTTP 401 (reachable, needs token)"],"deviations":["Workspace had no .git metadata, so the pinned-commit fetch (git init/remote/fetch depth 1/reset) was not run; the supplied snapshot was used as-is.","No Foundry account was available, so login-dependent tools (whoami, list_spaces, get_board, create_task, etc.) were not run and no credentials were requested or created.","The README's 'uvx foundry-boards-mcp' published-package path was not used; the source checkout was run via the documented 'uv run ... run_server.py' path instead.","The credentials_error check for an unauthenticated list_spaces call was not recorded as a separate spec; probe.json holds the real logout result instead."],"stuck_step":"Calling board/task tools, which require a signed-in Foundry account","main_blocker":"No Foundry login credentials in the test guest; Foundry API returns 401 without a token.","plain_failure":"The server itself starts, its 93 tests pass, lint passes, and a real tool call (logout) works. The main job of the product, reading and changing Foundry boards, could not be tested because it needs a Foundry account that this test environment does not have.","suggested_fix":"Supply a test Foundry account token via FOUNDRY_TOKEN in the guest env, then replay a read tool such as list_spaces and a board read such as get_board to confirm end-to-end behavior."}
EOF
python3 -I -m json.tool report.json >/dev/null && echo report ok; cd <guest-path> && ls -la .coldpass && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | grep -o '"valid": [a-z]*\|"status": "[A-Z]*"' | head

No product verdict. Run record.

No product verdict. Run record.

No product verdict. Run record.

No product verdict. Run record.