@whylineee/zerocode 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 +101 -0
- package/dist/agents.d.ts +25 -0
- package/dist/agents.d.ts.map +1 -0
- package/dist/agents.js +166 -0
- package/dist/agents.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +341 -0
- package/dist/index.js.map +1 -0
- package/dist/prompt.d.ts +7 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +50 -0
- package/dist/prompt.js.map +1 -0
- package/dist/registry.d.ts +21 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +565 -0
- package/dist/registry.js.map +1 -0
- package/dist/ui.d.ts +10 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +45 -0
- package/dist/ui.js.map +1 -0
- package/package.json +48 -0
package/dist/prompt.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function ask(question: string): Promise<string>;
|
|
2
|
+
export declare function choose<T extends {
|
|
3
|
+
name: string;
|
|
4
|
+
}>(label: string, items: T[]): Promise<T | undefined>;
|
|
5
|
+
export declare function confirm(question: string): Promise<boolean>;
|
|
6
|
+
export declare function askEnvVars(vars: string[]): Promise<Record<string, string>>;
|
|
7
|
+
//# sourceMappingURL=prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAKA,wBAAgB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQrD;AAED,wBAAsB,MAAM,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACrD,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,EAAE,GACT,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAgBxB;AAED,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGhE;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAejC"}
|
package/dist/prompt.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { createInterface } from "node:readline";
|
|
2
|
+
const rl = () => createInterface({ input: process.stdin, output: process.stdout });
|
|
3
|
+
export function ask(question) {
|
|
4
|
+
return new Promise((resolve) => {
|
|
5
|
+
const r = rl();
|
|
6
|
+
r.question(question, (answer) => {
|
|
7
|
+
r.close();
|
|
8
|
+
resolve(answer.trim());
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
export async function choose(label, items) {
|
|
13
|
+
if (items.length === 0)
|
|
14
|
+
return undefined;
|
|
15
|
+
if (items.length === 1)
|
|
16
|
+
return items[0];
|
|
17
|
+
console.log(`\n ${label}\n`);
|
|
18
|
+
for (let i = 0; i < items.length; i++) {
|
|
19
|
+
console.log(` ${i + 1}) ${items[i].name}`);
|
|
20
|
+
}
|
|
21
|
+
console.log();
|
|
22
|
+
const answer = await ask(" Select (number): ");
|
|
23
|
+
const idx = parseInt(answer, 10) - 1;
|
|
24
|
+
if (idx < 0 || idx >= items.length || isNaN(idx)) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
return items[idx];
|
|
28
|
+
}
|
|
29
|
+
export async function confirm(question) {
|
|
30
|
+
const answer = await ask(` ${question} (y/N): `);
|
|
31
|
+
return answer.toLowerCase() === "y" || answer.toLowerCase() === "yes";
|
|
32
|
+
}
|
|
33
|
+
export async function askEnvVars(vars) {
|
|
34
|
+
const result = {};
|
|
35
|
+
for (const v of vars) {
|
|
36
|
+
const existing = process.env[v];
|
|
37
|
+
if (existing) {
|
|
38
|
+
console.log(` Using existing env ${v}`);
|
|
39
|
+
result[v] = existing;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
const value = await ask(` Enter ${v}: `);
|
|
43
|
+
if (value) {
|
|
44
|
+
result[v] = value;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,EAAE,GAAG,GAAG,EAAE,CACd,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAEpE,MAAM,UAAU,GAAG,CAAC,QAAgB;IAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;QACf,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YAC9B,CAAC,CAAC,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,KAAa,EACb,KAAU;IAEV,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAExC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,QAAgB;IAC5C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,QAAQ,UAAU,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAc;IAEd,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;YACzC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { McpServerEntry } from "./agents.js";
|
|
2
|
+
export interface McpRegistryEntry {
|
|
3
|
+
slug: string;
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
npmPackage: string;
|
|
7
|
+
entry: McpServerEntry;
|
|
8
|
+
envVars?: string[];
|
|
9
|
+
}
|
|
10
|
+
export interface SkillRegistryEntry {
|
|
11
|
+
slug: string;
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
installCommand: string;
|
|
15
|
+
skillMd: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const mcpRegistry: McpRegistryEntry[];
|
|
18
|
+
export declare const skillRegistry: SkillRegistryEntry[];
|
|
19
|
+
export declare function findMcp(slug: string): McpRegistryEntry | undefined;
|
|
20
|
+
export declare function findSkill(slug: string): SkillRegistryEntry | undefined;
|
|
21
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,eAAO,MAAM,WAAW,EAAE,gBAAgB,EAuVzC,CAAC;AAIF,eAAO,MAAM,aAAa,EAAE,kBAAkB,EAmN7C,CAAC;AAEF,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAElE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAEtE"}
|
package/dist/registry.js
ADDED
|
@@ -0,0 +1,565 @@
|
|
|
1
|
+
// ── MCP Server Registry ──────────────────────────────────────────
|
|
2
|
+
export const mcpRegistry = [
|
|
3
|
+
{
|
|
4
|
+
slug: "filesystem-mcp",
|
|
5
|
+
name: "Filesystem",
|
|
6
|
+
description: "Read, write, and inspect project files safely.",
|
|
7
|
+
npmPackage: "@modelcontextprotocol/server-filesystem",
|
|
8
|
+
entry: {
|
|
9
|
+
command: "npx",
|
|
10
|
+
args: ["-y", "@modelcontextprotocol/server-filesystem", "{PROJECT_DIR}"],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
slug: "git-mcp",
|
|
15
|
+
name: "Git",
|
|
16
|
+
description: "Inspect history, diffs, and safe commit workflows.",
|
|
17
|
+
npmPackage: "mcp-server-git (uvx)",
|
|
18
|
+
entry: {
|
|
19
|
+
command: "uvx",
|
|
20
|
+
args: ["mcp-server-git", "--repository", "{PROJECT_DIR}"],
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
slug: "fetch-mcp",
|
|
25
|
+
name: "Fetch",
|
|
26
|
+
description: "Pull web content into cleaner text for agent use.",
|
|
27
|
+
npmPackage: "mcp-server-fetch (uvx)",
|
|
28
|
+
entry: {
|
|
29
|
+
command: "uvx",
|
|
30
|
+
args: ["mcp-server-fetch"],
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
slug: "memory-mcp",
|
|
35
|
+
name: "Memory",
|
|
36
|
+
description: "Persist useful facts across sessions.",
|
|
37
|
+
npmPackage: "@modelcontextprotocol/server-memory",
|
|
38
|
+
entry: {
|
|
39
|
+
command: "npx",
|
|
40
|
+
args: ["-y", "@modelcontextprotocol/server-memory"],
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
slug: "sequential-thinking-mcp",
|
|
45
|
+
name: "Sequential Thinking",
|
|
46
|
+
description: "Dynamic multi-step problem-solving through thought sequences.",
|
|
47
|
+
npmPackage: "@modelcontextprotocol/server-sequential-thinking",
|
|
48
|
+
entry: {
|
|
49
|
+
command: "npx",
|
|
50
|
+
args: ["-y", "@modelcontextprotocol/server-sequential-thinking"],
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
slug: "brave-search-mcp",
|
|
55
|
+
name: "Brave Search",
|
|
56
|
+
description: "Web and local search via Brave Search API.",
|
|
57
|
+
npmPackage: "@modelcontextprotocol/server-brave-search",
|
|
58
|
+
entry: {
|
|
59
|
+
command: "npx",
|
|
60
|
+
args: ["-y", "@modelcontextprotocol/server-brave-search"],
|
|
61
|
+
env: { BRAVE_API_KEY: "{BRAVE_API_KEY}" },
|
|
62
|
+
},
|
|
63
|
+
envVars: ["BRAVE_API_KEY"],
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
slug: "puppeteer-mcp",
|
|
67
|
+
name: "Puppeteer",
|
|
68
|
+
description: "Headless browser automation and screenshot capture.",
|
|
69
|
+
npmPackage: "@modelcontextprotocol/server-puppeteer",
|
|
70
|
+
entry: {
|
|
71
|
+
command: "npx",
|
|
72
|
+
args: ["-y", "@modelcontextprotocol/server-puppeteer"],
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
slug: "playwright-mcp",
|
|
77
|
+
name: "Playwright",
|
|
78
|
+
description: "Cross-browser automation with Chromium, Firefox, WebKit.",
|
|
79
|
+
npmPackage: "@playwright/mcp",
|
|
80
|
+
entry: {
|
|
81
|
+
command: "npx",
|
|
82
|
+
args: ["-y", "@playwright/mcp"],
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
slug: "github-mcp",
|
|
87
|
+
name: "GitHub",
|
|
88
|
+
description: "Manage repos, issues, PRs via GitHub API.",
|
|
89
|
+
npmPackage: "@modelcontextprotocol/server-github",
|
|
90
|
+
entry: {
|
|
91
|
+
command: "npx",
|
|
92
|
+
args: ["-y", "@modelcontextprotocol/server-github"],
|
|
93
|
+
env: { GITHUB_PERSONAL_ACCESS_TOKEN: "{GITHUB_TOKEN}" },
|
|
94
|
+
},
|
|
95
|
+
envVars: ["GITHUB_PERSONAL_ACCESS_TOKEN"],
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
slug: "postgres-mcp",
|
|
99
|
+
name: "PostgreSQL",
|
|
100
|
+
description: "Read-only querying of PostgreSQL databases.",
|
|
101
|
+
npmPackage: "@modelcontextprotocol/server-postgres",
|
|
102
|
+
entry: {
|
|
103
|
+
command: "npx",
|
|
104
|
+
args: ["-y", "@modelcontextprotocol/server-postgres", "{DATABASE_URL}"],
|
|
105
|
+
},
|
|
106
|
+
envVars: ["DATABASE_URL"],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
slug: "sqlite-mcp",
|
|
110
|
+
name: "SQLite",
|
|
111
|
+
description: "Query and analyze local SQLite databases.",
|
|
112
|
+
npmPackage: "mcp-server-sqlite (uvx)",
|
|
113
|
+
entry: {
|
|
114
|
+
command: "uvx",
|
|
115
|
+
args: ["mcp-server-sqlite", "--db-path", "{DB_PATH}"],
|
|
116
|
+
},
|
|
117
|
+
envVars: ["DB_PATH"],
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
slug: "slack-mcp",
|
|
121
|
+
name: "Slack",
|
|
122
|
+
description: "Read channels, search messages, post to Slack.",
|
|
123
|
+
npmPackage: "slack-mcp-server",
|
|
124
|
+
entry: {
|
|
125
|
+
command: "npx",
|
|
126
|
+
args: ["-y", "slack-mcp-server"],
|
|
127
|
+
env: { SLACK_BOT_TOKEN: "{SLACK_BOT_TOKEN}" },
|
|
128
|
+
},
|
|
129
|
+
envVars: ["SLACK_BOT_TOKEN"],
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
slug: "notion-mcp",
|
|
133
|
+
name: "Notion",
|
|
134
|
+
description: "Search, read, and update Notion pages and databases.",
|
|
135
|
+
npmPackage: "notion-mcp-server",
|
|
136
|
+
entry: {
|
|
137
|
+
command: "npx",
|
|
138
|
+
args: ["-y", "notion-mcp-server"],
|
|
139
|
+
env: { NOTION_API_KEY: "{NOTION_API_KEY}" },
|
|
140
|
+
},
|
|
141
|
+
envVars: ["NOTION_API_KEY"],
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
slug: "linear-mcp",
|
|
145
|
+
name: "Linear",
|
|
146
|
+
description: "Create, search, and manage Linear issues.",
|
|
147
|
+
npmPackage: "linear-mcp-server",
|
|
148
|
+
entry: {
|
|
149
|
+
command: "npx",
|
|
150
|
+
args: ["-y", "linear-mcp-server"],
|
|
151
|
+
env: { LINEAR_API_KEY: "{LINEAR_API_KEY}" },
|
|
152
|
+
},
|
|
153
|
+
envVars: ["LINEAR_API_KEY"],
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
slug: "sentry-mcp",
|
|
157
|
+
name: "Sentry",
|
|
158
|
+
description: "Query error reports and stack traces from Sentry.",
|
|
159
|
+
npmPackage: "@sentry/mcp-server",
|
|
160
|
+
entry: {
|
|
161
|
+
command: "npx",
|
|
162
|
+
args: ["-y", "@sentry/mcp-server"],
|
|
163
|
+
env: { SENTRY_AUTH_TOKEN: "{SENTRY_AUTH_TOKEN}" },
|
|
164
|
+
},
|
|
165
|
+
envVars: ["SENTRY_AUTH_TOKEN"],
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
slug: "docker-mcp",
|
|
169
|
+
name: "Docker",
|
|
170
|
+
description: "Manage containers, images, and compose stacks.",
|
|
171
|
+
npmPackage: "docker-mcp-server",
|
|
172
|
+
entry: {
|
|
173
|
+
command: "npx",
|
|
174
|
+
args: ["-y", "docker-mcp-server"],
|
|
175
|
+
},
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
slug: "stripe-mcp",
|
|
179
|
+
name: "Stripe",
|
|
180
|
+
description: "Query payments, customers, and subscriptions.",
|
|
181
|
+
npmPackage: "@stripe/agent-toolkit",
|
|
182
|
+
entry: {
|
|
183
|
+
command: "npx",
|
|
184
|
+
args: ["-y", "@stripe/agent-toolkit", "mcp"],
|
|
185
|
+
env: { STRIPE_SECRET_KEY: "{STRIPE_SECRET_KEY}" },
|
|
186
|
+
},
|
|
187
|
+
envVars: ["STRIPE_SECRET_KEY"],
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
slug: "cloudflare-mcp",
|
|
191
|
+
name: "Cloudflare",
|
|
192
|
+
description: "Manage Workers, KV, R2, and DNS.",
|
|
193
|
+
npmPackage: "@cloudflare/mcp-server-cloudflare",
|
|
194
|
+
entry: {
|
|
195
|
+
command: "npx",
|
|
196
|
+
args: ["-y", "@cloudflare/mcp-server-cloudflare"],
|
|
197
|
+
env: { CLOUDFLARE_API_TOKEN: "{CLOUDFLARE_API_TOKEN}", CLOUDFLARE_ACCOUNT_ID: "{CLOUDFLARE_ACCOUNT_ID}" },
|
|
198
|
+
},
|
|
199
|
+
envVars: ["CLOUDFLARE_API_TOKEN", "CLOUDFLARE_ACCOUNT_ID"],
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
slug: "redis-mcp",
|
|
203
|
+
name: "Redis",
|
|
204
|
+
description: "Inspect and query Redis instances.",
|
|
205
|
+
npmPackage: "redis-mcp",
|
|
206
|
+
entry: {
|
|
207
|
+
command: "npx",
|
|
208
|
+
args: ["-y", "redis-mcp"],
|
|
209
|
+
env: { REDIS_URL: "{REDIS_URL}" },
|
|
210
|
+
},
|
|
211
|
+
envVars: ["REDIS_URL"],
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
slug: "firecrawl-mcp",
|
|
215
|
+
name: "Firecrawl",
|
|
216
|
+
description: "Crawl web pages and convert to clean markdown.",
|
|
217
|
+
npmPackage: "firecrawl-mcp",
|
|
218
|
+
entry: {
|
|
219
|
+
command: "npx",
|
|
220
|
+
args: ["-y", "firecrawl-mcp"],
|
|
221
|
+
env: { FIRECRAWL_API_KEY: "{FIRECRAWL_API_KEY}" },
|
|
222
|
+
},
|
|
223
|
+
envVars: ["FIRECRAWL_API_KEY"],
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
slug: "mongodb-mcp",
|
|
227
|
+
name: "MongoDB",
|
|
228
|
+
description: "Query and inspect MongoDB collections.",
|
|
229
|
+
npmPackage: "mongodb-mcp-server",
|
|
230
|
+
entry: {
|
|
231
|
+
command: "npx",
|
|
232
|
+
args: ["-y", "mongodb-mcp-server"],
|
|
233
|
+
env: { MONGODB_URI: "{MONGODB_URI}" },
|
|
234
|
+
},
|
|
235
|
+
envVars: ["MONGODB_URI"],
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
slug: "jira-mcp",
|
|
239
|
+
name: "Jira",
|
|
240
|
+
description: "Search, create, and update Jira issues.",
|
|
241
|
+
npmPackage: "jira-mcp-server",
|
|
242
|
+
entry: {
|
|
243
|
+
command: "npx",
|
|
244
|
+
args: ["-y", "jira-mcp-server"],
|
|
245
|
+
env: { JIRA_URL: "{JIRA_URL}", JIRA_EMAIL: "{JIRA_EMAIL}", JIRA_API_TOKEN: "{JIRA_API_TOKEN}" },
|
|
246
|
+
},
|
|
247
|
+
envVars: ["JIRA_URL", "JIRA_EMAIL", "JIRA_API_TOKEN"],
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
slug: "google-drive-mcp",
|
|
251
|
+
name: "Google Drive",
|
|
252
|
+
description: "Search, read, and organize Google Drive files.",
|
|
253
|
+
npmPackage: "google-drive-mcp",
|
|
254
|
+
entry: {
|
|
255
|
+
command: "npx",
|
|
256
|
+
args: ["-y", "google-drive-mcp"],
|
|
257
|
+
env: { GOOGLE_APPLICATION_CREDENTIALS: "{CREDENTIALS_PATH}" },
|
|
258
|
+
},
|
|
259
|
+
envVars: ["GOOGLE_APPLICATION_CREDENTIALS"],
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
slug: "supabase-mcp",
|
|
263
|
+
name: "Supabase",
|
|
264
|
+
description: "Query Supabase databases, storage, and auth.",
|
|
265
|
+
npmPackage: "supabase-mcp",
|
|
266
|
+
entry: {
|
|
267
|
+
command: "npx",
|
|
268
|
+
args: ["-y", "supabase-mcp"],
|
|
269
|
+
env: { SUPABASE_URL: "{SUPABASE_URL}", SUPABASE_ANON_KEY: "{SUPABASE_ANON_KEY}" },
|
|
270
|
+
},
|
|
271
|
+
envVars: ["SUPABASE_URL", "SUPABASE_ANON_KEY"],
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
slug: "vercel-mcp",
|
|
275
|
+
name: "Vercel",
|
|
276
|
+
description: "Manage deployments and project settings.",
|
|
277
|
+
npmPackage: "vercel-mcp-server",
|
|
278
|
+
entry: {
|
|
279
|
+
command: "npx",
|
|
280
|
+
args: ["-y", "vercel-mcp-server"],
|
|
281
|
+
env: { VERCEL_TOKEN: "{VERCEL_TOKEN}" },
|
|
282
|
+
},
|
|
283
|
+
envVars: ["VERCEL_TOKEN"],
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
slug: "youtube-mcp",
|
|
287
|
+
name: "YouTube",
|
|
288
|
+
description: "Search videos and retrieve transcripts.",
|
|
289
|
+
npmPackage: "youtube-mcp-server",
|
|
290
|
+
entry: {
|
|
291
|
+
command: "npx",
|
|
292
|
+
args: ["-y", "youtube-mcp-server"],
|
|
293
|
+
env: { YOUTUBE_API_KEY: "{YOUTUBE_API_KEY}" },
|
|
294
|
+
},
|
|
295
|
+
envVars: ["YOUTUBE_API_KEY"],
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
slug: "todoist-mcp",
|
|
299
|
+
name: "Todoist",
|
|
300
|
+
description: "Create and manage tasks in Todoist.",
|
|
301
|
+
npmPackage: "todoist-mcp-server",
|
|
302
|
+
entry: {
|
|
303
|
+
command: "npx",
|
|
304
|
+
args: ["-y", "todoist-mcp-server"],
|
|
305
|
+
env: { TODOIST_API_TOKEN: "{TODOIST_API_TOKEN}" },
|
|
306
|
+
},
|
|
307
|
+
envVars: ["TODOIST_API_TOKEN"],
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
slug: "twilio-mcp",
|
|
311
|
+
name: "Twilio",
|
|
312
|
+
description: "Send SMS and manage messaging workflows.",
|
|
313
|
+
npmPackage: "twilio-mcp",
|
|
314
|
+
entry: {
|
|
315
|
+
command: "npx",
|
|
316
|
+
args: ["-y", "twilio-mcp"],
|
|
317
|
+
env: { TWILIO_ACCOUNT_SID: "{TWILIO_ACCOUNT_SID}", TWILIO_AUTH_TOKEN: "{TWILIO_AUTH_TOKEN}" },
|
|
318
|
+
},
|
|
319
|
+
envVars: ["TWILIO_ACCOUNT_SID", "TWILIO_AUTH_TOKEN"],
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
slug: "elasticsearch-mcp",
|
|
323
|
+
name: "Elasticsearch",
|
|
324
|
+
description: "Search and analyze data in Elasticsearch.",
|
|
325
|
+
npmPackage: "elasticsearch-mcp-server",
|
|
326
|
+
entry: {
|
|
327
|
+
command: "npx",
|
|
328
|
+
args: ["-y", "elasticsearch-mcp-server"],
|
|
329
|
+
env: { ELASTICSEARCH_URL: "{ELASTICSEARCH_URL}" },
|
|
330
|
+
},
|
|
331
|
+
envVars: ["ELASTICSEARCH_URL"],
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
slug: "aws-s3-mcp",
|
|
335
|
+
name: "AWS S3",
|
|
336
|
+
description: "List, read, and manage S3 bucket objects.",
|
|
337
|
+
npmPackage: "aws-s3-mcp-server",
|
|
338
|
+
entry: {
|
|
339
|
+
command: "npx",
|
|
340
|
+
args: ["-y", "aws-s3-mcp-server"],
|
|
341
|
+
env: { AWS_ACCESS_KEY_ID: "{AWS_ACCESS_KEY_ID}", AWS_SECRET_ACCESS_KEY: "{AWS_SECRET_ACCESS_KEY}", AWS_REGION: "{AWS_REGION}" },
|
|
342
|
+
},
|
|
343
|
+
envVars: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_REGION"],
|
|
344
|
+
},
|
|
345
|
+
];
|
|
346
|
+
// ── Skills Registry ──────────────────────────────────────────────
|
|
347
|
+
export const skillRegistry = [
|
|
348
|
+
{
|
|
349
|
+
slug: "pr-reviewer",
|
|
350
|
+
name: "PR Reviewer",
|
|
351
|
+
description: "Scan diffs for regressions, missing tests, and unclear logic.",
|
|
352
|
+
installCommand: "npx skills add zerocode/skills@pr-reviewer",
|
|
353
|
+
skillMd: `# Skill: PR Reviewer
|
|
354
|
+
|
|
355
|
+
## Trigger
|
|
356
|
+
Run when reviewing a pull request or code diff.
|
|
357
|
+
|
|
358
|
+
## Workflow
|
|
359
|
+
1. Read the full diff.
|
|
360
|
+
2. Identify regressions, edge cases, and missing tests.
|
|
361
|
+
3. Check for unclear logic or naming.
|
|
362
|
+
4. Produce findings ordered by severity.
|
|
363
|
+
|
|
364
|
+
## Output
|
|
365
|
+
- Findings ordered by severity
|
|
366
|
+
- Open questions
|
|
367
|
+
- Residual risk assessment`,
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
slug: "research-condenser",
|
|
371
|
+
name: "Research Condenser",
|
|
372
|
+
description: "Turn multi-source research into structured comparisons.",
|
|
373
|
+
installCommand: "npx skills add zerocode/skills@research-condenser",
|
|
374
|
+
skillMd: `# Skill: Research Condenser
|
|
375
|
+
|
|
376
|
+
## Trigger
|
|
377
|
+
Run when synthesizing research from multiple sources.
|
|
378
|
+
|
|
379
|
+
## Workflow
|
|
380
|
+
1. Gather all source materials.
|
|
381
|
+
2. Extract key claims and evidence.
|
|
382
|
+
3. Identify consensus, disagreement, and gaps.
|
|
383
|
+
4. Produce a structured comparison.
|
|
384
|
+
|
|
385
|
+
## Output
|
|
386
|
+
- Key findings with source attribution
|
|
387
|
+
- Areas of consensus and disagreement
|
|
388
|
+
- Open questions and research gaps`,
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
slug: "docker-best-practices",
|
|
392
|
+
name: "Docker Best Practices",
|
|
393
|
+
description: "Efficient Dockerfiles, multi-stage builds, and security.",
|
|
394
|
+
installCommand: "npx skills add docker/labs@docker-best-practices",
|
|
395
|
+
skillMd: `# Skill: Docker Best Practices
|
|
396
|
+
|
|
397
|
+
## Trigger
|
|
398
|
+
Run when writing or reviewing Dockerfiles and container configs.
|
|
399
|
+
|
|
400
|
+
## Workflow
|
|
401
|
+
1. Check for multi-stage build patterns.
|
|
402
|
+
2. Verify layer caching optimization.
|
|
403
|
+
3. Enforce non-root user and minimal base image.
|
|
404
|
+
4. Review .dockerignore completeness.
|
|
405
|
+
|
|
406
|
+
## Output
|
|
407
|
+
- Optimized Dockerfile
|
|
408
|
+
- Security findings
|
|
409
|
+
- Image size reduction suggestions`,
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
slug: "api-design-guidelines",
|
|
413
|
+
name: "API Design Guidelines",
|
|
414
|
+
description: "RESTful conventions, versioning, and error handling.",
|
|
415
|
+
installCommand: "npx skills add zerocode/skills@api-design-guidelines",
|
|
416
|
+
skillMd: `# Skill: API Design Guidelines
|
|
417
|
+
|
|
418
|
+
## Trigger
|
|
419
|
+
Run when designing or reviewing REST API endpoints.
|
|
420
|
+
|
|
421
|
+
## Workflow
|
|
422
|
+
1. Review endpoint naming and HTTP method usage.
|
|
423
|
+
2. Check error response format consistency.
|
|
424
|
+
3. Verify versioning strategy.
|
|
425
|
+
4. Validate request/response schemas.
|
|
426
|
+
|
|
427
|
+
## Output
|
|
428
|
+
- API design review
|
|
429
|
+
- Suggested improvements
|
|
430
|
+
- Schema validation results`,
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
slug: "typescript-best-practices",
|
|
434
|
+
name: "TypeScript Best Practices",
|
|
435
|
+
description: "Strict types, utility types, and common patterns.",
|
|
436
|
+
installCommand: "npx skills add zerocode/skills@typescript-best-practices",
|
|
437
|
+
skillMd: `# Skill: TypeScript Best Practices
|
|
438
|
+
|
|
439
|
+
## Trigger
|
|
440
|
+
Run when writing or reviewing TypeScript code.
|
|
441
|
+
|
|
442
|
+
## Workflow
|
|
443
|
+
1. Check for proper use of strict mode features.
|
|
444
|
+
2. Review type definitions for completeness.
|
|
445
|
+
3. Identify any usage patterns.
|
|
446
|
+
4. Suggest utility types where appropriate.
|
|
447
|
+
|
|
448
|
+
## Output
|
|
449
|
+
- Type safety assessment
|
|
450
|
+
- Improvement suggestions
|
|
451
|
+
- Pattern recommendations`,
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
slug: "prompt-engineering",
|
|
455
|
+
name: "Prompt Engineering",
|
|
456
|
+
description: "Write clear, structured prompts with constraints and examples.",
|
|
457
|
+
installCommand: "npx skills add zerocode/skills@prompt-engineering",
|
|
458
|
+
skillMd: `# Skill: Prompt Engineering
|
|
459
|
+
|
|
460
|
+
## Trigger
|
|
461
|
+
Run when creating or improving prompts for AI agents.
|
|
462
|
+
|
|
463
|
+
## Workflow
|
|
464
|
+
1. Define the task clearly with constraints.
|
|
465
|
+
2. Add positive and negative examples.
|
|
466
|
+
3. Specify output format and evaluation criteria.
|
|
467
|
+
4. Test with edge cases.
|
|
468
|
+
|
|
469
|
+
## Output
|
|
470
|
+
- Refined prompt with clear structure
|
|
471
|
+
- Example inputs and expected outputs
|
|
472
|
+
- Evaluation criteria`,
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
slug: "git-workflow",
|
|
476
|
+
name: "Git Workflow",
|
|
477
|
+
description: "Branch strategy, commit messages, and merge hygiene.",
|
|
478
|
+
installCommand: "npx skills add zerocode/skills@git-workflow",
|
|
479
|
+
skillMd: `# Skill: Git Workflow
|
|
480
|
+
|
|
481
|
+
## Trigger
|
|
482
|
+
Run when setting up or reviewing git workflows.
|
|
483
|
+
|
|
484
|
+
## Workflow
|
|
485
|
+
1. Define branch naming convention.
|
|
486
|
+
2. Set commit message format.
|
|
487
|
+
3. Establish merge/rebase strategy.
|
|
488
|
+
4. Configure branch protection rules.
|
|
489
|
+
|
|
490
|
+
## Output
|
|
491
|
+
- Branch strategy document
|
|
492
|
+
- Commit convention guide
|
|
493
|
+
- PR template`,
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
slug: "ci-cd-pipeline",
|
|
497
|
+
name: "CI/CD Pipeline",
|
|
498
|
+
description: "Build, test, and deploy automation patterns.",
|
|
499
|
+
installCommand: "npx skills add zerocode/skills@ci-cd-pipeline",
|
|
500
|
+
skillMd: `# Skill: CI/CD Pipeline
|
|
501
|
+
|
|
502
|
+
## Trigger
|
|
503
|
+
Run when setting up or reviewing CI/CD pipelines.
|
|
504
|
+
|
|
505
|
+
## Workflow
|
|
506
|
+
1. Define build stages and dependencies.
|
|
507
|
+
2. Configure test automation.
|
|
508
|
+
3. Set up deployment stages with approvals.
|
|
509
|
+
4. Add monitoring and rollback steps.
|
|
510
|
+
|
|
511
|
+
## Output
|
|
512
|
+
- Pipeline configuration file
|
|
513
|
+
- Stage definitions
|
|
514
|
+
- Deployment checklist`,
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
slug: "database-migration",
|
|
518
|
+
name: "Database Migration",
|
|
519
|
+
description: "Safe schema changes, rollback plans, and data migration.",
|
|
520
|
+
installCommand: "npx skills add zerocode/skills@database-migration",
|
|
521
|
+
skillMd: `# Skill: Database Migration
|
|
522
|
+
|
|
523
|
+
## Trigger
|
|
524
|
+
Run when planning or reviewing database schema changes.
|
|
525
|
+
|
|
526
|
+
## Workflow
|
|
527
|
+
1. Review the migration for data safety.
|
|
528
|
+
2. Check for rollback capability.
|
|
529
|
+
3. Verify index and constraint changes.
|
|
530
|
+
4. Test on a copy before production.
|
|
531
|
+
|
|
532
|
+
## Output
|
|
533
|
+
- Migration review
|
|
534
|
+
- Rollback plan
|
|
535
|
+
- Performance impact assessment`,
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
slug: "tailwind-css",
|
|
539
|
+
name: "Tailwind CSS",
|
|
540
|
+
description: "Utility-first patterns, responsive design, and custom themes.",
|
|
541
|
+
installCommand: "npx skills add zerocode/skills@tailwind-css",
|
|
542
|
+
skillMd: `# Skill: Tailwind CSS
|
|
543
|
+
|
|
544
|
+
## Trigger
|
|
545
|
+
Run when writing or reviewing Tailwind CSS code.
|
|
546
|
+
|
|
547
|
+
## Workflow
|
|
548
|
+
1. Check for proper utility class usage.
|
|
549
|
+
2. Review responsive breakpoint patterns.
|
|
550
|
+
3. Verify custom theme token consistency.
|
|
551
|
+
4. Identify redundant or conflicting classes.
|
|
552
|
+
|
|
553
|
+
## Output
|
|
554
|
+
- Style review
|
|
555
|
+
- Responsive design assessment
|
|
556
|
+
- Theme consistency check`,
|
|
557
|
+
},
|
|
558
|
+
];
|
|
559
|
+
export function findMcp(slug) {
|
|
560
|
+
return mcpRegistry.find((m) => m.slug === slug || m.name.toLowerCase() === slug.toLowerCase());
|
|
561
|
+
}
|
|
562
|
+
export function findSkill(slug) {
|
|
563
|
+
return skillRegistry.find((s) => s.slug === slug || s.name.toLowerCase() === slug.toLowerCase());
|
|
564
|
+
}
|
|
565
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|