Driving a real browser profile from DeepSeek's dsh over MCP The Nullprint team documented how to connect DeepSeek's dsh agent harness to the Nullprint multi-profile browser over MCP, so a plain-language request can create a browser profile, launch it, open a page, read it and close it. Tested with dsh 0.2.1-rc.2 and nullprint-mcp 0.1.3, the setup requires installing dsh from npm (the PyPI package is not DeepSeek's), adding an MCP client entry wrapped in `- insert:` in the profile's cordis.patch.yml, and passing NULLPRINT_API_KEY explicitly in the config because dsh drops inherited environment variables whose names contain KEY, TOKEN, SECRET or PASSWORD. DeepSeek has an official agent harness called dsh npm: @deepseek-ai/dsh , source at deepseek-ai/deepseek-harness . It speaks MCP, which means you can hand it tools. We wired it to Nullprint, a multi-profile browser, so a plain-language request turns into: create a browser profile, launch it, open a page, read it, close it. This is the short version of what it took. Tested with dsh 0.2.1-rc.2 and nullprint-mcp 0.1.3 ; dsh is still a pre-release, so check its own docs if anything below has moved. The dsh package on PyPI is not DeepSeek's . Install from npm. You need Node.js, a DeepSeek API key, and Nullprint running and signed in on the same machine. npm install -g @deepseek-ai/dsh export DEEPSEEK API KEY=sk-your-key pipx install nullprint-mcp dsh has two modes: web a chat page in your browser and headless one task from the command line, then exit . Each is a separate profile with its own config, and the config folder only appears after the profile has run once, so start the one you want dsh web , or any small headless task before editing anything. Add Nullprint to ~/.dsh/profiles/