Запрашивайте локальные XML-документы с помощью XPath и структурированных инструментов в изолированной среде только для чтения.
Также известен как sezzlee/mcp, xml, @sezzlee/xml-mcp
- Звёзды
- 1
- Инструменты
- 7
- Загрузки, 30 дней
- —
- Последняя версия
- 0.5.1
- Последний коммит
- 13 нояб. 2026 г.
- Лицензия
- MIT
Что такое Sezzlee XML MCP?
Sezzlee XML — это MCP server. Запрашивайте локальные XML-документы с помощью XPath и структурированных инструментов в изолированной среде только для чтения. Он предоставляет 7 инструментов, например list_documents, describe_document, read_node.
Сводка сгенерирована из README проекта
О Sezzlee XML MCP server
Sezzlee XML предоставляет изолированную среду только для чтения для выполнения запросов к локальным XML-файлам. Он предназначен для разработчиков, которым необходимо анализировать структурированные данные в таких файлах, как .xml, .xsd, .svg или .config. Сервер запускается локально через Node.js на macOS, Linux или Windows и требует передачи абсолютного пути к корневому каталогу в качестве аргумента командной строки при настройке.
Пользователи взаимодействуют с сервером через специальные инструменты, такие как select_xpath для выполнения выражений XPath 1.0 и project_records для преобразования повторяющихся элементов в строки и столбцы. Он также включает инструменты для вывода списков документов, описания структур, поиска текстовых значений и выполнения агрегаций, таких как вычисление суммы или среднего значения. Для обеспечения стабильности сервер использует архитектуру на базе воркеров, где парсинг происходит в отдельном потоке.
Производительность регулируется с помощью кэша документов, который удерживает определенное количество файлов в памяти. Для очень больших файлов, превышающих лимит в 8 MiB, сервер переходит в режим chunked mode. В этом состоянии некоторые инструменты, такие как select_xpath и aggregate_document, становятся недоступны, однако project_records продолжает работать, позволяя продолжать анализ данных.
Взято из README проекта. Каждый вариант использования проверен на соответствие цитате из него.
Как установить Sezzlee XML MCP
Форматы проверены 10 ноя 2026Добавить в CursorДобавить в GooseУстановка Sezzlee XML MCP в Claude Code
$ claude mcp add xml -- npx -y @sezzlee/xml-mcpУстановка Sezzlee XML MCP в Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"xml": {
"command": "npx",
"args": [
"-y",
"@sezzlee/xml-mcp"
]
}
}
}Установка Sezzlee XML MCP в VS Code
.vscode/mcp.json
{
"servers": {
"xml": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@sezzlee/xml-mcp"
]
}
}
}Установка Sezzlee XML MCP в VS Code CLI
$ code --add-mcp '{"name":"xml","type":"stdio","command":"npx","args":["-y","@sezzlee/xml-mcp"]}'Установка Sezzlee XML MCP в Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"xml": {
"command": "npx",
"args": [
"-y",
"@sezzlee/xml-mcp"
]
}
}
}Установка Sezzlee XML MCP в Codex
$ codex mcp add xml -- npx -y @sezzlee/xml-mcpУстановка Sezzlee XML MCP в Codex config.toml
~/.codex/config.toml
[mcp_servers.xml] command = "npx" args = ["-y", "@sezzlee/xml-mcp"]
Установка Sezzlee XML MCP в Gemini CLI
$ gemini mcp add -s user xml npx -- -y @sezzlee/xml-mcpУстановка Sezzlee XML MCP в Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"xml": {
"command": "npx",
"args": [
"-y",
"@sezzlee/xml-mcp"
]
}
}
}Инструменты Sezzlee XML MCP 7
Определено из READMElist_documentsdescribe_documentread_nodefind_in_documentselect_xpathproject_recordsaggregate_document
| list_documents | — | |
| describe_document | — | |
| read_node | — | |
| find_in_document | — | |
| select_xpath | — | |
| project_records | — | |
| aggregate_document | — |
Автоматические проверки
Запущено 13 нояб. 2026 г.Полный отчёт →Прошло наши автоматизированные проверки. Это не аудит безопасности: изучите код и предоставьте серверу минимально необходимый доступ. Как работают проверки
- Связанный и доступный исходный репозиторийsezzlee/mcp is public and reachablegithub.com/sezzlee/mcp ↗Пройдено
- Пакет указывает этот репозиторий как источник@sezzlee/xml-mcp names sezzlee/mcp as sourcenpmjs.com/package/@sezzlee/xml-mcp ↗Пройдено
- Происхождение сборки (аттестация Sigstore)Sigstore attestation for @sezzlee/xml-mcpnpmjs.com/package/@sezzlee/xml-mcp/v/0.5.1#provenance ↗Пройдено
- Open source лицензия (OSI)MITspdx.org/licenses/MIT.html ↗Пройдено
- Коммит или релиз за последний годLast commit or release 2026-11-09github.com/sezzlee/mcp ↗Пройдено
- OpenSSF ScorecardНе проверялось
- Имя пакета не похоже на популярный пакетNo popular package one edit away from @sezzlee/xml-mcpПройдено
- Нет критических предупреждений в пакете или его зависимостях8 resolved dependencies checked; no critical advisoryosv.dev ↗Пройдено
- Нет скрытых инструкций для модели7 tool descriptions and the README read; no override phrases, credential paths or hidden charactersПройдено
- Деструктивные инструменты помеченыNo tool named like delete, drop or execПройдено
- Удалённая конечная точка отвечает на рукопожатие MCPНе проверялось
README
Открыть на GitHub@sezzlee/xml-mcp
A read-only, sandboxed MCP server that reads local XML documents.
It builds on @sezzlee/file-core; it does not depend on
@sezzlee/core and imports nothing from packages/lab/xml-lab.
Documentation: https://docs.sezzlee.app/docs/xml-mcp/introduction — a tutorial, task guides, and the tool, error-code and limit reference generated from this package.
Quick start
The root is the only argument, as an absolute path; there is no environment variable for it.
{
"mcpServers": {
"xml": {
"command": "npx",
"args": ["-y", "@sezzlee/xml-mcp", "/path/to/xml/root"]
}
}
}
With Claude Code:
claude mcp add xml -- npx -y @sezzlee/xml-mcp /path/to/xml/root
Readable extensions: .xml, .xsd, .xhtml, .svg, .csproj, .props, .targets, .config,
.resx. An extension like .config is not a guarantee of XML — a parse error there is expected
behavior. Requires Node.js 22 or 24 on macOS (x64, arm64), glibc Linux (x64, arm64) or Windows x64.
Tools
| Tool | What it does |
|---|---|
list_documents |
Lists readable XML documents under the root without parsing them |
describe_document |
Document element, every namespace with a stable alias, structure counts, repeated-element candidates, and an address read_node takes |
read_node |
A bounded, ordered slice of the tree as flat depth-first records |
find_in_document |
Literal text in text nodes, attribute values or both |
select_xpath |
One XPath 1.0 expression, exactly as written, with a typed result |
project_records |
A repeated element as rows and named columns, with a status per cell |
aggregate_document |
Counts, distinct counts and, with numericMode: binary64, sums and averages per group |
Every argument, error code and limit is listed in the reference.
A document over the 8 MiB resident ceiling is read in a reduced-capability chunked mode:
select_xpath, find_in_document and aggregate_document are unavailable there, while
project_records still works.
Configuration
createXmlMcpServer(root, options) takes two optional settings; the CLI
always uses the defaults.
| Option | Default | Meaning |
|---|---|---|
documentCacheSize |
4 |
Documents kept resident in memory at once (1–64) |
maxConcurrentListings |
4 |
Concurrent list_documents calls |
createXmlMcpServer(root, {
documentCacheSize: 4,
maxConcurrentListings: 4,
});
documentCacheSize (S) is the single knob; the worker pool's capacity is
derived as W = 2S, and the invariant W >= 2S-1 is pinned by a test — the
worker keeps a document alive while the store still holds it, so its map must
fit every store entry plus the one being adopted. This is a budget, not
enforcement: worker.resourceLimits bounds the JS heap, not WASM linear
memory, so exceeding the budget is a process crash rather than a clean
resource_limit error. Measured cost is 9.25-10.08x the source byte count,
so roughly 81 MiB resident per document at the 8 MiB ceiling; the default
S=4 is safe on the smallest supported host.
Rules
Parsing happens in the worker. The main process only ever holds a
serializable handle; a WASM pointer never crosses the boundary. No disposal
hook was needed on @sezzlee/file-core's document store because of this.
Layout follows the worker/host boundary. engine/ is the worker-side
graph and never names host/ or tools/; model/ and primitives/ are the
shared vocabulary between the two sides. index.ts, cli.ts,
xml-worker.ts and server.ts stay at the root — the tarball entry point,
bin, the CI tarball check and the ../package.json read respectively tie
them there.
The worker entry never imports the host surface. src/xml-worker.ts
only sees node:worker_threads, node:buffer, libxml2-wasm and a
type-only protocol; a lint rule enforces this. A worker returns a code
string, and the host side constructs the error object.
DOCTYPE is refused before parsing. The prolog scanner runs in the main
process; doc.dtd is only the second check. Measured: XML_PARSE_NO_XXE
does not block the internal DTD subset.
The worker's stdout never mixes into the parent's fd 1. It is isolated
with stdout: true; on stdio MCP, a single stray line breaks JSON-RPC.
diag is off in production and cannot be turned on through an
environment variable: it costs 24.9% and its raw report carries an engine
pointer.
Unsupported encodings are refused before parsing. The prolog scanner
applies the XML 1.0 Appendix F four-byte autodetection; the UCS-4 and EBCDIC
families get unsupported_encoding. Measured: the previous scanner missed
DOCTYPE in these families.
libxml2-wasm is pinned to exact 0.7.2. A caret would silently
invalidate the F0-01 integrity record; the CI tarball checker enforces this.
Development
pnpm turbo run build --filter=@sezzlee/xml-mcp
pnpm turbo run test --filter=@sezzlee/xml-mcp
pnpm turbo run check-types --filter=@sezzlee/xml-mcp
Run tests through Turbo, not pnpm --filter @sezzlee/xml-mcp test: the bare
filter skips dependsOn: ["^build"].
A change to a tool's arguments, an error code or a limit changes the generated reference in
apps/docs; run pnpm --filter @sezzlee/docs gen and commit the result, or
pnpm turbo run validate --filter=@sezzlee/docs fails.
Large-document tests are opt-in and skipped by default; set
SEZZLEE_XML_LARGE=1 to run them.
Вопросы о Sezzlee XML MCP
Как добавить Sezzlee XML MCP в Claude Code?
Выполните claude mcp add xml -- npx -y @sezzlee/xml-mcp в терминале. Добавьте --scope user, чтобы сервер был доступен во всех проектах.
Как добавить Sezzlee XML MCP в Cursor?
Откройте ~/.cursor/mcp.json и добавьте сервер в mcpServers, используя конфигурацию Cursor из раздела установки выше.
Какие инструменты предоставляет Sezzlee XML MCP?
Он предоставляет 7 инструментов, включая list_documents, describe_document, read_node, find_in_document, select_xpath.
Какие расширения файлов может читать этот сервер?
Сервер поддерживает .xml, .xsd, .xhtml, .svg, .csproj, .props, .targets, .config и .resx.
Как сервер обрабатывает очень большие XML-файлы?
Документы, размер которых превышает лимит оперативной памяти в 8 MiB, считываются в режиме ограниченных возможностей (chunked mode), при котором инструменты select_xpath, find_in_document и aggregate_document недоступны.
Может ли сервер изменять мои файлы?
Нет, сервер работает только в режиме чтения и изолирован в пределах одной папки.