coldpass

datarobot-oss/datarobot-genai

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/datarobot-oss--datarobot-genai.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 28, 2026 · f55c1e69b397 · claude-code / 2.1.310 (Claude Code)
Recorded operation: Remote hosted MCP connection · initialize + tools/list · http://127.0.0.1:8080/mcp

Does what it says
1 of 1 claims checked out
  • The DataRobot-compatible MCP server runs and its drtools docs search tool returns real results: Real input produced the expected result: MCP: DataRobot docs

    Source: Library of agentic tools and DataRobot-compatible MCP server

    Input: {"tool": "search_datarobot_agentic_docs", "arguments": {"query": "MCP server setup", "max_results": 2}}

    Expected: search results including MCP: DataRobot docs

    Command: <guest-path> <guest-path> tools/call {"tool": "search_datarobot_agentic_docs", "arguments": {"query": "MCP server setup", "max_results": 2}}

    Observed: …MCP: DataRobot docs\",\"result_0_url\":\"https://docs.datarobot.com/en/docs/agentic-ai/agentic-mcp/index.html\",\"result_0_description\":\"Release notes for September are available MCP ¶ Premium DataRobot's Agentic AI capabilities are a premium feature; contact your DataRobot representative for enablement information. Try this functionality for yourself in a limited capacity in the DataRobot trial experience. The Model Context Protocol (MCP) provides a standardized interface for AI agents to interact with external systems, tools, and data sources. Use MCP to centralize tool management, integra

MCP
Yes, observed
Local or hosted
local
Local: runs on your machine
Needs keys or browser
None seen
Maintained
Maintained
actively maintained: last commit 0 days ago; 134 commits and 136 merged PRs in 90 days; 0 open issues, 37 open PRs; 2 of 5 recent threads got a maintainer reply, median first reply 42.0h; latest release 2026-10-28

Last commit Oct 28, 2026

Setup time
6 min 44 s
6 min 44 s to a working result
Issue
none found in recorded check
Evidence
README behavior checked
Agent interfaces
MCP
MCP

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

MCP context
2 tools · about 417 tokens
2 tools · about 417 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 28, 2026 on f55c1e69b397

Tested with
Claude Code / Haiku 5.5
  • Linux: Claude Code / Haiku 5.5 · agent 2.1.310 (Claude Code) · Hosted MCP connection/tools-list passed · Oct 28, 2026 on f55c1e69b397

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. 104 listed items (named-host connections, static matches, dependency advisories) are below and do not change this verdict. 12 static matches retained as context.

Repository processes attempted these non-loopback connections; proxies can hide the final hostname. 3 distinct locations. 14 attributed processes.

Gitleaks found a possible hardcoded secret; value withheld. src/datarobot_genai/dragent/frontends/claim_validation.py

OSV reports a known vulnerability in this dependency version. 11 distinct locations. 30 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:

Run details

Haiku 5.5

Native agent · Hosted MCP connection/tools-list passed

Checked operation Remote hosted MCP connection · initialize + tools/list · http://127.0.0.1:8080/mcp

Checked against the hosted endpoint only.

Agent-reported scope: Start the datarobot-genai DataRobot MCP server (drmcp) from the README-installed package and call a real drtools tool over streamable HTTP: search_datarobot_agentic_docs returned live docs results including 'MCP: DataRobot docs'.

MCP server returned: datarobot-mcp-server · version 3.4.11.

MCP tools returned: search_datarobot_agentic_docs, datarobot_docs_fetch_page. Tool listing does not establish authenticated tool-call success.

Run details
run
datarobot-oss--datarobot-genai-claude-haiku-5-5-1793198464047028078
date
Oct 28, 2026
time to working
404.4s
product hosting / execution
Remote hosted MCP endpoint
recorded operation scope
remote hosted MCP initialize + tools/list
model
claude-haiku-5-5
agent / version
claude-code / 2.1.310 (Claude Code)
platform
linux
reported cost
$0.028630
Recorded source
https://github.com/datarobot-oss/datarobot-genai
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "f55c1e69b397e94b553b5d427c780c428309619f", "url": "https://github.com/datarobot-oss/datarobot-genai"}
Test version
readme-2d57868128a84902c09a58991c46c5fe288928e55b1de8282ab5003e13159c2f
revision
f55c1e69b397e94b553b5d427c780c428309619f
Whose fault: not assigned · resolved

Safety: Review signals: 1 connection review, 1 hardcoded secret, 51 known vulnerability. 6 static matches retained as context.

Review signals: 1 connection review, 1 hardcoded secret, 51 known vulnerability. 6 static matches retained as context.

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

Repository processes attempted these non-loopback connections; proxies can hide the final hostname. 3 distinct locations. 14 attributed processes.

Gitleaks found a possible hardcoded secret; value withheld. src/datarobot_genai/dragent/frontends/claim_validation.py

OSV reports a known vulnerability in this dependency version. 11 distinct locations. 30 findings.

6 hardcoded secret matches retained as context; full list in the evidence.

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 DataRobot-compatible MCP server runs and its drtools docs search tool returns real results: Real input produced the expected result: MCP: DataRobot docs

    Source: Library of agentic tools and DataRobot-compatible MCP server

    Input: {"tool": "search_datarobot_agentic_docs", "arguments": {"query": "MCP server setup", "max_results": 2}}

    Expected: search results including MCP: DataRobot docs

    Command: <guest-path> <guest-path> tools/call {"tool": "search_datarobot_agentic_docs", "arguments": {"query": "MCP server setup", "max_results": 2}}

    Observed: …MCP: DataRobot docs\",\"result_0_url\":\"https://docs.datarobot.com/en/docs/agentic-ai/agentic-mcp/index.html\",\"result_0_description\":\"Release notes for September are available MCP ¶ Premium DataRobot's Agentic AI capabilities are a premium feature; contact your DataRobot representative for enablement information. Try this functionality for yourself in a limited capacity in the DataRobot trial experience. The Model Context Protocol (MCP) provides a standardized interface for AI agents to interact with external systems, tools, and data sources. Use MCP to centralize tool management, integra

Examples

  • Standalone quickstart walks through LLM Gateway, drtools and running an agent: The quickstart is e2e-tests/examples/quickstart.ipynb and requires a DataRobot account (DATAROBOT_API_TOKEN, DATAROBOT_ENDPOINT) for LLM Gateway and deployments; no credentials are available in this guest. Ran the offline drtools MCP docs-search example instead via probe.json.

    Source: README.md#Standalone end-to-end examples

    Expected: documented command completes successfully

    Observed: The quickstart is e2e-tests/examples/quickstart.ipynb and requires a DataRobot account (DATAROBOT_API_TOKEN, DATAROBOT_ENDPOINT) for LLM Gateway and deployments; no credentials are available in this guest. Ran the offline drtools MCP docs-search example instead via probe.json.

Local or hosted: local

What the agent did

Start the datarobot-genai DataRobot MCP server (drmcp) from the README-installed package and call a real drtools tool over streamable HTTP: search_datarobot_agentic_docs returned live docs results including 'MCP: DataRobot docs'.

cd <guest-path> && ls -la && git -C . status 2>&1 | head -3; python3 --version; ls /inputs 2>&1; wc -c README.md 2>/dev/null
cd <guest-path> && cat README.md | head -c 7000
cd <guest-path> && tail -c 2700 README.md; echo ----; grep -n "drmcp\|drtools" README.md | head -30; ls .coldpass; cat .coldpass/* 2>/dev/null | head -c 1500
cd <guest-path> && grep -n -A8 "\[project.scripts\]" pyproject.toml; grep -n "^version" pyproject.toml; ls src/datarobot_genai; python3 -m venv --help >/dev/null 2>&1 && echo venv_ok || echo venv_missing
cd <guest-path> && grep -rn "__main__\|def main\|mcp.run\|console_scripts\|scripts" pyproject.toml setup.py | head; ls src/datarobot_genai/drmcp; cat src/datarobot_genai/drmcp/__main__.py 2>/dev/null | head -40
mkdir -p <guest-path> && python3 -m venv <guest-path> && <guest-path> install -q --upgrade pip 2>&1 | tail -3; echo rc=$?
cd /tmp && timeout 7000 <guest-path> install "<guest-path>" > <guest-path> 2>&1; echo rc=$?; tail -5 <guest-path>
cd <guest-path> && ls <guest-path> | head -50; grep -rn "drmcp" docs/README.md | head; ls docs/src | head -50
cd <guest-path> && ls docs/src/drtools docs/src/dragent; grep -rln "drmcp" docs/src | head; grep -n "mcp" docs/src/drtools/*.md | head -30
cd <guest-path> && cat docs/src/drtools/README.md | head -c 3500; echo ----; grep -n "__main__\|def main\|mcp.run\|argparse\|typer\|cyclopts" src/datarobot_genai/drmcp/server.py | head; ls e2e-tests
cd <guest-path> && cat src/datarobot_genai/drmcp/server.py; ls e2e-tests/drmcp e2e-tests/examples | head -40
cd <guest-path> && grep -rn "drmcp.server\|drmcp/server\|create_mcp_server" --include=*.md --include=*.toml --include=*.yaml --include=*.py . | grep -v "^./tests" | head -20; grep -n "drmcp\|mcp" Taskfile.yaml .taskfiles/* 2>/dev/null | head -20
cd <guest-path> && sed -n 370,420p src/datarobot_genai/drmcp/core/dr_mcp_server.py; grep -n "transport" src/datarobot_genai/drmcp/core/dr_mcp_server.py | head -20; sed -n 1,40p .taskfiles/drmcp.yml | grep -n "cmds\|uv run" 
cd <guest-path> && grep -rn "MCP_SERVER_PORT\|getenv\|environ" src/datarobot_genai/drmcp/core/*.py | head -30; grep -rn "guest" src/datarobot_genai/drmcp/core/*.py | head -10
cd <guest-path> && grep -rn "TELEMETRY\|DISABLE_" src/datarobot_genai/drmcp/core/telemetry.py | head -5; grep -n "port" src/datarobot_genai/drmcp/core/dr_mcp_server.py | head -10
mkdir -p <guest-path> && cd /tmp && (FASTMCP_PORT=8765 nohup setsid <guest-path> <guest-path> > <guest-path> 2>&1 &) ; sleep 25; tail -c 3000 <guest-path>; echo; curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:8765/mcp
curl -s -m 10 -i -X POST http://127.0.0.1:8080/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"1"}}}' | head -c 1200; echo; echo ---; grep -rn "Authorization\|guest" <guest-path> | head -8
cd <guest-path> && H='-H Content-Type:application/json -H Accept:application/json,text/event-stream'; SID=$(curl -s -m 10 -D - -o /dev/null -X POST http://127.0.0.1:8080/mcp $H -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"1"}}}' | tr -d '\r' | awk -F': ' 'tolower($1)=="mcp-session-id"{print $2}'); echo "sid=$SID"; curl -s -m 10 -X POST http://127.0.0.1:8080/mcp $H -H "mcp-session-id: $SID" -d '{"jsonrpc":"2.0","method":"notifications/initialized"}' >/dev/null; curl -s -m 10 -X POST http://127.0.0.1:8080/mcp $H -H "mcp-session-id: $SID" -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' | head -c 1500
cd <guest-path> && grep -rn "load_native_mcp_tools" src/datarobot_genai/drmcp/core/dr_mcp_server.py | head; grep -rn "credentials not configured" -B6 src/datarobot_genai/drmcp/core/dr_mcp_server.py | head -30
cd <guest-path> && sed -n 176,200p src/datarobot_genai/drmcp/core/dr_mcp_server.py; ls src/datarobot_genai/drtools | head -40
cd <guest-path> && grep -rn "def is_tool_enabled" -A25 src/datarobot_genai/drmcp/ | head -45; grep -rn "TOOL_CONFIGS = " -A12 src/datarobot_genai/drmcp/ | head -20
cd <guest-path> && grep -n "config_field_name\|enable_\|\"calculator\"\|CALC" src/datarobot_genai/drmcp/core/tool_config.py | head -40
cd <guest-path> && grep -rn "enable_dr_docs_tools\|enable_code_execution_tools\|enable_use_case_tools" src/datarobot_genai/drmcp/core/config.py | head; grep -rn "enable_dr_docs_tools" -A3 src/datarobot_genai/drmcp/core/config.py | head -12; grep -rln "ENABLE_DR_DOCS\|enable_dr_docs" docs e2e-tests 2>/dev/null | head
cd <guest-path> && sed -n 60,75p src/datarobot_genai/drmcp/core/config.py | head -20; grep -n "env_prefix\|class MCPServerConfig\|class .*Config" src/datarobot_genai/drmcp/core/config.py | head; ls src/datarobot_genai/drtools/dr_docs; grep -rn "datarobot\|api_token\|requests\|httpx" src/datarobot_genai/drtools/dr_docs/*.py | head -8
pkill -f "drmcp/server.py" ; sleep 2; cd /tmp && (ENABLE_DR_DOCS_TOOLS=true nohup setsid <guest-path> <guest-path> > <guest-path> 2>&1 &); sleep 20; grep -i "registered\|error\|dr_docs" <guest-path> | head; H='-H Content-Type:application/json -H Accept:application/json,text/event-stream'; SID=$(curl -s -m 10 -D - -o /dev/null -X POST http://127.0.0.1:8080/mcp $H -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"1"}}}' | tr -d '\r' | awk -F': ' 'tolower($1)=="mcp-session-id"{print $2}'); curl -s -m 10 -X POST http://127.0.0.1:8080/mcp $H -H "mcp-session-id: $SID" -d '{"jsonrpc":"2.0","method":"notifications/initialized"}' >/dev/null; curl -s -m 15 -X POST http://127.0.0.1:8080/mcp $H -H "mcp-session-id: $SID" -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' | head -c 800
ps -eo pid,args | grep "[v]env/genai/bin/python <guest-path>" | awk '{print $1}' | xargs -r kill; sleep 3; ps -eo pid,args | grep "[v]env/genai/bin/python <guest-path>" | wc -l; curl -s -m 3 -o /dev/null -w "%{http_code}\n" http://127.0.0.1:8080/mcp
cd /tmp && (ENABLE_DR_DOCS_TOOLS=true nohup setsid <guest-path> <guest-path> > <guest-path> 2>&1 &); sleep 20; grep -i "registered\|error" <guest-path> | head -5; H='-H Content-Type:application/json -H Accept:application/json,text/event-stream'; SID=$(curl -s -m 10 -D - -o /dev/null -X POST http://127.0.0.1:8080/mcp $H -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"1"}}}' | tr -d '\r' | awk -F': ' 'tolower($1)=="mcp-session-id"{print $2}'); curl -s -m 10 -X POST http://127.0.0.1:8080/mcp $H -H "mcp-session-id: $SID" -d '{"jsonrpc":"2.0","method":"notifications/initialized"}' >/dev/null; curl -s -m 15 -X POST http://127.0.0.1:8080/mcp $H -H "mcp-session-id: $SID" -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' | head -c 800
H='-H Content-Type:application/json -H Accept:application/json,text/event-stream'; SID=$(curl -s -m 10 -D - -o /dev/null -X POST http://127.0.0.1:8080/mcp $H -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"1"}}}' | tr -d '\r' | awk -F': ' 'tolower($1)=="mcp-session-id"{print $2}'); curl -s -m 10 -X POST http://127.0.0.1:8080/mcp $H -H "mcp-session-id: $SID" -d '{"jsonrpc":"2.0","method":"notifications/initialized"}' >/dev/null; curl -s -m 60 -X POST http://127.0.0.1:8080/mcp $H -H "mcp-session-id: $SID" -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search_datarobot_agentic_docs","arguments":{"query":"MCP server setup","max_results":2}}}' | head -c 1500
cd <guest-path> && grep -rln "cron\|--once\|--now\|schedule_loop\|webhook" src/datarobot_genai --include=*.py | head; ls -d build *.egg-info src/*.egg-info 2>/dev/null; git status 2>/dev/null | head -2; cat .coldpass/.gitkeep 2>/dev/null; ls -la .coldpass
cd <guest-path> && cat > probe.json <<'EOF'
{"kind":"mcp_http","argv":["<guest-path>","<guest-path>"],"cwd":"/tmp","url":"http://127.0.0.1:8080/mcp","env":{"ENABLE_DR_DOCS_TOOLS":"true"},"tool":"search_datarobot_agentic_docs","arguments":{"query":"MCP server setup","max_results":2},"expected_text":"MCP: DataRobot docs"}
EOF
cat > claims.json <<'EOF'
[{"kind":"claim","claim":"The DataRobot-compatible MCP server runs and its drtools docs search tool returns real results","source":"Library of agentic tools and DataRobot-compatible MCP server","input":"query MCP server setup","expected":"search results including MCP: DataRobot docs","probe_kind":"mcp_http","argv":["<guest-path>","<guest-path>"],"url":"http://127.0.0.1:8080/mcp","env":{"ENABLE_DR_DOCS_TOOLS":"true"},"tool":"search_datarobot_agentic_docs","arguments":{"query":"MCP server setup","max_results":2},"expected_text":"MCP: DataRobot docs","cwd":"/tmp"}]
EOF
cat > cycles.json <<'EOF'
{"detected":false,"checks":[],"reason":"Inspected README.md and src/datarobot_genai (grep for cron, --once, --now, schedule loops, webhooks): no product scheduler, cron, loop, or webhook trigger exists; only CI schedules and the Taskfile dev entrypoint were found."}
EOF
python3 -m json.tool probe.json >/dev/null && python3 -m json.tool claims.json >/dev/null && python3 -m json.tool cycles.json >/dev/null && echo ok
cd <guest-path> && cat > examples.json <<'EOF'
[{"kind":"example","claim":"Standalone quickstart walks through LLM Gateway, drtools and running an agent","source":"README.md#Standalone end-to-end examples","testable":false,"reason":"The quickstart is e2e-tests/examples/quickstart.ipynb and requires a DataRobot account (DATAROBOT_API_TOKEN, DATAROBOT_ENDPOINT) for LLM Gateway and deployments; no credentials are available in this guest. Ran the offline drtools MCP docs-search example instead via probe.json."}]
EOF
python3 -m json.tool examples.json >/dev/null && echo ok
ps -eo pid,args | grep "[v]env/genai/bin/python <guest-path>" | awk '{print $1}' | xargs -r kill; sleep 3; ls <guest-path> 2>&1; cd /tmp && <env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo rc=$?; tail -c 3000 <guest-path>
cd <guest-path> && head -c 1500 validate.log; echo; echo ...; grep -o '"valid": *[a-z]*' validate.log; grep -o '"verdict": "[a-z]*"' validate.log | sort | uniq -c; grep -o '"error[^"]*": "[^"]\{0,300\}' validate.log | head -5
cd <guest-path> && rm -rf build src/datarobot_genai.egg-info && cat > .coldpass/report.json <<'EOF'
{"outcome":"working","fault_owner":null,"operation":"Start the datarobot-genai DataRobot MCP server (drmcp) from the README-installed package and call a real drtools tool over streamable HTTP: search_datarobot_agentic_docs returned live docs results including 'MCP: DataRobot docs'.","operation_scope":"Offline scope only: Python 3.12 venv (README requires 3.11-3.13), pip install of the local pinned source with the [drmcp] extra, server started via the repo's documented dev entrypoint src/datarobot_genai/drmcp/server.py with ENABLE_DR_DOCS_TOOLS=true. DataRobot-account features (LLM gateway, deployments, dynamic tool registration, quickstart notebook) were NOT exercised because no DATAROBOT_API_TOKEN is available; those are needs_credentials and untested.","steps":["python3 -m venv <guest-path> && pip install --upgrade pip","pip install \"<guest-path>\" (README Installation extra drmcp, from pinned source)","Read Taskfile .taskfiles/drmcp.yml drmcp-dev: uv run src/datarobot_genai/drmcp/server.py (run with venv python instead of uv)","ENABLE_DR_DOCS_TOOLS=true python src/datarobot_genai/drmcp/server.py (server listens on 127.0.0.1:8080/mcp)","MCP initialize, notifications/initialized, tools/list -> search_datarobot_agentic_docs, datarobot_docs_fetch_page","tools/call search_datarobot_agentic_docs {query:'MCP server setup',max_results:2} -> status success, title 'MCP: DataRobot docs'","python3 -I <guest-path> --validate --replay -> valid true, replay PASS"],"deviations":["README gives no server launch command; used the Taskfile drmcp-dev entrypoint with the venv python instead of uv run.","Port is 8080 (FASTMCP_PORT env was ignored); HTTP transport is the default for server.py.","Without DataRobot credentials the server registers 0 tools; enabling ENABLE_DR_DOCS_TOOLS=true was needed to get a callable tool. The docs search tool calls the public docs site over the network.","Installed from the local workspace source rather than PyPI so the pinned commit is tested; removed build/ and egg-info outputs afterwards.","Quickstart notebook example not runnable (needs DataRobot account); recorded as testable:false.","Cycle check: no product scheduler/cron/webhook found, detected=false.","One harmless 'kill: Operation not permitted' message appeared during cleanup of an unrelated PID; no effect on the run."],"stuck_step":null,"main_blocker":null,"plain_failure":null,"suggested_fix":"For full coverage, provide a DATAROBOT_API_TOKEN and DATAROBOT_ENDPOINT in the guest to exercise DataRobot-backed MCP tools, dynamic tool registration and the quickstart notebook. Consider documenting the drmcp server launch command and the ENABLE_* tool flags in the README."}
EOF
python3 -m json.tool .coldpass/report.json >/dev/null && echo report_ok; ls .coldpass
cd /tmp && <env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo rc=$?; grep -o '"valid": *[a-z]*' <guest-path>; grep -o '"status": "[A-Z]*"' <guest-path> | head -3

No product verdict. Run record.