Reported issues for openfec-mcp-server
Pod holds 16 of 17 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.
Back to openfec-mcp-server.
Most discussed
bug(pagination): preserve approximate count semantics
Server version
0.8.0
mcp-ts-core version
0.12.3
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
stdio
OS
macOS 26.1
Description
High-volume OpenFEC endpoints label some pagination counts as approximate with is_count_exact: false, but the
service layer discards that field. Tools then present the count as an unqualified total in both structuredContent
and content[].
fetchPage and fetchSeek both normalize pagination without carrying…
Read the thread · 2026-08-31 · closed · 2 comments
bug(search_legal): reject citations upstream cannot parse
Server version
0.8.4
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
HTTP (Streamable HTTP)
Description
/legal/search/ silently ignores a *_regulatory_citation or *_statutory_citation value it cannot parse and answers HTTP 200 with the type unfiltered. openfec_search_legal forwards the citation as given and echoes it in search_criteria, so a citation missing its title prefix reads as an applied filter.
Steps to…
Read the thread · 2026-09-25 · closed · 1 comment
bug(format): legal records render nested fields as raw JSON
Server version
0.8.3
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
HTTP (Streamable HTTP)
Description
Nested fields on legal records reach renderValue's object catch-all in format-helpers.ts and render in content[] as inline JSON.stringify output. renderRecord's field renderers apply only to a plain-object value, so none can reach an array.
| Record | openfec_search_legal | openfec_get_legal_document |
|:--|:--|:--|…
Read the thread · 2026-09-24 · closed · 1 comment
bug(candidate resource): principal_committees reflects current designation, not the latest campaign
Server version
0.8.2
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
stdio
Description
openfec://candidate/{candidate_id} builds principal_committees from /candidate/{id}/committees/?designation=P, which filters on each committee's current designation with no cycle. The field can list long-dormant campaigns and omit the committee that actually ran the latest campaign once it has been redesignated. Same root cause as the…
Read the thread · 2026-09-23 · closed · 1 comment
feat(calendar): add House district filter for election dates
Use case
openfec_lookup_calendar's election_dates mode filters by state, office, and year but not House district, so district-specific special elections stay mixed with statewide and other-district rows even though OpenFEC's /election-dates/ exposes election_district. Verified live today: CA House 2026 returns 6 rows spanning districts 01, 14, and statewide; election_district=14 alone returns exactly the 2 district-14 rows.
Related: #26, #27
Proposed behavior
Add an…
Read the thread · 2026-08-31 · closed · 1 comment
bug(search_expenditures): make election period explicit
Server version
0.8.0
mcp-ts-core version
0.12.3
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
HTTP (Streamable HTTP)
OS
macOS 26.1
Description
openfec_search_expenditures describes cycle as a two-year election cycle, but mode: "by_candidate" leaves OpenFEC's election_full parameter unset. The OpenFEC
API defaults it to true, so the tool silently returns
the candidate's full election period while…
Read the thread · 2026-08-31 · closed · 1 comment
bug(prompts): resolve cycle-specific principal committees
Server version
0.8.0
mcp-ts-core version
0.12.3
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
HTTP (Streamable HTTP)
OS
macOS 26.1
Description
Both campaign prompts resolve a candidate's principal committee with openfec_search_committees(candidate_id, designation: "P"), which reflects a committee's current designation. A committee whose designation or name has since changed can't be found this way for the cycle being investigated — reproduced live…
Read the thread · 2026-08-31 · closed · 1 comment
bug(search_legal): structuredContent carries the same total as both total_count and totalCount
Server version
0.7.1
mcp-ts-core version
0.12.3
Runtime
Bun
Runtime version
1.4.0
Transport
stdio
OS
macOS 26.1
Description
openfec_search_legal puts the same total on structuredContent twice under two casings. src/mcp-server/tools/definitions/search-legal.tool.ts declares total_count in its output schema and returns it from the handler, and separately declares totalCount in its enrichment block and sets it with…
Read the thread · 2026-08-25 · closed · 1 comment
Most recent
bug(election resources): empty results and office rejections give the caller nothing to act on
Server version
0.7.1
mcp-ts-core version
0.12.3
Runtime
Bun
Runtime version
1.4.0
Transport
stdio
OS
macOS 26.1
Description
The three election resources leave the caller with no way forward in two separate cases: an empty race list, and a rejected office code.
Empty results carry no explanation. fetchElection adds a truncation_notice only when pagination.pages > 1; nothing is added when the list is empty. openfec_lookup_elections already has…
Read the thread · 2026-08-25 · closed · 1 comment
bug(search_legal): from_hit advertises offsets past the upstream 10,000-result window
Server version
0.7.1
mcp-ts-core version
0.12.3
Runtime
Bun
Runtime version
1.4.0
Transport
stdio
OS
macOS 26.1
Description
openfec_search_legal's from_hit advertises a range the upstream cannot serve, and the failure it produces
misdirects the caller.
from_hit is declared z.number().int().min(0).default(0) in
src/mcp-server/tools/definitions/search-legal.tool.ts, which emits
{"type":"integer","minimum":0,"maximum":9007199254740991} in…
Read the thread · 2026-08-25 · closed · 1 comment
bug(format): candidate-scoped expenditure rows render the committee object as raw JSON
Server version
0.7.1
mcp-ts-core version
0.12.3
Runtime
Bun
Runtime version
1.4.0
Transport
stdio
OS
macOS 26.1
Description
openfec_search_coordinated_expenditures and openfec_search_expenditures (itemized) render
each row's nested committee object as one JSON.stringify blob in content[] whenever the
query is scoped by candidate_id instead of committee_id.
renderValue in src/mcp-server/tools/definitions/utils/format-helpers.ts ends…
Read the thread · 2026-08-25 · closed · 1 comment
bug(committee resource): do not hide totals fetch failures
Server version
0.7.1
mcp-ts-core version
0.11.0
Runtime
Bun
Runtime version
1.3.14
Transport
HTTP (Streamable HTTP)
Description
The openfec://committee/{committee_id} resource suppresses every error from its totals sub-fetch:
fec.getCommitteeTotals(committeeId, { per_page: 1 }, ctx).catch(() => null)
getCommitteeTotals already normalizes OpenFEC's own not-found response to an empty page (service layer, design decision 11). The genuine "no…
Read the thread · 2026-08-17 · closed · 1 comment
bug(search_legal): normalize upstream highlight markup
Server version
0.7.1
mcp-ts-core version
0.11.0
Runtime
Bun
Runtime version
1.3.14
Transport
HTTP (Streamable HTTP)
Description
OpenFEC wraps the matched term in every legal-search highlight in <em> / </em>. openfec_search_legal forwards the tags unchanged into structuredContent and renders them unchanged into Markdown content[].
The trimming block in src/mcp-server/tools/definitions/search-legal.tool.ts caps highlights at three entries and…
Read the thread · 2026-08-17 · closed · 1 comment
bug(search_legal): route type-specific filters correctly
Server version
0.7.1
mcp-ts-core version
0.11.0
Runtime
Bun
Runtime version
1.3.14
Transport
HTTP (Streamable HTTP)
Description
openfec_search_legal sends each type-specific filter under one upstream name whatever type says, and accepts filters the selected type ignores. Upstream answers 200 with those types unfiltered while search_criteria echoes the filter.
/legal/search/ per document type:
| Input | Advisory opinions | MURs / ADRs | Admin fines |…
Read the thread · 2026-08-17 · closed · 1 comment
bug(legal): bound search_legal and get_legal_document responses
Server version
0.7.1
mcp-ts-core version
0.11.0
Runtime
Bun
Runtime version
1.3.14
Transport
HTTP (Streamable HTTP)
Description
openfec_search_legal and openfec_get_legal_document have no response bound: one search page, or one legal record, can fill most of a model's context on both structuredContent and content[]. #14 deferred selective detail retrieval until an oversized record turned up; as of 2026-09-24 eleven MURs and one ADR exceed 100,000…
Read the thread · 2026-08-17 · closed · 1 comment
bug(response bounds): bound high-volume page payloads
Server version
0.7.1
mcp-ts-core version
0.11.0
Runtime
Bun
Runtime version
1.3.14
Transport
HTTP (Streamable HTTP)
Description
Several page-based and keyset tools permit a single page whose response exceeds a practical model context window. Pagination works; the problem is that one permitted page already carries hundreds of kilobytes, duplicated across structuredContent and formatted content[], with no bound and no warning.
Steps to reproduce
Call…
Read the thread · 2026-08-17 · closed · 1 comment
The remaining reports are on the project's issue tracker.