MCP server (stdio/npm) that wraps the Reportia HTTP API. 66 curated tools for accounting, movements, commissions, mappings, cost-center reports, SIIGO, invoices, uploads. Install: npx mcp-reportia.
claude mcp add mcp-reportia -- npx -y skills{
"mcpServers": {
"mcp-reportia": {
"command": "npx",
"args": ["-y", "skills"],
"env": {
"REPORTIA_BASE_URL": "<reportia_base_url>",
"REPORTIA_TOKEN": "<reportia_token>"
}
}
}
}REPORTIA_BASE_URLREPORTIA_TOKENMCP Servers overview
# mcp-reportia
[](https://registry.modelcontextprotocol.io)
[](https://skills.sh/javalenciacai/mcp-reportia)
[](https://www.npmjs.com/package/@james.valencia/mcp-reportia)
[](./LICENSE)
Servidor **[MCP](https://modelcontextprotocol.io/)** (Model Context Protocol) independiente que envuelve la **API HTTP real de Reportia** y la expone a través del transporte `stdio` con **JSON-RPC newline-delimited**. Pensado para ser consumido por clientes MCP (Claude Desktop, Cursor, Hermes Agent, otros) con un único `npx`, sin ejecutar código de servidor propio.
> Esta capa **no** contiene lógica de negocio ni secretos propios: actúa como traductor entre el protocolo MCP y los endpoints REST de Reportia. Las credenciales se inyectan desde variables de entorno.
---
## Índice
- [Dónde está indexado](#dónde-está-indexado)
- [Instalación y uso rápido](#instalación-y-uso-rápido)
- [Variables de entorno](#variables-de-entorno)
- [Configuración en clientes MCP](#configuración-en-clientes-mcp)
- [Flujo de release](#flujo-de-release)
- [Herramientas disponibles](#herramientas-disponibles)
- [Limitaciones conocidas](#limitaciones-conocidas)
- [Seguridad](#seguridad)
- [Rutas cubiertas y omitidas](#rutas-cubiertas-y-omitidas)
- [Desarrollo local](#desarrollo-local)
- [Pruebas](#pruebas)
- [Inspección con MCP Inspector](#inspección-con-mcp-inspector)
- [Arquitectura interna](#arquitectura-interna)
- [Licencia](#licencia)
---
## Dónde está indexado
Este servidor MCP está publicado y discoverable en:
| Plataforma | URL | Formato |
| ---------- | --- | ------- |
| **MCP Registry oficial** (modelcontextprotocol.io) | `io.github.javalenciacai/mcp-reportia` | [`server.json`](./server.json) |
| **npm registry** | [`@james.valencia/mcp-reportia`](https://www.npmjs.com/package/@james.valencia/mcp-reportia) | npm package |
| **skills.sh** (Agent Skills Directory) | [`javalenciacai/mcp-reportia`](https://skills.sh/javalenciacai/mcp-reportia) | [`skills/reportia-mcp-usage/SKILL.md`](./skills/reportia-mcp-usage/SKILL.md) |
Instalación via skills.sh:
```bash
npx skills add javalenciacai/mcp-reportia --skill reportia-mcp-usage
```
---
## Flujo de release
Este repo publica automáticamente a **npm** y al **MCP Registry oficial** cuando se pushea un tag `v*` a `main`. La indexación en **skills.sh** es automática (scrapeo de GitHub).
### Configuración inicial (una sola vez)
#### Opción elegida: npm Trusted Publishing (OIDC)
La configuración vive en la **página del paquete** (no en `/settings/james.valencia/security` — esa URL es para tokens tradicionales).
1. Abre **https://www.npmjs.com/package/@james.valencia/mcp-reportia/settings** (logueado como `james.valencia` en el navegador).
2. En la sección **"Trusted Publisher"**, click en **"Add a trusted publisher"** (o "GitHub Actions" según el wording de tu versión de npmjs.com).
3. Completa el formulario con estos valores **exactos** (la doc oficial los lista así):
| Campo | Valor |
| ----- | ----- |
| Provider | **GitHub Actions** |
| Organization or user | `javalenciacai` |
| Repository | `mcp-reportia` |
| Workflow filename | `publish.yml` (solo el nombre, sin la ruta `.github/workflows/`) |
| Environment name | **(vacío)** — el workflow no usa GitHub Environments |
| Allowed actions | **npm publish** (al menos uno) |
4. Click **"Add"** o **"Save"**. npm NO valida la configuración al guardar, pero el workflow fallará en runtime si los datos no coinciden exactamente.
#### Subir el workflow a Node 24 (necesario para Trusted Publishing)
Trusted Publishing requiere `npm >= 11.5.1`, que viene incluido en **Node.js 24**. El workflow actual usa Node 22 (npm 10.9) — fallará con `ENEEDAUTH` aunque el publisher esté bien configurado.
**Lo que voy a hacer yo cuando confirmes el paso 1**: actualizar el workflow a Node 24, hacer commit, re-crear el tag v0.1.2 apuntando al nuevo commit, re-disparar el publish.
#### Verificación rápida de que está bien
Re-dispara manualmente el workflow y mira el log del job `publish-npm`:
```bash
gh workflow run Publish --ref v0.1.2
gh run watch --exit-status
```
Si dice `OK: @james.valencia/mcp-reportia@0.1.2 publicado` en el último step, está funcionando. Si vuelve a fallar, mandame el output del step "Publish" (sin el token).
#### Estado actual de los requisitos
| Plataforma | Requisito | Estado |
| ---------- | --------- | ------ |
| **npm Trusted Publishing** | Configurar publisher en `/package/@james.valencia/mcp-reportia/settings` con `javalenciacai/mcp-reportia` + `publish.yml` | **Tu turno** |
| **Workflow Node 24** | Subir a Node 24 (lo hago yo tras tu confirmación) | **Pendiente** |
| **MCP Registry** | Ninguno — usa `github-oidc` que firma el workflow automáticamente | Listo |
| **skills.sh** | Ninguno — scraping automático | Listo |
| **GitHub Release** | Permiso `contents: write` ya configurado en el workflow | Listo |
### Plan al terminar tu paso 1
Voy a ejecutar en este orden (no requiere tu input):
1. Cambiar `node-version: '22'` → `'24'` en ambos jobs del workflow publish
2. Verificar con `npm test && npm run build` local
3. Commit + push
4. Re-crear el tag v0.1.2 apuntando al nuevo commit
5. Observar el workflow `Publish` hasta `publish-npm` exitoso
6. Reportarte el resultado final (versión en npm + GitHub Release creado)
### Hacer un release
```bash
# 1. Bump de version (esto actualiza package.json y server.json automaticamente)
cd /c/james/mcp-reportia
npm version patch # 0.1.1 -> 0.1.2 (o minor/major)
# 2. Push del commit + tag a GitHub
git push origin main --follow-tags
# (npm version ya crea el tag v0.1.2 y lo pushea junto con el commit)
```
GitHub Actions se dispara automáticamente:
1. **Job `validate`** — typecheck + test + build + smoke. Verifica que `package.json.version` y `server.json.version` coincidan con el tag.
2. **Job `publish-npm`** — publica a npm via OIDC (sin tokens de larga duración).
3. **Job `publish-mcp-registry`** — publica `server.json` al MCP Registry oficial.
4. **Job `release`** — crea un GitHub Release con notas auto-generadas.
### Publicar manualmente (sin tag)
Si necesitas un release fuera del flujo normal, ve a GitHub → Actions → "Publish" → "Run workflow" y opcionalmente pasa un `version` override.
### Rollback
Si necesitas revertir una versión publicada a npm (dentro de 72h):
```bash
npm unpublish @james.valencia/mcp-reportia@0.1.2
```
Después de 72h no es posible; debes publicar un patch. El MCP Registry no soporta rollback; hay que publicar una versión superior con la corrección.
---
## Instalación y uso rápido
Una vez publicado, el consumo típico es vía `npx`:
```bash
# 1) Construir dist/ localmente (la primera vez, o al actualizar):
npm run build
# 2) Ejecutar el binario MCP directamente:
npx mcp-reportia
```
Los clientes MCP (Claude Desktop, Cursor, Hermes, etc.) **lo invocan** por ti como subproceso. No necesitas ejecutarlo a mano salvo para depurar.
---
## Variables de entorno
| Variable | Obligatoria | Descripción |
| ----------------------- | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `REPORTIA_BASE_URL` | **Sí** | URL raíz de la API de Reportia, sin barra final (p.ej. `https://reportia.example.com`). |
| `REPORTIA_TOKEN` | Condicional\* | Token Bearer. Alternativa al login por sesión. |
| `REPORTIA_EMAIL` | Condicional\* | Email para login por sesión (cookie). |
| `REPORTIA_PASSWORD` | Condicional\* | Contraseña para login por sesión (cookie). |
| `REPORTIA_COMPANY_ID` | No | `companyId` por defecto cuando la tool lo admita. Acepta entero positivo. |
| `REPORTIA_TIMEOUT_MS` | No (def. `30000`) | Timeout por petición HTTP en ms. |
| `REPORTIA_DOWNLOAD_DIR` | No (def. `./downloads`) | Carpeta donde se guardan los binarios descargados (Excel/PDF exportados). |
| `REPORTIA_USER_AGENT` | No (def. `mcp-reportia/0.1.0`) | Cabecera `User-Agent` en cada request. |
\* **Exactamente una** de las dos alternativas de auth debe estar presente:
- `REPORTIA_TOKEN` Bearer, o
- `REPORTIA_EMAIL` + `REPORTIA_PASSWORD` sesión cookie.
Si no, `loadConfig` lanza `ConfigError` al arrancar el servidor.
> ⚠️ **No** copies credenciales de `C:\james\Reportia\.env` a este repositorio. Este proyecto **no debe** contener secretos. Configúralas en el entorno del cliente MCP que lo invoque.
Revisa `.env.example` para ver todas las variables.
---
## Configuración en clientes MCP
### Claude Desktop (`%APPDATA%\Claude\claude_desktop_config.json`)
Añade una entrada dentro de `mcpServers`:
```jsonc
{
"mcpServers": {
"reportia": {
"command": "npx",
"args": ["-y", "mcp-reportia"],
"env": {
"RWhat people ask about mcp-reportia
What is javalenciacai/mcp-reportia?
+
javalenciacai/mcp-reportia is mcp servers for the Claude AI ecosystem. MCP server (stdio/npm) that wraps the Reportia HTTP API. 66 curated tools for accounting, movements, commissions, mappings, cost-center reports, SIIGO, invoices, uploads. Install: npx mcp-reportia. It has 0 GitHub stars and was last updated today.
How do I install mcp-reportia?
+
You can install mcp-reportia by cloning the repository (https://github.com/javalenciacai/mcp-reportia) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is javalenciacai/mcp-reportia safe to use?
+
javalenciacai/mcp-reportia has not been audited yet by our security agent. Review the original repository on GitHub before using it in production.
Who maintains javalenciacai/mcp-reportia?
+
javalenciacai/mcp-reportia is maintained by javalenciacai. The last recorded GitHub activity is from today, with 0 open issues.
Are there alternatives to mcp-reportia?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy mcp-reportia to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/javalenciacai-mcp-reportia)<a href="https://claudewave.com/repo/javalenciacai-mcp-reportia"><img src="https://claudewave.com/api/badge/javalenciacai-mcp-reportia" alt="Featured on ClaudeWave: javalenciacai/mcp-reportia" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!