Pod

Available as Markdown and JSON. Pod is also available over MCP.

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.