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

MCP-сервер над текстовым форматом с именованными блоками: агент читает и правит одну секцию по адресу, а не весь файл. Пригодится, когда документ растёт и каждая перезапись бьёт по контексту.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 29
- Автор: geml-spec
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/geml-spec/geml
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/mcp/geml-a-plain-text-document-format-built-to-be-edited-in-place-one-section-at-a-t

## Что делает

GEML — текстовый формат, где у каждого блока есть имя, и MCP-сервер, который по этому имени работает. Агент запрашивает секцию `#key-features` вместо целого файла: в контекст попадает она одна, сколько бы документ ни рос. Глаголы короткие — `list`, `find`, `get`, `set`, `replace`.

Внутри блока адресуемо всё. Ячейка таблицы `#fy[2]["Q1"]`, лист JSON-блока `#intake["fields"][1]["name"]` — у каждого значения уже есть координата, и `set` попадает ровно в неё. `history save` кладёт ревизию в `README.md.gemlhistory` рядом с документом, оттуда правку можно прочитать или откатить. Конвертировать ничего не нужно: `geml list README.md` и `geml get README.md '#key-features'` работают на вашем `.md`, и файл остаётся `.md`.

Подключение идёт либо через удалённый endpoint по HTTP, либо локально командой `npx -y @geml/geml`, для второго нужен Node.js. Формат `=== code {#hello lang=python}` одинаков для кода, таблиц, диаграмм и метаданных, так что учить отдельный синтаксис под каждый тип не приходится. Если держите исходник в `.geml`, экспорт `--to md` собирается из него, и разойтись этим двум негде.

## Требования
- Нужно: Node.js (команды через npx)
- Удалённый сервер: `https://geml-mcp.supermarket.workers.dev/mcp`

## Установка

### Claude Code (родная платформа)

1. **Командой платформы: удалённый сервер**
```bash
claude mcp add --transport http geml https://geml-mcp.supermarket.workers.dev/mcp
```

2. **Командой платформы**
```bash
claude mcp add geml-a-plain-text-document-format-built-to-be-edited-in-place-one-section-at-a-t -- npx -y @geml/geml
```

### Codex

1. **Командой платформы: удалённый сервер**
```bash
codex mcp add geml-a-plain-text-document-format-built-to-be-edited-in-place-one-section-at-a-t --url https://geml-mcp.supermarket.workers.dev/mcp
```

2. **Командой платформы**
```bash
codex mcp add geml-a-plain-text-document-format-built-to-be-edited-in-place-one-section-at-a-t -- npx -y @geml/geml
```

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "geml-a-plain-text-document-format-built-to-be-edited-in-place-one-section-at-a-t": {
            "url": "https://geml-mcp.supermarket.workers.dev/mcp"
        }
    }
}
```
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "geml-a-plain-text-document-format-built-to-be-edited-in-place-one-section-at-a-t": {
            "command": "npx",
            "args": [
                "-y",
                "@geml/geml"
            ]
        }
    }
}
```

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "geml-a-plain-text-document-format-built-to-be-edited-in-place-one-section-at-a-t": {
            "type": "http",
            "url": "https://geml-mcp.supermarket.workers.dev/mcp"
        }
    }
}
```
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "geml-a-plain-text-document-format-built-to-be-edited-in-place-one-section-at-a-t": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@geml/geml"
            ]
        }
    }
}
```

### Gemini CLI

1. **Командой платформы: удалённый сервер**
```bash
gemini mcp add -t http geml-a-plain-text-document-format-built-to-be-edited-in-place-one-section-at-a-t https://geml-mcp.supermarket.workers.dev/mcp
```

2. **Командой платформы**
```bash
gemini mcp add geml-a-plain-text-document-format-built-to-be-edited-in-place-one-section-at-a-t npx -y @geml/geml
```

## Когда брать
- прочитать одну секцию README, не втягивая файл в контекст
- переписать блок кода по имени, оставив остальные байты нетронутыми
- достать отдельную ячейку таблицы или лист из JSON-блока
- откатить правку к сохранённой ревизии документа
- найти блок, в котором лежала заменяемая строка

## Примеры запросов агенту
- Покажи все секции `README.md` и прочитай только `#key-features`.
- Замени текст в секции `#key-features` и сохрани ревизию с сообщением `tighten intro`.
- Достань значение ячейки `#fy[2]["Q1"]` из `doc.geml`.

## Похожие
- [Reactive Resume](https://affpapa.org/nevibecode/mcp/reactive-resume.md) — MCP-сервер · ★ 44874
- [Sui Knowledge Base (kapa.ai)](https://affpapa.org/nevibecode/mcp/sui-knowledge-base-kapaai.md) — MCP-сервер · ★ 7784
- [Claude Code Ultimate Guide](https://affpapa.org/nevibecode/mcp/claude-code-ultimate-guide.md) — MCP-сервер · ★ 6237
- [Zotero MCP](https://affpapa.org/nevibecode/mcp/zotero-mcp.md) — MCP-сервер · ★ 5548
- [RevoGrid DataGrid MCP Pro](https://affpapa.org/nevibecode/mcp/revogrid-datagrid-mcp-pro.md) — MCP-сервер · ★ 3450
- [Claude Code Explorer MCP](https://affpapa.org/nevibecode/mcp/codeaashu-claude-code-explorer-mcp.md) — MCP-сервер · ★ 3409

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
