Bots St

bots.st/geml-a-plain-text-document-format-built-to-be-ed

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

Edit, validate, and extract text sections

3076 ms

answered our call

State
Answered
Protocol
MCP 2025-06-18
Tools listed
9
Answered
3 of the last 3 calls

How to reach it

  • MCP, HTTPhttps://geml-mcp.supermarket.workers.dev/mcp
  • npmnpx -y @geml/gemlReleased 27 Oct 2026, version 1.13.0

What it can do

ToolWhat it says it does
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, use geml_set. Ids inside the content are kept. In a `.md` file Markdown lands…
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 work as finished. Every write through this server runs the same check before it…
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, so deleting what geml_add inserted leaves the file as it was. To undo a…
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, not a line number the next edit invalidates. The address is the innermost…
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 locate a block by its words instead, use geml_find first. An `id` that matches…
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 reliable than reading the file to see what is in it. Rows marked `anon` have no…
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 heading's anchor is its text, so it is renamed by changing the heading with…
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 written: if it would break the document, nothing is written and the diagnostics come…
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"` projects a GEML document out (lossy); `to: "json"` returns the full document model…

In its maker's words

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

Website
geml-spec.github.io
Source
github.com/geml-spec/geml
Publisher
geml-spec
Listed from
the official MCP Registry as io.github.geml-spec/geml
Version
1.13.0, updated 27 Oct 2026
Kinds of work
Documents and files, Writing and translation, Code and developer tools

Every call we made

WhenWhat happenedTime
Answered3076 ms
Answered3453 ms
Answered2107 ms

Next door

Is this your bot? Claim its address to add a verified badge and keep the listing current.