Claude Marketplaces
SkillsMCP serversMarketplacesPluginsDigestAdvertise
Submit

LLMond Highlights

This week in Claude is LLMond Highlights now. A weekly email, free.

Skills by category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP servers by category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control
Claude Marketplaces

An independent directory of skills, plugins and MCP servers for Claude Code. Not affiliated with Anthropic.

Browse

  • Skills
  • MCP servers
  • Marketplaces
  • Plugins
  • Weekly digest
  • Skill index
  • MCP index
  • Marketplace index
  • Plugin index

Site

  • About
  • Submit
  • Advertise
  • Feedback
  • Privacy
  • llms.txt
  • Plugins reference

Maker

  • Snug
  • Agent Caffeine
  • knobs
  • Wax
  • Vectoys
  • mertduzgun.com
by Mert Düzgün
MCP servers/Documents & Knowledge
geml-spec avatar

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

geml-spec/geml

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

GitHub stars
31
tools
9
transport
STDIO, HTTP
last updated
Nov 10, 2026
View on GitHubSave

Install

From registry metadata
$ npx add-mcp https://geml-mcp.supermarket.workers.dev/mcp --name geml

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

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

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 9 tools

Verified live against the running server on Nov 6, 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 reliable than reading the file to see what is in it. Rows ma...3 params

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 ma...

Parameters* required
namestring
The document's file name, e.g. notes/spec.geml or README.md — it decides whether the text is read as GEML or as Markdown (a `.md` name), and it is how the document is called in messages. Default: d...
source*string
The document's full text. This server keeps no files: what you send is the document.
withinstring
Optional: only look inside the blocks this selector names, e.g. `#install` for a section or `=== table` for every table. It takes the same selector forms as geml_get's `id`.
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 addres...6 params

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 addres...

Parameters* required
caseboolean
Match case exactly (default: case-insensitive)
headboolean
Add the matching line as a third column
namestring
The document's file name, e.g. notes/spec.geml or README.md — it decides whether the text is read as GEML or as Markdown (a `.md` name), and it is how the document is called in messages. Default: d...
pattern*string
Text to look for inside block bodies
source*string
The document's full text. This server keeps no files: what you send is the document.
withinstring
Optional: only look inside the blocks this selector names, e.g. `#install` for a section or `=== table` for every table. It takes the same selector forms as geml_get's `id`.
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....6 params

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....

Parameters* required
id*string
What to read: a block id (with or without `#`), a `## Heading` line (its whole section), `=== type` for every block of a type, `=== code {lang=py}` or `{.warn}` for every block carrying those attri...
namestring
The document's file name, e.g. notes/spec.geml or README.md — it decides whether the text is read as GEML or as Markdown (a `.md` name), and it is how the document is called in messages. Default: d...
partstring
How much of the block to return (default: whole). For a SECTION these cut it three ways: `head` is the heading line, `intro` everything under it up to its first subheading, `body` everything under...one of whole · head · intro · body
source*string
The document's full text. This server keeps no files: what you send is the document.
viewboolean
Read THROUGH an `embed` block to the entity block it stands for, following a multi-layer chain to its end. An `embed` has no content of its own, so this is the only way to see what it points at; on...
withinstring
Optional: only look inside the blocks this selector names, e.g. `#install` for a section or `=== table` for every table. It takes the same selector forms as geml_get's `id`.
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...2 params

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...

Parameters* required
namestring
The document's file name, e.g. notes/spec.geml or README.md — it decides whether the text is read as GEML or as Markdown (a `.md` name), and it is how the document is called in messages. Default: d...
source*string
The document's full text. This server keeps no files: what you send is the document.
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 f...4 params

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 f...

Parameters* required
fromstring
Override the input format, which is otherwise inferred from the extension (.md -> md, .json -> json, else geml).one of geml · md · json
namestring
The document's file name, e.g. notes/spec.geml or README.md — it decides whether the text is read as GEML or as Markdown (a `.md` name), and it is how the document is called in messages. Default: d...
source*string
The document's full text. This server keeps no files: what you send is the document.
tostring
Target format. Default is the CLI's: a GEML input becomes json, a Markdown input becomes geml. `html` is a whole page — large, and not writable from here.one of json · md · geml · html
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...5 params

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...

Parameters* required
body*string
The replacement text
id*string
Which block to replace: an id (with or without `#`), a `@<hex>` content address from `geml_list` for a block with no id, or `L27`/`L27-58` for the smallest block holding those lines. Must match exa...
namestring
The document's file name, e.g. notes/spec.geml or README.md — it decides whether the text is read as GEML or as Markdown (a `.md` name), and it is how the document is called in messages. Default: d...
partstring
What to replace (default: whole). `intro` replaces a section's opening — everything under the heading up to its first subheading — and leaves every subsection byte-identical, which is what makes a...one of whole · head · intro · body
source*string
The document's full text. This server keeps no files: what you send is the document.
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`...5 params

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`...

Parameters* required
anchorstring
The block the insertion is relative to — an id, or any address geml_list prints; it must name one block. Required for before/after
content*string
The GEML fragment to insert
namestring
The document's file name, e.g. notes/spec.geml or README.md — it decides whether the text is read as GEML or as Markdown (a `.md` name), and it is how the document is called in messages. Default: d...
position*string
Where to insertone of append · before · after
source*string
The document's full text. This server keeps no files: what you send is the document.
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...3 params

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...

Parameters* required
ids*array
The blocks to remove: ids or addresses
namestring
The document's file name, e.g. notes/spec.geml or README.md — it decides whether the text is read as GEML or as Markdown (a `.md` name), and it is how the document is called in messages. Default: d...
source*string
The document's full text. This server keeps no files: what you send is the document.
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 changi...4 params

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 changi...

Parameters* required
namestring
The document's file name, e.g. notes/spec.geml or README.md — it decides whether the text is read as GEML or as Markdown (a `.md` name), and it is how the document is called in messages. Default: d...
new*string
New id
old*string
Current id
source*string
The document's full text. This server keeps no files: what you send is the document.

Sponsors

Promote your product hereReach 125k+ visitors monthlyPromote your product hereReach 125k+ visitors monthlyAgent CaffeineSponsoredClose your lid, come back to finished workSnugSponsoredThe clipboard manager for the AI eraPromote your product hereReach 125k+ visitors monthlyWaxSponsoredBlock anything with supervision, without erasing your iPhonePromote your product hereReach 125k+ visitors monthlyknobsSponsoredSee your site on any phone, any day, in any language

Readme

MCP Toplist Glama MCP server score Mentioned in Awesome MCP Servers Mentioned in Awesome AI Plugins Mentioned in Awesome Markdown

GEML


View the full README on GitHub

Details

Repository
github.com/geml-spec/geml
Website
geml-spec.github.io
Category
Documents & Knowledge
Package
@geml/geml
Transport
STDIO, HTTP
Registry
MCP registry, active
Tools verified
Nov 6, 2026

Related Documents & Knowledge MCP servers

View all
1nonatofabio avatarLocal FAISS MCP Servernonatofabio/local_faiss_mcpLocal FAISS vector database for RAG with document ingestion, semantic search, and MCP prompts.30stars
2verygoodplugins avatarMCP Evernoteverygoodplugins/mcp-evernoteEvernote note management with OAuth and ENML conversion29stars
3pixell-global avatarsayoupixell-global/sayouPersistent knowledge workspace for AI agents. Versioned files, search, and MCP tools.27stars
4cdnsteve avatarRemembrallMCPcdnsteve/remembrallmcpPersistent knowledge memory for AI agents. Hybrid search, code graph, pgvector.24stars
5saravananjaichandar avatarWorld Model Mcpsaravananjaichandar/world-model-mcpTemporal knowledge graph for codebases with constraint enforcement at the edit boundary.24stars
6yantrikos avatarYantrikdb Mcpyantrikos/yantrikdb-mcpCognitive memory for AI agents — semantic recall, knowledge graph, and contradiction detection24stars