Limited release

FindEnergyRates Regulatory MCP

Retail-electricity statutes, rules, tariffs and licensing documents, each answer with its citation, effective date and official source.

What it is

A read-only Model Context Protocol server over FindEnergyRates' regulatory corpus: current retail-electricity statutes, public utility commission rules, utility tariffs and licensing documents. Each document carries its effective dates, its version history and a link to the official source.

States covered today
Call the coverage tool for the current list.
In progress
Illinois and Pennsylvania

What each answer carries

  • Citation and title, e.g. 16 TAC §25.474.
  • Effective date and how it was determined: effective_from, effective_to and date_basis (for example: stated in the document, taken from the latest stated amendment, stated per tariff sheet, or not published). An undated document says why.
  • Official URL of the source, and the retrieval date (fetched_at) of the copy we hold.
  • Paragraph outline: each paragraph's label and a short summary, so you can ask for one paragraph by its label.
  • Every held version of the document, with dates.
  • A status, relative to the date you ask about (today by default):
in_forceIn force on that date.
supersededReplaced by a later version before that date.
not_yet_in_forceAdopted, but its effective date is after that date.
proposedA proposal, never law in force. Search includes proposals only when you ask for them.
undatedNo effective date is published; whether it is in force is unknown, and the reason is given.
no_version_held_for_dateWe hold the document, but no held version applied on that date.
pending_version_not_heldAn adopted amendment is in force on that date, but we do not hold its text yet. The earlier text is not presented as in force.
covered: "no"Not covered: the corpus holds nothing for that state. The answer cites nothing.

Excerpts only, not full text. An answer quotes up to two short excerpts per document, each at most 300 characters, and never more than half a document. Every excerpt says whether it is truncated and links the official source, where the full text is.

Tools

Four read-only tools. The examples below are real calls, with the responses shortened.

get_rule

One document as in force on a date: excerpts, the paragraph outline, effective date and how it is known, the official URL and every held version. Pass a paragraph label to read that paragraph.

get_rule({ "citation": "16 TAC §25.474" })
{
  "as_of": "2026-10-27",
  "covered": "yes",
  "state": "TX",
  "result": {
    "citation": "16 TAC §25.474",
    "title": "Selection of Retail Electric Provider",
    "layer": "L2",
    "status": "in_force",
    "effective_from": "2017-03-08",
    "date_basis": "stated_single",
    "effective_date_source": "PUCT rule PDF page header: \"§25.474--1 effective date 3/08/17 (P 45625)\"",
    "official_url": "https://www.puc.texas.gov/agency/rulesnlaws/subrules/electric/",
    "fetched_at": "2026-10-01T15:03:55.336385+00:00",
    "excerpts": [
      { "text": "§25.474. Selection of Retail Electric Provider. (a) Applicability. This section applies to retail electric providers (REPs) and aggregators …",
        "truncated": true, "doc_chars": 48993,
        "official_url": "https://www.puc.texas.gov/agency/rulesnlaws/subrules/electric/" }
    ],
    "paragraphs": [
      { "chars": 305, "label": "(a)", "summary": "Applicability." },
      …
      { "chars": 1117, "label": "(j)", "summary": "Right of rescission." },
      …
    ]
  },
  "versions": [
    { "effective_from": "2017-03-08", "date_basis": "stated_single", "status": "in_force", … }
  ],
  "notices": ["Excerpts only; full text is not cleared for reuse. Not legal advice."]
}

search_regulations

Full-text search over one state's documents in force on a date. Returns ranked citations, each with one short excerpt and its dates; read a result with get_rule. An empty result is not evidence that no rule exists.

search_regulations({ "state": "TX", "query": "right of rescission", "limit": 2 })
{
  "as_of": "2026-10-27",
  "covered": "yes",
  "state": "TX",
  "query": "right of rescission",
  "results": [
    { "citation": "16 TAC §25.474",
      "title": "Selection of Retail Electric Provider",
      "status": "in_force", "effective_from": "2017-03-08",
      "excerpts": [ { "text": "business days of the request. (j) Right of rescission. A REP shall promptly provide the applicant with the terms of service document …",
                      "truncated": true, … } ],
      "rank": 2.41, … },
    { "citation": "16 TAC §25.485",
      "title": "Customer Access and Complaint Handling",
      "status": "in_force", "effective_from": "2023-04-26",
      "rank": 2.29, … }
  ],
  "notices": ["Excerpts only; full text is not cleared for reuse. Not legal advice."]
}

coverage

What the corpus holds for one state, layer by layer (statutes, rules, rulemakings, tariffs, licensing): documents in force, how many are dated, the sources and when each was last checked.

coverage({ "state": "OH" })
{
  "as_of": "2026-10-27",
  "covered": "yes",
  "state": "OH",
  "layers": [
    { "layer": "L1", "layer_name": "statute", "status": "not_held",
      "registered_not_held": [
        { "citation": "R.C. 4928.08", "held": false, "access_mode": "manual",
          "official_url": "https://codes.ohio.gov/ohio-revised-code/section-4928.08", … }, … ] },
    { "layer": "L2", "layer_name": "rule", "status": "current",
      "documents_current": 21, "dated": 19, "pct_dated": "90.5",
      "last_valid_fetch": "2026-10-27T00:26:26.717098+00:00",
      "checks": [
        { "source_id": "oh-l2-oac-ch4901-1-21", "title": "OAC Chapter 4901:1-21 CRES provider rules",
          "last_run": "2026-10-26T07:16:33.732534+00:00", "result": "no open change signals" }, … ] },
    …
  ],
  "freshness_gate": { "status": "pass", "reasons": [] },
  …
}

recent_changes

New document versions and change signals (rulemakings, dockets) for one state since a date, newest first.

recent_changes({ "state": "TX", "since": "2026-10-01" })
{
  "state": "TX",
  "since": "2026-10-01",
  "covered": "yes",
  "totals": { "new_versions": 226, "events": 14 },
  "new_versions": [
    { "citation": "16 TAC §25.499",
      "title": "Acknowledgement of Risk Requirements for Certain Commercial Contracts ",
      "status": "in_force", "effective_from": "2022-01-06",
      "first_version": true, … },
    …
  ],
  "events": [
    { "citation": "PUCT Project No. 59288 (Review of §25.107)",
      "signal_url": "https://interchange.puc.texas.gov/search/documents/?controlNumber=59288&itemNumber=13",
      "summary": "Project/Docket 59288 item 13 (10/15/2026, RULES & PROJECTS, PRJ): TEXAS REGISTER ACKNOWLEDGMENT OF RECEIPT - Effective 11.04.2026",
      "status": "open", … },
    …
  ],
  "notices": ["Excerpts only; full text is not cleared for reuse. Not legal advice.",
              "226 of 226 new versions are first versions: documents seen for the first time, not amendments.", …]
}

Who it is for

  • Supplier compliance teams tracking the rules and tariffs that apply to them.
  • Brokers and aggregators checking licensing and disclosure requirements.
  • Researchers who need dated, citable regulatory text.
  • AI assistants that need to answer with citations rather than from memory.

Access

The server is in a limited release. Every request needs a bearer key, and keys are rate-limited per day. Connection URL:

https://findenergyrates.com/api/reg/mcp

Request access

Email info@findenergyrates.com with your name, your company and what you will use it for. There is no self-serve signup yet.

Connecting

Once you have a key, add the server to Claude Code:

claude mcp add --transport http fer-regulatory https://findenergyrates.com/api/reg/mcp \
  --header "Authorization: Bearer YOUR_KEY_HERE"

Or add it to any MCP client that speaks remote HTTP servers with custom headers:

{
  "mcpServers": {
    "fer-regulatory": {
      "type": "http",
      "url": "https://findenergyrates.com/api/reg/mcp",
      "headers": { "Authorization": "Bearer YOUR_KEY_HERE" }
    }
  }
}

Start a new session after adding it. Send the key in the Authorization header only; we store only a hash of it.

Not legal advice. This is general information drawn from public regulatory sources. It is not legal advice. Verify anything you rely on against the official source linked in every answer.