90trust / 100

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

by geml-mcp.supermarket.workers.dev in Documents & files

MCP serverPassing, checked 3 h ago

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

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

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
165 ms typical, 165 ms slowest 5%
Last check
3 h ago
Next check
in 3 h

How to call it

Add it to any MCP client that supports remote servers.

{
  "mcpServers": {
    "geml-a-plain-text-document-format-built-to-be-edited-in-plac": {
      "type": "http",
      "url": "https://geml-mcp.supermarket.workers.dev/mcp"
    }
  }
}

9 tools

  • geml_list

    List 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 marke

  • geml_find

    Search 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 i

  • geml_get

    Read 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

  • geml_check

    Validate 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 sam

  • geml_to

    Convert 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

  • geml_set

    Replace 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 th

  • geml_add

    Insert 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` fi

  • geml_delete

    Remove 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

  • geml_rename

    Rename 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

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTime
3 h agoPassed200165 ms