diff --git a/packages/mcp-tools/src/config/types.ts b/packages/mcp-tools/src/config/types.ts index 1abdcac7..0210f139 100644 --- a/packages/mcp-tools/src/config/types.ts +++ b/packages/mcp-tools/src/config/types.ts @@ -3,7 +3,7 @@ */ export interface ContentfulConfig { /** Contentful CMA (Content Management API) access token */ - accessToken: string; + accessToken: (() => Promise) | string; /** Contentful API host (default: 'api.contentful.com') */ host?: string; /** Contentful Space ID */ diff --git a/packages/mcp-tools/src/tools/ai-actions/createAiAction.ts b/packages/mcp-tools/src/tools/ai-actions/createAiAction.ts index 654773f2..d87022c5 100644 --- a/packages/mcp-tools/src/tools/ai-actions/createAiAction.ts +++ b/packages/mcp-tools/src/tools/ai-actions/createAiAction.ts @@ -52,7 +52,7 @@ export function createAiActionTool(config: ContentfulConfig) { environmentId: args.environmentId || 'master', }; - const contentfulClient = createToolClient(config, { + const contentfulClient = await createToolClient(config, { ...args, environmentId: args.environmentId || 'master', }); diff --git a/packages/mcp-tools/src/tools/ai-actions/deleteAiAction.ts b/packages/mcp-tools/src/tools/ai-actions/deleteAiAction.ts index df2f0409..6bacb66e 100644 --- a/packages/mcp-tools/src/tools/ai-actions/deleteAiAction.ts +++ b/packages/mcp-tools/src/tools/ai-actions/deleteAiAction.ts @@ -20,7 +20,7 @@ export function deleteAiActionTool(config: ContentfulConfig) { aiActionId: args.aiActionId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // First, get the AI action to store info for return const aiAction = await contentfulClient.aiAction.get(params); diff --git a/packages/mcp-tools/src/tools/ai-actions/getAiAction.ts b/packages/mcp-tools/src/tools/ai-actions/getAiAction.ts index 1048a41c..133b6f4d 100644 --- a/packages/mcp-tools/src/tools/ai-actions/getAiAction.ts +++ b/packages/mcp-tools/src/tools/ai-actions/getAiAction.ts @@ -20,7 +20,7 @@ export function getAiActionTool(config: ContentfulConfig) { aiActionId: args.aiActionId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Get the AI action const aiAction = await contentfulClient.aiAction.get(params); diff --git a/packages/mcp-tools/src/tools/ai-actions/getAiActionInvocation.ts b/packages/mcp-tools/src/tools/ai-actions/getAiActionInvocation.ts index 3f8b2f3a..0b513d8d 100644 --- a/packages/mcp-tools/src/tools/ai-actions/getAiActionInvocation.ts +++ b/packages/mcp-tools/src/tools/ai-actions/getAiActionInvocation.ts @@ -22,7 +22,7 @@ export function getAiActionInvocationTool(config: ContentfulConfig) { invocationId: args.invocationId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); const aiActionInvocation = await contentfulClient.aiActionInvocation.get(params); diff --git a/packages/mcp-tools/src/tools/ai-actions/invokeAiAction.ts b/packages/mcp-tools/src/tools/ai-actions/invokeAiAction.ts index 91967d4f..4b69fcc2 100644 --- a/packages/mcp-tools/src/tools/ai-actions/invokeAiAction.ts +++ b/packages/mcp-tools/src/tools/ai-actions/invokeAiAction.ts @@ -97,7 +97,7 @@ export function invokeAiActionTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); const aiActions = []; for (const field of args.fields) { diff --git a/packages/mcp-tools/src/tools/ai-actions/listAiActions.ts b/packages/mcp-tools/src/tools/ai-actions/listAiActions.ts index 43a4cf36..7ea49ace 100644 --- a/packages/mcp-tools/src/tools/ai-actions/listAiActions.ts +++ b/packages/mcp-tools/src/tools/ai-actions/listAiActions.ts @@ -36,7 +36,7 @@ export function listAiActionTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); const aiActions = await contentfulClient.aiAction.getMany({ ...params, diff --git a/packages/mcp-tools/src/tools/ai-actions/publishAiAction.ts b/packages/mcp-tools/src/tools/ai-actions/publishAiAction.ts index ec8e6219..1f8611fa 100644 --- a/packages/mcp-tools/src/tools/ai-actions/publishAiAction.ts +++ b/packages/mcp-tools/src/tools/ai-actions/publishAiAction.ts @@ -20,7 +20,7 @@ export function publishAiActionTool(config: ContentfulConfig) { aiActionId: args.aiActionId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); try { // Get the AI action first diff --git a/packages/mcp-tools/src/tools/ai-actions/unpublishAiAction.ts b/packages/mcp-tools/src/tools/ai-actions/unpublishAiAction.ts index 06d54059..9416ad03 100644 --- a/packages/mcp-tools/src/tools/ai-actions/unpublishAiAction.ts +++ b/packages/mcp-tools/src/tools/ai-actions/unpublishAiAction.ts @@ -20,7 +20,7 @@ export function unpublishAiActionTool(config: ContentfulConfig) { aiActionId: args.aiActionId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); try { // Unpublish the AI action diff --git a/packages/mcp-tools/src/tools/ai-actions/updateAiAction.ts b/packages/mcp-tools/src/tools/ai-actions/updateAiAction.ts index 7985b2d2..a15b4bc6 100644 --- a/packages/mcp-tools/src/tools/ai-actions/updateAiAction.ts +++ b/packages/mcp-tools/src/tools/ai-actions/updateAiAction.ts @@ -59,7 +59,7 @@ export function updateAiActionTool(config: ContentfulConfig) { aiActionId: args.aiActionId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Get existing AI action, merge fields, and update const existingAiAction = await contentfulClient.aiAction.get(params); diff --git a/packages/mcp-tools/src/tools/assets/archiveAsset.ts b/packages/mcp-tools/src/tools/assets/archiveAsset.ts index 9a30a407..b72249e2 100644 --- a/packages/mcp-tools/src/tools/assets/archiveAsset.ts +++ b/packages/mcp-tools/src/tools/assets/archiveAsset.ts @@ -23,7 +23,7 @@ export function archiveAssetTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Normalize input to always be an array const assetIds = Array.isArray(args.assetId) ? args.assetId : [args.assetId]; diff --git a/packages/mcp-tools/src/tools/assets/deleteAsset.ts b/packages/mcp-tools/src/tools/assets/deleteAsset.ts index fbd7a080..867c6bdc 100644 --- a/packages/mcp-tools/src/tools/assets/deleteAsset.ts +++ b/packages/mcp-tools/src/tools/assets/deleteAsset.ts @@ -20,7 +20,7 @@ export function deleteAssetTool(config: ContentfulConfig) { assetId: args.assetId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // First, get the asset to store info for return const asset = await contentfulClient.asset.get(params); diff --git a/packages/mcp-tools/src/tools/assets/getAsset.ts b/packages/mcp-tools/src/tools/assets/getAsset.ts index 1c6a1591..f458b05c 100644 --- a/packages/mcp-tools/src/tools/assets/getAsset.ts +++ b/packages/mcp-tools/src/tools/assets/getAsset.ts @@ -20,7 +20,7 @@ export function getAssetTool(config: ContentfulConfig) { assetId: args.assetId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Get the asset const asset = await contentfulClient.asset.get(params); diff --git a/packages/mcp-tools/src/tools/assets/listAssets.ts b/packages/mcp-tools/src/tools/assets/listAssets.ts index 95fc1bcc..873a3c71 100644 --- a/packages/mcp-tools/src/tools/assets/listAssets.ts +++ b/packages/mcp-tools/src/tools/assets/listAssets.ts @@ -43,7 +43,7 @@ export function listAssetsTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); const assets = await contentfulClient.asset.getMany({ ...params, diff --git a/packages/mcp-tools/src/tools/assets/publishAsset.ts b/packages/mcp-tools/src/tools/assets/publishAsset.ts index d7336677..7ec49def 100644 --- a/packages/mcp-tools/src/tools/assets/publishAsset.ts +++ b/packages/mcp-tools/src/tools/assets/publishAsset.ts @@ -29,7 +29,7 @@ export function publishAssetTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Normalize input to always be an array const assetIds = Array.isArray(args.assetId) ? args.assetId : [args.assetId]; diff --git a/packages/mcp-tools/src/tools/assets/unarchiveAsset.ts b/packages/mcp-tools/src/tools/assets/unarchiveAsset.ts index c458b464..ca57497c 100644 --- a/packages/mcp-tools/src/tools/assets/unarchiveAsset.ts +++ b/packages/mcp-tools/src/tools/assets/unarchiveAsset.ts @@ -23,7 +23,7 @@ export function unarchiveAssetTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Normalize input to always be an array const assetIds = Array.isArray(args.assetId) ? args.assetId : [args.assetId]; diff --git a/packages/mcp-tools/src/tools/assets/unpublishAsset.ts b/packages/mcp-tools/src/tools/assets/unpublishAsset.ts index d554dff1..d8faac42 100644 --- a/packages/mcp-tools/src/tools/assets/unpublishAsset.ts +++ b/packages/mcp-tools/src/tools/assets/unpublishAsset.ts @@ -29,7 +29,7 @@ export function unpublishAssetTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Normalize input to always be an array const assetIds = Array.isArray(args.assetId) ? args.assetId : [args.assetId]; diff --git a/packages/mcp-tools/src/tools/assets/updateAsset.ts b/packages/mcp-tools/src/tools/assets/updateAsset.ts index 9c025669..3f5b2c26 100644 --- a/packages/mcp-tools/src/tools/assets/updateAsset.ts +++ b/packages/mcp-tools/src/tools/assets/updateAsset.ts @@ -27,7 +27,7 @@ export function updateAssetTool(config: ContentfulConfig) { assetId: args.assetId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Get existing asset, merge fields, and update const existingAsset = await contentfulClient.asset.get(params); diff --git a/packages/mcp-tools/src/tools/assets/uploadAsset.ts b/packages/mcp-tools/src/tools/assets/uploadAsset.ts index 85ae7cf4..445c973f 100644 --- a/packages/mcp-tools/src/tools/assets/uploadAsset.ts +++ b/packages/mcp-tools/src/tools/assets/uploadAsset.ts @@ -35,7 +35,7 @@ export function uploadAssetTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Prepare asset properties following Contentful's structure const locale = args.locale || 'en-US'; diff --git a/packages/mcp-tools/src/tools/content-types/createContentType.ts b/packages/mcp-tools/src/tools/content-types/createContentType.ts index e45b950d..743d1c74 100644 --- a/packages/mcp-tools/src/tools/content-types/createContentType.ts +++ b/packages/mcp-tools/src/tools/content-types/createContentType.ts @@ -36,7 +36,7 @@ export function createContentTypeTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); const contentTypeData = { name: args.name, diff --git a/packages/mcp-tools/src/tools/content-types/deleteContentType.ts b/packages/mcp-tools/src/tools/content-types/deleteContentType.ts index a9e436e1..7b191351 100644 --- a/packages/mcp-tools/src/tools/content-types/deleteContentType.ts +++ b/packages/mcp-tools/src/tools/content-types/deleteContentType.ts @@ -20,7 +20,7 @@ export function deleteContentTypeTool(config: ContentfulConfig) { contentTypeId: args.contentTypeId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Delete the content type await contentfulClient.contentType.delete(params); diff --git a/packages/mcp-tools/src/tools/content-types/getContentType.ts b/packages/mcp-tools/src/tools/content-types/getContentType.ts index bd22bb09..fd1c20f8 100644 --- a/packages/mcp-tools/src/tools/content-types/getContentType.ts +++ b/packages/mcp-tools/src/tools/content-types/getContentType.ts @@ -21,7 +21,7 @@ export function getContentTypeTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Get the content type details const contentType = await contentfulClient.contentType.get({ diff --git a/packages/mcp-tools/src/tools/content-types/listContentTypes.ts b/packages/mcp-tools/src/tools/content-types/listContentTypes.ts index 8a51bec1..d1d53679 100644 --- a/packages/mcp-tools/src/tools/content-types/listContentTypes.ts +++ b/packages/mcp-tools/src/tools/content-types/listContentTypes.ts @@ -36,7 +36,7 @@ export function listContentTypesTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); const contentTypes = await contentfulClient.contentType.getMany({ ...params, diff --git a/packages/mcp-tools/src/tools/content-types/publishContentType.ts b/packages/mcp-tools/src/tools/content-types/publishContentType.ts index 4cbaac4e..50bb3507 100644 --- a/packages/mcp-tools/src/tools/content-types/publishContentType.ts +++ b/packages/mcp-tools/src/tools/content-types/publishContentType.ts @@ -20,7 +20,7 @@ export function publishContentTypeTool(config: ContentfulConfig) { contentTypeId: args.contentTypeId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Get the content type first const currentContentType = await contentfulClient.contentType.get(params); diff --git a/packages/mcp-tools/src/tools/content-types/unpublishContentType.ts b/packages/mcp-tools/src/tools/content-types/unpublishContentType.ts index cf8e64cf..d5753d28 100644 --- a/packages/mcp-tools/src/tools/content-types/unpublishContentType.ts +++ b/packages/mcp-tools/src/tools/content-types/unpublishContentType.ts @@ -20,7 +20,7 @@ export function unpublishContentTypeTool(config: ContentfulConfig) { contentTypeId: args.contentTypeId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Unpublish the content type const contentType = await contentfulClient.contentType.unpublish(params); diff --git a/packages/mcp-tools/src/tools/content-types/updateContentType.ts b/packages/mcp-tools/src/tools/content-types/updateContentType.ts index 0b47f6a1..25288a31 100644 --- a/packages/mcp-tools/src/tools/content-types/updateContentType.ts +++ b/packages/mcp-tools/src/tools/content-types/updateContentType.ts @@ -39,7 +39,7 @@ export function updateContentTypeTool(config: ContentfulConfig) { contentTypeId: args.contentTypeId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Get the current content type const currentContentType = await contentfulClient.contentType.get(params); diff --git a/packages/mcp-tools/src/tools/editor-interfaces/getEditorInterface.ts b/packages/mcp-tools/src/tools/editor-interfaces/getEditorInterface.ts index d7927a7d..1aeaa390 100644 --- a/packages/mcp-tools/src/tools/editor-interfaces/getEditorInterface.ts +++ b/packages/mcp-tools/src/tools/editor-interfaces/getEditorInterface.ts @@ -24,7 +24,7 @@ export function getEditorInterfaceTool(config: ContentfulConfig) { contentTypeId: args.contentTypeId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); const editorInterface = await contentfulClient.editorInterface.get(params); diff --git a/packages/mcp-tools/src/tools/editor-interfaces/listEditorInterfaces.ts b/packages/mcp-tools/src/tools/editor-interfaces/listEditorInterfaces.ts index 42d4bc09..a4010517 100644 --- a/packages/mcp-tools/src/tools/editor-interfaces/listEditorInterfaces.ts +++ b/packages/mcp-tools/src/tools/editor-interfaces/listEditorInterfaces.ts @@ -18,7 +18,7 @@ export function listEditorInterfacesTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); const editorInterfaces = await contentfulClient.editorInterface.getMany(params); diff --git a/packages/mcp-tools/src/tools/editor-interfaces/updateEditorInterface.ts b/packages/mcp-tools/src/tools/editor-interfaces/updateEditorInterface.ts index 1c25b6c7..8c1ea285 100644 --- a/packages/mcp-tools/src/tools/editor-interfaces/updateEditorInterface.ts +++ b/packages/mcp-tools/src/tools/editor-interfaces/updateEditorInterface.ts @@ -103,7 +103,7 @@ export function updateEditorInterfaceTool(config: ContentfulConfig) { contentTypeId: args.contentTypeId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Get the current editor interface const currentEditorInterface = diff --git a/packages/mcp-tools/src/tools/entries/archiveEntry.ts b/packages/mcp-tools/src/tools/entries/archiveEntry.ts index 3d48da98..23cee0ae 100644 --- a/packages/mcp-tools/src/tools/entries/archiveEntry.ts +++ b/packages/mcp-tools/src/tools/entries/archiveEntry.ts @@ -23,7 +23,7 @@ export function archiveEntryTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Normalize input to always be an array const entryIds = Array.isArray(args.entryId) ? args.entryId : [args.entryId]; diff --git a/packages/mcp-tools/src/tools/entries/createEntry.ts b/packages/mcp-tools/src/tools/entries/createEntry.ts index 034d9da8..f8c57fd6 100644 --- a/packages/mcp-tools/src/tools/entries/createEntry.ts +++ b/packages/mcp-tools/src/tools/entries/createEntry.ts @@ -28,7 +28,7 @@ export function createEntryTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); const newEntry = await contentfulClient.entry.create( { ...params, diff --git a/packages/mcp-tools/src/tools/entries/deleteEntry.ts b/packages/mcp-tools/src/tools/entries/deleteEntry.ts index e360f49b..61a17c11 100644 --- a/packages/mcp-tools/src/tools/entries/deleteEntry.ts +++ b/packages/mcp-tools/src/tools/entries/deleteEntry.ts @@ -20,7 +20,7 @@ export function deleteEntryTool(config: ContentfulConfig) { entryId: args.entryId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // First, get the entry to check its status const entry = await contentfulClient.entry.get(params); diff --git a/packages/mcp-tools/src/tools/entries/getEntry.ts b/packages/mcp-tools/src/tools/entries/getEntry.ts index a5f86259..c669dafb 100644 --- a/packages/mcp-tools/src/tools/entries/getEntry.ts +++ b/packages/mcp-tools/src/tools/entries/getEntry.ts @@ -20,7 +20,7 @@ export function getEntryTool(config: ContentfulConfig) { entryId: args.entryId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Get the entry const entry = await contentfulClient.entry.get(params); diff --git a/packages/mcp-tools/src/tools/entries/publishEntry.ts b/packages/mcp-tools/src/tools/entries/publishEntry.ts index cd162e9f..452d1f5a 100644 --- a/packages/mcp-tools/src/tools/entries/publishEntry.ts +++ b/packages/mcp-tools/src/tools/entries/publishEntry.ts @@ -29,7 +29,7 @@ export function publishEntryTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Normalize input to always be an array const entryIds = Array.isArray(args.entryId) ? args.entryId : [args.entryId]; diff --git a/packages/mcp-tools/src/tools/entries/searchEntries.ts b/packages/mcp-tools/src/tools/entries/searchEntries.ts index beccbb58..81446e33 100644 --- a/packages/mcp-tools/src/tools/entries/searchEntries.ts +++ b/packages/mcp-tools/src/tools/entries/searchEntries.ts @@ -118,7 +118,7 @@ export function searchEntriesTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); const entries = await contentfulClient.entry.getMany({ ...params, diff --git a/packages/mcp-tools/src/tools/entries/unarchiveEntry.ts b/packages/mcp-tools/src/tools/entries/unarchiveEntry.ts index dbaef86e..94cfee94 100644 --- a/packages/mcp-tools/src/tools/entries/unarchiveEntry.ts +++ b/packages/mcp-tools/src/tools/entries/unarchiveEntry.ts @@ -23,7 +23,7 @@ export function unarchiveEntryTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Normalize input to always be an array const entryIds = Array.isArray(args.entryId) ? args.entryId : [args.entryId]; diff --git a/packages/mcp-tools/src/tools/entries/unpublishEntry.ts b/packages/mcp-tools/src/tools/entries/unpublishEntry.ts index bbc4b9fd..f9ed1b24 100644 --- a/packages/mcp-tools/src/tools/entries/unpublishEntry.ts +++ b/packages/mcp-tools/src/tools/entries/unpublishEntry.ts @@ -29,7 +29,7 @@ export function unpublishEntryTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Normalize input to always be an array const entryIds = Array.isArray(args.entryId) ? args.entryId : [args.entryId]; diff --git a/packages/mcp-tools/src/tools/entries/updateEntry.ts b/packages/mcp-tools/src/tools/entries/updateEntry.ts index 49e5c198..80f6ffe3 100644 --- a/packages/mcp-tools/src/tools/entries/updateEntry.ts +++ b/packages/mcp-tools/src/tools/entries/updateEntry.ts @@ -27,7 +27,7 @@ export function updateEntryTool(config: ContentfulConfig) { entryId: args.entryId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // First, get the existing entry const existingEntry = await contentfulClient.entry.get(params); diff --git a/packages/mcp-tools/src/tools/environments/createEnvironment.ts b/packages/mcp-tools/src/tools/environments/createEnvironment.ts index b949a8aa..b808c065 100644 --- a/packages/mcp-tools/src/tools/environments/createEnvironment.ts +++ b/packages/mcp-tools/src/tools/environments/createEnvironment.ts @@ -21,7 +21,7 @@ type Params = z.infer; export function createEnvironmentTool(config: ContentfulConfig) { async function tool(args: Params) { - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Create the environment const environment = await contentfulClient.environment.createWithId( diff --git a/packages/mcp-tools/src/tools/environments/deleteEnvironment.ts b/packages/mcp-tools/src/tools/environments/deleteEnvironment.ts index 6600756d..e26c4a18 100644 --- a/packages/mcp-tools/src/tools/environments/deleteEnvironment.ts +++ b/packages/mcp-tools/src/tools/environments/deleteEnvironment.ts @@ -19,7 +19,7 @@ export function deleteEnvironmentTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Delete the environment await contentfulClient.environment.delete(params); diff --git a/packages/mcp-tools/src/tools/environments/listEnvironments.ts b/packages/mcp-tools/src/tools/environments/listEnvironments.ts index 5bb8ea09..09e8d73f 100644 --- a/packages/mcp-tools/src/tools/environments/listEnvironments.ts +++ b/packages/mcp-tools/src/tools/environments/listEnvironments.ts @@ -39,7 +39,7 @@ export function listEnvironmentsTool(config: ContentfulConfig) { environmentId: args.environmentId || 'master', }; - const contentfulClient = createToolClient(config, clientArgs); + const contentfulClient = await createToolClient(config, clientArgs); const environments = await contentfulClient.environment.getMany({ spaceId: args.spaceId, diff --git a/packages/mcp-tools/src/tools/locales/createLocale.ts b/packages/mcp-tools/src/tools/locales/createLocale.ts index 72102db2..84cbc0d0 100644 --- a/packages/mcp-tools/src/tools/locales/createLocale.ts +++ b/packages/mcp-tools/src/tools/locales/createLocale.ts @@ -50,7 +50,7 @@ export function createLocaleTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Create the locale const newLocale = await contentfulClient.locale.create(params, { diff --git a/packages/mcp-tools/src/tools/locales/deleteLocale.ts b/packages/mcp-tools/src/tools/locales/deleteLocale.ts index 69eda7db..6f0f2dda 100644 --- a/packages/mcp-tools/src/tools/locales/deleteLocale.ts +++ b/packages/mcp-tools/src/tools/locales/deleteLocale.ts @@ -20,7 +20,7 @@ export function deleteLocaleTool(config: ContentfulConfig) { localeId: args.localeId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // First, get the locale to check its current state const locale = await contentfulClient.locale.get(params); diff --git a/packages/mcp-tools/src/tools/locales/getLocale.ts b/packages/mcp-tools/src/tools/locales/getLocale.ts index a16a2da4..c21c1eb1 100644 --- a/packages/mcp-tools/src/tools/locales/getLocale.ts +++ b/packages/mcp-tools/src/tools/locales/getLocale.ts @@ -20,7 +20,7 @@ export function getLocaleTool(config: ContentfulConfig) { localeId: args.localeId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // Get the locale const locale = await contentfulClient.locale.get(params); diff --git a/packages/mcp-tools/src/tools/locales/listLocales.ts b/packages/mcp-tools/src/tools/locales/listLocales.ts index d8b3e586..8e5f723e 100644 --- a/packages/mcp-tools/src/tools/locales/listLocales.ts +++ b/packages/mcp-tools/src/tools/locales/listLocales.ts @@ -30,7 +30,7 @@ export function listLocaleTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); const locales = await contentfulClient.locale.getMany({ ...params, diff --git a/packages/mcp-tools/src/tools/locales/updateLocale.ts b/packages/mcp-tools/src/tools/locales/updateLocale.ts index aebb44fe..86a21bd3 100644 --- a/packages/mcp-tools/src/tools/locales/updateLocale.ts +++ b/packages/mcp-tools/src/tools/locales/updateLocale.ts @@ -47,7 +47,7 @@ export function updateLocaleTool(config: ContentfulConfig) { localeId: args.localeId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); // First, get the existing locale const existingLocale = await contentfulClient.locale.get(params); diff --git a/packages/mcp-tools/src/tools/tags/createTag.ts b/packages/mcp-tools/src/tools/tags/createTag.ts index 2c0dbaaf..b5c7832a 100644 --- a/packages/mcp-tools/src/tools/tags/createTag.ts +++ b/packages/mcp-tools/src/tools/tags/createTag.ts @@ -24,7 +24,7 @@ export function createTagTool(config: ContentfulConfig) { tagId: args.id, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); const newTag = await contentfulClient.tag.createWithId(params, { name: args.name, diff --git a/packages/mcp-tools/src/tools/tags/listTags.ts b/packages/mcp-tools/src/tools/tags/listTags.ts index 4f3f412f..5e47b6b2 100644 --- a/packages/mcp-tools/src/tools/tags/listTags.ts +++ b/packages/mcp-tools/src/tools/tags/listTags.ts @@ -26,7 +26,7 @@ export function listTagsTool(config: ContentfulConfig) { environmentId: args.environmentId, }; - const contentfulClient = createToolClient(config, args); + const contentfulClient = await createToolClient(config, args); const tags = await contentfulClient.tag.getMany({ ...params, diff --git a/packages/mcp-tools/src/utils/tools.ts b/packages/mcp-tools/src/utils/tools.ts index bbcbf1ca..2b091106 100644 --- a/packages/mcp-tools/src/utils/tools.ts +++ b/packages/mcp-tools/src/utils/tools.ts @@ -15,12 +15,12 @@ export const BaseToolSchema = z.object({ * @param params - Tool parameters that may include a resource * @returns Configured Contentful client */ -export function createToolClient( +export async function createToolClient( config: ContentfulConfig, params: z.infer, ) { const clientConfig: ClientOptions = { - accessToken: config.accessToken, + accessToken: typeof config.accessToken === 'function' ? await config.accessToken() : config.accessToken, host: config.host ?? 'api.contentful.com', space: params.spaceId ?? config.spaceId, headers: {