mcp-stripe-projects 1.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 ADDED
@@ -0,0 +1,81 @@
1
+ # mcp-stripe-projects
2
+
3
+ An MCP (Model Context Protocol) server that wraps the [Stripe Projects CLI](https://projects.dev), enabling AI agents like Claude Code and cc-agent to provision infrastructure services — Vercel, Railway, Supabase, Neon, PlanetScale, Turso, Chroma, Clerk, PostHog, and Runloop — via structured tool calls instead of manual shell commands. All provisioning, env sync, and status checks happen through unified Stripe billing.
4
+
5
+ ## Prerequisites
6
+
7
+ 1. **Stripe CLI** installed and authenticated:
8
+ ```bash
9
+ # macOS
10
+ brew install stripe/stripe-cli/stripe
11
+
12
+ # npm (global)
13
+ npm install -g stripe
14
+
15
+ # Authenticate
16
+ stripe login
17
+ ```
18
+
19
+ 2. Node.js 18 or higher.
20
+
21
+ ## Installation
22
+
23
+ ```bash
24
+ npm install -g mcp-stripe-projects
25
+ ```
26
+
27
+ ## MCP Configuration
28
+
29
+ Add to your Claude Desktop `claude_desktop_config.json` (or any MCP-compatible client config):
30
+
31
+ ```json
32
+ {
33
+ "mcpServers": {
34
+ "stripe-projects": {
35
+ "command": "npx",
36
+ "args": ["-y", "mcp-stripe-projects"]
37
+ }
38
+ }
39
+ }
40
+ ```
41
+
42
+ ## Available Tools
43
+
44
+ | Tool | Description |
45
+ |------|-------------|
46
+ | `init_project` | Initialize Stripe Projects in the current directory, writing agent skills files |
47
+ | `get_context` | Get full infrastructure context (provider states, env vars, config) as a single blob for seeding agents |
48
+ | `list_providers` | List all available providers and their status |
49
+ | `provision_service` | Provision a new service (e.g. `vercel`, `railway`, `supabase`, `clerk`). Supports optional `tier` |
50
+ | `remove_service` | Remove a provisioned service |
51
+ | `sync_env` | Sync all provider credentials into local `.env` file via the Stripe credential vault |
52
+ | `get_status` | Get current project status — provisioned providers, billing status, env sync state |
53
+ | `upgrade_service` | Upgrade a service to a higher tier |
54
+
55
+ All tools accept an optional `path` parameter pointing to the project directory (defaults to cwd).
56
+
57
+ ## Example Agent Workflow
58
+
59
+ ```
60
+ 1. init_project({ path: "/my/app" })
61
+ → Initializes Stripe Projects, writes .stripe/projects.json
62
+
63
+ 2. get_context({ path: "/my/app" })
64
+ → Returns full infrastructure context to seed the agent's understanding
65
+
66
+ 3. provision_service({ provider: "supabase", tier: "pro", path: "/my/app" })
67
+ → Provisions a Supabase Pro instance, stores credentials in Stripe vault
68
+
69
+ 4. provision_service({ provider: "vercel", path: "/my/app" })
70
+ → Provisions a Vercel project, links it
71
+
72
+ 5. sync_env({ path: "/my/app" })
73
+ → Writes all provider credentials to .env
74
+
75
+ 6. get_status({ path: "/my/app" })
76
+ → Returns which providers are active, billing summary, last env sync
77
+ ```
78
+
79
+ ## License
80
+
81
+ MIT
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,286 @@
1
+ #!/usr/bin/env node
2
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
5
+ import { execa } from "execa";
6
+ const STRIPE_NOT_INSTALLED_MSG = "Stripe CLI is not installed. Install it with: npm install -g stripe OR brew install stripe/stripe-cli/stripe";
7
+ async function runStripe(args, cwd) {
8
+ try {
9
+ const result = await execa("stripe", args, {
10
+ cwd: cwd ?? process.cwd(),
11
+ reject: false,
12
+ });
13
+ return { stdout: result.stdout, stderr: result.stderr };
14
+ }
15
+ catch (err) {
16
+ const execaErr = err;
17
+ if (execaErr.code === "ENOENT" ||
18
+ String(execaErr.message).includes("command not found")) {
19
+ throw new Error(STRIPE_NOT_INSTALLED_MSG);
20
+ }
21
+ throw err;
22
+ }
23
+ }
24
+ function tryParseJSON(text) {
25
+ try {
26
+ return JSON.parse(text);
27
+ }
28
+ catch {
29
+ return text;
30
+ }
31
+ }
32
+ function textContent(data) {
33
+ if (typeof data === "string") {
34
+ return { type: "text", text: data };
35
+ }
36
+ return { type: "text", text: JSON.stringify(data, null, 2) };
37
+ }
38
+ const server = new Server({ name: "mcp-stripe-projects", version: "1.0.0" }, { capabilities: { tools: {} } });
39
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({
40
+ tools: [
41
+ {
42
+ name: "init_project",
43
+ description: "Initialize Stripe Projects in the current directory, writing agent skills files.",
44
+ inputSchema: {
45
+ type: "object",
46
+ properties: {
47
+ path: {
48
+ type: "string",
49
+ description: "Optional path to the project directory (defaults to cwd)",
50
+ },
51
+ },
52
+ },
53
+ },
54
+ {
55
+ name: "get_context",
56
+ description: "Get full infrastructure context (all provider states, env vars, project config) as a single blob for seeding agents.",
57
+ inputSchema: {
58
+ type: "object",
59
+ properties: {
60
+ path: {
61
+ type: "string",
62
+ description: "Optional path to the project directory (defaults to cwd)",
63
+ },
64
+ },
65
+ },
66
+ },
67
+ {
68
+ name: "list_providers",
69
+ description: "List all available providers (Vercel, Railway, Supabase, Neon, etc.) and their status.",
70
+ inputSchema: {
71
+ type: "object",
72
+ properties: {
73
+ path: {
74
+ type: "string",
75
+ description: "Optional path to the project directory (defaults to cwd)",
76
+ },
77
+ },
78
+ },
79
+ },
80
+ {
81
+ name: "provision_service",
82
+ description: 'Provision a new service (e.g. "vercel", "railway", "supabase", "clerk"). tier is optional (e.g. "hobby", "pro").',
83
+ inputSchema: {
84
+ type: "object",
85
+ required: ["provider"],
86
+ properties: {
87
+ provider: {
88
+ type: "string",
89
+ description: "Provider name (e.g. vercel, railway, supabase, neon, planetscale, turso, chroma, clerk, posthog, runloop)",
90
+ },
91
+ tier: {
92
+ type: "string",
93
+ description: "Optional tier (e.g. hobby, pro)",
94
+ },
95
+ path: {
96
+ type: "string",
97
+ description: "Optional path to the project directory (defaults to cwd)",
98
+ },
99
+ },
100
+ },
101
+ },
102
+ {
103
+ name: "remove_service",
104
+ description: "Remove a provisioned service.",
105
+ inputSchema: {
106
+ type: "object",
107
+ required: ["provider"],
108
+ properties: {
109
+ provider: {
110
+ type: "string",
111
+ description: "Provider name to remove",
112
+ },
113
+ path: {
114
+ type: "string",
115
+ description: "Optional path to the project directory (defaults to cwd)",
116
+ },
117
+ },
118
+ },
119
+ },
120
+ {
121
+ name: "sync_env",
122
+ description: "Sync all provider credentials into local .env file via the Stripe credential vault.",
123
+ inputSchema: {
124
+ type: "object",
125
+ properties: {
126
+ path: {
127
+ type: "string",
128
+ description: "Optional path to the project directory (defaults to cwd)",
129
+ },
130
+ },
131
+ },
132
+ },
133
+ {
134
+ name: "get_status",
135
+ description: "Get current project status — which providers are provisioned, billing status, env sync state.",
136
+ inputSchema: {
137
+ type: "object",
138
+ properties: {
139
+ path: {
140
+ type: "string",
141
+ description: "Optional path to the project directory (defaults to cwd)",
142
+ },
143
+ },
144
+ },
145
+ },
146
+ {
147
+ name: "upgrade_service",
148
+ description: "Upgrade a service to a higher tier.",
149
+ inputSchema: {
150
+ type: "object",
151
+ required: ["provider", "tier"],
152
+ properties: {
153
+ provider: {
154
+ type: "string",
155
+ description: "Provider name to upgrade",
156
+ },
157
+ tier: {
158
+ type: "string",
159
+ description: "Target tier (e.g. pro, enterprise)",
160
+ },
161
+ path: {
162
+ type: "string",
163
+ description: "Optional path to the project directory (defaults to cwd)",
164
+ },
165
+ },
166
+ },
167
+ },
168
+ ],
169
+ }));
170
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
171
+ const { name, arguments: args } = request.params;
172
+ const params = (args ?? {});
173
+ const cwd = params.path ?? undefined;
174
+ try {
175
+ switch (name) {
176
+ case "init_project": {
177
+ const cmdArgs = ["projects", "init"];
178
+ if (cwd)
179
+ cmdArgs.push("--path", cwd);
180
+ const { stdout, stderr } = await runStripe(cmdArgs, cwd);
181
+ return { content: [textContent(stdout || stderr)] };
182
+ }
183
+ case "get_context": {
184
+ const cmdArgs = ["projects", "llm-context"];
185
+ if (cwd)
186
+ cmdArgs.push("--path", cwd);
187
+ const { stdout, stderr } = await runStripe(cmdArgs, cwd);
188
+ return { content: [textContent(stdout || stderr)] };
189
+ }
190
+ case "list_providers": {
191
+ const cmdArgs = ["projects", "providers", "list", "--json"];
192
+ if (cwd)
193
+ cmdArgs.push("--path", cwd);
194
+ const { stdout, stderr } = await runStripe(cmdArgs, cwd);
195
+ return { content: [textContent(tryParseJSON(stdout || stderr))] };
196
+ }
197
+ case "provision_service": {
198
+ if (!params.provider) {
199
+ throw new Error("provider is required");
200
+ }
201
+ const cmdArgs = [
202
+ "projects",
203
+ "add",
204
+ params.provider,
205
+ "--no-interactive",
206
+ "--auto-confirm",
207
+ "--json",
208
+ ];
209
+ if (params.tier)
210
+ cmdArgs.push("--tier", params.tier);
211
+ if (cwd)
212
+ cmdArgs.push("--path", cwd);
213
+ const { stdout, stderr } = await runStripe(cmdArgs, cwd);
214
+ return { content: [textContent(tryParseJSON(stdout || stderr))] };
215
+ }
216
+ case "remove_service": {
217
+ if (!params.provider) {
218
+ throw new Error("provider is required");
219
+ }
220
+ const cmdArgs = [
221
+ "projects",
222
+ "remove",
223
+ params.provider,
224
+ "--no-interactive",
225
+ "--auto-confirm",
226
+ ];
227
+ if (cwd)
228
+ cmdArgs.push("--path", cwd);
229
+ const { stdout, stderr } = await runStripe(cmdArgs, cwd);
230
+ return { content: [textContent(stdout || stderr)] };
231
+ }
232
+ case "sync_env": {
233
+ const cmdArgs = ["projects", "env", "sync"];
234
+ if (cwd)
235
+ cmdArgs.push("--path", cwd);
236
+ const { stdout, stderr } = await runStripe(cmdArgs, cwd);
237
+ return { content: [textContent(stdout || stderr)] };
238
+ }
239
+ case "get_status": {
240
+ const cmdArgs = ["projects", "status", "--json"];
241
+ if (cwd)
242
+ cmdArgs.push("--path", cwd);
243
+ const { stdout, stderr } = await runStripe(cmdArgs, cwd);
244
+ return { content: [textContent(tryParseJSON(stdout || stderr))] };
245
+ }
246
+ case "upgrade_service": {
247
+ if (!params.provider)
248
+ throw new Error("provider is required");
249
+ if (!params.tier)
250
+ throw new Error("tier is required");
251
+ const cmdArgs = [
252
+ "projects",
253
+ "upgrade",
254
+ params.provider,
255
+ "--tier",
256
+ params.tier,
257
+ "--no-interactive",
258
+ "--auto-confirm",
259
+ "--json",
260
+ ];
261
+ if (cwd)
262
+ cmdArgs.push("--path", cwd);
263
+ const { stdout, stderr } = await runStripe(cmdArgs, cwd);
264
+ return { content: [textContent(tryParseJSON(stdout || stderr))] };
265
+ }
266
+ default:
267
+ throw new Error(`Unknown tool: ${name}`);
268
+ }
269
+ }
270
+ catch (err) {
271
+ const message = err instanceof Error ? err.message : String(err);
272
+ return {
273
+ content: [{ type: "text", text: `Error: ${message}` }],
274
+ isError: true,
275
+ };
276
+ }
277
+ });
278
+ async function main() {
279
+ const transport = new StdioServerTransport();
280
+ await server.connect(transport);
281
+ }
282
+ main().catch((err) => {
283
+ console.error(err);
284
+ process.exit(1);
285
+ });
286
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "mcp-stripe-projects",
3
+ "version": "1.0.0",
4
+ "description": "MCP server that wraps the Stripe Projects CLI, enabling AI agents to provision infrastructure via tool calls",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "mcp-stripe-projects": "./dist/index.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "dev": "ts-node src/index.ts",
13
+ "start": "node dist/index.js",
14
+ "test": "node dist/index.js --help 2>&1 || true"
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "keywords": [
20
+ "mcp",
21
+ "stripe",
22
+ "stripe-projects",
23
+ "infrastructure",
24
+ "provisioning",
25
+ "model-context-protocol"
26
+ ],
27
+ "author": "",
28
+ "license": "MIT",
29
+ "dependencies": {
30
+ "@modelcontextprotocol/sdk": "1.28.0",
31
+ "execa": "9.5.2"
32
+ },
33
+ "devDependencies": {
34
+ "@types/node": "22.13.14",
35
+ "typescript": "5.8.2"
36
+ },
37
+ "engines": {
38
+ "node": ">=18"
39
+ }
40
+ }