@pipeworx/exec-changes
Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/exec-changes’s. Install: one-click buttons
Connect to just the @pipeworx/exec-changes pack
https://gateway.pipeworx.io/exec-changes/mcp — only @pipeworx/exec-changes’s own tools, nothing else in the catalog.
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 2
Executive and director appointments/departures from public filings: SEC 8-K Item 5.02 and Form 3 for a US-listed company, UK Companies House officer appointments/resignations, and a cross-company signal feed over the two SEC sources.
Tools
exec_changes(company, since?, limit?)— officer/director change events for ONE company:{date, person, role, change: appointed|departed|role_change, source, filing_url, excerpt}.companyaccepts a name, US ticker, SEC CIK, or UK Companies House number; an ambiguous plain name is tried against BOTH registries. US 8-K events carry a deterministic excerpt of the Item 5.02 text and a best-effort person/role extraction (nulls when the filing’s wording doesn’t match a known pattern — the excerpt and filing_url are always present either way).exec_changes_feed(since?, sources?, sector?, limit?)— recent change events ACROSS companies, a signal feed rather than a lookup.sourcesdefaults to["sec_8k","sec_form3"];"companies_house"and"sos_entities"are accepted values that answer a clear, loud error rather than a silent empty (see Data sources below). No excerpt or person/role in the feed, by design — see “SEC egress” below.
Names and roles only, never an individual’s address — see “Personal data” below.
Auth
Composite auth, inherited from the two upstream packs this one calls rather than re-implements:
- SEC 8-K / Form 3: keyless.
- UK Companies House: platform key (
PLATFORM_COMPANIES_HOUSE_KEY) — the SAME key thecompanies-housepack already uses, not a new one, with BYO override via_apiKeyexactly as that pack documents. If no key is available (platform key unset and no BYO key passed),exec_changeson a name/number that could be UK reports that leg as failed in itsattemptsarray rather than throwing outright, as long as the US leg (if also tried) succeeds.
This pack also reads (never writes) the sec-insider pack’s own hosted
tables (sec_insider_submissions, sec_insider_owners) for the Form 3 leg,
via the gateway’s standard data-connection binding — not a new credential.
exec_changes_removals (migration 238) is the one new table this pack owns
— see “Personal data”.
Data sources
- https://efts.sec.gov/LATEST/search-index (SEC EDGAR full-text search) —
via the
insider-tradingpack’sinsider_8ktool (compound call, not re-implemented).exec_changesfilters itsitemsfor codes starting5.02.exec_changes_feed’s cross-company scan queries this endpoint directly (q=\"Item 5.02\"&forms=8-K), capped to 2 pages (~200 hits) per call. - https://data.sec.gov/submissions/CIK{cik}.json — fetched once per
exec_changescall (not per filing) to resolve each matched 8-K’sprimaryDocumentpath. Only covers a filer’s “recent” filings; a match outside that window getsfiling_urlbut no excerpt, with a note saying why. sec_insider_submissions/sec_insider_owners— thesec-insiderpack’s own index of SEC’s quarterly Forms 3/4/5 bulk archive, read here read-only, filtered todocument_type = '3'andis_officer = 'Y' OR is_director = 'Y'. This is the Form 3 “new officer/director” signal; no XML re-parsing happens in this pack, since that loader already did it.- https://api.company-information.service.gov.uk — via the
companies-housepack’ssearch_companiesandget_officerstools (compound call).appointed_on/resigned_onper officer map directly tochange: appointed/departed. Companies House has no free cross-company feed endpoint (officer data is per-company only), which is whyexec_changes_feedrefusessources: ["companies_house"]with an explanation instead of silently returning nothing. - FL officer changes (
sos_entities) are a planned fourth source, pending thesos-entitiespack.exec_changes_feedaccepts it as asourcesvalue today and answers a clear “not available yet” — a hook, not a TODO buried in code.
SEC egress is shared across the whole fleet (CLAUDE.md, fleet #1245).
exec_changes bounds itself to one submissions-JSON fetch plus at most 5
document fetches per call (EXCERPT_FETCH_LIMIT); exec_changes_feed never
fetches a filing document at all. Any 429 from SEC stops further fetching
immediately and the response says so, rather than retrying or going quietly
empty.
Personal data. Per Bruce’s 2026-10-08 names-and-roles ruling: this pack
serves officer/director/manager NAMES and ROLES, with the source, and never
an individual’s address — the companies-house pack’s officer record carries
one, and this pack simply never copies that field into its own event objects
(dropped at the point the event is built, not filtered out afterward).
exec_changes_removals (migration 238) is the removal list the ruling
requires: both tools check it on every call and silently exclude any matching
name, reporting a redacted_count when they do. A removal-list read failure
fails the WHOLE call loudly rather than risk serving an unfiltered name.
Tools
- exec_changes — Executive and director appointments/departures for ONE company, from public filings: SEC 8-K Item 5.02 and Form 3 (initial ownership) for a US-listed company, or Companies House officer appointments/r
- exec_changes_feed — Recent executive/director change events ACROSS companies — a signal feed, not a per-company lookup. Sources: sec_8k (SEC 8-K Item 5.02, item codes and filing metadata only — no excerpt in the feed; ca
Tools
exec_changes— Executive and director appointments/departures for ONE company, from public filings: SEC 8-K Item 5.02 and Form 3 (initial ownership) for a US-listed company, or Companies House officer appointments/rexec_changes_feed— Recent executive/director change events ACROSS companies — a signal feed, not a per-company lookup. Sources: sec_8k (SEC 8-K Item 5.02, item codes and filing metadata only — no excerpt in the feed; ca