@bencibro/tempmail-mcp 0.0.1

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.
Files changed (54) hide show
  1. package/GUIDE.md +286 -0
  2. package/GUIDE.zh-CN.md +287 -0
  3. package/LICENSE +21 -0
  4. package/README.md +308 -0
  5. package/README.zh-CN.md +308 -0
  6. package/dist/base-provider.d.ts +21 -0
  7. package/dist/base-provider.d.ts.map +1 -0
  8. package/dist/base-provider.js +36 -0
  9. package/dist/base-provider.js.map +1 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +519 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/provider-manager.d.ts +36 -0
  15. package/dist/provider-manager.d.ts.map +1 -0
  16. package/dist/provider-manager.js +67 -0
  17. package/dist/provider-manager.js.map +1 -0
  18. package/dist/providers/auto-register.d.ts +45 -0
  19. package/dist/providers/auto-register.d.ts.map +1 -0
  20. package/dist/providers/auto-register.js +249 -0
  21. package/dist/providers/auto-register.js.map +1 -0
  22. package/dist/providers/catchmail.d.ts +20 -0
  23. package/dist/providers/catchmail.d.ts.map +1 -0
  24. package/dist/providers/catchmail.js +79 -0
  25. package/dist/providers/catchmail.js.map +1 -0
  26. package/dist/providers/guerrillamail.d.ts +21 -0
  27. package/dist/providers/guerrillamail.d.ts.map +1 -0
  28. package/dist/providers/guerrillamail.js +114 -0
  29. package/dist/providers/guerrillamail.js.map +1 -0
  30. package/dist/providers/mail-cx.d.ts +30 -0
  31. package/dist/providers/mail-cx.d.ts.map +1 -0
  32. package/dist/providers/mail-cx.js +154 -0
  33. package/dist/providers/mail-cx.js.map +1 -0
  34. package/dist/providers/mail-tm.d.ts +16 -0
  35. package/dist/providers/mail-tm.d.ts.map +1 -0
  36. package/dist/providers/mail-tm.js +109 -0
  37. package/dist/providers/mail-tm.js.map +1 -0
  38. package/dist/providers/maildrop.d.ts +22 -0
  39. package/dist/providers/maildrop.d.ts.map +1 -0
  40. package/dist/providers/maildrop.js +88 -0
  41. package/dist/providers/maildrop.js.map +1 -0
  42. package/dist/providers/one-secmail.d.ts +22 -0
  43. package/dist/providers/one-secmail.d.ts.map +1 -0
  44. package/dist/providers/one-secmail.js +98 -0
  45. package/dist/providers/one-secmail.js.map +1 -0
  46. package/dist/types.d.ts +96 -0
  47. package/dist/types.d.ts.map +1 -0
  48. package/dist/types.js +5 -0
  49. package/dist/types.js.map +1 -0
  50. package/dist/utils.d.ts +33 -0
  51. package/dist/utils.d.ts.map +1 -0
  52. package/dist/utils.js +100 -0
  53. package/dist/utils.js.map +1 -0
  54. package/package.json +56 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IAEb,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IAEpB,yDAAyD;IACzD,cAAc,EAAE,OAAO,CAAC;IAExB,yCAAyC;IACzC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEhC,6CAA6C;IAC7C,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEjE,8CAA8C;IAC9C,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAE3D,iDAAiD;IACjD,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE3E,uCAAuC;IACvC,aAAa,CAAC,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD,iFAAiF;IACjF,YAAY,CACV,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1B"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Core type definitions for the temporary email service.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Shared utility functions.
3
+ */
4
+ /**
5
+ * Generate a random alphanumeric string of the given length.
6
+ */
7
+ export declare function randomString(length: number): string;
8
+ /**
9
+ * Generate a random username (6-12 chars, always starts with a letter).
10
+ */
11
+ export declare function randomUsername(): string;
12
+ /**
13
+ * Sleep for the given milliseconds.
14
+ */
15
+ export declare function sleep(ms: number): Promise<void>;
16
+ /**
17
+ * Default wait-for-email options merged with user-provided overrides.
18
+ */
19
+ export declare function mergeWaitOptions(options?: import("./types.js").WaitForEmailOptions): Required<import("./types.js").WaitForEmailOptions>;
20
+ /**
21
+ * Check if a message matches the filter criteria.
22
+ */
23
+ export declare function messageMatches(msg: import("./types.js").EmailMessage, subjectContains: string, fromContains: string): boolean;
24
+ /**
25
+ * Extract verification code from an email body.
26
+ * Looks for common patterns: 4-8 digit codes, alphanumeric codes, etc.
27
+ */
28
+ export declare function extractVerificationCode(msg: import("./types.js").EmailMessage): string | null;
29
+ /**
30
+ * Strip HTML tags and return plain text.
31
+ */
32
+ export declare function stripHtml(html: string): string;
33
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAOnD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAIvC;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,CAAC,EAAE,OAAO,YAAY,EAAE,mBAAmB,GACjD,QAAQ,CAAC,OAAO,YAAY,EAAE,mBAAmB,CAAC,CAOpD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,YAAY,EAAE,YAAY,EACtC,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,GACnB,OAAO,CAaT;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,YAAY,EAAE,YAAY,GACrC,MAAM,GAAG,IAAI,CAwBf;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAa9C"}
package/dist/utils.js ADDED
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Shared utility functions.
3
+ */
4
+ /**
5
+ * Generate a random alphanumeric string of the given length.
6
+ */
7
+ export function randomString(length) {
8
+ const chars = "abcdefghijklmnopqrstuvwxyz0123456789";
9
+ let result = "";
10
+ for (let i = 0; i < length; i++) {
11
+ result += chars[Math.floor(Math.random() * chars.length)];
12
+ }
13
+ return result;
14
+ }
15
+ /**
16
+ * Generate a random username (6-12 chars, always starts with a letter).
17
+ */
18
+ export function randomUsername() {
19
+ const letters = "abcdefghijklmnopqrstuvwxyz";
20
+ const start = letters[Math.floor(Math.random() * letters.length)];
21
+ return start + randomString(5 + Math.floor(Math.random() * 7));
22
+ }
23
+ /**
24
+ * Sleep for the given milliseconds.
25
+ */
26
+ export function sleep(ms) {
27
+ return new Promise((resolve) => setTimeout(resolve, ms));
28
+ }
29
+ /**
30
+ * Default wait-for-email options merged with user-provided overrides.
31
+ */
32
+ export function mergeWaitOptions(options) {
33
+ return {
34
+ subjectContains: options?.subjectContains ?? "",
35
+ fromContains: options?.fromContains ?? "",
36
+ timeoutMs: options?.timeoutMs ?? 60_000,
37
+ pollIntervalMs: options?.pollIntervalMs ?? 3_000,
38
+ };
39
+ }
40
+ /**
41
+ * Check if a message matches the filter criteria.
42
+ */
43
+ export function messageMatches(msg, subjectContains, fromContains) {
44
+ if (subjectContains) {
45
+ if (!msg.subject.toLowerCase().includes(subjectContains.toLowerCase())) {
46
+ return false;
47
+ }
48
+ }
49
+ if (fromContains) {
50
+ const fromField = `${msg.from} ${msg.fromName ?? ""}`.toLowerCase();
51
+ if (!fromField.includes(fromContains.toLowerCase())) {
52
+ return false;
53
+ }
54
+ }
55
+ return true;
56
+ }
57
+ /**
58
+ * Extract verification code from an email body.
59
+ * Looks for common patterns: 4-8 digit codes, alphanumeric codes, etc.
60
+ */
61
+ export function extractVerificationCode(msg) {
62
+ const text = msg.bodyText ?? stripHtml(msg.bodyHtml ?? "");
63
+ if (!text)
64
+ return null;
65
+ // Common patterns for verification codes:
66
+ // "code is 123456" / "verification code: 123456" / "Your code: ABC123"
67
+ const patterns = [
68
+ /(?:code|verification|verify|otp|pin|passcode)\s*(?:is|:|-|=)?\s*([A-Z0-9]{4,8})\b/i,
69
+ /\b(\d{4,8})\b/, // Just a 4-8 digit number
70
+ /\b([A-Z0-9]{6})\b/, // 6-char alphanumeric
71
+ /\b([A-Z0-9]{5})\b/, // 5-char alphanumeric
72
+ /\b([A-Z0-9]{4})\b/, // 4-char alphanumeric
73
+ ];
74
+ // Try contextual patterns first (more reliable)
75
+ for (const pattern of patterns) {
76
+ const match = text.match(pattern);
77
+ if (match) {
78
+ return match[1] ?? match[0];
79
+ }
80
+ }
81
+ return null;
82
+ }
83
+ /**
84
+ * Strip HTML tags and return plain text.
85
+ */
86
+ export function stripHtml(html) {
87
+ return html
88
+ .replace(/<style[^>]*>[\s\S]*?<\/style>/gi, "")
89
+ .replace(/<script[^>]*>[\s\S]*?<\/script>/gi, "")
90
+ .replace(/<[^>]+>/g, " ")
91
+ .replace(/&nbsp;/g, " ")
92
+ .replace(/&amp;/g, "&")
93
+ .replace(/&lt;/g, "<")
94
+ .replace(/&gt;/g, ">")
95
+ .replace(/&quot;/g, '"')
96
+ .replace(/&#39;/g, "'")
97
+ .replace(/\s+/g, " ")
98
+ .trim();
99
+ }
100
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@bencibro/tempmail-mcp",
3
+ "version": "0.0.1",
4
+ "description": "A MCP server that provides temporary email services for registration verification, aggregating multiple temp mail providers.",
5
+ "license": "MIT",
6
+ "author": "",
7
+ "homepage": "https://github.com/Bencibr/tempmailmcp",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/Bencibr/tempmailmcp.git"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/Bencibr/tempmailmcp/issues"
14
+ },
15
+ "keywords": [
16
+ "mcp",
17
+ "temp-mail",
18
+ "temporary-email",
19
+ "disposable-email",
20
+ "verification",
21
+ "model-context-protocol",
22
+ "claude",
23
+ "ai"
24
+ ],
25
+ "type": "module",
26
+ "main": "dist/index.js",
27
+ "bin": {
28
+ "tempmail-mcp": "dist/index.js"
29
+ },
30
+ "files": [
31
+ "dist",
32
+ "README.md",
33
+ "README.zh-CN.md",
34
+ "GUIDE.md",
35
+ "GUIDE.zh-CN.md",
36
+ "LICENSE"
37
+ ],
38
+ "publishConfig": {
39
+ "access": "public"
40
+ },
41
+ "scripts": {
42
+ "build": "tsc",
43
+ "dev": "tsc --watch",
44
+ "start": "node dist/index.js",
45
+ "test": "node test-e2e.mjs",
46
+ "prepare": "npm run build"
47
+ },
48
+ "dependencies": {
49
+ "@modelcontextprotocol/sdk": "^1.30.0",
50
+ "zod": "^3.25.76"
51
+ },
52
+ "devDependencies": {
53
+ "@types/node": "^22.15.21",
54
+ "typescript": "^5.7.3"
55
+ }
56
+ }