Skip to main content
Glama
d-kimuson

ESA MCP Server

by d-kimuson

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