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
| Name | Required | Description | Default |
|---|---|---|---|
| teamName | No | my-team | |
| postNumber | Yes | ||
| name | No | ||
| body_md | No | ||
| tags | No | ||
| category | No | ||
| wip | No | ||
| message | No |
Implementation Reference
- src/server.ts:180-201 (handler)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, })) })
- src/server.ts:170-179 (schema)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, })) }) )
- src/api.ts:127-144 (helper)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) }