REA
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Descripción del creador (original en inglés)
XML tools for agents: XPath queries, inspection, and schema validation in Rust.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
Pasó 3/3 revisiones · Funciona en tu computadora
Primero: ¿qué IA usas?
Elige tu app y los pasos aparecen abajo.
Funciona con Claude, pero hay que preparar algo antes
Instala Docker en tu computadora primero (una sola vez) · Solo en la app de Claude para computadora (Windows o Mac), no en la web ni en el móvil
Una sola vez; sirve para todos los servidores que necesitan Docker
SettingsDeveloperEdit Config
{
"mcpServers": {
"oxml": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/sebastienrousseau/oxml-mcp:0.0.16"
]
}
}
}Usa oxml-mcp y dime qué puedes hacer por mí; luego muéstrame una cosa✓ Si Claude dice que está usando oxml-mcp o muestra una herramienta de oxml-mcp en la respuesta, ya está conectado
Nombres de menú comprobados con la ayuda de Anthropic el 11 nov 2026 · tu pantalla puede variar un poco según la versión
ChatGPT todavía no puede conectar oxml-mcp
oxml-mcp se instala en tu computadora, pero ChatGPT solo conecta servidores que funcionan en la web
A · Usa una app que pueda conectar oxml-mcp
B · Otros en Herramientas para desarrolladores que funcionan con ChatGPT
Elegidos entre los más usados de la misma categoría, solo los que se conectan con una dirección y sin clave
Funciona con Claude Code, pero hay que preparar algo antes
Instala Docker en tu computadora primero (una sola vez)
Una sola vez; sirve para todos los servidores que necesitan Docker
Mac: pulsa Command+Espacio y escribe Terminal · Windows: abre PowerShell
claude mcp add oxml -- docker run -i --rm ghcr.io/sebastienrousseau/oxml-mcp:0.0.16Deberías ver oxml-mcp en la lista como conectado
Usa oxml-mcp y dime qué puedes hacer por mí; luego muéstrame una cosa✓ Si Claude Code dice que está usando oxml-mcp o muestra una herramienta de oxml-mcp en la respuesta, ya está conectado
Nombres de menú comprobados con la ayuda de Anthropic el 11 nov 2026 · tu pantalla puede variar un poco según la versión
Funciona con Cursor, pero hay que preparar algo antes
Instala Docker en tu computadora primero (una sola vez)
Una sola vez; sirve para todos los servidores que necesitan Docker
Usa oxml-mcp y dime qué puedes hacer por mí; luego muéstrame una cosa✓ Si Cursor dice que está usando oxml-mcp o muestra una herramienta de oxml-mcp en la respuesta, ya está conectado
Nombres de menú comprobados con la ayuda de Cursor el 11 nov 2026 · tu pantalla puede variar un poco según la versión
Funciona con VS Code, pero hay que preparar algo antes
Instala Docker en tu computadora primero (una sola vez)
Una sola vez; sirve para todos los servidores que necesitan Docker
Usa oxml-mcp y dime qué puedes hacer por mí; luego muéstrame una cosa✓ Si VS Code dice que está usando oxml-mcp o muestra una herramienta de oxml-mcp en la respuesta, ya está conectado
Nombres de menú comprobados con la ayuda de VS Code el 11 nov 2026 · tu pantalla puede variar un poco según la versión
Otras apps que usan MCP, como Windsurf, Zed o Gemini CLI, añaden servidores de forma distinta. Míralo en la lista de apps
Ver todas las apps que usan MCP →
La configuración JSON está en “Para desarrolladores”, abajo
Claude Code
claude mcp add oxml -- docker run -i --rm ghcr.io/sebastienrousseau/oxml-mcp:0.0.16Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"oxml": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/sebastienrousseau/oxml-mcp:0.0.16"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"oxml": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/sebastienrousseau/oxml-mcp:0.0.16"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"oxml": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/sebastienrousseau/oxml-mcp:0.0.16"
]
}
}
}Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
oci: ghcr.io/sebastienrousseau/oxml-mcp:0.0.16Según cómo se conecta este servidor y la documentación de cada app, comprobado el 10 nov 2026.
Se ejecutan en tu computadora en
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 12 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub sebastienrousseau, dueña del repo
Último cambio de código: hace 4 días
Usa Apache-2.0
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Pregunta, comparte un consejo o avisa de que no funciona. Ordenado por lo que la gente marcó como útil.
Aún no hay publicaciones. Sé la primera persona en preguntar o compartir.
Lo publicado aquí lo escriben usuarios, no el equipo de PopNx.
Aún no hay reseñas
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 3 de 3 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez hace 4 días, y la última versión (0.0.16) llegó al registro hace 5 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Docker en tu computadora.
En la misma categoría: REA, Netdata, Front-End Checklist
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.
Review frontend code and live pages against 386 quality-gated web development rules.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
oxml-mcp
A Model Context Protocol server that lets a model query XML instead of reading it — powered by oxml , with zero unsafe code.
Getting started
The oxml ecosystem
Reference
xml_query, xml_validate, xml_check, xml_inspect, xml_format2025-11-25 and 2026-07-28, and the two kinds of failurePractical
A client can supply XML directly as a tool argument and put only the selected results into a model prompt. count(//record) returns a count computed by the parser rather than an estimate from a pasted fragment.
The server accepts XML strings up to its strict 8 MiB source limit; it does not open paths or fetch URLs. A model constructing the complete tool argument itself still needs the XML text. The HTTP transport has its own, tighter SDK request-body limit.
The secondary argument is arithmetic. A model asked to count elements in a document it can see will approximate. xml_query with count(//record) will not.
cargo install oxml-mcp --version 0.0.16 --locked
Without a Rust toolchain, the same binary ships as an image on GHCR (the MCP registry entry points at it):
docker run --rm -i ghcr.io/sebastienrousseau/oxml-mcp:0.0.16
One binary, three ways to reach it. Every server in the suite takes the same flags.
| Command | Transport | Endpoint | Protocol revisions |
|---|---|---|---|
oxml-mcp | stdio | stdin and stdout | 2024-11-05 to 2026-07-28 |
oxml-mcp --transport streamable-http --host 127.0.0.1 --port 8000 | Streamable HTTP | http://127.0.0.1:8000/mcp | 2025-11-25 and 2026-07-28 |
oxml-mcp --transport sse --port 8001 | HTTP+SSE (legacy) | http://127.0.0.1:8001/sse, /messages/ | 2024-11-05 |
Streamable HTTP serves both current revisions on the one endpoint: a client that sends initialize gets a session and an Mcp-Session-Id; a client that names 2026-07-28 in each request's _meta is served statelessly, with server/discover in place of the handshake. Responses stream as server-sent events, and GET /mcp opens the server-to-client stream. The SSE transport is the older one, for hosts that still expect an endpoint event and a message URL.
The HTTP transports bind the loopback interface unless --host says otherwise, and they do not authenticate. Put the server behind a gateway you trust before binding a routable address. They refuse a foreign Host or a non-local Origin with 403, and --max-sessions (64 by default) caps how many sessions they hold at once; see doc/PROTOCOL.md. --version and --help do what they say.
The server speaks JSON-RPC 2.0 over stdio, so three lines are enough to see it work — the handshake, then a call — and no client is required:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"me","version":"0"}}}' \ '{"jsonrpc":"2.0","method":"notifications/initialized"}' \ '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"xml_query","arguments":{"xml":" Dune ","xpath":"//title"}}}' \ | oxml-mcp | tail -n 1
{"jsonrpc":"2.0","id":2,"result":{"resultType":"complete","content":[{"type":"text","text":"Dune"}],"structuredContent":{"count":1,"values":["Dune"]},"isError":false}}
For day-to-day use you want a client to do that for you — see Configure.
Add it to your MCP client's server list. For Claude Desktop, in claude_desktop_config.json:
{
"mcpServers": { "oxml": { "command": "oxml-mcp" } } }
For Claude Code:
claude mcp add oxml -- oxml-mcp
Without arguments the server speaks JSON-RPC 2.0 over stdin and stdout, one message per line, which is what these clients expect. A client that connects over HTTP instead points at a server started with --transport streamable-http — see Transports. There is no configuration file.
| Crate | What it is |
|---|---|
oxml | The library: parser, tree, XPath 1.0 |
xmlschema | XSD validation |
oxml-cli | The command line |
oxml-wasm | WebAssembly bindings |
| `oxml-mcp` | This crate — MCP server |
oxml-lsp | Language Server Protocol server |
oxml-json | JSON support for the language server |
All seven ship one version number, in steps of 0.0.1.
xml_queryEvaluate an XPath 1.0 expression and return the matching values.
| Argument | Type | |
|---|---|---|
xml | string | The document |
xpath | string | An XPath 1.0 expression |
namespaces | object | Optional. Prefix-to-URI bindings for the expression |
{"name":"xml_query","arguments":{"xml":"<r><t>Dune</t><t>Germinal</t></r>","xpath":"//t"}}
Dune
Germinal
One value per line. Expressions returning a number, string or boolean return that value directly, so count(//t) gives 2. Every tool also returns its answer as structuredContent, against the outputSchema it advertises — here {"count": 2, "values": ["Dune", "Germinal"]}.
xml_inspectSummarise a document's shape: root element, maximum depth, every element name with its count, and the namespaces it uses.
{"name":"xml_inspect","arguments":{"xml":"<r><t>x</t></r>"}}
Root element: r
Maximum depth: 3 Elements: r: 1 t: 1
Call this first. A model that knows the element names can write a query that works; one that guesses writes //item against a document whose elements are called record.
xml_checkReport whether a document is well-formed, with a line and column if it is not.
{"name":"xml_check","arguments":{"xml":"<a/>"}}
The document is well-formed (2 nodes).
xml_validateValidate against an XML Schema, returning every violation with the path to the element it concerns.
| Argument | Type | |
|---|---|---|
xml | string | The document |
xsd | string | The schema |
xml_formatFormat an XML document with configurable indentation (spaces) and empty element style, or minify it.
{"name":"xml_format","arguments":{"xml":"<root><item/></root>","indent":2}}
| Argument | Type | Default | |
|---|---|---|---|
xml | string | *(required)* | The document |
indent | integer | 0 | Spaces per indentation level (0 for minified) |
empty_elements | string | "self-closing" | "self-closing" ( ), "spaced" ( ), or "expanded" ( ) |
MCP over JSON-RPC 2.0, implemented by rmcp, the official Rust SDK. Two revisions are current and both are served: 2025-11-25, with an initialize handshake, and 2026-07-28, which has no handshake — each request names its revision in _meta and server/discover describes the server. Older revisions back to 2024-11-05 are accepted from a client that asks for them.
| Method | |
|---|---|
initialize | Capabilities, server info, the negotiated revision |
server/discover | The same, for the stateless revision |
tools/list | The five tools: input schema, output schema, annotations |
tools/call | Invoke one |
ping | Answered |
Every tool is annotated read-only, idempotent and closed-world, so a client can call it without asking.
The two kinds of failure are kept apart, because MCP distinguishes them and a model only ever sees one of them.
A tool that ran and could not do the job — a malformed document, an invalid expression — is a *successful* JSON-RPC response carrying isError: true. The model sees the text and can correct itself.
A request the protocol rejects — malformed JSON, an unknown method, a request with an id but no method — is a JSON-RPC error with the standard code, or an HTTP status over HTTP. Nothing ran, and the client handles it rather than the model.
| Situation | Reply |
|---|---|
| Malformed document | result, isError: true |
| Invalid XPath expression | result, isError: true |
| Schema violation | result, isError: true, with the violations as structuredContent |
| Missing or mistyped argument | result, isError: true, naming the field |
| Unknown tool | result, isError: true, naming the five that exist |
| Unknown method | error, -32601 |
id with no method | error |
| Malformed JSON | HTTP 415 over HTTP; skipped over stdio, the session continues |
A malformed document is not a crash and not a protocol error:
{"name":"xml_check","arguments":{"xml":"<a>"}}
{"content":[{"text":"…not well-formed…","type":"text"}],"isError":true}
The model reads that text and can fix the document or tell the user.
Five tools, not fourteen. Every tool description is in the model's context on every request. A server with twenty narrow tools spends more contex