@incultnitollc/mcpr 0.1.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 +65 -0
- package/dist/cli.d.ts +15 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +288 -0
- package/dist/cli.js.map +1 -0
- package/package.json +49 -0
package/README.md
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# `mcpr`
|
|
2
|
+
|
|
3
|
+
> Search, inspect, and score MCP servers from your terminal.
|
|
4
|
+
|
|
5
|
+
The CLI half of the [MCP Registry](https://mcp-registry-dh5.pages.dev) — a
|
|
6
|
+
curated index of Model Context Protocol servers with structured metadata
|
|
7
|
+
and quality scores from
|
|
8
|
+
[`@incultnitollc/mcp-probe`](https://www.npmjs.com/package/@incultnitollc/mcp-probe).
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
npm install -g @incultnitollc/mcpr
|
|
14
|
+
# or run without installing
|
|
15
|
+
npx @incultnitollc/mcpr search filesystem
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
After the global install the bin is `mcpr` — the scope only matters at
|
|
19
|
+
install time, not at the command line.
|
|
20
|
+
|
|
21
|
+
Node 20+ required.
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
mcpr search <query> # search by name / slug / description
|
|
27
|
+
mcpr info <slug> # full detail for one server
|
|
28
|
+
mcpr score <slug> # quality-score breakdown
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Examples
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
mcpr search filesystem
|
|
35
|
+
mcpr search github --limit 10
|
|
36
|
+
mcpr info mcpr-ai-arclan-registry
|
|
37
|
+
mcpr score mcpr-ai-arclan-registry
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
`mcpr install` (cross-client config writer for Claude Code, Claude Desktop,
|
|
41
|
+
Cursor, Windsurf, and VS Code) is on the v1.1 roadmap. The Registry is
|
|
42
|
+
read-only from the CLI in v1.
|
|
43
|
+
|
|
44
|
+
## Configuration
|
|
45
|
+
|
|
46
|
+
The CLI talks to the public Registry by default. Override the endpoint
|
|
47
|
+
with environment variables if you're running a private mirror:
|
|
48
|
+
|
|
49
|
+
| Variable | Default |
|
|
50
|
+
|---|---|
|
|
51
|
+
| `MCPR_SUPABASE_URL` | `https://kpqxrtsdcmwbszznpeem.supabase.co` |
|
|
52
|
+
| `MCPR_SUPABASE_ANON_KEY` | embedded anon key (read-only, RLS-governed) |
|
|
53
|
+
|
|
54
|
+
## What the Registry covers
|
|
55
|
+
|
|
56
|
+
- ~6,900 MCP servers indexed from six upstream sources (Anthropic curated,
|
|
57
|
+
Microsoft, Google, Pipedream, the official `modelcontextprotocol.io`
|
|
58
|
+
registry, and npm).
|
|
59
|
+
- Canonical SPDX license normalization.
|
|
60
|
+
- Quality scores from `mcp-probe` — compliance, tool reliability, schema
|
|
61
|
+
validity, error handling, latency p50.
|
|
62
|
+
|
|
63
|
+
## License
|
|
64
|
+
|
|
65
|
+
MIT © Incultnito LLC
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* mcpr — MCP Registry CLI.
|
|
4
|
+
*
|
|
5
|
+
* Subcommands:
|
|
6
|
+
* mcpr search <query> — search the registry by name/slug/description
|
|
7
|
+
* mcpr info <slug> — print full server detail
|
|
8
|
+
* mcpr score <slug> — print quality-score breakdown
|
|
9
|
+
*
|
|
10
|
+
* Reads the public Supabase project via the published anon key. No
|
|
11
|
+
* credentials required at install time. `mcpr install` (cross-client
|
|
12
|
+
* config writer) is intentionally out of scope for v1.
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* mcpr — MCP Registry CLI.
|
|
4
|
+
*
|
|
5
|
+
* Subcommands:
|
|
6
|
+
* mcpr search <query> — search the registry by name/slug/description
|
|
7
|
+
* mcpr info <slug> — print full server detail
|
|
8
|
+
* mcpr score <slug> — print quality-score breakdown
|
|
9
|
+
*
|
|
10
|
+
* Reads the public Supabase project via the published anon key. No
|
|
11
|
+
* credentials required at install time. `mcpr install` (cross-client
|
|
12
|
+
* config writer) is intentionally out of scope for v1.
|
|
13
|
+
*/
|
|
14
|
+
import { createClient } from "@supabase/supabase-js";
|
|
15
|
+
import { Command } from "commander";
|
|
16
|
+
const REGISTRY_URL = process.env.MCPR_SUPABASE_URL ?? "https://kpqxrtsdcmwbszznpeem.supabase.co";
|
|
17
|
+
// Public anon key for the MCP Registry Supabase project. Anon role only;
|
|
18
|
+
// reads are governed by RLS. Safe to ship inside a published CLI.
|
|
19
|
+
const REGISTRY_ANON_KEY = process.env.MCPR_SUPABASE_ANON_KEY ??
|
|
20
|
+
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImtwcXhydHNkY213YnN6em5wZWVtIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzY1NjQ5MjcsImV4cCI6MjA5MjE0MDkyN30.eOgv-YxaZZ7T5ML_qAu3fAHQjcq1LQ9tNpmhVWorEIk";
|
|
21
|
+
const WEB_HOST = "https://mcp-registry-dh5.pages.dev";
|
|
22
|
+
const SERVER_COLUMNS = "id, slug, name, description, homepage, repo_url, license, maintainer, card_summary_json";
|
|
23
|
+
const VERSION_COLUMNS = "id, semver, source_url, capabilities_json, server_card_json, published_at";
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
// Supabase client — cached, anon-only.
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
let cachedClient = null;
|
|
28
|
+
function getClient() {
|
|
29
|
+
if (cachedClient)
|
|
30
|
+
return cachedClient;
|
|
31
|
+
cachedClient = createClient(REGISTRY_URL, REGISTRY_ANON_KEY, {
|
|
32
|
+
auth: { persistSession: false, autoRefreshToken: false },
|
|
33
|
+
});
|
|
34
|
+
return cachedClient;
|
|
35
|
+
}
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
// Terminal helpers — TTY-aware, no chalk dep.
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
const isTTY = process.stdout.isTTY === true;
|
|
40
|
+
const ESC = "";
|
|
41
|
+
function color(code, s) {
|
|
42
|
+
if (!isTTY)
|
|
43
|
+
return s;
|
|
44
|
+
return `${ESC}[${code}m${s}${ESC}[0m`;
|
|
45
|
+
}
|
|
46
|
+
const dim = (s) => color("2", s);
|
|
47
|
+
const bold = (s) => color("1", s);
|
|
48
|
+
const brand = (s) => color("1;35", s); // bold magenta — matches #820855 family
|
|
49
|
+
function truncate(s, max) {
|
|
50
|
+
if (!s)
|
|
51
|
+
return "";
|
|
52
|
+
const cleaned = s.replace(/\s+/g, " ").trim();
|
|
53
|
+
return cleaned.length > max ? cleaned.slice(0, max - 1) + "…" : cleaned;
|
|
54
|
+
}
|
|
55
|
+
function formatDate(iso) {
|
|
56
|
+
if (!iso)
|
|
57
|
+
return "—";
|
|
58
|
+
const d = new Date(iso);
|
|
59
|
+
if (Number.isNaN(d.getTime()))
|
|
60
|
+
return iso;
|
|
61
|
+
return d.toISOString().slice(0, 10);
|
|
62
|
+
}
|
|
63
|
+
// ---------------------------------------------------------------------------
|
|
64
|
+
// Shared lookups
|
|
65
|
+
// ---------------------------------------------------------------------------
|
|
66
|
+
async function findServer(sb, slug) {
|
|
67
|
+
const { data, error } = await sb
|
|
68
|
+
.from("servers")
|
|
69
|
+
.select(SERVER_COLUMNS)
|
|
70
|
+
.eq("slug", slug)
|
|
71
|
+
.is("deleted_at", null)
|
|
72
|
+
.limit(1);
|
|
73
|
+
if (error)
|
|
74
|
+
throw new Error(`servers select failed: ${error.message}`);
|
|
75
|
+
return data?.[0] ?? null;
|
|
76
|
+
}
|
|
77
|
+
async function getLatestScore(sb, serverId) {
|
|
78
|
+
const { data, error } = await sb
|
|
79
|
+
.from("quality_scores")
|
|
80
|
+
.select("overall_score, dimensions_json, created_at, doctor_runs!inner(server_versions!inner(server_id))")
|
|
81
|
+
.eq("doctor_runs.server_versions.server_id", serverId)
|
|
82
|
+
.order("created_at", { ascending: false })
|
|
83
|
+
.limit(1);
|
|
84
|
+
if (error) {
|
|
85
|
+
// Score join may fail in restricted environments; treat as missing.
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
const first = data?.[0];
|
|
89
|
+
return first ?? null;
|
|
90
|
+
}
|
|
91
|
+
async function getLatestVersion(sb, serverId) {
|
|
92
|
+
const { data, error } = await sb
|
|
93
|
+
.from("server_versions")
|
|
94
|
+
.select(VERSION_COLUMNS)
|
|
95
|
+
.eq("server_id", serverId)
|
|
96
|
+
.is("deleted_at", null)
|
|
97
|
+
.order("published_at", { ascending: false, nullsFirst: false })
|
|
98
|
+
.limit(1);
|
|
99
|
+
if (error)
|
|
100
|
+
throw new Error(`server_versions select failed: ${error.message}`);
|
|
101
|
+
return data?.[0] ?? null;
|
|
102
|
+
}
|
|
103
|
+
// ---------------------------------------------------------------------------
|
|
104
|
+
// search
|
|
105
|
+
// ---------------------------------------------------------------------------
|
|
106
|
+
async function cmdSearch(query, opts) {
|
|
107
|
+
const q = query.trim();
|
|
108
|
+
if (q.length === 0) {
|
|
109
|
+
console.error("search query must not be empty");
|
|
110
|
+
return 2;
|
|
111
|
+
}
|
|
112
|
+
const limit = Math.max(1, Math.min(100, Number.parseInt(opts.limit ?? "20", 10) || 20));
|
|
113
|
+
const sb = getClient();
|
|
114
|
+
const like = `%${q.replace(/[%_]/g, "\\$&")}%`;
|
|
115
|
+
const { data: serverData, error } = await sb
|
|
116
|
+
.from("servers")
|
|
117
|
+
.select(SERVER_COLUMNS)
|
|
118
|
+
.is("deleted_at", null)
|
|
119
|
+
.or(`slug.ilike.${like},name.ilike.${like},description.ilike.${like}`)
|
|
120
|
+
.order("slug", { ascending: true })
|
|
121
|
+
.limit(limit);
|
|
122
|
+
if (error)
|
|
123
|
+
throw new Error(`servers search failed: ${error.message}`);
|
|
124
|
+
const servers = (serverData ?? []);
|
|
125
|
+
if (servers.length === 0) {
|
|
126
|
+
console.log(dim(`No servers match “${q}”.`));
|
|
127
|
+
return 0;
|
|
128
|
+
}
|
|
129
|
+
// Parallel score lookup for the page.
|
|
130
|
+
const scores = await Promise.all(servers.map((s) => getLatestScore(sb, s.id)));
|
|
131
|
+
const slugW = Math.min(44, Math.max(20, ...servers.map((s) => s.slug.length)));
|
|
132
|
+
const licW = Math.min(14, Math.max(8, ...servers.map((s) => (s.license ?? "").length)));
|
|
133
|
+
console.log(bold(`${"slug".padEnd(slugW)} ${"score".padEnd(5)} ${"license".padEnd(licW)} description`));
|
|
134
|
+
console.log(dim("-".repeat(slugW + licW + 28)));
|
|
135
|
+
for (let i = 0; i < servers.length; i++) {
|
|
136
|
+
const s = servers[i];
|
|
137
|
+
const sc = scores[i];
|
|
138
|
+
const slugCell = brand(s.slug.padEnd(slugW));
|
|
139
|
+
const scoreCell = sc ? bold(String(sc.overall_score).padStart(3)) + " " : dim(" — ") + " ";
|
|
140
|
+
const licCell = (s.license ?? "—").padEnd(licW);
|
|
141
|
+
const descCell = dim(truncate(s.description, 72));
|
|
142
|
+
console.log(`${slugCell} ${scoreCell} ${licCell} ${descCell}`);
|
|
143
|
+
}
|
|
144
|
+
console.log("");
|
|
145
|
+
console.log(dim(`${servers.length} result(s). Use \`mcpr info <slug>\` for detail. Web: ${WEB_HOST}/servers/<slug>`));
|
|
146
|
+
return 0;
|
|
147
|
+
}
|
|
148
|
+
// ---------------------------------------------------------------------------
|
|
149
|
+
// info
|
|
150
|
+
// ---------------------------------------------------------------------------
|
|
151
|
+
async function cmdInfo(slug) {
|
|
152
|
+
const sb = getClient();
|
|
153
|
+
const server = await findServer(sb, slug);
|
|
154
|
+
if (!server) {
|
|
155
|
+
console.error(`No active server with slug “${slug}”.`);
|
|
156
|
+
return 2;
|
|
157
|
+
}
|
|
158
|
+
const [version, score] = await Promise.all([
|
|
159
|
+
getLatestVersion(sb, server.id),
|
|
160
|
+
getLatestScore(sb, server.id),
|
|
161
|
+
]);
|
|
162
|
+
console.log(brand(server.name || server.slug));
|
|
163
|
+
if (server.maintainer)
|
|
164
|
+
console.log(dim(server.maintainer));
|
|
165
|
+
console.log("");
|
|
166
|
+
const lines = [
|
|
167
|
+
["Slug", server.slug],
|
|
168
|
+
["License", server.license ?? "—"],
|
|
169
|
+
["Latest version", version?.semver ?? "—"],
|
|
170
|
+
["Published", formatDate(version?.published_at ?? null)],
|
|
171
|
+
["Homepage", server.homepage ?? "—"],
|
|
172
|
+
["Repository", server.repo_url ?? "—"],
|
|
173
|
+
[
|
|
174
|
+
"Quality score",
|
|
175
|
+
score ? `${score.overall_score} / 100 (probed ${formatDate(score.created_at)})` : "Not yet probed",
|
|
176
|
+
],
|
|
177
|
+
];
|
|
178
|
+
const labelW = Math.max(...lines.map(([k]) => k.length));
|
|
179
|
+
for (const [k, v] of lines) {
|
|
180
|
+
console.log(`${dim(k.padEnd(labelW))} ${v}`);
|
|
181
|
+
}
|
|
182
|
+
if (server.description) {
|
|
183
|
+
console.log("");
|
|
184
|
+
console.log(server.description.replace(/\s+/g, " ").trim());
|
|
185
|
+
}
|
|
186
|
+
console.log("");
|
|
187
|
+
console.log(dim(`Web: ${WEB_HOST}/servers/${encodeURIComponent(server.slug)}`));
|
|
188
|
+
return 0;
|
|
189
|
+
}
|
|
190
|
+
// ---------------------------------------------------------------------------
|
|
191
|
+
// score
|
|
192
|
+
// ---------------------------------------------------------------------------
|
|
193
|
+
async function cmdScore(slug) {
|
|
194
|
+
const sb = getClient();
|
|
195
|
+
const server = await findServer(sb, slug);
|
|
196
|
+
if (!server) {
|
|
197
|
+
console.error(`No active server with slug “${slug}”.`);
|
|
198
|
+
return 2;
|
|
199
|
+
}
|
|
200
|
+
const score = await getLatestScore(sb, server.id);
|
|
201
|
+
if (!score) {
|
|
202
|
+
console.log(brand(server.name || server.slug));
|
|
203
|
+
console.log("");
|
|
204
|
+
console.log(dim("Not yet probed. The next scheduled scoring run will pick this server up."));
|
|
205
|
+
return 0;
|
|
206
|
+
}
|
|
207
|
+
console.log(brand(server.name || server.slug));
|
|
208
|
+
console.log(dim(`Probed ${formatDate(score.created_at)} · Web: ${WEB_HOST}/servers/${encodeURIComponent(server.slug)}`));
|
|
209
|
+
console.log("");
|
|
210
|
+
console.log(bold(`Overall: ${score.overall_score} / 100`));
|
|
211
|
+
console.log("");
|
|
212
|
+
const dims = score.dimensions_json ?? {};
|
|
213
|
+
const dimLines = [
|
|
214
|
+
["Compliance", formatPct(dims["compliance_pct"])],
|
|
215
|
+
["Tool reliability", formatPct(dims["tool_reliability_pct"])],
|
|
216
|
+
["Schema", formatPct(dims["schema_pct"])],
|
|
217
|
+
["Error handling", formatPct(dims["error_handling_pct"])],
|
|
218
|
+
["Latency p50", formatMs(dims["latency_p50_ms"])],
|
|
219
|
+
];
|
|
220
|
+
const labelW = Math.max(...dimLines.map(([k]) => k.length));
|
|
221
|
+
for (const [k, v] of dimLines) {
|
|
222
|
+
console.log(`${dim(k.padEnd(labelW))} ${v}`);
|
|
223
|
+
}
|
|
224
|
+
return 0;
|
|
225
|
+
}
|
|
226
|
+
function formatPct(v) {
|
|
227
|
+
if (typeof v !== "number" || !Number.isFinite(v))
|
|
228
|
+
return "—";
|
|
229
|
+
return `${Math.round(v)}%`;
|
|
230
|
+
}
|
|
231
|
+
function formatMs(v) {
|
|
232
|
+
if (typeof v !== "number" || !Number.isFinite(v))
|
|
233
|
+
return "—";
|
|
234
|
+
return `${Math.round(v)} ms`;
|
|
235
|
+
}
|
|
236
|
+
// ---------------------------------------------------------------------------
|
|
237
|
+
// Commander entrypoint
|
|
238
|
+
// ---------------------------------------------------------------------------
|
|
239
|
+
const program = new Command();
|
|
240
|
+
program
|
|
241
|
+
.name("mcpr")
|
|
242
|
+
.description("MCP Registry CLI — search, inspect, and score MCP servers.")
|
|
243
|
+
.version("0.1.0");
|
|
244
|
+
program
|
|
245
|
+
.command("search")
|
|
246
|
+
.argument("<query>", "name, slug, or description keyword")
|
|
247
|
+
.option("--limit <n>", "max results to show", "20")
|
|
248
|
+
.description("Search the MCP Registry")
|
|
249
|
+
.action(async (query, opts) => {
|
|
250
|
+
try {
|
|
251
|
+
process.exit(await cmdSearch(query, opts));
|
|
252
|
+
}
|
|
253
|
+
catch (err) {
|
|
254
|
+
console.error(err.message);
|
|
255
|
+
process.exit(1);
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
program
|
|
259
|
+
.command("info")
|
|
260
|
+
.argument("<slug>", "server slug (use `mcpr search` to find one)")
|
|
261
|
+
.description("Show full detail for one server")
|
|
262
|
+
.action(async (slug) => {
|
|
263
|
+
try {
|
|
264
|
+
process.exit(await cmdInfo(slug));
|
|
265
|
+
}
|
|
266
|
+
catch (err) {
|
|
267
|
+
console.error(err.message);
|
|
268
|
+
process.exit(1);
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
program
|
|
272
|
+
.command("score")
|
|
273
|
+
.argument("<slug>", "server slug")
|
|
274
|
+
.description("Show the latest quality-score breakdown")
|
|
275
|
+
.action(async (slug) => {
|
|
276
|
+
try {
|
|
277
|
+
process.exit(await cmdScore(slug));
|
|
278
|
+
}
|
|
279
|
+
catch (err) {
|
|
280
|
+
console.error(err.message);
|
|
281
|
+
process.exit(1);
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
program.parseAsync(process.argv).catch((err) => {
|
|
285
|
+
console.error(err.message);
|
|
286
|
+
process.exit(1);
|
|
287
|
+
});
|
|
288
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@incultnitollc/mcpr",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "MCP Registry CLI — search, inspect, and score MCP servers across clients.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"mcpr": "dist/cli.js"
|
|
8
|
+
},
|
|
9
|
+
"main": "./dist/cli.js",
|
|
10
|
+
"types": "./dist/cli.d.ts",
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
"README.md"
|
|
14
|
+
],
|
|
15
|
+
"engines": {
|
|
16
|
+
"node": ">=20"
|
|
17
|
+
},
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc -p tsconfig.json",
|
|
20
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
21
|
+
"lint": "eslint . --quiet",
|
|
22
|
+
"test": "echo \"(no tests yet)\" && exit 0"
|
|
23
|
+
},
|
|
24
|
+
"homepage": "https://mcp-registry-dh5.pages.dev",
|
|
25
|
+
"repository": {
|
|
26
|
+
"type": "git",
|
|
27
|
+
"url": "git+https://github.com/Incultnitollc/mcp-registry.git",
|
|
28
|
+
"directory": "packages/cli"
|
|
29
|
+
},
|
|
30
|
+
"keywords": [
|
|
31
|
+
"mcp",
|
|
32
|
+
"model-context-protocol",
|
|
33
|
+
"registry",
|
|
34
|
+
"cli",
|
|
35
|
+
"claude"
|
|
36
|
+
],
|
|
37
|
+
"license": "MIT",
|
|
38
|
+
"author": "Incultnito LLC",
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"@mcpr/types": "workspace:*",
|
|
41
|
+
"@supabase/supabase-js": "^2.58.0",
|
|
42
|
+
"commander": "^14.0.3"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@mcpr/tsconfig": "workspace:*",
|
|
46
|
+
"@types/node": "^22.19.17",
|
|
47
|
+
"typescript": "^5.7.3"
|
|
48
|
+
}
|
|
49
|
+
}
|