GEML — a plain-text document format built to be edited in place, one section at a time

by @geml-spec · io.github.geml-spec/geml

One section in, one section out — on Markdown/GEML files, bad writes refused.

OnlineRemote + local
Category
Developer tools
Connection
Remote (HTTP)
Tools
9 reported
Status
Online

Connect it to your AI

Claude Code

claude mcp add --transport http geml https://geml-mcp.supermarket.workers.dev/mcp

Claude, ChatGPT, Cursor and other apps

Add it as a custom connector with this URL (Streamable HTTP):

https://geml-mcp.supermarket.workers.dev/mcp

Or run it locally (npm)

claude mcp add geml -- npx -y @geml/geml@1.13.0

Cursor, VS Code and other apps (mcp.json)

{
  "mcpServers": {
    "geml": {
      "url": "https://geml-mcp.supermarket.workers.dev/mcp"
    }
  }
}

Tools it offers

9 tools, as the server itself reported during our check on Oct 31, 2026.

  • geml_listList every addressable block in a GEML document — its address, kind and heading text — in one call, with no paging. Call this FIRST: what it returns is what every other tool here addresses, and it is cheaper and more rel
  • geml_findSearch block CONTENT in the document; each hit is one `<name>\t<address>` row. geml_list says what a document contains, this says which block holds the words — as an address that pastes straight into geml_get or geml_set
  • geml_getRead ONE block from a GEML document instead of the whole file: only that block comes back, typically a few percent of the document. Pass the `address` geml_list prints as `id` — it also reaches blocks with no `#id`; to l
  • geml_checkValidate a GEML document without changing it: returns every diagnostic with a stable `code`, a severity and a line, and an empty list means the document is valid. Use it to confirm a document is sound before reporting wo
  • geml_toConvert a WHOLE document and get the result back as text — the read half of the CLI's `geml <file> --to <fmt>`. `to: "geml"` on a Markdown file is the importer, the one thing the block tools cannot do; `to: "md"` project
  • geml_setReplace ONE block and leave every other byte untouched — prefer this to rewriting a file. For content that does not exist yet use geml_add; to remove a block, geml_delete. The replacement is validated before it is writte
  • geml_addInsert new content — one or more blocks, or prose — at the end of the document (`position: append`) or before/after the block named by `anchor`. Use this for content that does not exist yet; to change a block that does,
  • geml_deleteRemove one or more blocks, each named by an id or any address geml_list prints; a filter (`=== type`, `{key=value}`) removes every block it matches. Each block takes the blank line that separated it from its neighbours,
  • geml_renameRename a block id AND every reference to it in the same document, in one id-boundary-safe write. Use this rather than geml_set or a text search-and-replace, which would also hit ids that merely share a prefix. A Markdown

Questions

What is the GEML — a plain-text document format built to be edited in place, one section at a time MCP server?

One section in, one section out — on Markdown/GEML files, bad writes refused. It is made by @geml-spec and listed in the official MCP Registry as io.github.geml-spec/geml. MCP (Model Context Protocol) is the open standard that lets AI apps like Claude, ChatGPT and Cursor use outside tools.

How do I add GEML — a plain-text document format built to be edited in place, one section at a time to Claude?

In the Claude app or claude.ai, open Settings, then Connectors, choose "Add custom connector" and paste https://geml-mcp.supermarket.workers.dev/mcp. In Claude Code, run: claude mcp add --transport http geml https://geml-mcp.supermarket.workers.dev/mcp

How do I add GEML — a plain-text document format built to be edited in place, one section at a time to ChatGPT?

ChatGPT can use remote MCP servers as connectors. In ChatGPT settings, under Apps and Connectors, turn on developer mode if asked, create a new connector and paste https://geml-mcp.supermarket.workers.dev/mcp.

How do I add GEML — a plain-text document format built to be edited in place, one section at a time to Cursor?

Open Cursor settings, go to MCP, choose "Add new MCP server" (or edit ~/.cursor/mcp.json) and add: { "mcpServers": { "geml": { "url": "https://geml-mcp.supermarket.workers.dev/mcp" } } }

Does GEML — a plain-text document format built to be edited in place, one section at a time work right now?

Yes. It responded when we last checked on 31 Oct 2026. We check remote MCP servers every day.

What can GEML — a plain-text document format built to be edited in place, one section at a time do?

It gives your AI 9 tools, including geml_list, geml_find, geml_get, geml_check, geml_to. The full list is on this page.

Is this your server? Get the badge for your README
chen.media/mcp badge

Markdown (GitHub README)

[![Listed on chen.media/mcp](https://chen.media/mcp/badge/github-geml-spec-geml.svg)](https://chen.media/mcp/github-geml-spec-geml)

HTML (switches to dark mode on its own)

<a href="https://chen.media/mcp/github-geml-spec-geml"><picture><source media="(prefers-color-scheme: dark)" srcset="https://chen.media/mcp/badge/github-geml-spec-geml.svg?theme=dark"><img src="https://chen.media/mcp/badge/github-geml-spec-geml.svg" alt="Listed on chen.media/mcp" height="40"></picture></a>

More in Developer tools

See all