Labsco
MCP SERVER

Esa.io

by scnsh

Read and write esa.io posts from a chat client — list, open, create, update and delete articles in your team, with a personal access token.

Team Wikis & Documentation Platforms
Summary
Six operations, and the write half is the point.

Read-only documentation servers are common; this one creates and updates posts, which is what makes it useful for the actual job — writing the notes up after the work, not just looking them up. That also sets the stakes: the token carries write and delete, so it can change and remove team documentation, and where you store it is a real decision. The Inspector step is a good habit here, since it lets you see exactly what a create or update does before an assistant does it unattended.

What it is

A Python MCP server for the esa.io API. It covers the full lifecycle of a post — finding it, reading it, writing it, changing it and removing it — plus the account lookup, so team documentation can be worked on from the assistant rather than the web editor.

What you get
  • The authenticated user's information — `user_get_info`
  • Posts listed from the team — `posts_get_list`
  • One post read in full — `posts_get_detail`
  • A new post created — `posts_create`
  • An existing post updated — `posts_update`
  • A post deleted — `posts_delete`
  • A way to try each call before wiring up a client: `uv run mcp run main.py` prints a URL that opens the MCP Inspector, where the tools can be exercised by hand
Requirements

An esa.io team and a personal access token generated from your user settings under external app integration. The token needs `read` for posts, `write` for creating, updating and deleting, and `read_user` for the account lookup, which is usually enabled automatically. Two values configure it: your team name and the token, set as `ESA_TEAM_NAME` and `ESA_TOKEN` in a `.env` file beside the server, or in the `env` block of your client config — and if you use the config block, keep that file out of version control. uv is required; `uv sync` installs dependencies and the client entry runs `uv` with `--directory` pointing at the absolute project path and `main.py` as the target. The pyproject name is `mcp-esa-server` (0.1.0), MIT licensed. esa.io offers a two-month free trial, which is enough to get a test team and token.