@omnifox/mcp-server 0.3.0 → 0.4.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.
@@ -23,7 +23,7 @@ export class OmnifoxApiError extends Error {
23
23
  }
24
24
  }
25
25
  const DEFAULT_BASE_URL = "https://omnifox.io/api/v1";
26
- const SERVER_VERSION = "0.2.2";
26
+ const SERVER_VERSION = "0.4.1";
27
27
  const DEFAULT_TIMEOUT_MS = 30_000;
28
28
  const DEFAULT_MAX_RETRIES = 3;
29
29
  const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
package/dist/server.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
5
5
  import { OmnifoxClient, type OmnifoxClientOptions } from "./omnifox/client.js";
6
6
  export declare const SERVER_NAME = "omnifox-mcp-server";
7
- export declare const SERVER_VERSION = "0.2.2";
7
+ export declare const SERVER_VERSION = "0.4.1";
8
8
  export interface BuildServerOptions {
9
9
  client?: OmnifoxClient;
10
10
  clientOptions?: OmnifoxClientOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAS/E,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAChD,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,GAAE,kBAAuB,GAAG,SAAS,CAwCpE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAU/E,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAChD,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,GAAE,kBAAuB,GAAG,SAAS,CAyCpE"}
package/dist/server.js CHANGED
@@ -9,9 +9,10 @@ import { registerConversationTools } from "./tools/conversations.js";
9
9
  import { registerCommentTools } from "./tools/comments.js";
10
10
  import { registerWorkspaceTools } from "./tools/workspace.js";
11
11
  import { registerCalendarTools } from "./tools/calendar.js";
12
+ import { registerCatalogTools } from "./tools/catalog.js";
12
13
  import { registerExtraTools } from "./tools/extras.js";
13
14
  export const SERVER_NAME = "omnifox-mcp-server";
14
- export const SERVER_VERSION = "0.2.2";
15
+ export const SERVER_VERSION = "0.4.1";
15
16
  /**
16
17
  * Construct an Omnifox MCP server with every tool wired up.
17
18
  * Pass `client` to inject a pre-configured / mocked client (useful for tests).
@@ -47,6 +48,7 @@ export function buildServer(opts = {}) {
47
48
  registerCommentTools(server, client);
48
49
  registerWorkspaceTools(server, client);
49
50
  registerCalendarTools(server, client);
51
+ registerCatalogTools(server, client);
50
52
  registerExtraTools(server, client);
51
53
  return server;
52
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,aAAa,EAA6B,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAOtC;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B,EAAE;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEpE,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;KACxB,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,EAAE;SACZ;QACD,YAAY,EACV,kEAAkE;YAClE,yEAAyE;YACzE,+CAA+C;YAC/C,sEAAsE;YACtE,uEAAuE;YACvE,2DAA2D;YAC3D,wEAAwE;YACxE,wEAAwE;YACxE,wEAAwE;YACxE,qCAAqC;YACrC,yEAAyE;YACzE,yEAAyE;YACzE,wEAAwE;YACxE,yEAAyE;KAC5E,CACF,CAAC;IAEF,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,aAAa,EAA6B,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAOtC;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B,EAAE;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEpE,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;KACxB,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,EAAE;SACZ;QACD,YAAY,EACV,kEAAkE;YAClE,yEAAyE;YACzE,+CAA+C;YAC/C,sEAAsE;YACtE,uEAAuE;YACvE,2DAA2D;YAC3D,wEAAwE;YACxE,wEAAwE;YACxE,wEAAwE;YACxE,qCAAqC;YACrC,yEAAyE;YACzE,yEAAyE;YACzE,wEAAwE;YACxE,yEAAyE;KAC5E,CACF,CAAC;IAEF,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/tools/calendar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAM1D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CA4JpF"}
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/tools/calendar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAM1D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CA6LpF"}
@@ -51,6 +51,37 @@ export function registerCalendarTools(server, client) {
51
51
  .describe("Which resources it occupies (the professional, the room)."),
52
52
  capacity: z.number().int().min(1).optional().describe(">1 turns it into a class with seats."),
53
53
  allow_waitlist: z.boolean().optional(),
54
+ // `video_omnifox` crea la sala de videollamada sola y devuelve
55
+ // `video_guest_url` / `video_opens_at` en la respuesta. Requiere el
56
+ // módulo de videollamadas: sin él la cita se agenda igual, pero sin sala.
57
+ location_type: z
58
+ .enum(["none", "physical", "phone", "video", "whatsapp", "video_omnifox"])
59
+ .optional()
60
+ .describe("How the appointment happens. Use 'video_omnifox' for an Omnifox video meeting — " +
61
+ "the room is created automatically and the response carries `video_guest_url` " +
62
+ "(share it with the customer) and `video_opens_at`. Omit to inherit it from the service."),
63
+ location: z.string().max(255).optional().describe("Address, phone or external link. Not needed for video_omnifox."),
64
+ invitees: z
65
+ .array(z.string().email())
66
+ .max(50)
67
+ .optional()
68
+ .describe("Outside people (not contacts) who get the invitation email with the link and an .ics file."),
69
+ // Cómo arranca la sala. Sólo aplica con `video_omnifox`; el servidor
70
+ // las cruza con lo que permite el espacio de trabajo (la reunión nunca
71
+ // enciende lo que el espacio tiene apagado).
72
+ video_options: z
73
+ .object({
74
+ screen_share: z.boolean().optional().describe("Allow screen sharing in this meeting (default true)."),
75
+ translate_mode: z
76
+ .enum(["off", "text", "voice"])
77
+ .optional()
78
+ .describe("Live translation: off (default), text = subtitles only, voice = translated voice + subtitles. Uses AI credits per minute."),
79
+ host_lang: z.string().max(8).optional().describe("Host language (ISO 639-1)."),
80
+ guest_lang: z.string().max(8).optional().describe("Guest language (ISO 639-1); preselected for the customer."),
81
+ start_muted: z.boolean().nullable().optional().describe("Join with the microphone off. null = workspace default."),
82
+ })
83
+ .optional()
84
+ .describe("Only for video_omnifox: how the video room starts."),
54
85
  }, async (params) => ok(await client.post("/calendar/appointments", params)));
55
86
  server.tool("list_appointments", "List appointments in a date range, optionally for one calendar.", {
56
87
  from: z.string().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/tools/calendar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,EAAE,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC;IAC7B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;CAC1E,CAAC,CAAC;AAEH,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,MAAqB;IAC5E,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,wGAAwG,EACxG,EAAE,EACF,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CACxD,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,gGAAgG,EAChG,EAAE,EACF,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CACvD,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,mGAAmG;QACjG,iGAAiG,EACnG;QACE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC1D,EACD,KAAK,EAAE,MAAM,EAAE,EAAE,CACf,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAiC,CAAC,CAAC,CACjF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,yDAAyD,EACzD,EAAE,EACF,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CACpD,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,sGAAsG;QACpG,8FAA8F;QAC9F,oCAAoC,EACtC;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC1E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;QACjF,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QAC7E,YAAY,EAAE,CAAC;aACZ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;aACvB,QAAQ,EAAE;aACV,QAAQ,CAAC,qEAAqE,CAAC;QAClF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;KACxF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE,CACf,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,kCAAkC,EAAE,MAAiC,CAAC,CAAC,CAC9F,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,kFAAkF;QAChF,+FAA+F,EACjG;QACE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;QAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;QACnF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC/E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;QACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,YAAY,EAAE,CAAC;aACZ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;aACvB,QAAQ,EAAE;aACV,QAAQ,CAAC,2DAA2D,CAAC;QACxE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAC7F,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KACvC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC,CAC1E,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,iEAAiE,EACjE;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KACzC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE,CACf,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAiC,CAAC,CAAC,CACpF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,qGAAqG,EACrG;QACE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;QAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;KAC7E,EACD,KAAK,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,EAAE,CACtC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,0BAA0B,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAClF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,0FAA0F;QACxF,uEAAuE,EACzE;QACE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;KACvC,EACD,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,CACnC,EAAE,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,0BAA0B,cAAc,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CACvF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,oGAAoG;QAClG,wBAAwB,EAC1B,EAAE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EACpC,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAC3B,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,0BAA0B,cAAc,cAAc,CAAC,CAAC,CAC/E,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,mGAAmG;QACjG,mEAAmE,EACrE;QACE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;QAChC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QACnG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;QAC7C,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;KAC1F,EACD,KAAK,EAAE,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CACpC,EAAE,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,0BAA0B,cAAc,cAAc,EAAE,IAAI,CAAC,CAAC,CACtF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,kGAAkG;QAChG,8CAA8C,EAChD;QACE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;QAC/B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;KACxC,EACD,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,CAClC,EAAE,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,yBAAyB,aAAa,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CACzF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,oGAAoG;QAClG,qDAAqD,EACvD;QACE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;QAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;KACvC,EACD,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,CAClC,EAAE,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,yBAAyB,aAAa,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CACrF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/tools/calendar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Catálogo y pedidos — lo que el negocio vende y lo que le compraron.
3
+ *
4
+ * Hasta ahora el MCP sabía de contactos, conversaciones, mensajes y calendario:
5
+ * un asistente conectado por acá podía leer una conversación entera sobre un
6
+ * producto y no podía ni decir su precio, mucho menos anotar el pedido.
7
+ *
8
+ * ── DOS REGLAS QUE LAS DESCRIPCIONES REPITEN A PROPÓSITO ────────────────
9
+ * 1. Los precios y los totales salen del servidor. El modelo dice QUÉ y
10
+ * CUÁNTO; lo que sale a cobrar lo calcula la API con el catálogo y los
11
+ * impuestos del espacio de trabajo. Si el total viajara desde acá,
12
+ * bastaría con que un cliente escribiera "me lo llevo a un dólar".
13
+ * 2. Nada de inventar productos: `search_products` primero, y el pedido se
14
+ * arma con los ids que devolvió.
15
+ *
16
+ * Las descripciones son lo único que el modelo lee antes de decidir, así que
17
+ * dicen lo que NO debe hacer, no solo lo que hace.
18
+ */
19
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
20
+ import type { OmnifoxClient } from "../omnifox/client.js";
21
+ export declare function registerCatalogTools(server: McpServer, client: OmnifoxClient): void;
22
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/tools/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAW1D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAsKnF"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Catálogo y pedidos — lo que el negocio vende y lo que le compraron.
3
+ *
4
+ * Hasta ahora el MCP sabía de contactos, conversaciones, mensajes y calendario:
5
+ * un asistente conectado por acá podía leer una conversación entera sobre un
6
+ * producto y no podía ni decir su precio, mucho menos anotar el pedido.
7
+ *
8
+ * ── DOS REGLAS QUE LAS DESCRIPCIONES REPITEN A PROPÓSITO ────────────────
9
+ * 1. Los precios y los totales salen del servidor. El modelo dice QUÉ y
10
+ * CUÁNTO; lo que sale a cobrar lo calcula la API con el catálogo y los
11
+ * impuestos del espacio de trabajo. Si el total viajara desde acá,
12
+ * bastaría con que un cliente escribiera "me lo llevo a un dólar".
13
+ * 2. Nada de inventar productos: `search_products` primero, y el pedido se
14
+ * arma con los ids que devolvió.
15
+ *
16
+ * Las descripciones son lo único que el modelo lee antes de decidir, así que
17
+ * dicen lo que NO debe hacer, no solo lo que hace.
18
+ */
19
+ import { z } from "zod";
20
+ const ok = (data) => ({
21
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
22
+ });
23
+ const numericId = (what) => z
24
+ .union([z.number().int().positive(), z.string().regex(/^\d+$/)])
25
+ .describe(`Numeric id of the ${what}.`);
26
+ export function registerCatalogTools(server, client) {
27
+ // ---------- Productos ----------
28
+ server.tool("search_products", "Search the business catalog by name, SKU, category or description. " +
29
+ "Call this BEFORE talking about any price or availability, and before creating an order — " +
30
+ "never quote a price that did not come from here, and never mention a product that is not in the results. " +
31
+ "`stock: null` means the business does not track stock for that product; it does NOT mean zero. " +
32
+ "`is_orderable: false` means it can be shown but not ordered.", {
33
+ search: z.string().optional().describe("Words the customer used: 'white paint', 'SKU-123'."),
34
+ category: z.string().optional(),
35
+ active: z.boolean().optional().describe("Defaults to every product; pass true for on-sale only."),
36
+ per_page: z.number().int().min(1).max(100).optional(),
37
+ }, async (params) => ok(await client.get("/products", params)));
38
+ server.tool("get_product", "Read one catalog product in full: price, unit of measure, tax rate, stock, photo and whether it can be ordered.", { product_id: numericId("product") }, async ({ product_id }) => ok(await client.get(`/products/${product_id}`)));
39
+ server.tool("create_product", "Add a product to the catalog. Leave `stock` out entirely when the business does not track stock — " +
40
+ "sending 0 tells everyone the product is sold out.", {
41
+ name: z.string().min(1),
42
+ unit_price: z.number().min(0).describe("Price per unit, in the workspace currency."),
43
+ sku: z.string().optional(),
44
+ description: z.string().optional(),
45
+ category: z.string().optional(),
46
+ currency: z.string().length(3).optional(),
47
+ tax_rate: z.number().min(0).max(100).optional(),
48
+ unit: z.string().optional().describe("kilo, metre, box, hour — how the price is read."),
49
+ image_url: z.string().url().optional(),
50
+ stock: z.number().int().optional(),
51
+ is_orderable: z.boolean().optional(),
52
+ is_active: z.boolean().optional(),
53
+ }, async (params) => ok(await client.post("/products", params)));
54
+ server.tool("update_product", "Change a catalog product. Only the fields you send are touched.", {
55
+ product_id: numericId("product"),
56
+ name: z.string().optional(),
57
+ unit_price: z.number().min(0).optional(),
58
+ sku: z.string().optional(),
59
+ description: z.string().optional(),
60
+ category: z.string().optional(),
61
+ tax_rate: z.number().min(0).max(100).optional(),
62
+ unit: z.string().optional(),
63
+ image_url: z.string().url().optional(),
64
+ stock: z.number().int().optional(),
65
+ is_orderable: z.boolean().optional(),
66
+ is_active: z.boolean().optional(),
67
+ }, async ({ product_id, ...rest }) => ok(await client.put(`/products/${product_id}`, rest)));
68
+ // ---------- Pedidos ----------
69
+ server.tool("list_orders", "List the workspace's orders, newest first. Filter by status to get only what is still open.", {
70
+ status: z
71
+ .string()
72
+ .optional()
73
+ .describe("Comma-separated: pending, confirmed, preparing, ready, shipped, delivered, cancelled."),
74
+ payment_status: z.enum(["unpaid", "partial", "paid", "refunded"]).optional(),
75
+ contact_id: z.number().int().optional(),
76
+ search: z.string().optional().describe("Order number, customer name or phone."),
77
+ per_page: z.number().int().min(1).max(100).optional(),
78
+ }, async (params) => ok(await client.get("/orders", params)));
79
+ server.tool("get_order", "Read one order in full: its lines, totals, delivery details and the history of who moved it when.", { order_id: numericId("order") }, async ({ order_id }) => ok(await client.get(`/orders/${order_id}`)));
80
+ server.tool("create_order", "Create an order from catalog products. Use it only after the customer confirmed what they want and how many. " +
81
+ "Search the catalog first and pass the product ids from those results. " +
82
+ "Do NOT send prices or totals: the server prices every line from the catalog and applies the workspace's " +
83
+ "tax and delivery rules — the total it returns is the only one you may tell the customer. " +
84
+ "If the workspace requires confirmation, the order comes back as `pending`, not confirmed.", {
85
+ items: z
86
+ .array(z.object({
87
+ product_id: z.number().int().positive(),
88
+ quantity: z.number().min(0.001).default(1),
89
+ options: z
90
+ .record(z.string(), z.string())
91
+ .optional()
92
+ .describe("Line choices: {'nota': 'no onions'}, {'talla': 'M'}."),
93
+ }))
94
+ .min(1),
95
+ contact_id: z.number().int().optional().describe("Links the order to the customer's record."),
96
+ conversation_id: z.number().int().optional(),
97
+ fulfillment: z.enum(["pickup", "delivery", "digital"]).optional(),
98
+ delivery_address: z.string().optional().describe("Required by most businesses when fulfillment is delivery."),
99
+ customer_name: z.string().optional(),
100
+ customer_phone: z.string().optional(),
101
+ customer_email: z.string().optional(),
102
+ customer_tax_id: z.string().optional().describe("RUC/NIT/CUIT, when the business invoices."),
103
+ customer_notes: z.string().optional().describe("What the customer asked for, in their words."),
104
+ }, async (params) => ok(await client.post("/orders", params)));
105
+ server.tool("set_order_status", "Move an order along: confirmed → preparing → ready → shipped → delivered, or cancel it. " +
106
+ "The server refuses impossible jumps (a cancelled order never goes back), moves stock accordingly " +
107
+ "and records who did it. Confirming is what commits the business, so do not confirm on the customer's behalf " +
108
+ "unless you were asked to.", {
109
+ order_id: numericId("order"),
110
+ status: z.enum([
111
+ "pending",
112
+ "confirmed",
113
+ "preparing",
114
+ "ready",
115
+ "shipped",
116
+ "delivered",
117
+ "cancelled",
118
+ ]),
119
+ reason: z.string().optional().describe("Why — mostly for cancellations."),
120
+ }, async ({ order_id, ...rest }) => ok(await client.post(`/orders/${order_id}/status`, rest)));
121
+ server.tool("record_order_payment", "Record money received against an order. Partial amounts are fine — the payment status is derived from the total.", {
122
+ order_id: numericId("order"),
123
+ amount: z.number().min(0.01),
124
+ method: z.string().optional().describe("cash, transfer, card…"),
125
+ }, async ({ order_id, ...rest }) => ok(await client.post(`/orders/${order_id}/payment`, rest)));
126
+ server.tool("get_catalog_settings", "Read how this workspace sells: whether it takes orders at all, how it taxes, whether orders need confirmation, " +
127
+ "which delivery modes it offers, what customer details it requires and how it tracks stock. " +
128
+ "Read this before assuming any of it — every business answers differently.", {}, async () => ok(await client.get("/catalog/settings")));
129
+ }
130
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/tools/catalog.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omnifox/mcp-server",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
4
4
  "description": "Official Omnifox.io Model Context Protocol (MCP) server \u2014 48 tools over the Omnifox v1 REST API for Claude, Cursor, Continue and any MCP client. Every tool verified end-to-end against a live workspace.",
5
5
  "license": "MIT",
6
6
  "type": "module",