Atlas / MCP servers / pipeworx-io / mcp-openei-urdb

mcp-openei-urdbSAFE

mcp/pipeworx-io/mcp-openei-urdb

OpenEI Utility Rate Database (URDB) MCP

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
2 2r · 0w · 0d
Transport
stdio · streamable-http
License
MIT
Stars
0
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

NREL's Utility Rate Database (URDB) — US electricity tariffs: residential, commercial and industrial rate schedules with their energy charges by tier and time-of-use period, demand charges, fixed monthly charges, net-metering treatment and effective dates, keyed to the utility's EIA id.

Part of Pipeworx — an MCP gateway connecting AI agents to 1683+ live data sources.

Tools

  • urdb_search_rates(address? | latitude+longitude | utility | eia_id, sector?, detail?, approved_only?, limit?, offset?, _apiKey?) —

search tariffs.

  • urdb_rate_detail(label, _apiKey?) — the full structure of one tariff,

including the 12x24 month-by-hour period schedules a bill calculation needs.

  • urdb_utilities_for_location(address? | latitude+longitude | filter, _apiKey?) —

which utilities serve a location, with tariff counts and how many are current.

Auth

The OpenEI API takes an api_key. NREL's public `DEMO_KEY` is accepted and returns real rows (verified 2026-09-17), so this pack works with no configuration at a low rate limit — it is not a gated pack.

Callers who exceed the DEMOKEY limit pass their own free NREL key as `apiKey`. Free key:

A platform key would be read from the injected _platformKey argument (PLATFORM_NREL_KEY). It is not declared as platformKeyEnv in the pack manifest and must not be until the secret actually exists: the gateway is at Cloudflare's 250-text-binding cap, and declaring the flag without the secret would route rate questions to a tool that could only refuse.

Data sources

  • — rate search and detail.
  • — utility name directory.

developer.nrel.gov/api/utility_rates/v3.json was not reachable from our egress on 2026-09-17 (connection failure, not an HTTP error) and is not used.

Traps

Every one of these returns HTTP 200.

Read from source at commit 5bfe5d2c4fb2OBSERVED · 2026-10-11
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add mcp-openei-urdb -- npx -y @pipeworx/[email protected]
claude-desktop
{
  "mcpServers": {
    "mcp-openei-urdb": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/[email protected]"
      ]
    }
  }
}
03

Exposed tools (2)

2 read · 0 write · 0 destructive.

ToolRiskDescription
urdb_search_ratesreadAUTHORITATIVE for US electricity tariffs: search the NREL Utility Rate Database for electricity rate schedules by location, utility name or EIA utility id, and get each tariff\
urdb_utilities_for_locationreadFind which electric utilities serve a US location, with how many tariffs each has in the NREL rate database, which sectors they cover, and how many of those tariffs are still current. Answers
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (1 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (1)

LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, tsx, typescript, @cloudflare/workers-types
Why it matters. 4 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha 5bfe5d2c4fb2full audit observations/trust-audit/mcp-server/pipeworx-io__mcp-openei-urdb.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-115bfe5d2c4fb2SAFEB89first audit
06

Questions

What is the mcp-openei-urdb MCP server?

OpenEI Utility Rate Database (URDB) MCP

What tools does mcp-openei-urdb expose?

2 in total: 2 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is mcp-openei-urdb safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does mcp-openei-urdb need?

No credential environment variables were found in its source, so it appears to need none.

How does mcp-openei-urdb run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @pipeworx/mcp-openei-urdb at 0.1.1.

How current is this page?

The grade is for one exact copy of the source (5bfe5d2c4fb2), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement