Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
A Model Context Protocol (MCP) server for esa.io
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
ESA_TEAM, ESA_ACCESS_TOKENValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"esa": {
"command": "npx",
"args": [
"-y",
"@koki-develop/esa-mcp-server"
],
"env": {
"ESA_TEAM": "your-value",
"ESA_ACCESS_TOKEN": "your-value"
}
}
}
}Run this in your terminal
claude mcp add esa --env ESA_TEAM=your-value --env ESA_ACCESS_TOKEN=your-value -- npx -y @koki-develop/esa-mcp-serverFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"esa": {
"command": "npx",
"args": [
"-y",
"@koki-develop/esa-mcp-server"
],
"env": {
"ESA_TEAM": "your-value",
"ESA_ACCESS_TOKEN": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"esa": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@koki-develop/esa-mcp-server"
],
"env": {
"ESA_TEAM": "your-value",
"ESA_ACCESS_TOKEN": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account koki-develop, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: ESA_TEAM, ESA_ACCESS_TOKEN
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.3.2) reached the registry 14 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Reelsaw
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Drive a self-hosted Reelsaw: turn long videos into vertical clips, edit, re-render and export them.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
[!IMPORTANT]
An official MCP server has been released. Please use the official server going forward.
- esa公式のローカルMCPサーバーを公開しました - ReleaseNotes/2025/09/17 - docs.esa.io
A Model Context Protocol (MCP) server for esa.io.
Before using this MCP server, you need to generate a personal access token from your esa.io team:
https:// .esa.io/user/applicationsYou can run the server either via npx or Docker.
Add the following configuration to your MCP client:
{
"mcpServers": { "esa": { "command": "npx", "args": [ "-y", "@koki-develop/esa-mcp-server@latest" ], "env": { "ESA_TEAM": " ", "ESA_ACCESS_TOKEN": " " } } } }
Replace and with your team name and personal access token.
If you prefer Docker, use the following configuration:
{
"mcpServers": { "esa": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "ESA_TEAM", "-e", "ESA_ACCESS_TOKEN", "ghcr.io/koki-develop/esa-mcp-server:latest" ], "env": { "ESA_TEAM": " ", "ESA_ACCESS_TOKEN": " " } } } }
To enable read-only mode that only allows read operations, add the --readonly flag.
Using npx:
{
"mcpServers": { "esa": { "command": "npx", "args": [ "-y", "@koki-develop/esa-mcp-server@latest", "--readonly" ], "env": { "ESA_TEAM": " ", "ESA_ACCESS_TOKEN": " " } } } }
Using Docker:
{
"mcpServers": { "esa": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "ESA_TEAM", "-e", "ESA_ACCESS_TOKEN", "ghcr.io/koki-develop/esa-mcp-server:latest", "--readonly" ], "env": { "ESA_TEAM": " ", "ESA_ACCESS_TOKEN": " " } } } }
In read-only mode, only the following operations are available:
get_posts - retrieve postsget_post - retrieve a specific postget_tags - retrieve tagsget_post_comments - retrieve post commentsWrite operations (create_post, update_post, delete_post, create_post_comment, update_comment, delete_comment) are disabled.
| Tool | Description |
|---|---|
get_posts | Retrieve a list of posts from the esa team. Supports search queries, filtering, sorting, and pagination. Returns post metadata including title, content, tags, categories, author information, and engagement metrics (comments, stars, watches). Optionally includes comments and stargazers with the include parameter. Supports nested inclusion like 'comments,comments.stargazers'. Note: Post content (body_md) is truncated to 300 characters with a body_truncated field indicating if truncation occurred to reduce context size. |
get_post | Retrieve a specific post from the esa team by post number. Returns complete post details including title, content (markdown), tags, category, author information, revision history, and engagement metrics. Optionally includes comments and stargazers. Supports nested inclusion like 'comments,comments.stargazers'. |
create_post | Create a new post in the esa team. Requires a title and optionally accepts content, tags, category, WIP status, and other metadata. Returns the created post information including the assigned post number and URL. |
update_post | Update an existing post in the esa team. Requires a post number and optionally accepts updated content, tags, category, WIP status, and other metadata. Returns the updated post information including revision details. |
delete_post | Delete an existing post from the esa team. Requires a post number. The post will be permanently deleted and cannot be recovered. Returns a confirmation message upon successful deletion. |
| Tool | Description |
|---|---|
get_tags | Get a list of all tags used in the esa team. Returns tags with their names and the number of posts they are attached to, sorted by post count in descending order. Supports pagination. |
| Tool | Description |
|---|---|
get_post_comments | Retrieve a list of comments for a specific post from the esa team. Requires a post number and supports pagination. Returns comment metadata including content, author information, timestamps, and engagement metrics (stars). |
create_post_comment | Create a new comment on an existing post in the esa team. Requires a post number and comment content in Markdown format. Returns the created comment information including ID, content, timestamps, and author details. |
update_comment | Update an existing comment on a post in the esa team. Requires a comment ID and new content in Markdown format. Returns the updated comment information including content, timestamps, and author details. |
delete_comment | Delete an existing comment from the esa team. Requires a comment ID. The comment will be permanently deleted and cannot be recovered. Returns a confirmation message upon successful deletion. |
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright (c) 2025 Koki Sato