All reports

@esaio/esa-mcp-server

io.github.esaio/esa · version 0.15.2 · 6,583 weekly npm downloads · audited 2026-11-03

MCPVetter badge Notes

Findings

No hidden-instruction or invisible-character findings in any tool, prompt, or resource description.

Claude Connectors Directory readiness

Checks the directory's published tool requirements that are visible from tools/list. Passing them does not guarantee acceptance.

What this server's tools can do

Not a vulnerability by itself. It tells you what an injected prompt could ask this server to do, so you can decide which tools need approval.

Supply chain

Tools (28)

NameTitleHintDescription
esa_get_teamsGet user's accessible esa teamsread-onlyRetrieves a list of esa teams that the user has access to.
esa_get_team_statsGet team statisticsread-onlyRetrieves team statistics including member count, posts count (total/WIP/shipped), comments, stars, watches, and daily/weekly/monthly active users
esa_get_team_tagsGet team tagsread-onlyRetrieves all tags used in posts within a team, along with the count of posts for each tag
esa_get_team_membersGet team membersread-onlyRetrieves all members of a team with their roles and profile information
esa_get_postGet a specific esa postread-onlyRetrieves a specific post from an esa team by post number. The response always includes backlinks_count (the number of posts referencing this one). To list the referencing posts themselves, use esa_get_post_backlinks. To…
esa_search_postsSearch Postsread-onlySearch for posts in esa.io
esa_create_postCreate a new esa postwritesCreates a new post in an esa team with optional tags, category, and WIP status.
esa_update_postUpdate an existing esa postdestructiveUpdates an existing post in an esa team by post number. You can update the title, content, tags, category, and WIP status. To ship a post (mark as complete), set wip to false - this is preferred over using esa_ship_post …
esa_append_postAppend content to an existing esa postdestructiveAppends Markdown content to the end of an existing post's body, saving it as a new revision. Unlike esa_update_post, this does not require fetching the current body first, making it ideal for adding to a post (e.g. log e…
esa_prepend_postPrepend content to an existing esa postdestructivePrepends Markdown content to the beginning of an existing post's body, saving it as a new revision. Unlike esa_update_post, this does not require fetching the current body first. Behaves the same as esa_append_post excep…
esa_get_commentGet a specific commentread-onlyRetrieves a specific comment by comment ID, with optional stargazers included.
esa_create_commentCreate a new comment on a postwritesCreates a new comment on an existing post in an esa team.
esa_update_commentUpdate an existing commentdestructiveUpdates an existing comment in an esa team by comment ID.
esa_delete_commentDelete a commentdestructiveDeletes a comment from an esa team by comment ID.
esa_get_post_backlinksGet backlinks for a specific postread-onlyRetrieves a paginated list of posts that reference (link back to) the specified post. Archived posts and WIP posts are excluded. Results are ordered by backlink registration date (newest references first).
esa_get_post_commentsGet comments for a specific postread-onlyRetrieves a list of comments for a specific post with pagination support.
esa_get_team_commentsGet team commentsread-onlyRetrieves a list of comments in a team with pagination support.
esa_get_categoriesGet categories for a specific pathread-onlyRetrieves category information and subcategories for a specific category path, with optional posts and parent categories included
esa_get_top_categoriesGet top-level categoriesread-onlyRetrieves all top-level categories for a team
esa_get_all_category_pathsGet category paths with paginationread-onlyRetrieves category paths in a team to understand the overall category structure. Perfect for category organization, cleanup, migration planning, or finding similar categories. Returns a paginated list of paths with post …
esa_archive_postArchive a postdestructiveArchives a post by moving it to the Archived/ category. If the post is in 'dev/docs', it becomes 'Archived/dev/docs'. Posts without category go to 'Archived'.
esa_ship_postShip a postdestructiveShips a post by setting wip to false. This marks the post as complete and ready to be published. Use this only when you need to ship without making other changes - if you're also updating title, content, or other fields,…
esa_duplicate_postDuplicate a postwritesDuplicates a post by creating a new WIP post with the same name and body_md as the source post. By default the duplicate is created in the source team; specify targetTeamName to duplicate into a different team.
esa_rollback_post_revisionRoll back a post to a previous revisiondestructiveRolls back a post to the specified revision, saving the restored content as a new revision.
esa_get_search_options_helpGet esa search options documentationread-onlyGet esa search syntax documentation when you need to construct complex search queries. Use this BEFORE esa_search_posts if you're unsure how to translate user's search requirements into proper esa query syntax (e.g., dat…
esa_get_markdown_syntax_helpGet esa Markdown syntax documentationread-onlyGet esa Markdown and formatting documentation when unsure about syntax. Use this BEFORE using any tools with *_md parameters (like esa_create_post, esa_update_post, esa_create_comment, esa_update_comment) if you need cla…
esa_search_helpSearch esa documentation and helpread-onlySearch esa documentation for features, terminology, and specifications. Use this when users mention esa-specific terms, ask about esa functionality, or request help with esa workflows that you're not familiar with.
esa_get_attachmentGet attachment file from esaread-onlyRetrieves an attachment file from esa with signed URLs. For supported images (JPEG, PNG, GIF, WebP) under 30MB, returns base64-encoded data. For other file types, larger images, or when forceSignedUrl is true, returns si…

Check your own setup

npx mcpvetter scan --live

Badge

Add this to a README:

[![MCPVetter](https://mcpvetter.com/badge/esaio-esa-mcp-server.svg)](https://mcpvetter.com/servers/esaio-esa-mcp-server)

Publish this server?

Get the MCPVetter verified badge, a re-audit within 24 hours of every npm release, and an email whenever tools, findings, or Claude directory readiness change. $29 per server per month. You prove ownership first, free.