@passwd/passwd-mcp 1.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.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/index.js ADDED
@@ -0,0 +1,364 @@
1
+ #!/usr/bin/env node
2
+ import { execFile, exec } from "node:child_process";
3
+ import { platform } from "node:os";
4
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
5
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
6
+ import { z } from "zod";
7
+ function openBrowser(url) {
8
+ if (platform() === "win32") {
9
+ exec(`start "" ${JSON.stringify(url)}`, () => { });
10
+ }
11
+ else {
12
+ const cmd = platform() === "darwin" ? "open" : "xdg-open";
13
+ execFile(cmd, [url], () => { });
14
+ }
15
+ }
16
+ import { buildOAuthUrl, extractCodeFromRedirectUrl, exchangeCode, listSecrets, getSecret, createSecret, updateSecret, deleteSecret, getTotpCode, enableSharing, revokeSharing, listGroups, listContacts, getCurrentUser, } from "@passwd/passwd-lib";
17
+ const server = new McpServer({
18
+ name: "passwd-mcp",
19
+ version: "1.1.0",
20
+ });
21
+ // --- Tool 1: passwd_login ---
22
+ server.tool("passwd_login", "Authenticate with passwd.team using Google OAuth. Call without redirectUrl to get the login URL, then call again with the redirect URL containing the auth code.", {
23
+ redirectUrl: z
24
+ .string()
25
+ .optional()
26
+ .describe("The full redirect URL from Google OAuth (containing the code parameter). Omit to get the OAuth login URL."),
27
+ }, async ({ redirectUrl }) => {
28
+ if (!redirectUrl) {
29
+ const oauthUrl = await buildOAuthUrl();
30
+ openBrowser(oauthUrl);
31
+ return {
32
+ content: [
33
+ {
34
+ type: "text",
35
+ text: `A browser window has been opened for Google login.\n\nIf the browser did not open, copy this URL manually:\n${oauthUrl}\n\nAfter authenticating, you will be redirected. Copy the full redirect URL from your browser's address bar and call this tool again with it as the redirectUrl parameter.`,
36
+ },
37
+ ],
38
+ };
39
+ }
40
+ try {
41
+ const code = extractCodeFromRedirectUrl(redirectUrl);
42
+ const tokens = await exchangeCode(code);
43
+ return {
44
+ content: [
45
+ {
46
+ type: "text",
47
+ text: `Successfully authenticated! Access token saved. You can now use other passwd tools.`,
48
+ },
49
+ ],
50
+ };
51
+ }
52
+ catch (error) {
53
+ const msg = error instanceof Error ? error.message : String(error);
54
+ return {
55
+ content: [{ type: "text", text: `Login failed: ${msg}` }],
56
+ isError: true,
57
+ };
58
+ }
59
+ });
60
+ // --- Tool 2: list_secrets ---
61
+ server.tool("list_secrets", "List password records from passwd.team. Supports filtering by query text and secret type.", {
62
+ query: z.string().optional().describe("Search query to filter secrets by name"),
63
+ secretType: z
64
+ .enum(["password", "paymentCard", "apiCredentials", "databaseCredentials", "sshKey", "secureNote"])
65
+ .optional()
66
+ .describe("Filter by secret type"),
67
+ offset: z.number().optional().describe("Pagination offset (default: 0)"),
68
+ limit: z.number().optional().describe("Maximum number of results to return (default: 50)"),
69
+ }, async (params) => {
70
+ try {
71
+ const result = await listSecrets({ ...params, limit: params.limit ?? 50 });
72
+ // Strip favicon from list results to save tokens
73
+ const secrets = result.secrets.map(({ favicon, ...rest }) => rest);
74
+ return {
75
+ content: [
76
+ {
77
+ type: "text",
78
+ text: JSON.stringify({ totalCount: result.totalCount, secrets }, null, 2),
79
+ },
80
+ ],
81
+ };
82
+ }
83
+ catch (error) {
84
+ const msg = error instanceof Error ? error.message : String(error);
85
+ return {
86
+ content: [{ type: "text", text: `Failed to list secrets: ${msg}` }],
87
+ isError: true,
88
+ };
89
+ }
90
+ });
91
+ // --- Tool 3: get_secret ---
92
+ server.tool("get_secret", "Get full details of a specific secret including password, notes, and TOTP status.", {
93
+ id: z.string().describe("The secret ID"),
94
+ }, async ({ id }) => {
95
+ try {
96
+ const secret = await getSecret(id);
97
+ // Strip favicon (large base64 image) to save tokens
98
+ const { favicon, ...rest } = secret;
99
+ return {
100
+ content: [
101
+ {
102
+ type: "text",
103
+ text: JSON.stringify(rest, null, 2),
104
+ },
105
+ ],
106
+ };
107
+ }
108
+ catch (error) {
109
+ const msg = error instanceof Error ? error.message : String(error);
110
+ return {
111
+ content: [{ type: "text", text: `Failed to get secret: ${msg}` }],
112
+ isError: true,
113
+ };
114
+ }
115
+ });
116
+ // --- Tool 4: create_secret ---
117
+ const groupRefSchema = z.object({
118
+ id: z.string(),
119
+ accessPermissions: z.array(z.enum(["read", "write", "autofillOnly", "passkeyOnly"])),
120
+ }).describe("Group reference with access permissions");
121
+ const userRefSchema = z.object({
122
+ id: z.string(),
123
+ accessPermissions: z.array(z.enum(["read", "write", "autofillOnly", "passkeyOnly"])),
124
+ }).describe("User reference with access permissions");
125
+ const fileSchema = z.object({
126
+ name: z.string(),
127
+ data: z.string().describe("Data URI, e.g. data:text/plain;base64,SGVsbG8="),
128
+ }).nullable().describe("File attachment (null to remove)");
129
+ server.tool("create_secret", "Create a new secret in passwd.team. Supports types: password, paymentCard, apiCredentials, databaseCredentials, sshKey, secureNote.", {
130
+ type: z
131
+ .enum(["password", "paymentCard", "apiCredentials", "databaseCredentials", "sshKey", "secureNote"])
132
+ .describe("The type of secret to create"),
133
+ name: z.string().describe("Name/title of the secret"),
134
+ username: z.string().optional().describe("Username or email"),
135
+ password: z.string().optional().describe("Password (for password/apiCredentials types)"),
136
+ web: z.string().optional().describe("Website URL"),
137
+ note: z.string().optional().describe("Notes"),
138
+ tags: z.array(z.string()).optional().describe("Tags to categorize the secret"),
139
+ groups: z.array(groupRefSchema).optional().describe("Groups to share with (use list_groups to find IDs)"),
140
+ whitelistUsers: z.array(userRefSchema).optional().describe("Users to share with (use list_contacts to find IDs)"),
141
+ file: fileSchema.optional().describe("File attachment as data URI"),
142
+ visibleToAll: z.boolean().optional().describe("Make visible to all workspace users"),
143
+ TOTP: z.string().optional().describe("TOTP secret key for generating one-time codes"),
144
+ cardNumber: z.string().optional().describe("Card number (for paymentCard type)"),
145
+ cvvCode: z.string().optional().describe("CVV code (for paymentCard type)"),
146
+ credentials: z.string().optional().describe("Credentials string (for databaseCredentials type)"),
147
+ privateKey: z.string().optional().describe("Private key content (for sshKey type)"),
148
+ secureNote: z.string().optional().describe("Secure note content (for secureNote type)"),
149
+ }, async (params) => {
150
+ try {
151
+ const secret = await createSecret(params);
152
+ return {
153
+ content: [
154
+ {
155
+ type: "text",
156
+ text: JSON.stringify(secret, null, 2),
157
+ },
158
+ ],
159
+ };
160
+ }
161
+ catch (error) {
162
+ const msg = error instanceof Error ? error.message : String(error);
163
+ return {
164
+ content: [{ type: "text", text: `Failed to create secret: ${msg}` }],
165
+ isError: true,
166
+ };
167
+ }
168
+ });
169
+ // --- Tool 5: update_secret ---
170
+ server.tool("update_secret", "Update an existing secret in passwd.team.", {
171
+ id: z.string().describe("The secret ID to update"),
172
+ name: z.string().optional().describe("Updated name"),
173
+ username: z.string().optional().describe("Updated username"),
174
+ password: z.string().optional().describe("Updated password"),
175
+ web: z.string().optional().describe("Updated website URL"),
176
+ note: z.string().optional().describe("Updated notes"),
177
+ tags: z.array(z.string()).optional().describe("Updated tags"),
178
+ groups: z.array(groupRefSchema).optional().describe("Groups to share with (use list_groups to find IDs)"),
179
+ whitelistUsers: z.array(userRefSchema).optional().describe("Users to share with (use list_contacts to find IDs)"),
180
+ file: fileSchema.optional().describe("File attachment as data URI (null to remove)"),
181
+ visibleToAll: z.boolean().optional().describe("Make visible to all workspace users"),
182
+ TOTP: z.string().optional().describe("Updated TOTP secret key"),
183
+ cardNumber: z.string().optional().describe("Updated card number"),
184
+ cvvCode: z.string().optional().describe("Updated CVV code"),
185
+ credentials: z.string().optional().describe("Updated credentials"),
186
+ privateKey: z.string().optional().describe("Updated private key"),
187
+ secureNote: z.string().optional().describe("Updated secure note"),
188
+ }, async ({ id, ...updates }) => {
189
+ try {
190
+ const secret = await updateSecret(id, updates);
191
+ return {
192
+ content: [
193
+ {
194
+ type: "text",
195
+ text: JSON.stringify(secret, null, 2),
196
+ },
197
+ ],
198
+ };
199
+ }
200
+ catch (error) {
201
+ const msg = error instanceof Error ? error.message : String(error);
202
+ return {
203
+ content: [{ type: "text", text: `Failed to update secret: ${msg}` }],
204
+ isError: true,
205
+ };
206
+ }
207
+ });
208
+ // --- Tool 6: delete_secret ---
209
+ server.tool("delete_secret", "Delete a secret from passwd.team. This action is irreversible.", {
210
+ id: z.string().describe("The secret ID to delete"),
211
+ }, async ({ id }) => {
212
+ try {
213
+ await deleteSecret(id);
214
+ return {
215
+ content: [
216
+ {
217
+ type: "text",
218
+ text: `Secret ${id} has been deleted successfully.`,
219
+ },
220
+ ],
221
+ };
222
+ }
223
+ catch (error) {
224
+ const msg = error instanceof Error ? error.message : String(error);
225
+ return {
226
+ content: [{ type: "text", text: `Failed to delete secret: ${msg}` }],
227
+ isError: true,
228
+ };
229
+ }
230
+ });
231
+ // --- Tool 7: get_totp_code ---
232
+ server.tool("get_totp_code", "Get the current TOTP (Time-based One-Time Password) code for a secret that has TOTP configured.", {
233
+ id: z.string().describe("The secret ID that has TOTP configured"),
234
+ }, async ({ id }) => {
235
+ try {
236
+ const totp = await getTotpCode(id);
237
+ return {
238
+ content: [
239
+ {
240
+ type: "text",
241
+ text: JSON.stringify(totp, null, 2),
242
+ },
243
+ ],
244
+ };
245
+ }
246
+ catch (error) {
247
+ const msg = error instanceof Error ? error.message : String(error);
248
+ return {
249
+ content: [{ type: "text", text: `Failed to get TOTP code: ${msg}` }],
250
+ isError: true,
251
+ };
252
+ }
253
+ });
254
+ // --- Tool 8: share_secret ---
255
+ server.tool("share_secret", "Enable or revoke sharing for a secret. When enabled, generates a share link. When revoked, disables the share link.", {
256
+ id: z.string().describe("The secret ID to share or unshare"),
257
+ activate: z.boolean().describe("true to enable sharing, false to revoke sharing"),
258
+ }, async ({ id, activate }) => {
259
+ try {
260
+ if (activate) {
261
+ const result = await enableSharing(id);
262
+ return {
263
+ content: [
264
+ {
265
+ type: "text",
266
+ text: `Sharing enabled for secret ${id}.\n${JSON.stringify(result, null, 2)}`,
267
+ },
268
+ ],
269
+ };
270
+ }
271
+ else {
272
+ await revokeSharing(id);
273
+ return {
274
+ content: [
275
+ {
276
+ type: "text",
277
+ text: `Sharing revoked for secret ${id}.`,
278
+ },
279
+ ],
280
+ };
281
+ }
282
+ }
283
+ catch (error) {
284
+ const msg = error instanceof Error ? error.message : String(error);
285
+ return {
286
+ content: [{ type: "text", text: `Failed to ${activate ? "enable" : "revoke"} sharing: ${msg}` }],
287
+ isError: true,
288
+ };
289
+ }
290
+ });
291
+ // --- Tool 9: get_current_user ---
292
+ server.tool("get_current_user", "Get the currently authenticated user's profile information.", {}, async () => {
293
+ try {
294
+ const user = await getCurrentUser();
295
+ return {
296
+ content: [
297
+ {
298
+ type: "text",
299
+ text: JSON.stringify(user, null, 2),
300
+ },
301
+ ],
302
+ };
303
+ }
304
+ catch (error) {
305
+ const msg = error instanceof Error ? error.message : String(error);
306
+ return {
307
+ content: [{ type: "text", text: `Failed to get user profile: ${msg}` }],
308
+ isError: true,
309
+ };
310
+ }
311
+ });
312
+ // --- Tool 10: list_groups ---
313
+ server.tool("list_groups", "List available groups in the workspace. Use group IDs when sharing secrets via create_secret or update_secret.", {}, async () => {
314
+ try {
315
+ const groups = await listGroups();
316
+ return {
317
+ content: [
318
+ {
319
+ type: "text",
320
+ text: JSON.stringify(groups, null, 2),
321
+ },
322
+ ],
323
+ };
324
+ }
325
+ catch (error) {
326
+ const msg = error instanceof Error ? error.message : String(error);
327
+ return {
328
+ content: [{ type: "text", text: `Failed to list groups: ${msg}` }],
329
+ isError: true,
330
+ };
331
+ }
332
+ });
333
+ // --- Tool 11: list_contacts ---
334
+ server.tool("list_contacts", "List available contacts (users) in the workspace. Use contact IDs when sharing secrets via whitelistUsers in create_secret or update_secret.", {}, async () => {
335
+ try {
336
+ const contacts = await listContacts();
337
+ return {
338
+ content: [
339
+ {
340
+ type: "text",
341
+ text: JSON.stringify(contacts, null, 2),
342
+ },
343
+ ],
344
+ };
345
+ }
346
+ catch (error) {
347
+ const msg = error instanceof Error ? error.message : String(error);
348
+ return {
349
+ content: [{ type: "text", text: `Failed to list contacts: ${msg}` }],
350
+ isError: true,
351
+ };
352
+ }
353
+ });
354
+ // --- Start Server ---
355
+ async function main() {
356
+ const transport = new StdioServerTransport();
357
+ await server.connect(transport);
358
+ console.error("Passwd MCP server running on stdio");
359
+ }
360
+ main().catch((error) => {
361
+ console.error("Fatal error:", error);
362
+ process.exit(1);
363
+ });
364
+ //# 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,37 @@
1
+ {
2
+ "name": "@passwd/passwd-mcp",
3
+ "version": "1.1.0",
4
+ "description": "MCP server for passwd.team password manager",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "passwd-mcp": "dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "scripts": {
14
+ "build": "tsc -b"
15
+ },
16
+ "keywords": [
17
+ "mcp",
18
+ "passwd",
19
+ "password-manager",
20
+ "claude",
21
+ "model-context-protocol"
22
+ ],
23
+ "license": "MIT",
24
+ "dependencies": {
25
+ "@passwd/passwd-lib": "1.1.0",
26
+ "@modelcontextprotocol/sdk": "^1.12.1",
27
+ "zod": "^3.24.2"
28
+ },
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "https://github.com/pepuscz/passwd.git",
32
+ "directory": "packages/passwd-mcp"
33
+ },
34
+ "publishConfig": {
35
+ "access": "public"
36
+ }
37
+ }