|
| 1 | +# Built-in Prompts |
| 2 | + |
| 3 | +The Sift MCP server ships with a set of built-in prompts: ready-made workflows |
| 4 | +that walk an agent through a complete task using the [MCP tools](./mcp.md). A |
| 5 | +prompt expands into step-by-step instructions tailored to the arguments you |
| 6 | +give it, so you start a focused session without writing the workflow yourself. |
| 7 | + |
| 8 | +Prompts are served by `sift-cli mcp`, so the server must be |
| 9 | +[configured as a client](./mcp.md#configuring-a-client) first. |
| 10 | + |
| 11 | +## Using a prompt |
| 12 | + |
| 13 | +How you invoke a prompt depends on your MCP client, and on the name you |
| 14 | +registered the server under. Assuming you registered it as `sift` in your |
| 15 | +`.mcp.json`: |
| 16 | + |
| 17 | +```json |
| 18 | +{ |
| 19 | + "mcpServers": { |
| 20 | + "sift": { |
| 21 | + "command": "sift-cli", |
| 22 | + "args": ["mcp"] |
| 23 | + } |
| 24 | + } |
| 25 | +} |
| 26 | +``` |
| 27 | + |
| 28 | +then in Claude Code each prompt is available as a slash command of the form |
| 29 | +`/mcp__sift__<prompt>`: |
| 30 | + |
| 31 | +- `/mcp__sift__explore_asset` |
| 32 | +- `/mcp__sift__analyze_run` |
| 33 | +- `/mcp__sift__derive_and_upload` |
| 34 | + |
| 35 | +The `sift` in the command is your registered server name, so a different name |
| 36 | +in `.mcp.json` changes the prefix accordingly. Arguments are passed positionally |
| 37 | +after the command, separated by spaces; wrap any argument containing spaces in |
| 38 | +quotes. Other MCP clients discover the same prompts but may present them |
| 39 | +differently, so check your client's documentation for its invocation syntax. |
| 40 | + |
| 41 | +## `explore_asset` |
| 42 | + |
| 43 | +A read-only starting point for a session. It resolves an asset, lists its |
| 44 | +recent runs, and inventories its channels, without pulling any sample data. |
| 45 | + |
| 46 | +| Argument | Required | Description | |
| 47 | +| -------- | -------- | -------------------------------------- | |
| 48 | +| `asset` | yes | Asset name to explore (exact or partial match). | |
| 49 | + |
| 50 | +Example: |
| 51 | + |
| 52 | +``` |
| 53 | +/mcp__sift__explore_asset "Falcon 9 Booster" |
| 54 | +``` |
| 55 | + |
| 56 | +The agent resolves the asset, then reports its most recent runs and the channel |
| 57 | +inventory grouped by data type, surfacing the exact run and channel names so you |
| 58 | +can reuse them with the other prompts. |
| 59 | + |
| 60 | +## `analyze_run` |
| 61 | + |
| 62 | +Pulls a run's channel data and produces a per-channel statistical summary. You |
| 63 | +can target specific channels and pose a question for the agent to answer. |
| 64 | + |
| 65 | +| Argument | Required | Description | |
| 66 | +| ---------- | -------- | ------------------------------------------------------------ | |
| 67 | +| `asset` | yes | Asset the run belongs to. | |
| 68 | +| `run` | yes | Run to analyze. | |
| 69 | +| `channels` | no | Channels to pull. Omit to let the agent choose a subset. | |
| 70 | +| `question` | no | A question for the agent to answer from the data. | |
| 71 | + |
| 72 | +Analyze every channel on a run: |
| 73 | + |
| 74 | +``` |
| 75 | +/mcp__sift__analyze_run "Falcon 9 Booster" "Static Fire 2024-05-01" |
| 76 | +``` |
| 77 | + |
| 78 | +Target specific channels and ask a question: |
| 79 | + |
| 80 | +``` |
| 81 | +/mcp__sift__analyze_run "Falcon 9 Booster" "Static Fire 2024-05-01" "chamber_pressure,fuel_temp" "Did chamber pressure stay within nominal range?" |
| 82 | +``` |
| 83 | + |
| 84 | +The agent pulls the data with `get_data`, summarizes it with `sql` (row counts, |
| 85 | +min/max/mean, null rate), and reports the Parquet paths so you can continue the |
| 86 | +work. |
| 87 | + |
| 88 | +## `derive_and_upload` |
| 89 | + |
| 90 | +Derives a new dataset from an existing run via SQL and uploads it back to Sift. |
| 91 | +Because the upload is a write, the agent confirms the destination with you before |
| 92 | +running it. |
| 93 | + |
| 94 | +| Argument | Required | Description | |
| 95 | +| -------------- | -------- | ----------------------------------------------------------------- | |
| 96 | +| `source_asset` | yes | Asset to read from. | |
| 97 | +| `source_run` | yes | Run to read from. | |
| 98 | +| `transform` | yes | Plain-language description of the transform to apply. | |
| 99 | +| `target_asset` | no | Asset to write to. The agent proposes a default if omitted. | |
| 100 | +| `target_run` | no | Run to create. The agent asks whether to create one if omitted. | |
| 101 | + |
| 102 | +Derive a new dataset, letting the agent propose the destination: |
| 103 | + |
| 104 | +``` |
| 105 | +/mcp__sift__derive_and_upload "Falcon 9 Booster" "Static Fire 2024-05-01" "1-second average of chamber_pressure and fuel_temp" |
| 106 | +``` |
| 107 | + |
| 108 | +Specify the destination explicitly: |
| 109 | + |
| 110 | +``` |
| 111 | +/mcp__sift__derive_and_upload "Falcon 9 Booster" "Static Fire 2024-05-01" "1-second average of chamber_pressure" "Falcon 9 Booster-derived" "Static Fire 2024-05-01 1s-avg" |
| 112 | +``` |
| 113 | + |
| 114 | +The agent extracts the source data, applies the transform with `sql` (keeping |
| 115 | +`timestamp_unix_nanos` as the first column, as Sift requires), confirms the |
| 116 | +target asset, run, and any tags with you, then uploads the result with |
| 117 | +`upload_dataset`. |
0 commit comments