@svgrid/mcp 2.6.7 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +215 -195
- package/dist/core-tools.d.ts +74 -0
- package/dist/core-tools.js +362 -0
- package/dist/data.js +680 -531
- package/dist/index.d.ts +11 -5
- package/dist/index.js +244 -354
- package/dist/installed.d.ts +33 -0
- package/dist/installed.js +87 -0
- package/dist/preview.d.ts +88 -0
- package/dist/preview.js +211 -0
- package/dist/prompts.d.ts +31 -0
- package/dist/prompts.js +65 -0
- package/dist/resources.d.ts +19 -0
- package/dist/resources.js +84 -0
- package/dist/search.d.ts +11 -0
- package/dist/search.js +28 -0
- package/dist/studio-tools.d.ts +13 -0
- package/dist/studio-tools.js +227 -0
- package/dist/validate.d.ts +40 -0
- package/dist/validate.js +70 -5
- package/package.json +2 -2
- package/server.json +2 -2
package/README.md
CHANGED
|
@@ -1,195 +1,215 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<img src="https://svgrid.com/brand/svgrid-logo-icon-1200.png" alt="SvGrid" width="100" height="100" />
|
|
3
|
-
</p>
|
|
4
|
-
|
|
5
|
-
<h1 align="center">@svgrid/mcp</h1>
|
|
6
|
-
|
|
7
|
-
<p align="center"><strong>The official Model Context Protocol server for SvGrid.</strong></p>
|
|
8
|
-
|
|
9
|
-
<p align="center">
|
|
10
|
-
<a href="https://www.npmjs.com/package/@svgrid/mcp"><img src="https://img.shields.io/npm/v/%40svgrid%2Fmcp.svg?label=%40svgrid%2Fmcp" alt="npm version" /></a>
|
|
11
|
-
<a href="https://www.npmjs.com/package/@svgrid/mcp"><img src="https://img.shields.io/npm/dm/%40svgrid%2Fmcp.svg" alt="npm downloads" /></a>
|
|
12
|
-
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-brightgreen.svg" alt="MIT License" /></a>
|
|
13
|
-
</p>
|
|
14
|
-
|
|
15
|
-
<p align="center">
|
|
16
|
-
<a href="https://svgrid.com">Website</a> ·
|
|
17
|
-
<a href="https://svgrid.com/docs/help/mcp-server/">Docs</a> ·
|
|
18
|
-
<a href="https://svgrid.com/pricing/">Pricing</a>
|
|
19
|
-
</p>
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
Point any MCP-capable client - Claude Desktop, Claude Code, Cursor, Zed - at this server and the model answers with **accurate, version-pinned** facts about SvGrid: real prop, method, and event names, plus every demo's source as grounding. No hallucinated APIs, no stale blog posts.
|
|
24
|
-
|
|
25
|
-
**Why this beats pasting docs into the chat.** A model working from memory invents plausible SvGrid APIs, because it learned from a mix of other grids and older versions. Pasting docs helps for one question and then falls out of the context window. This server puts the current API surface and 370+ working demo sources one tool call away, for every question, pinned to the version you installed.
|
|
26
|
-
|
|
27
|
-
## Tools exposed
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
| `
|
|
36
|
-
| `
|
|
37
|
-
| `
|
|
38
|
-
| `
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
- **
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
| |
|
|
107
|
-
|
|
|
108
|
-
|
|
|
109
|
-
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
#
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://svgrid.com/brand/svgrid-logo-icon-1200.png" alt="SvGrid" width="100" height="100" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">@svgrid/mcp</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center"><strong>The official Model Context Protocol server for SvGrid.</strong></p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://www.npmjs.com/package/@svgrid/mcp"><img src="https://img.shields.io/npm/v/%40svgrid%2Fmcp.svg?label=%40svgrid%2Fmcp" alt="npm version" /></a>
|
|
11
|
+
<a href="https://www.npmjs.com/package/@svgrid/mcp"><img src="https://img.shields.io/npm/dm/%40svgrid%2Fmcp.svg" alt="npm downloads" /></a>
|
|
12
|
+
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-brightgreen.svg" alt="MIT License" /></a>
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<p align="center">
|
|
16
|
+
<a href="https://svgrid.com">Website</a> ·
|
|
17
|
+
<a href="https://svgrid.com/docs/help/mcp-server/">Docs</a> ·
|
|
18
|
+
<a href="https://svgrid.com/pricing/">Pricing</a>
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
Point any MCP-capable client - Claude Desktop, Claude Code, Cursor, Zed - at this server and the model answers with **accurate, version-pinned** facts about SvGrid: real prop, method, and event names, plus every demo's source as grounding. No hallucinated APIs, no stale blog posts.
|
|
24
|
+
|
|
25
|
+
**Why this beats pasting docs into the chat.** A model working from memory invents plausible SvGrid APIs, because it learned from a mix of other grids and older versions. Pasting docs helps for one question and then falls out of the context window. This server puts the current API surface and 370+ working demo sources one tool call away, for every question, pinned to the version you installed.
|
|
26
|
+
|
|
27
|
+
## Tools exposed
|
|
28
|
+
|
|
29
|
+
Four. `tools/list` is sent on **every** request, so the tool surface is pure
|
|
30
|
+
overhead on every turn - this server used to spend ~4,710 tokens of it on 36
|
|
31
|
+
tools, 79% of them Studio tools most sessions never call once.
|
|
32
|
+
|
|
33
|
+
| Tool | Purpose |
|
|
34
|
+
| --- | --- |
|
|
35
|
+
| `svgrid_search` | Search the docs, all 375 demos and the API surface **in one call**. No arguments returns an index. |
|
|
36
|
+
| `svgrid_get` | Read one thing in full: a doc slug, a demo id, or `api`. |
|
|
37
|
+
| `svgrid_check_code` | **Verify** a file against the real API surface + the Svelte compiler. |
|
|
38
|
+
| `svgrid_scaffold` | Studio: turn a Drizzle schema, sample rows or an `EntitySchema` into runnable SvelteKit files. |
|
|
39
|
+
|
|
40
|
+
The docs and demos are also served as **MCP resources**
|
|
41
|
+
(`svgrid://doc/<slug>`, `svgrid://example/<id>`), and three **prompts** ship
|
|
42
|
+
ready to run: `build_grid`, `explain_api`, `review_grid_code`.
|
|
43
|
+
|
|
44
|
+
Every pre-3.0 tool name still answers - `search_docs`, `get_doc`,
|
|
45
|
+
`list_examples`, `get_example_source`, `list_docs`, `get_api_reference`,
|
|
46
|
+
`check_svgrid_code`, `introspect_source`, `scaffold_entity`, and all 27
|
|
47
|
+
individual `studio_*` tools. They are not **listed**, because listing is what
|
|
48
|
+
costs context and answering an unadvertised name costs nothing. Their response
|
|
49
|
+
shape follows 3.0.
|
|
50
|
+
|
|
51
|
+
### `svgrid_check_code` - the one a retrieval server cannot do
|
|
52
|
+
|
|
53
|
+
Reading the docs makes a model *likelier* to be right. This makes it *checkable*.
|
|
54
|
+
Hand it a file and it answers with line-numbered diagnostics and the exact
|
|
55
|
+
replacement for each:
|
|
56
|
+
|
|
57
|
+
```jsonc
|
|
58
|
+
{
|
|
59
|
+
"ok": false,
|
|
60
|
+
"checkedAgainst": "@svgrid/grid@2.6.20",
|
|
61
|
+
"compiler": "svelte",
|
|
62
|
+
"counts": { "errors": 3, "warnings": 0, "info": 0 },
|
|
63
|
+
"diagnostics": [
|
|
64
|
+
{ "rule": "svgrid/renamed-prop", "severity": "error", "line": 24,
|
|
65
|
+
"message": "`rowData` is not a SvGrid prop.", "fix": "Use `data`." },
|
|
66
|
+
{ "rule": "svgrid/renamed-column-key", "severity": "error", "line": 10,
|
|
67
|
+
"message": "`accessorKey` is not a SvGrid column key.", "fix": "Use `field`." },
|
|
68
|
+
{ "rule": "svelte/legacy-event-directive", "severity": "error", "line": 30,
|
|
69
|
+
"message": "`on:rowClick` never fires: SvGrid dispatches no component events, it takes callback props.",
|
|
70
|
+
"fix": "Use `onRowClick={...}`." }
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
What it checks:
|
|
76
|
+
|
|
77
|
+
- **Every name, against the installed version.** Importable symbols, `<SvGrid>`
|
|
78
|
+
props, `ColumnDef` keys, grid API methods, theme stylesheets. The list is
|
|
79
|
+
generated from the package sources at build time, so it cannot drift from
|
|
80
|
+
what the package exports, and an unknown name comes back with the nearest
|
|
81
|
+
real one.
|
|
82
|
+
- **Cross-package mistakes.** A symbol that lives in `@svgrid/enterprise`, or an
|
|
83
|
+
api method that only exists after `installEnterprise(api)`.
|
|
84
|
+
- **Svelte 5 rules.** `export let` and `$:` in a runes file (compiler errors),
|
|
85
|
+
`on:` / `<slot>` / `createEventDispatcher` (deprecations), and a plain `let`
|
|
86
|
+
array that gets mutated and silently never re-renders.
|
|
87
|
+
- **The file, compiled.** When a Svelte compiler is reachable - the user's
|
|
88
|
+
project copy first, then the one shipped here - real parse errors come back
|
|
89
|
+
too. The result says which of the two ran in its `compiler` field, so
|
|
90
|
+
"no errors" is never mistaken for "this compiles".
|
|
91
|
+
|
|
92
|
+
It is tuned to shut up when the code is right: it reports **nothing** across all
|
|
93
|
+
375 demos in this repo, which is what a CI test asserts. A verifier that cries
|
|
94
|
+
wolf is worse than none, because a model will happily "fix" working code.
|
|
95
|
+
|
|
96
|
+
### Studio: drive the app model (agent co-designer)
|
|
97
|
+
|
|
98
|
+
The `studio_*` tools let an agent build and edit the **same validated project model the visual designer uses** - add entities, screens, blocks, components, wire data sources, theme, RBAC, auth, the typed data layer, and the deploy target - then generate the full runnable app or export the `studio.config.json` the designer can Load. Every edit runs through the model's own functions + `validateProject`, so the agent can't produce an invalid app.
|
|
99
|
+
|
|
100
|
+
**Opt-in.** Set `SVGRID_MCP_STUDIO=1`, or a valid `SVGRID_LICENSE_KEY`, in the
|
|
101
|
+
server's env. Tools that need a licence to be useful should not cost every
|
|
102
|
+
other user context on every request.
|
|
103
|
+
|
|
104
|
+
| Tool | Purpose |
|
|
105
|
+
| --- | --- |
|
|
106
|
+
| `studio_project` | `new`, `load`, `describe`, `config`, `capabilities`. |
|
|
107
|
+
| `studio_apply` | A **batch** of model changes in order: entities, screens, blocks, components. |
|
|
108
|
+
| `studio_configure` | Theme, auth, RBAC, tenancy, data layer, jobs, deploy target, layouts - in one call. |
|
|
109
|
+
| `studio_build` | `validate`, then `generate` the full runnable SvelteKit app. |
|
|
110
|
+
|
|
111
|
+
A typical session: `studio_project` (`new`) → one `studio_apply` batch per
|
|
112
|
+
screen → `studio_configure` → `studio_build` (`generate`) → write the files and
|
|
113
|
+
run `svelte-check`.
|
|
114
|
+
|
|
115
|
+
`studio_apply` batches on purpose. Twenty-seven one-per-mutation tools made a
|
|
116
|
+
five-screen app twenty-odd round trips; a whole screen is now one call, and a
|
|
117
|
+
failure reports which op failed and what already applied.
|
|
118
|
+
|
|
119
|
+
## Two ways to run it
|
|
120
|
+
|
|
121
|
+
| | stdio (this package) | remote HTTP |
|
|
122
|
+
| --- | --- | --- |
|
|
123
|
+
| Install | `npx @svgrid/mcp` | `https://mcp.svgrid.com/mcp` |
|
|
124
|
+
| Needs Node | yes | no |
|
|
125
|
+
| `check_svgrid_code` compiles | yes | static checks only |
|
|
126
|
+
| Studio `studio_*` tools | yes (27) | no |
|
|
127
|
+
| Works offline | yes | no |
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
# No install: point any MCP client at the hosted server
|
|
131
|
+
claude mcp add --transport http svgrid https://mcp.svgrid.com/mcp
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
<p align="center">
|
|
135
|
+
<a href="https://cursor.com/en/install-mcp?name=svgrid&config=eyJ1cmwiOiJodHRwczovL21jcC5zdmdyaWQuY29tL21jcCJ9"><img src="https://img.shields.io/badge/Add%20to-Cursor-000000?logo=cursor&logoColor=white" alt="Add to Cursor" /></a>
|
|
136
|
+
<a href="https://insiders.vscode.dev/redirect/mcp/install?name=svgrid&config=%7B%22name%22%3A%22svgrid%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.svgrid.com%2Fmcp%22%7D"><img src="https://img.shields.io/badge/Add%20to-VS%20Code-0098FF?logo=visualstudiocode&logoColor=white" alt="Add to VS Code" /></a>
|
|
137
|
+
</p>
|
|
138
|
+
|
|
139
|
+
The remote server is live at **https://mcp.svgrid.com/mcp** and carries the six
|
|
140
|
+
docs + verification tools ([source](../../workers/svgrid-mcp)). Use stdio when
|
|
141
|
+
you want the compiler pass, the Studio tools, or no third-party endpoint in the
|
|
142
|
+
loop.
|
|
143
|
+
|
|
144
|
+
## Run
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# One-shot via npx (no install)
|
|
148
|
+
npx @svgrid/mcp
|
|
149
|
+
|
|
150
|
+
# Or install globally, then run the bin
|
|
151
|
+
npm install -g @svgrid/mcp
|
|
152
|
+
svgrid-mcp
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
The server speaks MCP over **stdio**: stdout is reserved for JSON-RPC, logs go to stderr.
|
|
156
|
+
|
|
157
|
+
## Connect Claude Desktop
|
|
158
|
+
|
|
159
|
+
Edit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or
|
|
160
|
+
`%APPDATA%\Claude\claude_desktop_config.json` (Windows):
|
|
161
|
+
|
|
162
|
+
```json
|
|
163
|
+
{
|
|
164
|
+
"mcpServers": {
|
|
165
|
+
"svgrid": {
|
|
166
|
+
"command": "npx",
|
|
167
|
+
"args": ["-y", "@svgrid/mcp"]
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Restart Claude Desktop and open a new chat - the tools above are now available.
|
|
174
|
+
|
|
175
|
+
## Connect Claude Code
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
claude mcp add svgrid -- npx -y @svgrid/mcp
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Then run `/mcp` in a session to confirm `svgrid` is listed. Ask something like
|
|
182
|
+
*"using svgrid, build a grid that groups by department and shows a sparkline per row"*
|
|
183
|
+
and the model will pull the relevant demo sources before generating code.
|
|
184
|
+
|
|
185
|
+
## Connect Cursor / Zed
|
|
186
|
+
|
|
187
|
+
Add the same `mcpServers` block to the editor's MCP configuration:
|
|
188
|
+
|
|
189
|
+
```json
|
|
190
|
+
{
|
|
191
|
+
"mcpServers": {
|
|
192
|
+
"svgrid": { "command": "npx", "args": ["-y", "@svgrid/mcp"] }
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## Build from source
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
cd packages/mcp
|
|
201
|
+
pnpm build
|
|
202
|
+
node dist/index.js
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
`pnpm build` first runs `scripts/build-manifests.mjs`, which reads
|
|
206
|
+
`examples/src/demos/*.svelte` and `docs/**/*.md` from the workspace and inlines
|
|
207
|
+
them into `src/data.ts`, so the published package is fully self-contained.
|
|
208
|
+
|
|
209
|
+
## Licensing
|
|
210
|
+
|
|
211
|
+
MIT - free to run, no license key. Some tools generate SvGrid Studio projects, and Studio itself is
|
|
212
|
+
commercial; see [svgrid.com/pricing](https://svgrid.com/pricing/).
|
|
213
|
+
The MIT [`@svgrid/grid`](https://www.npmjs.com/package/@svgrid/grid) core is free for any use.
|
|
214
|
+
|
|
215
|
+
SvGrid™ and sv-grid™ are trademarks of jQWidgets Ltd.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export type ToolResult = {
|
|
2
|
+
isError?: boolean;
|
|
3
|
+
content: {
|
|
4
|
+
type: 'text';
|
|
5
|
+
text: string;
|
|
6
|
+
}[];
|
|
7
|
+
};
|
|
8
|
+
export declare const CORE_TOOLS: readonly [{
|
|
9
|
+
readonly name: "svgrid_search";
|
|
10
|
+
readonly title: "Search SvGrid";
|
|
11
|
+
readonly description: "Search SvGrid docs, example demos and the API surface in ONE call. Start here for any \"how do I ...\" question - it covers all three, so you do not have to guess which one holds the answer. Call with no arguments for an index of doc sections, demo categories and API groups. Returns ids/slugs you can pass to svgrid_get.";
|
|
12
|
+
readonly inputSchema: {
|
|
13
|
+
readonly type: "object";
|
|
14
|
+
readonly properties: {
|
|
15
|
+
readonly query: {
|
|
16
|
+
readonly type: "string";
|
|
17
|
+
readonly description: "What you are trying to do, e.g. \"pin a column\", \"server side pagination\", \"kanban swimlanes\". Omit for the index.";
|
|
18
|
+
};
|
|
19
|
+
readonly kind: {
|
|
20
|
+
readonly type: "string";
|
|
21
|
+
readonly enum: readonly ["all", "docs", "examples", "api"];
|
|
22
|
+
readonly description: "Restrict the search. Default \"all\".";
|
|
23
|
+
readonly default: "all";
|
|
24
|
+
};
|
|
25
|
+
readonly detail: {
|
|
26
|
+
readonly type: "string";
|
|
27
|
+
readonly enum: readonly ["concise", "full"];
|
|
28
|
+
readonly description: "\"concise\" (default) returns titles plus a short excerpt. \"full\" returns the matching doc excerpts at length - more tokens, fewer follow-up calls.";
|
|
29
|
+
readonly default: "concise";
|
|
30
|
+
};
|
|
31
|
+
readonly section: {
|
|
32
|
+
readonly type: "string";
|
|
33
|
+
readonly description: "Restrict docs to one section, exactly, e.g. \"Help\". Call with no arguments to see the sections.";
|
|
34
|
+
};
|
|
35
|
+
readonly category: {
|
|
36
|
+
readonly type: "string";
|
|
37
|
+
readonly description: "Restrict demos to one category, exactly, e.g. \"Kanban\". Call with no arguments to see the categories.";
|
|
38
|
+
};
|
|
39
|
+
readonly limit: {
|
|
40
|
+
readonly type: "number";
|
|
41
|
+
readonly description: "Max results per corpus. Default 10, max 50.";
|
|
42
|
+
readonly default: 10;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
readonly required: readonly [];
|
|
46
|
+
};
|
|
47
|
+
}, {
|
|
48
|
+
readonly name: "svgrid_get";
|
|
49
|
+
readonly title: "Read a doc or demo";
|
|
50
|
+
readonly description: "Fetch one thing in full by reference: a doc slug (\"help/columns/column-definitions\"), a demo id (\"11-stock-market\"), or \"api\" for the curated API reference. Use svgrid_search first to find the reference.";
|
|
51
|
+
readonly inputSchema: {
|
|
52
|
+
readonly type: "object";
|
|
53
|
+
readonly properties: {
|
|
54
|
+
readonly ref: {
|
|
55
|
+
readonly type: "string";
|
|
56
|
+
readonly description: "A doc slug, a demo id, or \"api\". The kind is inferred; pass `kind` to force it.";
|
|
57
|
+
};
|
|
58
|
+
readonly kind: {
|
|
59
|
+
readonly type: "string";
|
|
60
|
+
readonly enum: readonly ["auto", "doc", "example", "api"];
|
|
61
|
+
readonly description: "Override the inferred kind. Default \"auto\".";
|
|
62
|
+
readonly default: "auto";
|
|
63
|
+
};
|
|
64
|
+
readonly detail: {
|
|
65
|
+
readonly type: "string";
|
|
66
|
+
readonly enum: readonly ["concise", "full"];
|
|
67
|
+
readonly description: "\"full\" (default) returns the whole thing; \"concise\" truncates long content.";
|
|
68
|
+
readonly default: "full";
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
readonly required: readonly ["ref"];
|
|
72
|
+
};
|
|
73
|
+
}];
|
|
74
|
+
export declare function handleCoreTool(name: string, args: Record<string, unknown>): ToolResult | undefined;
|