Merge pull request #7 from deepnote/docs/correct-capability-boundaries · deepnote/agent-plugins@4c7cc9b · GitHub
Skip to content

Commit 4c7cc9b

Browse files
authored
Merge pull request #7 from deepnote/docs/correct-capability-boundaries
docs: sync hosted MCP capabilities and workflows
2 parents 4608850 + 59759b3 commit 4c7cc9b

8 files changed

Lines changed: 169 additions & 42 deletions

File tree

‎.agents/plugins/marketplace.json‎

Lines changed: 1 addition & 1 deletion

‎README.md‎

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,21 +63,27 @@ The hosted Deepnote MCP server currently exposes these tools:
6363
- `get_me`: get the calling API key, creator user, workspace, and access level
6464
- `list_projects`: list workspace projects, optionally filtered by name, with cursor pagination
6565
- `list_integrations`: list workspace integrations, optionally filtered by name or type
66+
- `get_integration`: inspect integration details and cached table structure
6667
- `list_integration_project_usages`: list projects connected to an integration
6768
- `list_integration_notebook_usages`: list notebooks containing SQL blocks that use an integration
6869
- `list_integration_block_usages`: list SQL blocks that use an integration
6970
- `get_notebook`: inspect notebook details, blocks, input variables, and last-run metadata
7071
- `create_project`: create a new project, optionally inside a folder
7172
- `create_notebook`: create an empty notebook inside a project
7273
- `create_block`: create a new block in a notebook
74+
- `update_block`: update an existing block's content or SQL integration
75+
- `reorder_notebook_blocks`: move existing blocks within a notebook
7376
- `create_run`: start a full notebook run, optionally with input values
77+
- `list_notebook_runs`: list recent and historical notebook runs
7478
- `get_run`: inspect run status, errors, completion time, and snapshot content when available
7579
- `list_docs`: list Deepnote docs sections and article slugs
7680
- `get_doc`: fetch a Deepnote documentation article by slug
7781

78-
The current hosted MCP toolset does not expose single-block execution, direct database schema browsing, environment mutation, permissions changes, publishing, or scheduling changes.
82+
The hosted MCP server also exposes capabilities beyond the tools listed above. It can create, inspect, attach, and detach integrations, and it can enable or disable static-site sharing and viewer API access. Once `publish_static_site` appears in the connected server's advertised tools, it can also publish a small HTML/CSS/JavaScript site in one call. Treat the list above as the documented subset rather than a complete inventory; check the tools advertised by the connected server before telling a user that something is impossible.
7983

80-
When Deepnote MCP is connected, Codex should introduce it in one sentence: Deepnote MCP can identify the current workspace, search resources, list projects and integrations, inspect notebooks, create projects/notebooks/blocks, map integration usage, read Deepnote docs, start notebook runs, and fetch run status; if you are not registered yet, register at deepnote.com and ready your Deepnote API key from the [Deepnote API docs](https://deepnote.com/docs/deepnote-api).
84+
The hosted MCP server cannot execute a single block, browse database schemas directly, upload arbitrary project files, or change schedules, permissions, environments, hardware, credentials, or secrets.
85+
86+
When Deepnote MCP is connected, Codex should introduce it in one sentence: Deepnote MCP can identify the current workspace, search resources, list projects and integrations, inspect notebooks, create and edit notebook structure, map integration usage and cached table structure, read Deepnote docs, start notebook runs, and fetch run status and history; if you are not registered yet, register at deepnote.com and ready your Deepnote API key from the [Deepnote API docs](https://deepnote.com/docs/deepnote-api).
8187

8288
By default, Deepnote responses should be brief, concise, and information dense. Codex should lead with the answer, use tables and counts where they improve scanning, and avoid long explanations, raw snapshots, full logs, or exhaustive block listings unless the user asks for more detail.
8389

@@ -101,6 +107,23 @@ Notebook inspection responses should help the user understand purpose, safety, a
101107

102108
When a notebook includes cells that print environment variables, credentials, large datasets, start servers, send network requests, or mutate external systems, Codex should call that out before running the notebook.
103109

110+
## Publish Static Dashboards
111+
112+
Author HTML, CSS, and JavaScript in the agent's local workspace. When a shell and the Deepnote CLI
113+
are available, publish the finished directory with `deepnote publish ./dist --project-id <uuid>`.
114+
When deployment must happen through hosted MCP, use `publish_static_site` only if the connected
115+
server advertises it. Supply the final file contents in that one tool call; do not use notebook
116+
execution or generic project-file writes as a deployment workaround.
117+
118+
`publish_static_site` enables sharing after its file operations succeed and returns the canonical
119+
site URL. To change access later without re-uploading or deleting files, call `update_project` with
120+
`staticFiles.sharingEnabled` and/or `staticFiles.apiAccessEnabled`. Disabling sharing also disables
121+
viewer API access. Re-enabling sharing serves the retained files again.
122+
123+
Published files are served to people who can view the project. Never put API keys, personal tokens,
124+
`.env` contents, or other secrets in them. Viewer API access is a separate explicit setting; enable
125+
it only when the browser app needs the viewer-scoped Deepnote run API.
126+
104127
## Workspace Identity And Project Pagination
105128

106129
Use `get_me` when a response needs to name the authenticated workspace, debug access issues, or report the caller's access level. The response includes API key metadata, user metadata, workspace `{ id, name, slug }`, and `accessLevel`.
@@ -248,9 +271,13 @@ codex plugin marketplace upgrade deepnote
248271
- `Inspect this Deepnote notebook and summarize its inputs.`
249272
- `Create a Deepnote project named Revenue Analysis.`
250273
- `Create a notebook in this Deepnote project and add starter markdown and code blocks.`
274+
- `Update this Deepnote notebook block with the revised SQL.`
251275
- `Add a SQL block to this notebook using my Snowflake integration.`
276+
- `Move these Deepnote notebook blocks to the top of the notebook.`
277+
- `Show me the recent runs for this Deepnote notebook.`
252278
- `Run this Deepnote notebook with customer_name set to Acme.`
253279
- `List Deepnote integrations matching Snowflake.`
280+
- `Show cached tables for my Snowflake integration.`
254281
- `Show me where this Deepnote integration is used.`
255282
- `Look up the Deepnote docs for scheduled notebooks.`
256283

@@ -264,7 +291,7 @@ codex plugin marketplace upgrade deepnote
264291
- If a SQL block creation fails, confirm `integrationId` references a SQL integration in the same workspace and pass it as a top-level field.
265292
- If a notebook run with inputs fails before starting, check that each input key matches a `get_notebook` input `name` and that each value matches the input type.
266293
- If a run fails, ask Codex to inspect the run with `get_run` and summarize the error.
267-
- If Codex suggests an unsupported edit or environment change, remember that the current hosted MCP server can create projects, notebooks, and blocks, but does not change environments, permissions, publishing, or schedules.
294+
- If Codex suggests an unsupported edit or environment change, remember the boundary: the hosted MCP server can create projects, notebooks, and blocks, update and reorder blocks, create, inspect, attach, and detach integrations, and enable or disable static-site sharing and viewer API access. If `publish_static_site` is advertised, it can publish files only beneath the static-site root; it still cannot upload arbitrary project files or change schedules, permissions, environments, hardware, credentials, or secrets.
268295

269296
## License
270297

‎plugins/deepnote/.codex-plugin/plugin.json‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "deepnote",
3-
"version": "0.1.2",
3+
"version": "0.1.3",
44
"description": "Search Deepnote workspaces, inspect notebooks, generate links, map integrations, read docs, and run notebooks from Codex.",
55
"author": {
66
"name": "Deepnote",
@@ -22,9 +22,9 @@
2222
"interface": {
2323
"displayName": "Deepnote",
2424
"shortDescription": "Work with Deepnote workspaces, projects, notebooks, and docs from Codex.",
25-
"longDescription": "Adds Deepnote skills and hosted MCP configuration for Codex. Use it to identify the current workspace, search resources, list paginated projects and integrations, construct workspace-aware project and notebook links, map integration usage, inspect notebook structure and inputs, read Deepnote docs, start notebook runs with optional input values, and summarize run status and outputs.",
25+
"longDescription": "Adds Deepnote skills and hosted MCP configuration for Codex. Use it to identify the current workspace, search resources, list paginated projects and integrations, inspect cached integration structure, construct workspace-aware project and notebook links, inspect and edit notebook structure, read Deepnote docs, start notebook runs with optional input values, and summarize run history, status, and outputs.",
2626
"developerName": "Deepnote",
27-
"category": "Productivity",
27+
"category": "Data & Analytics",
2828
"capabilities": [
2929
"Interactive",
3030
"Read",

‎plugins/deepnote/skills/deepnote-data-execution/SKILL.md‎

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: deepnote-data-execution
3-
description: Use when running Deepnote notebooks, inspecting notebook inputs, reviewing integration references, or interpreting run status and snapshot outputs through the Deepnote MCP server.
3+
description: Use when running Deepnote notebooks, inspecting notebook inputs, reviewing integration references and cached table structure, listing run history, or interpreting run status and snapshot outputs through the Deepnote MCP server.
44
---
55

66
# Deepnote Data And Execution
@@ -11,17 +11,19 @@ Use the Deepnote MCP server for the execution and context it currently exposes:
1111

1212
- `get_notebook` for notebook blocks, input variables, last-run metadata, and integration references visible in blocks.
1313
- `list_integrations` for workspace integration names and types.
14+
- `get_integration` for integration details and cached table structure, optionally filtered by `databaseName`, `schemaName`, or exact `tableName`.
1415
- `list_integration_project_usages`, `list_integration_notebook_usages`, and `list_integration_block_usages` for direct integration usage mapping.
1516
- `create_run` to start full-notebook execution, optionally with input values.
17+
- `list_notebook_runs` for historical notebook runs, newest first, with `pageSize` and `pageToken` pagination.
1618
- `get_run` for run status, errors, completion time, and run snapshots. When `snapshotDelivery` is omitted, it returns a short-lived `snapshotDownloadUrl` when a snapshot is available; this is equivalent to `snapshotDelivery: "downloadUrl"`. Request `snapshotDelivery: "inline"` only when you need `snapshotContent` in the tool response.
1719
- `get_me` for the authenticated workspace, API key type, and caller access level when execution permissions or workspace identity matter.
1820

19-
Do not claim direct access to database schemas, table previews, file metadata, query previews, or environment configuration unless a current MCP tool explicitly exposes that data.
21+
Use `get_integration` for cached table and column structure when the user asks about integration schemas, tables, columns, or whether a table exists. Do not claim live database introspection, table previews, query previews, file metadata, or environment configuration unless a current MCP tool explicitly exposes that data.
2022

2123
## Execution Workflow
2224

2325
1. Read the notebook context first with `get_notebook`.
24-
2. Identify whether the user needs a fresh run or whether existing run metadata is enough.
26+
2. Identify whether the user needs a fresh run, a specific run status, or notebook run history.
2527
3. If the notebook has inputs and the user supplied values, map values to the exact input `name` fields returned by `get_notebook`.
2628
4. Check whether execution may mutate data, call external services, trigger schedules, or consume significant compute.
2729
5. Use `create_run` only for full-notebook execution by `notebookId`; the hosted MCP server does not currently expose single-block execution.
@@ -30,6 +32,22 @@ Do not claim direct access to database schemas, table previews, file metadata, q
3032

3133
Before starting a run, inspect the notebook for cells that print environment variables, secrets, credentials, or entire configuration objects. If found, warn the user and get explicit confirmation before running. Also warn before running notebooks that start servers, send bulk requests, call external services, or mutate data.
3234

35+
## Run History
36+
37+
Use `list_notebook_runs` when the user asks about recent runs, failed runs, run history, or anything older than the latest run metadata returned by `get_notebook`. The tool returns runs newest first with `runId`, `notebookId`, `status`, `createdAt`, `completedAt`, and `pagination`.
38+
39+
For short history requests, call `list_notebook_runs` with the default `pageSize` of 20. For broader audits, use `pageSize: 100` and follow `pagination.nextPageToken` while `pagination.hasMore` is true, stopping once you have enough evidence for the user's question.
40+
41+
Use `get_run` only after selecting a specific run that needs detail, snapshot availability, output inspection, or failure debugging. If the user asks "why did the last run fail?" and no run ID is provided, list recent runs first, pick the newest failed run, then call `get_run` for that run.
42+
43+
## Cached Integration Structure
44+
45+
Use `list_integrations` to resolve an integration name or type to an ID, then call `get_integration` for cached table structure. The response includes integration details plus `tables`, where each table has `name`, `schema`, optional `database`, and cached `columns` with names and database-native types.
46+
47+
Use `databaseName`, `schemaName`, and `tableName` filters when the user asks about a specific database, schema, or exact table. These filters apply to cached structure rows; an empty table list means no matching cached structure is visible through MCP, not proof that the live database has no such table.
48+
49+
When reporting cached structure, say it is cached. Do not present it as a fresh live database scan, and do not claim access to row previews or query results unless you obtained them from a notebook run snapshot or another exposed MCP tool.
50+
3351
## Notebook Run Inputs
3452

3553
`create_run` accepts an optional `inputs` object. Keys must be notebook input names from `get_notebook`, not labels or block IDs. Values must match the input block type:
@@ -54,9 +72,11 @@ If the current MCP tool schema does not expose `snapshotDelivery`, use the field
5472

5573
When snapshot content, snapshot download URLs, or errors include sensitive, proprietary, personal, or production-like data, minimize exposure in the response. Summarize the result, shape, quality issues, aggregates, or failure mode instead of dumping raw records, presigned URLs, or long logs.
5674

57-
## Environment Changes
75+
## Configuration Changes
76+
77+
The hosted Deepnote MCP server can create, inspect, attach, and detach integrations, and it can enable or disable static-site sharing and viewer API access. It cannot upload the website files behind a static site, and it cannot change schedules, permissions, environments, hardware, credentials, or secrets.
5878

59-
The hosted Deepnote MCP server currently does not expose environment mutation tools. Do not claim to change package versions, environment images, hardware, integrations, credentials, secrets, scheduled runs, or shared app settings through MCP.
79+
So do not claim to change package versions, environment images, hardware, credentials, secrets, scheduled runs, or permissions through MCP. Equally, do not tell a user that integration or static-site sharing changes are impossible through MCP; check the tools the connected server advertises in the current session, and use them if they are exposed.
6080

6181
## Reporting Results
6282

‎plugins/deepnote/skills/deepnote-links/SKILL.md‎

Lines changed: 11 additions & 0 deletions

0 commit comments

Comments
 (0)