npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mcp-avangenio-services

v0.1.1

Published

MCP server that reports the status of Avangenio's services (Internet, bandwidth, batteries, electrical service)

Readme

mcp-avangenio-services

npm version CI License: MIT

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-services

Or 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-services

The 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 fetch and AbortSignal.timeout).
  • Network access to the status endpoint. The panel may be IP-restricted on the server (nginx); if you get a 403 error, run the MCP from a network with allowed access to status.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-services

Development

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 --write

Structure

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, AvangenioStatus

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for the development workflow and guidelines. To report a vulnerability, follow SECURITY.md.

License

MIT