MCP.Market

Pjm MCP server

online · 100% uptime
by pipeworx-io·io.github.pipeworx-io/pjm·v0.2.1

Real-time electricity market data from PJM Interconnection, the largest US grid operator (13…

B77/100grade B
What users say
No reviews yet
Be the first
Safety scan
B77/100

not scanned yet

Adoption
Growing

0 stars

Reviews

Write one

Nobody has reviewed Pjm yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Pjm tools

Tool list not cached yet. `describe` through the gateway fetches it live.

Not scanned yet. New listings are scanned within a day or two of arriving.

How Pjm compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
77/100
higher than 50% of 48,255 servers
Uptime
100%
of our recent checks; the typical remote server answers 100%
Response time
237 ms
faster than 57% of 30,031 servers

Release history: 4 versions in the registry since 2026-09-25, latest 2026-11-04, typically one every 6 days.

Install Pjm in Claude Code, Cursor or VS Code

claude mcp add --transport http pjm https://gateway.pipeworx.io/pjm/mcp
Add to Cursor

What the publisher says

From the Pjm repository's README, as published. We do not edit it. Read it on GitHub

@pipeworx/pjm

PJM Interconnection market data via Data Miner 2 — real-time LMPs, generation by fuel type and the seven-day load forecast for the largest US grid operator (13 states + DC, ~65 million people, Illinois to New Jersey).

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

Tools

or fetch ANY feed by exact name (dahrllmps, inst_load, …). The escape hatch for the hundreds of PJM feeds without a dedicated tool here.

  • pjmfeeds(feed?, rowcount?, start_row?) — list the Data Miner 2 feed catalog,

— five-minute real-time LMP with congestion and loss components.

  • pjmlmprealtime(pnodeid?, pnodename?, datetimebeginningept?, row_count?)

by transmission zone and RTO total.

  • pjmloadforecast(forecastarea?, rowcount?) — seven-day hourly load forecast

and percentage of total by fuel type.

  • pjmgenerationfuelmix(fueltype?, datetimebeginningept?, row_count?) — MW

Auth

BYO only today. Ocp-Apim-Subscription-Key header (Azure API Management). Platform fallback env var — not provisioned: PLATFORMPJMKEY.

A key is free but requires registering an account at and subscribing that account to the Data Miner 2 product. Those are two steps: a registered key that is not subscribed to the feed is refused identically to no key at all, which is why the pack's 401 message names the subscription explicitly rather than just saying "bad key".

Until the key lands, every tool refuses with a message containing requires an API key, and the pack is marked byoExpected: true in workers/gateway/src/pack-manifest.json so the vendor-key ratchet does not fail the deploy. Drop byoExpected the day PLATFORMPJMKEY is provisioned.

Data sources

{ "totalRows": N, "items": [...], "links": [...] }.

  • — the browser UI over the same feeds.
  • — the API. Documented envelope:

Traps

in this pack has been observed live. The pack normalizes the documented {totalRows, items, links} envelope and returns items as published, without renaming or reshaping individual fields. That is deliberate: a field mapping invented from documentation we could not exercise is a silent-wrong- answer waiting to happen, and returning upstream rows untouched is honest about what we actually know. Tighten this once a key exists and the real payload can be read.

  • Response shapes here are UNVERIFIED. Holding no key, no PJM response body

answers 401 with an empty body and no WWW-Authenticate header, both with no key and with a syntactically valid but unregistered one. So 401 cannot distinguish "no key" from "wrong key" from "key not subscribed to this feed". The pack says so in the error rather than guessing at a cause.

  • A 401 here tells you almost nothing. Verified 2026-09-17: api.pjm.com

representation. This pack always sets it.

  • format=json is not the default — Data Miner 2 defaults to another

filter uses Data Miner's own "M/D/YYYY HH:MM to M/D/YYYY HH:MM" syntax, not ISO-8601.

  • Times are Eastern Prevailing Time (EPT — shifts with DST), and the range

always means the date filter fell outside the feed's published range.

  • A 200 with 0 rows is treated as an error, not an empty success: it almost

Quick Start

Add to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):

{
  "mcpServers": {
    "pjm": {
      "url": "https://gateway.pipeworx.io/pjm/mcp"
    }
  }
}

What this endpoint actually serves

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Pjm: common questions

Is Pjm MCP server safe?
Mostly: it is graded B (77/100). Read the Pjm safety report
How do I install Pjm?
It runs remotely at gateway.pipeworx.io. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
Does Pjm need an API key?
Yes. The registry entry asks for PIPEWORX_API_KEY.
Is Pjm maintained?
The last commit was 40 days ago (2026-09-25). The latest release is v0.2.1.
Is Pjm up?
100% of our last 28 checks got an answer. We check remote servers about four times a day.
How does Pjm compare with other MCP servers?
safety score 77/100 (higher than 50% of 48,255 servers); uptime 100% (of our recent checks; the typical remote server answers 100%); response time 237 ms (faster than 57% of 30,031 servers). Full comparison.

More from pipeworx-io →