Skip to main content
Glama

update_esa_post

Modify existing esa.io posts by updating content, metadata, or status using the ESA MCP Server's API integration.

Instructions

Update an existing post in esa.io. Required parameters: postNumber. Optional parameters: name, body_md, tags, category, wip, message.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
teamNameNomy-team
postNumberYes
nameNo
body_mdNo
tagsNo
categoryNo
wipNo
messageNo

Implementation Reference

  • Handler function that processes the input for update_esa_post, calls the ApiClient.updatePost method, and returns a formatted response object.
    async (input) => await formatTool(async () => { const { teamName, postNumber, ...updateData } = input return client .updatePost(teamName, postNumber, updateData) .then((data) => ({ success: true, number: data.number, full_name: data.full_name, url: data.url, wip: data.wip, created_at: data.created_at, updated_at: data.updated_at, message: data.message, kind: data.kind, tags: data.tags, category: data.category, revision_number: data.revision_number, created_by: data.created_by, updated_by: data.updated_by, })) })
  • Zod schema for validating the input parameters of the update_esa_post tool.
    { teamName: z.string().default(getRequiredEnv("DEFAULT_ESA_TEAM")), postNumber: z.number(), name: z.string().optional(), body_md: z.string().optional(), tags: z.array(z.string()).optional(), category: z.string().optional(), wip: z.boolean().optional(), message: z.string().optional(), },
  • src/server.ts:167-202 (registration)
    MCP server.tool registration for the update_esa_post tool, including description, input schema, and handler.
    server.tool( "update_esa_post", "Update an existing post in esa.io. Required parameters: postNumber. Optional parameters: name, body_md, tags, category, wip, message.", { teamName: z.string().default(getRequiredEnv("DEFAULT_ESA_TEAM")), postNumber: z.number(), name: z.string().optional(), body_md: z.string().optional(), tags: z.array(z.string()).optional(), category: z.string().optional(), wip: z.boolean().optional(), message: z.string().optional(), }, async (input) => await formatTool(async () => { const { teamName, postNumber, ...updateData } = input return client .updatePost(teamName, postNumber, updateData) .then((data) => ({ success: true, number: data.number, full_name: data.full_name, url: data.url, wip: data.wip, created_at: data.created_at, updated_at: data.updated_at, message: data.message, kind: data.kind, tags: data.tags, category: data.category, revision_number: data.revision_number, created_by: data.created_by, updated_by: data.updated_by, })) }) )
  • Helper method in ApiClient class that handles the actual API call to update an ESA post using the generated ESA API client.
    async updatePost( teamName: string, postNumber: number, post: Partial<PostInput> ) { return this.callApi(() => patchV1TeamsTeamNamePostsPostNumber( teamName, postNumber, { post }, { headers: { Authorization: `Bearer ${this.apiKey}`, }, } ) ).then((response) => response.data) }

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/d-kimuson/esa-mcp-server'

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