@pilot-status/mcp-server 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.
Files changed (75) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +230 -0
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +45 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/lib/api-client.d.ts +100 -0
  8. package/dist/lib/api-client.d.ts.map +1 -0
  9. package/dist/lib/api-client.js +204 -0
  10. package/dist/lib/api-client.js.map +1 -0
  11. package/dist/lib/config.d.ts +54 -0
  12. package/dist/lib/config.d.ts.map +1 -0
  13. package/dist/lib/config.js +79 -0
  14. package/dist/lib/config.js.map +1 -0
  15. package/dist/lib/http-transport.d.ts +42 -0
  16. package/dist/lib/http-transport.d.ts.map +1 -0
  17. package/dist/lib/http-transport.js +228 -0
  18. package/dist/lib/http-transport.js.map +1 -0
  19. package/dist/lib/register.d.ts +28 -0
  20. package/dist/lib/register.d.ts.map +1 -0
  21. package/dist/lib/register.js +69 -0
  22. package/dist/lib/register.js.map +1 -0
  23. package/dist/lib/server.d.ts +16 -0
  24. package/dist/lib/server.d.ts.map +1 -0
  25. package/dist/lib/server.js +23 -0
  26. package/dist/lib/server.js.map +1 -0
  27. package/dist/tools/analytics.d.ts +3 -0
  28. package/dist/tools/analytics.d.ts.map +1 -0
  29. package/dist/tools/analytics.js +22 -0
  30. package/dist/tools/analytics.js.map +1 -0
  31. package/dist/tools/api-keys.d.ts +3 -0
  32. package/dist/tools/api-keys.d.ts.map +1 -0
  33. package/dist/tools/api-keys.js +35 -0
  34. package/dist/tools/api-keys.js.map +1 -0
  35. package/dist/tools/branding.d.ts +3 -0
  36. package/dist/tools/branding.d.ts.map +1 -0
  37. package/dist/tools/branding.js +35 -0
  38. package/dist/tools/branding.js.map +1 -0
  39. package/dist/tools/conversations.d.ts +3 -0
  40. package/dist/tools/conversations.d.ts.map +1 -0
  41. package/dist/tools/conversations.js +18 -0
  42. package/dist/tools/conversations.js.map +1 -0
  43. package/dist/tools/groups.d.ts +3 -0
  44. package/dist/tools/groups.d.ts.map +1 -0
  45. package/dist/tools/groups.js +17 -0
  46. package/dist/tools/groups.js.map +1 -0
  47. package/dist/tools/index.d.ts +9 -0
  48. package/dist/tools/index.d.ts.map +1 -0
  49. package/dist/tools/index.js +26 -0
  50. package/dist/tools/index.js.map +1 -0
  51. package/dist/tools/messages.d.ts +3 -0
  52. package/dist/tools/messages.d.ts.map +1 -0
  53. package/dist/tools/messages.js +134 -0
  54. package/dist/tools/messages.js.map +1 -0
  55. package/dist/tools/numbers.d.ts +3 -0
  56. package/dist/tools/numbers.d.ts.map +1 -0
  57. package/dist/tools/numbers.js +52 -0
  58. package/dist/tools/numbers.js.map +1 -0
  59. package/dist/tools/shared.d.ts +19 -0
  60. package/dist/tools/shared.d.ts.map +1 -0
  61. package/dist/tools/shared.js +27 -0
  62. package/dist/tools/shared.js.map +1 -0
  63. package/dist/tools/subscription.d.ts +3 -0
  64. package/dist/tools/subscription.d.ts.map +1 -0
  65. package/dist/tools/subscription.js +39 -0
  66. package/dist/tools/subscription.js.map +1 -0
  67. package/dist/tools/templates.d.ts +3 -0
  68. package/dist/tools/templates.d.ts.map +1 -0
  69. package/dist/tools/templates.js +68 -0
  70. package/dist/tools/templates.js.map +1 -0
  71. package/dist/tools/types.d.ts +23 -0
  72. package/dist/tools/types.d.ts.map +1 -0
  73. package/dist/tools/types.js +20 -0
  74. package/dist/tools/types.js.map +1 -0
  75. package/package.json +64 -0
@@ -0,0 +1,23 @@
1
+ import type { z } from "zod";
2
+ import type { ApiClient } from "../lib/api-client.js";
3
+ /**
4
+ * A single MCP tool definition. `inputSchema` is a Zod *raw shape*
5
+ * (`Record<string, ZodTypeAny>`) — the shape the MCP SDK's `server.tool()`
6
+ * expects. The handler receives the already-validated args plus the
7
+ * per-connection {@link ApiClient}.
8
+ */
9
+ export interface ToolDef<Shape extends z.ZodRawShape = z.ZodRawShape> {
10
+ name: string;
11
+ description: string;
12
+ inputSchema: Shape;
13
+ handler: (client: ApiClient, args: Record<string, unknown>) => Promise<unknown>;
14
+ }
15
+ /**
16
+ * Identity helper: keeps the precise `inputSchema` shape type at the definition
17
+ * site (so each tool's args are well-typed) while widening the return type to
18
+ * the base {@link ToolDef} so tools compose cleanly into `ToolDef[]` arrays.
19
+ */
20
+ export declare function defineTool<Shape extends z.ZodRawShape>(def: ToolDef<Shape>): ToolDef;
21
+ /** Build a query object from a subset of args, skipping undefined values. */
22
+ export declare function pickQuery(args: Record<string, unknown>, keys: string[]): Record<string, string | number | boolean | undefined>;
23
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,KAAK,CAAC;IACnB,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnF;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,SAAS,CAAC,CAAC,WAAW,EAClD,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GACpB,OAAO,CAET;AAED,6EAA6E;AAC7E,wBAAgB,SAAS,CACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,EAAE,MAAM,EAAE,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAQvD"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Identity helper: keeps the precise `inputSchema` shape type at the definition
3
+ * site (so each tool's args are well-typed) while widening the return type to
4
+ * the base {@link ToolDef} so tools compose cleanly into `ToolDef[]` arrays.
5
+ */
6
+ export function defineTool(def) {
7
+ return def;
8
+ }
9
+ /** Build a query object from a subset of args, skipping undefined values. */
10
+ export function pickQuery(args, keys) {
11
+ const out = {};
12
+ for (const key of keys) {
13
+ const value = args[key];
14
+ if (value === undefined || value === null)
15
+ continue;
16
+ out[key] = value;
17
+ }
18
+ return out;
19
+ }
20
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAgBA;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACtB,GAAmB;IAEnB,OAAO,GAAc,CAAC;AAC1B,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,SAAS,CACrB,IAA6B,EAC7B,IAAc;IAEd,MAAM,GAAG,GAA0D,EAAE,CAAC;IACtE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QACpD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAkC,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC"}
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@pilot-status/mcp-server",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "description": "Model Context Protocol (MCP) server exposing the Pilot Status public /v1 API as tools. Supports stdio and streamable HTTP transports (with OAuth 2.1 for the claude.ai custom connector).",
6
+ "license": "MIT",
7
+ "author": "Pilot Status",
8
+ "homepage": "https://github.com/oismaelash/pilot-status/tree/main/apps/mcp-server#readme",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/oismaelash/pilot-status.git",
12
+ "directory": "apps/mcp-server"
13
+ },
14
+ "bugs": {
15
+ "url": "https://github.com/oismaelash/pilot-status/issues"
16
+ },
17
+ "keywords": [
18
+ "mcp",
19
+ "model-context-protocol",
20
+ "whatsapp",
21
+ "pilot-status",
22
+ "claude"
23
+ ],
24
+ "main": "dist/index.js",
25
+ "types": "dist/index.d.ts",
26
+ "exports": {
27
+ ".": {
28
+ "types": "./dist/index.d.ts",
29
+ "import": "./dist/index.js"
30
+ }
31
+ },
32
+ "bin": {
33
+ "pilot-status-mcp": "dist/index.js"
34
+ },
35
+ "files": [
36
+ "dist",
37
+ "README.md",
38
+ "LICENSE"
39
+ ],
40
+ "engines": {
41
+ "node": ">=20"
42
+ },
43
+ "publishConfig": {
44
+ "access": "public"
45
+ },
46
+ "scripts": {
47
+ "dev": "tsx watch src/index.ts",
48
+ "build": "tsc",
49
+ "start": "node dist/index.js",
50
+ "test": "vitest run -c vitest.config.ts",
51
+ "test:coverage": "vitest run -c vitest.coverage.config.ts",
52
+ "prepublishOnly": "npm run build"
53
+ },
54
+ "dependencies": {
55
+ "@modelcontextprotocol/sdk": "^1.20.0",
56
+ "zod": "^3.23.8"
57
+ },
58
+ "devDependencies": {
59
+ "@types/node": "^22.0.0",
60
+ "tsx": "^4.19.0",
61
+ "typescript": "^5.6.0",
62
+ "vitest": "^4.0.18"
63
+ }
64
+ }