Repository navigation
docs: document list_environments and all update_project settings - #18
Conversation
The hosted MCP server now advertises list_environments, and create_project and update_project accept an environmentId, so agents can put a project on a chosen Docker image. The nightly drift check flags list_environments as undocumented, and the capability boundary still said the server cannot change environments. Document the tool and the new environmentId arguments from the deepnote-internal implementation, including that changing a project's environment needs admin access to the project and restarts a running machine. Bump both manifests to 0.5.0 so installed plugins pick it up. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SufsVX7Qvru6rvNpVm8pui
update_project also accepts streamlitAppApiAccessEnabled, which lets a project's hosted Streamlit apps call the public API as their signed-in viewers, and get_project returns it. Neither was documented. Every update_project call needs full access to the project (UPDATE_PROJECT_SETTINGS), not only environment changes, so state the requirement once for the whole tool, and point the README troubleshooting at update_project instead of environment changes alone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SufsVX7Qvru6rvNpVm8pui
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Essentials Run ID: 📒 Files selected for processing (4)
Included review availability: This review used your included allowance. 1 included review remains after this review. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour. 📝 WalkthroughWalkthroughThe Deepnote MCP documentation adds environment details and lookup guidance. It clarifies Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~8 minutes Change: Other Merge Risk: ⚪ Minimal · up to The documentation and matching version updates have no identified merge-blocking issue. They are ready to merge subject to normal checks. 🚥 Pre-merge checks | ✅ 4 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (4 passed)
Full details: Out of Scope Changes checkExplanation Issue Resolution Keep the Full details: Updates DocsExplanation The PR updates the plugin skill and README, but it does not update the primary documentation in
Warning Some tools did not complete. Review the errors below. 🔧 LanguageToolLanguageTool checks were skipped: reviews.tools.languagetool.enabled_only requires at least one selection in enabled_rules or enabled_categories. Select rules/categories, set enabled_only to false to use the default rules, or set enabled to false to disable LanguageTool. Comment |
#20 documented list_environments, environmentId, and the machine tools while this branch was open. Conflicts keep main's wording and add only what main lacked: streamlitAppApiAccessEnabled and a null environment on get_project, full access and the background restart on update_project, Streamlit app API access as a persistent write, and "cannot create custom environments". list_environments keeps this branch's fuller entry. "hardware" leaves the capability boundary now that the machine tools exist, and the README environment bullet that duplicated main's is gone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QBB91ZL2r3Qn3T2Bokxfuq
main reached 0.5.0 with #20, so this branch's own 0.4.0 -> 0.5.0 bump merged away. Bump again so the environment and update_project details ship as a new version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QBB91ZL2r3Qn3T2Bokxfuq
Why
The nightly Deepnote MCP drift check reopened #10: the hosted server now advertises
list_environments, and noSKILL.mdmentions it.That tool is part of a larger product change, deepnote-internal #20858 and #20859.
create_projectandupdate_projectnow acceptenvironmentId, andget_projectreturns the project'senvironment. That made thedeepnote-mcpcapability boundary wrong, since it said the server cannot change environments.The
update_projectentry had two more gaps:streamlitAppApiAccessEnabledfrom deepnote-internal #20811. The drift check can't catch that because it only compares tool names.What
Every statement below comes from the implementation on deepnote-internal
develop(apps/webapp/server/mcp/tools/*,public-api/v2/contracts/{environments,projects}.ts,public-api/v2/projects.ts,libs/access-control).list_environmentscatalogue entry: one unpaginated response withid,name,image,type,language,isDefault,isGpuandisDeprecated. It also says deprecated environments should not be chosen and that private-registry images need their registry integration attached.create_projectgainsenvironmentId. Omitting it gives the default environment.update_projectnow covers all three settings:staticFiles,streamlitAppApiAccessEnabledandenvironmentId.UPDATE_PROJECT_SETTINGS); Edit is not enough.get_projectnow listsstreamlitAppApiAccessEnabledandenvironment.environmentisnullfor Dockerfile-built projects.list_environments, and all project setting changes count as persistent writes.environmentamong theget_projectfields.update_projectfailing withInsufficient permissions0.4.0→0.5.0in both, following docs: document the 13 hosted MCP tools missing from the skills #16. Drop this if you'd rather batch releases.Verification
scripts/detect-deepnote-mcp-drift.shwithcurlstubbed to return the tool list from develop'sapps/webapp/server/mcp/mcp-tools-manifest.json(35 tools):main:MISSING list_environments, exit 1ok, exit 0claude plugin validate --strict .andclaude plugin validate --strict plugins/deepnotepass, and every JSON manifest parses.Not run: the drift script against the live
https://deepnote.com/mcp, because I have noDEEPNOTE_TOKENlocally. Running the workflow withworkflow_dispatchafter merge will confirm it.Follow-up (not in this PR)
docs/deepnote-mcp.mdin deepnote/deepnote doesn't mentionlist_environmentsorenvironmentIdyet.Closes #10
🤖 Generated with Claude Code
https://claude.ai/code/session_01SufsVX7Qvru6rvNpVm8pui
Summary by CodeRabbit