Skip to main content
Glama

update-article

Modify existing blog articles in Shopify stores by updating titles, content, summaries, tags, or author information using the article's unique identifier.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
articleIdYesThe GID of the article to update (e.g., "gid://shopify/Article/1234567890")
titleNo
bodyNo
summaryNo
tagsNo
authorNo

Implementation Reference

  • The main handler function that executes the GraphQL mutation to update the Shopify article using the provided input data.
    execute: async (input: UpdateArticleInput) => { try { const { articleId, ...updateData } = input; const mutation = gql` mutation UpdateArticle($id: ID!, $article: ArticleUpdateInput!) { articleUpdate(id: $id, article: $article) { article { id title handle body summary tags author { name } image { id url altText } } userErrors { field message } } } `; const variables = { id: articleId, article: updateData }; const data = await shopifyClient.request(mutation, variables) as { articleUpdate: { article: { id: string; title: string; handle: string; body: string; summary: string; tags: string[]; author: { name: string; } | null; image: { id: string; url: string; altText: string | null; } | null; }; userErrors: Array<{ field: string; message: string; }>; }; }; if (data.articleUpdate.userErrors.length > 0) { throw new Error( `Failed to update article: ${data.articleUpdate.userErrors .map((error) => error.message) .join(", ")}` ); } return { article: data.articleUpdate.article }; } catch (error) { console.error("Error updating article:", error); throw new Error( `Failed to update article: ${ error instanceof Error ? error.message : String(error) }` ); } }
  • Zod input schema defining the parameters for updating an article, including articleId, title, body, summary, tags, and author.
    const UpdateArticleInputSchema = z.object({ articleId: z.string().min(1).describe("The GID of the article to update (e.g., \"gid://shopify/Article/1234567890\")"), title: z.string().optional().describe("The new title for the article"), body: z.string().optional().describe("The new content for the article"), summary: z.string().optional().describe("A short summary of the article"), tags: z.array(z.string()).optional().describe("Tags for the article"), author: z.object({ name: z.string() }).optional().describe("Author information for the article") });
  • src/index.ts:242-261 (registration)
    Registers the 'update-article' tool with the MCP server, providing an inline Zod schema and a handler that delegates to the imported updateArticle.execute method.
    // Add the updateArticle tool server.tool( "update-article", { articleId: z.string().min(1).describe("The GID of the article to update (e.g., \"gid://shopify/Article/1234567890\")"), title: z.string().optional(), body: z.string().optional(), summary: z.string().optional(), tags: z.array(z.string()).optional(), author: z.object({ name: z.string() }).optional() }, async (args) => { const result = await updateArticle.execute(args); return { content: [{ type: "text", text: JSON.stringify(result) }] }; } );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/luckyfarnon/Shopify-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server