State legislatures and Congress are tracked as official source systems, not as isolated news events. The useful unit is movement: introduced, amended, advanced, passed, signed, or stalled.
Aggregate legal-source intelligence
Track the public record of American law as one data layer.
Harbor Legal Independent Index watches bills, laws, and higher-court rulings from official American legal sources, then turns that movement into aggregate records that can power reports, dashboards, APIs, and future MCP tools.
Court coverage stays intentionally narrow: federal appeals circuits and the Supreme Court. The goal is to capture rulings that reshape interpretation, not every dispute in the country.
Reports are the first public output. The next layer is a clean aggregate endpoint for source status and legal movement, shaped so MCP tools can ask focused questions later.
What the aggregate should answer
Questions worth exposing through an API
Public interface path
Small steps toward MCP access
The public JSON surface is intentionally tiny: `/api/reports` exposes the current report catalog and keeps the site readable by people and machines.
Add a read-only endpoint for source coverage, freshness, and collection state before exposing raw legal records. This keeps the first API cheap and safe.
Wrap the aggregate endpoints as tools such as source lookup, jurisdiction movement, and topic drift. Auth can stay simple until there is user-specific saved data.
Build order
Keep the project cheap and walk-away safe
Reports and source inventory
Publish PDFs and keep the public site clear about what is covered, what is still in collection, and what is only planned.
Read-only aggregate API
Expose source freshness, jurisdiction movement, and report metadata through bounded JSON endpoints before building account features.
Legal record search
Let users query bills, laws, and higher-court rulings once the stored data model is stable enough to support it honestly.
MCP and saved views
Open machine access first for aggregate public data, then add private saved views only when there is a real user need.