From b3c0adc4777acbd4ddea5c74afea3332a8f288a9 Mon Sep 17 00:00:00 2001 From: Greg Methvin Date: Tue, 24 Mar 2026 12:07:09 -0700 Subject: [PATCH] Switch to new schemas --- index.html | 3 +++ package.json | 2 +- pnpm-lock.yaml | 10 +++++----- src/tools/catalogs.ts | 16 ++++++---------- src/tools/lists.ts | 2 +- src/tools/templates.ts | 5 ++--- src/tools/users.ts | 8 ++++---- 7 files changed, 22 insertions(+), 24 deletions(-) diff --git a/index.html b/index.html index ce20dd3..925d0b3 100644 --- a/index.html +++ b/index.html @@ -27,5 +27,8 @@ + + + diff --git a/package.json b/package.json index ff692bd..4da1887 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ }, "dependencies": { "@alcyone-labs/zod-to-json-schema": "4.0.10", - "@iterable/api": "0.8.2", + "@iterable/api": "0.9.0", "@modelcontextprotocol/sdk": "1.18.1", "@primno/dpapi": "2.0.1", "@types/json-schema": "7.0.15", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aab115b..0ef5012 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: 4.0.10 version: 4.0.10(zod@4.1.11) '@iterable/api': - specifier: 0.8.2 - version: 0.8.2(typescript@5.9.3) + specifier: 0.9.0 + version: 0.9.0(typescript@5.9.3) '@modelcontextprotocol/sdk': specifier: 1.18.1 version: 1.18.1 @@ -654,8 +654,8 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@iterable/api@0.8.2': - resolution: {integrity: sha512-0pkTBglhhUBkjvQ0z2BchHyBdVRQiJawlF7DxMWNcRUqwdbbbAkytpNPMCU22LTKj/b+BY4OLbjeDkUyxypgCw==} + '@iterable/api@0.9.0': + resolution: {integrity: sha512-yd51nc7KB9E69uSBbB9S3sYsLiO1vb7YlUdXxlb5BcpPmXD8z43516XsX/iEftFCgojRuOQxLIOtYGQFEtKWGQ==} engines: {node: '>=18.0.0'} '@jest/console@30.2.0': @@ -3260,7 +3260,7 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@iterable/api@0.8.2(typescript@5.9.3)': + '@iterable/api@0.9.0(typescript@5.9.3)': dependencies: '@t3-oss/env-core': 0.13.8(typescript@5.9.3)(zod@4.1.11) axios: 1.13.2 diff --git a/src/tools/catalogs.ts b/src/tools/catalogs.ts index 15047cc..7cc0356 100644 --- a/src/tools/catalogs.ts +++ b/src/tools/catalogs.ts @@ -7,6 +7,7 @@ import { BulkDeleteCatalogItemsParamsSchema, CreateCatalogParamsSchema, DeleteCatalogItemParamsSchema, + DeleteCatalogParamsSchema, GetCatalogFieldMappingsParamsSchema, GetCatalogItemParamsSchema, GetCatalogItemsParamsSchema, @@ -17,7 +18,6 @@ import { UpdateCatalogItemParamsSchema, } from "@iterable/api"; import type { Tool } from "@modelcontextprotocol/sdk/types.js"; -import { z } from "zod"; import { createTool } from "../schema-utils.js"; @@ -27,7 +27,7 @@ export function createCatalogTools(client: IterableClient): Tool[] { name: "create_catalog", description: "Create a new catalog", schema: CreateCatalogParamsSchema, - execute: (params) => client.createCatalog(params.catalogName), + execute: (params) => client.createCatalog(params), }), createTool({ name: "update_catalog_items", @@ -39,15 +39,13 @@ export function createCatalogTools(client: IterableClient): Tool[] { name: "get_catalog_item", description: "Get a specific catalog item by ID", schema: GetCatalogItemParamsSchema, - execute: (params) => - client.getCatalogItem(params.catalogName, params.itemId), + execute: (params) => client.getCatalogItem(params), }), createTool({ name: "delete_catalog_item", description: "Delete a specific catalog item by ID", schema: DeleteCatalogItemParamsSchema, - execute: (params) => - client.deleteCatalogItem(params.catalogName, params.itemId), + execute: (params) => client.deleteCatalogItem(params), }), createTool({ name: "get_catalogs", @@ -71,10 +69,8 @@ export function createCatalogTools(client: IterableClient): Tool[] { createTool({ name: "delete_catalog", description: "Delete a catalog", - schema: z.object({ - catalogName: z.string().describe("Name of the catalog to delete"), - }), - execute: (params) => client.deleteCatalog(params.catalogName), + schema: DeleteCatalogParamsSchema, + execute: (params) => client.deleteCatalog(params), }), createTool({ name: "update_catalog_field_mappings", diff --git a/src/tools/lists.ts b/src/tools/lists.ts index fb934d8..149f7ac 100644 --- a/src/tools/lists.ts +++ b/src/tools/lists.ts @@ -48,7 +48,7 @@ export function createListTools(client: IterableClient): Tool[] { name: "delete_list", description: "Delete a user list", schema: DeleteListParamsSchema, - execute: (params) => client.deleteList(params.listId), + execute: (params) => client.deleteList(params), }), createTool({ name: "unsubscribe_from_list", diff --git a/src/tools/templates.ts b/src/tools/templates.ts index 690a359..9091e51 100644 --- a/src/tools/templates.ts +++ b/src/tools/templates.ts @@ -140,14 +140,13 @@ export function createTemplateTools(client: IterableClient): Tool[] { name: "get_template_by_client_id", description: "Get template by client template ID", schema: GetTemplateByClientIdParamsSchema, - execute: (params) => - client.getTemplateByClientId(params.clientTemplateId), + execute: (params) => client.getTemplateByClientId(params), }), createTool({ name: "delete_templates", description: "Delete one or more templates by ID", schema: BulkDeleteTemplatesParamsSchema, - execute: (params) => client.deleteTemplates(params.ids), + execute: (params) => client.deleteTemplates(params), }), // Generate tools for all template types using configuration-driven approach diff --git a/src/tools/users.ts b/src/tools/users.ts index b321d32..4bc3e3d 100644 --- a/src/tools/users.ts +++ b/src/tools/users.ts @@ -28,13 +28,13 @@ export function createUserTools(client: IterableClient): Tool[] { name: "get_user_by_email", description: "Get user profile information by email address", schema: GetUserByEmailParamsSchema, - execute: (params) => client.getUserByEmail(params.email), + execute: (params) => client.getUserByEmail(params), }), createTool({ name: "get_user_by_user_id", description: "Get user profile information by user ID", schema: GetUserByIdParamsSchema, - execute: (params) => client.getUserByUserId(params.userId), + execute: (params) => client.getUserByUserId(params), }), createTool({ name: "update_user", @@ -48,14 +48,14 @@ export function createUserTools(client: IterableClient): Tool[] { description: "Delete a user by email address (asynchronous - does not prevent future data collection)", schema: DeleteUserByEmailParamsSchema, - execute: (params) => client.deleteUserByEmail(params.email), + execute: (params) => client.deleteUserByEmail(params), }), createTool({ name: "delete_user_by_user_id", description: "Delete a user by user ID (asynchronous - does not prevent future data collection, deletes all users with same userId)", schema: DeleteUserByUserIdParamsSchema, - execute: (params) => client.deleteUserByUserId(params.userId), + execute: (params) => client.deleteUserByUserId(params), }), createTool({ name: "update_email",