mcp-avangenio-services
v0.1.1
Published
MCP server that reports the status of Avangenio's services (Internet, bandwidth, batteries, electrical service)
Maintainers
Readme
mcp-avangenio-services
MCP server (stdio transport) that exposes the status of Avangenio's services. It downloads the plain text published at https://status.avangenio.com/data.txt, parses it, and returns it as normalized JSON.
Tool
avangenio_get_status
Takes no arguments. Returns the current status with normalized values (booleans and numbers) plus a raw object with the original pairs exactly as they arrive from the source.
{
"lastUpdate": "Tue Aug 4 07:30:01 CDT 2026",
"internetStatus": "OK",
"internetOk": true,
"bandwidthMbps": 31.8,
"batteryPercent": 21,
"electricalServiceOk": false,
"raw": {
"Ultima actualizacion": "Tue Aug 4 07:30:01 CDT 2026",
"Internet Status": "OK",
"Ancho de Banda por Usuario": "31.80 Mbps",
"Estado de las baterías": "21.00%",
"Servicio Eléctrico Estatal": "NO"
}
}Any missing or uninterpretable field is returned as null; unknown keys are kept only in raw, so the tool does not break if the source adds new lines.
Installation
The server is published to npm, so you don't need to clone or build anything —
point your MCP client at it with npx and it will be downloaded on first use.
Claude Code
Add it with the CLI:
claude mcp add avangenio -- npx -y mcp-avangenio-servicesOr add it manually to your .mcp.json:
{
"mcpServers": {
"avangenio": {
"command": "npx",
"args": ["-y", "mcp-avangenio-services"]
}
}
}Claude Desktop
Edit claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"avangenio": {
"command": "npx",
"args": ["-y", "mcp-avangenio-services"]
}
}
}Then restart Claude Desktop.
Other MCP clients
Any stdio-capable MCP client works. Use:
- command:
npx - args:
["-y", "mcp-avangenio-services"]
Global install (optional)
If you prefer a fixed binary instead of npx:
npm install -g mcp-avangenio-servicesThe command is then available as mcp-avangenio-services, so your MCP config
becomes "command": "mcp-avangenio-services" with no args.
Requirements
- Node.js 18 or higher (uses native
fetchandAbortSignal.timeout). - Network access to the status endpoint. The panel may be IP-restricted
on the server (nginx); if you get a
403error, run the MCP from a network with allowed access tostatus.avangenio.com.
Try it out
Launch the MCP Inspector
against the published package and call avangenio_get_status:
npx @modelcontextprotocol/inspector npx -y mcp-avangenio-servicesDevelopment
Built with TypeScript + @modelcontextprotocol/sdk over stdio, bundled with
tsdown, tested with Vitest, and managed with pnpm. It mirrors the structure and
conventions of mcp-server-redmine.
git clone https://github.com/jesusr00/mcp-avangenio-services.git
cd mcp-avangenio-services
pnpm install
pnpm build # generates dist/index.mjs (ESM) and dist/index.js (CJS)To run your local build from an MCP client, point it at the built entry point:
{
"mcpServers": {
"avangenio": {
"command": "node",
"args": ["/absolute/path/to/mcp-avangenio-services/dist/index.mjs"]
}
}
}Scripts
pnpm dev # build in watch mode
pnpm test # tests (Vitest)
pnpm test:coverage
pnpm typecheck # tsc --noEmit
pnpm lint # eslint (zero warnings)
pnpm format # prettier --writeStructure
src/
├── index.ts # entry: McpServer + StdioServerTransport
├── client/avangenio.ts # downloads the data.txt
├── tools/
│ ├── index.ts # registerAllTools
│ ├── shared.ts # ok / err / withErrorHandling
│ └── status/
│ ├── definition.ts # tool metadata
│ ├── index.ts # server registration
│ ├── parse.ts # pure parser (text -> AvangenioStatus)
│ ├── schema.ts # input schema (zod)
│ └── status.ts # handler
└── types/ # ToolResult, AvangenioStatusContributing
Contributions are welcome! Please read CONTRIBUTING.md for the development workflow and guidelines. To report a vulnerability, follow SECURITY.md.
