{"_id":"@cyanheads/openfec-mcp-server","_rev":"32-b035fbec7c8f415d240abc9863c13a76","name":"@cyanheads/openfec-mcp-server","dist-tags":{"latest":"0.9.0"},"versions":{"0.2.2":{"name":"@cyanheads/openfec-mcp-server","version":"0.2.2","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.2.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"ebabd53b207a44f679cf84954f3d601780f26d60","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.2.2.tgz","fileCount":98,"integrity":"sha512-+XIRReZNLtB/n8IKWw58Oven5kJcYCAV+7A8iUk0HOygBpLXnGoXUXcM3XDmIuM21hpvEo5MvnqJAF9ONSjXuQ==","signatures":[{"sig":"MEUCIQCS3DFBs7m7OGNfWV8iyj6v0hMe6BQ6OHTWBcOmYw5+hgIgR9OiJ1bAr0x3npPYtV+tBStcjGyK1zYeIFExqaYUAJk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":297171},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"ebabd53b207a44f679cf84954f3d601780f26d60","engines":{"bun":">=1.2.0","node":">=22.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","dev:http":"MCP_TRANSPORT_TYPE=http bun --watch src/index.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","dev:stdio":"MCP_TRANSPORT_TYPE=stdio bun --watch src/index.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.7","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","express-rate-limit":">=8.2.2"},"_integrity":"sha512-+XIRReZNLtB/n8IKWw58Oven5kJcYCAV+7A8iUk0HOygBpLXnGoXUXcM3XDmIuM21hpvEo5MvnqJAF9ONSjXuQ==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.2.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.2","depcheck":"^1.4.7","tsc-alias":"^1.8.16","typescript":"^6.0.2","@types/node":"^25.5.2","@biomejs/biome":"^2.4.10"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.2.2_1775355343170_0.33596098722793943","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@cyanheads/openfec-mcp-server","version":"0.2.3","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.2.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"4b0a26ef9ade7d4cc88c14bfb301e35af666836c","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.2.3.tgz","fileCount":98,"integrity":"sha512-i9Db1GLI2uNYbG/VdIj8TOiDyYxfqoLqhhd4PtRdbEX+ydqLsOZPIQAiUPt+WosJaS5UlYq3JRYRm4Pnqr9VBQ==","signatures":[{"sig":"MEUCIBz9uFTXqC4gfX7Or3qo2+6k8yoDPiJASFW+H+ecbqvGAiEAivHqYkhF1yqYH8XR7KrBXHQKjzceaXbMdwqld7pO2U4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":298135},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"4b0a26ef9ade7d4cc88c14bfb301e35af666836c","engines":{"bun":">=1.2.0","node":">=22.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","dev:http":"MCP_TRANSPORT_TYPE=http bun --watch src/index.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","dev:stdio":"MCP_TRANSPORT_TYPE=stdio bun --watch src/index.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.7","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","express-rate-limit":">=8.2.2"},"_integrity":"sha512-i9Db1GLI2uNYbG/VdIj8TOiDyYxfqoLqhhd4PtRdbEX+ydqLsOZPIQAiUPt+WosJaS5UlYq3JRYRm4Pnqr9VBQ==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.2.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.2","depcheck":"^1.4.7","tsc-alias":"^1.8.16","typescript":"^6.0.2","@types/node":"^25.5.2","@biomejs/biome":"^2.4.10"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.2.3_1775356805322_0.33711554774214103","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@cyanheads/openfec-mcp-server","version":"0.3.0","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.3.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"e33d1344fe2127b6c884ee61e121e15e45d0cb4a","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.3.0.tgz","fileCount":98,"integrity":"sha512-5dPJCPwU+i3UfwW0caedZbJsuzw6F3fyx18Eyo1NKSt3KQsmWTo3oKAd2Cf28x5IQgZI4sKtFy+vH7DN1dwG/g==","signatures":[{"sig":"MEQCIFAq8uOPluwZQPjAvkIZWd1Lb7o3/ExkDcvSRFHRDPwiAiB8hrPuTEnNjDEu+LeEZ/uIbfNkUuyBZpyyuBPzk4HQLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288264},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"e33d1344fe2127b6c884ee61e121e15e45d0cb4a","engines":{"bun":">=1.2.0","node":">=22.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","dev:http":"MCP_TRANSPORT_TYPE=http bun --watch src/index.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","dev:stdio":"MCP_TRANSPORT_TYPE=stdio bun --watch src/index.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.7","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","express-rate-limit":">=8.2.2"},"_integrity":"sha512-5dPJCPwU+i3UfwW0caedZbJsuzw6F3fyx18Eyo1NKSt3KQsmWTo3oKAd2Cf28x5IQgZI4sKtFy+vH7DN1dwG/g==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.2.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.2","depcheck":"^1.4.7","tsc-alias":"^1.8.16","typescript":"^6.0.2","@types/node":"^25.5.2","@biomejs/biome":"^2.4.10"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.3.0_1775359959407_0.06391677504551585","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@cyanheads/openfec-mcp-server","version":"0.3.1","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.3.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"33e10fb2f8692c7b0d79616c9abe0fb663dcc858","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.3.1.tgz","fileCount":98,"integrity":"sha512-hvvcy4l1WpA6ucJkr2q+dypEbU1adkOiBuk0e3DrJN2hmhX5qzgpG67T0XX8vaBb9y6rrHB1+zwqU+dBhq7RtQ==","signatures":[{"sig":"MEUCIQCgK6zGjHzzQ0BG18S5QobqAz8LILDMgCIG46lcS+UkNwIgflvFY2gbI5Tw16l5evMt9jZChYFAeqy4Yf4UEp0FmxI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":298115},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"33e10fb2f8692c7b0d79616c9abe0fb663dcc858","engines":{"bun":">=1.2.0","node":">=22.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","dev:http":"MCP_TRANSPORT_TYPE=http bun --watch src/index.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","dev:stdio":"MCP_TRANSPORT_TYPE=stdio bun --watch src/index.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.7","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","express-rate-limit":">=8.2.2"},"_integrity":"sha512-hvvcy4l1WpA6ucJkr2q+dypEbU1adkOiBuk0e3DrJN2hmhX5qzgpG67T0XX8vaBb9y6rrHB1+zwqU+dBhq7RtQ==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.2.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.2","depcheck":"^1.4.7","tsc-alias":"^1.8.16","typescript":"^6.0.2","@types/node":"^25.5.2","@biomejs/biome":"^2.4.10"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.3.1_1775361071150_0.3008221166228071","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@cyanheads/openfec-mcp-server","version":"0.3.2","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.3.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"20d8f97c4e397145646045f77f0f5599ba543da4","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.3.2.tgz","fileCount":98,"integrity":"sha512-mo/ajSEPVjWRuy6Pv25NTj0/xHEknZTTLFfiQEu5TpnkyBW16iU7uDKpVLjB3EoIkju2B7UeyywLmW/B2oOOGQ==","signatures":[{"sig":"MEUCICFT69z7IClPQTzgabGPS7ZEay+a9JjFyjTWGiCSv78zAiEAo9HGQ9zrnCVbFgXgxzFYZjaT+HopeaxEdeHO3XSpY7s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":297337},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"20d8f97c4e397145646045f77f0f5599ba543da4","engines":{"bun":">=1.2.0","node":">=22.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","dev:http":"MCP_TRANSPORT_TYPE=http bun --watch src/index.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","dev:stdio":"MCP_TRANSPORT_TYPE=stdio bun --watch src/index.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.7","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","express-rate-limit":">=8.2.2"},"_integrity":"sha512-mo/ajSEPVjWRuy6Pv25NTj0/xHEknZTTLFfiQEu5TpnkyBW16iU7uDKpVLjB3EoIkju2B7UeyywLmW/B2oOOGQ==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.3.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.4","depcheck":"^1.4.7","tsc-alias":"^1.8.16","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.3.2_1776639996643_0.8614651958538937","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@cyanheads/openfec-mcp-server","version":"0.4.0","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.4.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"1eedea7560cba69914faa11c0daeedb1f8843c80","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.4.0.tgz","fileCount":98,"integrity":"sha512-fz81Dss8egYGOz6Tz0NgH0KlwCA/Uk6Y4AtKZqzwpIHtDFFPJQaV6RUtTgrnksfUxm3kLGIJkrmvZrNVJeko8Q==","signatures":[{"sig":"MEUCIQCECChby18IJ6wd5XOYj2TG/b59Z/rM3wA9e8fm04ly0QIgRUk9iuUHOR8a+SSfrlOhLJsnRIC0OhIjQv1uKSq257U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":294829},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"1eedea7560cba69914faa11c0daeedb1f8843c80","engines":{"bun":">=1.2.0","node":">=22.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","dev:http":"MCP_TRANSPORT_TYPE=http bun --watch src/index.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","dev:stdio":"MCP_TRANSPORT_TYPE=stdio bun --watch src/index.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-fz81Dss8egYGOz6Tz0NgH0KlwCA/Uk6Y4AtKZqzwpIHtDFFPJQaV6RUtTgrnksfUxm3kLGIJkrmvZrNVJeko8Q==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.5.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.4","depcheck":"^1.4.7","tsc-alias":"^1.8.16","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.4.0_1776744556953_0.202316473355163","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@cyanheads/openfec-mcp-server","version":"0.4.1","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.4.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"ad1f3e72c30a40511535141012e2af797cee29eb","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.4.1.tgz","fileCount":98,"integrity":"sha512-Xgj90BJZ59rgCEYQIQMR+7wwtSNDpEZhzOQc1yVCrmWhkEqjfSEefG8IO5Y694eoASzEX70JSn1gC5LT4Cr18w==","signatures":[{"sig":"MEUCIQCkzwxIKjKU2poo02xAcppfIKr71iE2oud316uJzsDYmAIgMX9+NDH3t8HNVyos5xswTg5j7pA1eTUfSuMJ19Z79sI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":297289},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"ad1f3e72c30a40511535141012e2af797cee29eb","engines":{"bun":">=1.2.0","node":">=22.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","dev:http":"MCP_TRANSPORT_TYPE=http bun --watch src/index.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","dev:stdio":"MCP_TRANSPORT_TYPE=stdio bun --watch src/index.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-Xgj90BJZ59rgCEYQIQMR+7wwtSNDpEZhzOQc1yVCrmWhkEqjfSEefG8IO5Y694eoASzEX70JSn1gC5LT4Cr18w==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.5","depcheck":"^1.4.7","tsc-alias":"^1.8.16","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.13"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.4.1_1777057881543_0.4575811834073109","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@cyanheads/openfec-mcp-server","version":"0.4.2","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.4.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"a5a8646445f3cc274e74f4246038e969c20420a6","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.4.2.tgz","fileCount":98,"integrity":"sha512-wLTkOPPcZv3trewAPHP93CK1QxUmSzwlN/unhu3pxvc5mtw3pjIIbkhlOYuFlBgPX+ON6WWnuSP9XIuYlFi+Jg==","signatures":[{"sig":"MEUCIQCFwCTikyojTMInPIhtuf33Yi+JdQatrB5fonl+UefQNgIgJf1LQcPjJF6rt4IlYHqNKs3668PtvwwFw54MdzDGI4k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":316864},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"a5a8646445f3cc274e74f4246038e969c20420a6","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-wLTkOPPcZv3trewAPHP93CK1QxUmSzwlN/unhu3pxvc5mtw3pjIIbkhlOYuFlBgPX+ON6WWnuSP9XIuYlFi+Jg==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.8.19"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.5","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.6.2","@biomejs/biome":"^2.4.14"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.4.2_1778238130338_0.8438495851544288","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@cyanheads/openfec-mcp-server","version":"0.4.3","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.4.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"435242318a7481c97eb14ca076866a990e6f5b4c","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.4.3.tgz","fileCount":98,"integrity":"sha512-yV/bR2HQwGK24T5ztbH8yjjP6BSeUv1jwWj+mJk/a7ReHpl2BbBN8rIGjFFQDZuu5XDO4oF6xULrMDfBhnveQw==","signatures":[{"sig":"MEUCIGGWGJ0bAzJ0jnqCEklqhVPPaVqRERSPzq92kfuFomWpAiEAkCd8azd7queh52fxHMvarqGJ+GEg0ynCk7vy8qyVSJ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":321528},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"435242318a7481c97eb14ca076866a990e6f5b4c","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-yV/bR2HQwGK24T5ztbH8yjjP6BSeUv1jwWj+mJk/a7ReHpl2BbBN8rIGjFFQDZuu5XDO4oF6xULrMDfBhnveQw==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.8.19"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.5","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.6.2","@biomejs/biome":"^2.4.14"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.4.3_1778242560874_0.8488357592589368","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@cyanheads/openfec-mcp-server","version":"0.4.4","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.4.4","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"88d483b7d552ad521282688e84666b970e69e789","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.4.4.tgz","fileCount":98,"integrity":"sha512-iloBDzwuJh9ntP3gng9hoK2EnL302elHM812ZXoy62cBpf0maiaILPbHvjoD3op2spJ7iuqO4xSeLGOF1ypzoQ==","signatures":[{"sig":"MEUCIQCfMju/v9fo2k9Kn/g3XBuuFxZdoh4rV9p5wR5FAG8q/QIgEnltdK/KMtJSst2Kafz59soiVXT63c0w+5y9JQT1EU0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":322819},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"88d483b7d552ad521282688e84666b970e69e789","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-iloBDzwuJh9ntP3gng9hoK2EnL302elHM812ZXoy62cBpf0maiaILPbHvjoD3op2spJ7iuqO4xSeLGOF1ypzoQ==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.9.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.6","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.8.0","@biomejs/biome":"^2.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.4.4_1778956837307_0.10631922286249162","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@cyanheads/openfec-mcp-server","version":"0.4.5","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.4.5","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"3e0612a8fb20f67f69b13abeb0706a117e20d8dc","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.4.5.tgz","fileCount":114,"integrity":"sha512-r1ZAUMQte73DUuWMwEcsx0bCQJPqpb4pmleGOWypYce6rd16EWXT2Sf/0GpkikSk6Q51MwlWrNqnWSJ0Ysdo3w==","signatures":[{"sig":"MEYCIQCHKEZwfMrnhTxIlqpaf76TkWWxbjBPPe82fVNqu8lHMwIhAOOKmhjqCnCQCpOT89uIrPosU5Ub21KbpIMI5tH2llmX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":352712},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"3e0612a8fb20f67f69b13abeb0706a117e20d8dc","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-r1ZAUMQte73DUuWMwEcsx0bCQJPqpb4pmleGOWypYce6rd16EWXT2Sf/0GpkikSk6Q51MwlWrNqnWSJ0Ysdo3w==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.9.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.4.5_1779539247568_0.942510056946356","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@cyanheads/openfec-mcp-server","version":"0.4.6","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.4.6","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"e18a132d5604dbe6767ac01e295dd52caa78b3dd","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.4.6.tgz","fileCount":115,"integrity":"sha512-kfP+uFxZPcbH3EEueyj5YFbtK+jYxjgC7QinVTfPO3Jk/uVMMxHenZ5LLoCHTHJIc7XqwTe2XqsOCBxgDN3NSw==","signatures":[{"sig":"MEQCIA1a20uoGHV8eIJpjGqX6+A+UBKp6SzR9UMSGvD//mVIAiAQPvBPsgNtQCZVHp1QSftEz9Kyhn43aCJeruMMdyoZYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355760},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"e18a132d5604dbe6767ac01e295dd52caa78b3dd","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-kfP+uFxZPcbH3EEueyj5YFbtK+jYxjgC7QinVTfPO3Jk/uVMMxHenZ5LLoCHTHJIc7XqwTe2XqsOCBxgDN3NSw==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.9.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.4.6_1779825022960_0.5257476456401535","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"@cyanheads/openfec-mcp-server","version":"0.4.7","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.4.7","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"8df464616099ea16bd4142923ef3505d2b9c3553","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.4.7.tgz","fileCount":116,"integrity":"sha512-mbrZwaq0OH4CypoK/8CwashGCz5wnxhK9Lvb3FS1ldRmGQhyPPeazF/tEAr7Bvgrfxaz3R5p65LQtq5WHFhoLQ==","signatures":[{"sig":"MEUCIGg5NIfcF6dtFKz+jc7yk01FYrMwGS4zToVLr1FzdvHFAiEAsdeIdADV+hep6ulPAXuQibzao3w/s6G+1VqI7MGM3Hc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":361357},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"8df464616099ea16bd4142923ef3505d2b9c3553","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-mbrZwaq0OH4CypoK/8CwashGCz5wnxhK9Lvb3FS1ldRmGQhyPPeazF/tEAr7Bvgrfxaz3R5p65LQtq5WHFhoLQ==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.9.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.4.7_1780032324906_0.22916539319230855","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"@cyanheads/openfec-mcp-server","version":"0.4.8","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.4.8","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"116dbbceeaf500321730f4df39d33d94bdb34ffa","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.4.8.tgz","fileCount":117,"integrity":"sha512-/PGDDeWsoPaCfO3J5Bgs4ShilNHp2YJ5H0vbfB7npDdPkojOUy05QfExaekly0bGxHItUT3DfGtrgUSTlzzeyw==","signatures":[{"sig":"MEQCIGU09fh72KHZ2rtdcK1Mv6W205goLXHo1YK4Ow35Il4/AiAbad8K+8MIXVHvnv6d1ZM2KgGtJ+OcaukM6X1UBoD91A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":374952},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"116dbbceeaf500321730f4df39d33d94bdb34ffa","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-/PGDDeWsoPaCfO3J5Bgs4ShilNHp2YJ5H0vbfB7npDdPkojOUy05QfExaekly0bGxHItUT3DfGtrgUSTlzzeyw==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.9.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.4.8_1780134793713_0.19377157690614877","host":"s3://npm-registry-packages-npm-production"}},"0.4.9":{"name":"@cyanheads/openfec-mcp-server","version":"0.4.9","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.4.9","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"73a8dbfbc781327dc0bb75c86748f40766f72995","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.4.9.tgz","fileCount":118,"integrity":"sha512-MHi09JFqwPyYFLPw8Et4Rn8M/IwOOK/zdZHCOlQY0v0MPcOnFrZLzo52WgzUWvvN7mHbahZIhNmHRahFEI121Q==","signatures":[{"sig":"MEQCIAy7O3AeAnM6qzhsCQjxHoUcbqE9HDJt1inoI4Yl+/IYAiBdHriXsBwfk12pe1brNT9X6iEuSEEq81TCpWQY/IfUxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":376086},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"73a8dbfbc781327dc0bb75c86748f40766f72995","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-MHi09JFqwPyYFLPw8Et4Rn8M/IwOOK/zdZHCOlQY0v0MPcOnFrZLzo52WgzUWvvN7mHbahZIhNmHRahFEI121Q==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.9.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.4.9_1780411508393_0.3955977044888508","host":"s3://npm-registry-packages-npm-production"}},"0.4.10":{"name":"@cyanheads/openfec-mcp-server","version":"0.4.10","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.4.10","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"497e5ff184dcce747f813a5f8519d17c1a07fb51","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.4.10.tgz","fileCount":119,"integrity":"sha512-xwpb8t7kITNWGtyyLVXPjUp84tiO4dM9hRb8p1xQ29p8gdNX+IGR9Hkp/lfTDIeUCZX3teDXOc2fGEqFNgcfEw==","signatures":[{"sig":"MEQCIEXns9+XIMcoGniVtZdhPv5kBaluI+cyoctxSowyemwWAiB9BPEy6IqIDX0yCJh3DLjEPO4Mj7v8bghpoj65JFY8iQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":377698},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"497e5ff184dcce747f813a5f8519d17c1a07fb51","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-xwpb8t7kITNWGtyyLVXPjUp84tiO4dM9hRb8p1xQ29p8gdNX+IGR9Hkp/lfTDIeUCZX3teDXOc2fGEqFNgcfEw==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.9.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.4.10_1780561217176_0.9416424995194155","host":"s3://npm-registry-packages-npm-production"}},"0.4.11":{"name":"@cyanheads/openfec-mcp-server","version":"0.4.11","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.4.11","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"678ff1e27a38f3a9266c7aa73a6a6885b60fd2fa","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.4.11.tgz","fileCount":120,"integrity":"sha512-8aQ9vlLs9bFhRTIQwA44CpWZJtt1kmhZ81c+gxE+m6rrr/tGFKJYmH0vO/WKc5dO1k22zZiuixeijG4ZDUnLtw==","signatures":[{"sig":"MEYCIQC67fSkgeLVM8PODKJ4uD4p07/havmCPjg8bQSZOx4e5wIhAMrIH98hn+iU3DE0PKwLigbd/t6sYCB+fNHUX5pQmMq6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":380482},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"678ff1e27a38f3a9266c7aa73a6a6885b60fd2fa","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-8aQ9vlLs9bFhRTIQwA44CpWZJtt1kmhZ81c+gxE+m6rrr/tGFKJYmH0vO/WKc5dO1k22zZiuixeijG4ZDUnLtw==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.9.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.2","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.4.11_1780921083636_0.5368646612378258","host":"s3://npm-registry-packages-npm-production"}},"0.4.12":{"name":"@cyanheads/openfec-mcp-server","version":"0.4.12","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.4.12","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"5fe20bc50d959b6a00bb679ffe3de3e0da7d9e72","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.4.12.tgz","fileCount":121,"integrity":"sha512-DIQt9yo6gH4PbmltWlMWFjcriCzgG1vIzfjDGB+B2x6JvctVKWFMbmtBLCM7ohmho95GaaT68eL9DwQoV63b4A==","signatures":[{"sig":"MEYCIQCmxLXXC+qxTcikoV+bHVBVQnE66Q2K/2URsilS8jwW/wIhALGHnL9vMXZlCit2k/HRDMSQWicaOgv4wrHmeWLhyqpm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":382939},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"5fe20bc50d959b6a00bb679ffe3de3e0da7d9e72","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-DIQt9yo6gH4PbmltWlMWFjcriCzgG1vIzfjDGB+B2x6JvctVKWFMbmtBLCM7ohmho95GaaT68eL9DwQoV63b4A==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.10.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.3","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.4.12_1781253674199_0.744604227579261","host":"s3://npm-registry-packages-npm-production"}},"0.4.13":{"name":"@cyanheads/openfec-mcp-server","version":"0.4.13","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfec-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.4.13","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"72dd49a781a358e179c72a301ee29ab7ee8d4f84","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.4.13.tgz","fileCount":122,"integrity":"sha512-tPpqEQ01CuMR6ikyg3VHOl2MYatDViVfZIwc5mQi3VJEBG7wRiAoMbZ6GCIlYUao0lelI4tyP7CIQ9v9tIvfdQ==","signatures":[{"sig":"MEUCIQDrYt/KeFJ88upWfSb+6VMHkQltwaeHDlEIkYNTWzVkegIgNtfbTFaNTKVRY4tG149K0/yFt/CEYxDm/VXJBCbSmhI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":385787},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"72dd49a781a358e179c72a301ee29ab7ee8d4f84","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-tPpqEQ01CuMR6ikyg3VHOl2MYatDViVfZIwc5mQi3VJEBG7wRiAoMbZ6GCIlYUao0lelI4tyP7CIQ9v9tIvfdQ==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.10.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^26.0.0","@biomejs/biome":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.4.13_1781977360309_0.16878278983529937","host":"s3://npm-registry-packages-npm-production"}},"0.4.14":{"name":"@cyanheads/openfec-mcp-server","version":"0.4.14","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.4.14","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"03e9367baf64c6ce808a4ebf847ad717df2ae93f","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.4.14.tgz","fileCount":123,"integrity":"sha512-9a3inCn1oAm4jIRewgvpaSbo2O743Z7O0t/XvsFx+kG37d+HL3N5mv2JQ44jLKMsTYELInQQTF6Ftk+60rj91Q==","signatures":[{"sig":"MEYCIQCUyOXazaR+EmG7GeuxtIODCFBAVFaYkL+NSpV25ZxOqwIhAK64SjMZB7FmjQsWm20XK8PISSmBrPoKEybKtIIeBIPa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":404795},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"03e9367baf64c6ce808a4ebf847ad717df2ae93f","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-9a3inCn1oAm4jIRewgvpaSbo2O743Z7O0t/XvsFx+kG37d+HL3N5mv2JQ44jLKMsTYELInQQTF6Ftk+60rj91Q==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^7.0.2","@types/node":"^26.1.1","@biomejs/biome":"^2.5.5","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.4.14_1785079075686_0.30393964099488646","host":"s3://npm-registry-packages-npm-production"}},"0.4.15":{"name":"@cyanheads/openfec-mcp-server","version":"0.4.15","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.4.15","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"b5bf521c4eff1d8ebbf932370bb6d1d96a8711a7","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.4.15.tgz","fileCount":124,"integrity":"sha512-fWG0jBWzrpDkvSfBSU2iW0zHHOzBnfdo1DteDx41mAlt/ayZlgjQUAKC/LnQq4io3ueNEyhlnMapizq0aoioxQ==","signatures":[{"sig":"MEYCIQDS6qyp7x4NnH20eED0/e/3GpMzSvkN3Q8jw8/H8MLZ7QIhAI71rrgMazgiwOKhnFcjINzzdUX5HyqzlTZfIUwM1jyB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":416418},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"b5bf521c4eff1d8ebbf932370bb6d1d96a8711a7","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-fWG0jBWzrpDkvSfBSU2iW0zHHOzBnfdo1DteDx41mAlt/ayZlgjQUAKC/LnQq4io3ueNEyhlnMapizq0aoioxQ==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^7.0.2","@types/node":"^26.1.1","@biomejs/biome":"^2.5.5","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.4.15_1785082574266_0.09711354542210948","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@cyanheads/openfec-mcp-server","version":"0.5.0","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.5.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"19a26c9f125671a87394eccac508d5a80dca9eab","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.5.0.tgz","fileCount":129,"integrity":"sha512-as0FD9CUbyi2i6tVb4hHFmRDX3kSq+KkzUjOV7hu9O2BprQEj1tDIAKEBY8PMwI0k5Rf1K0ZsWqj2UpdbkA/6g==","signatures":[{"sig":"MEUCIHylJs82sbxYYOH4sfqLWxdIrFUHfLye66499IikrhRVAiEAlJn+FbVOFGhqW3tjYhVLceixSCM+2JJBOY/jm5wMBaE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":445258},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"19a26c9f125671a87394eccac508d5a80dca9eab","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-as0FD9CUbyi2i6tVb4hHFmRDX3kSq+KkzUjOV7hu9O2BprQEj1tDIAKEBY8PMwI0k5Rf1K0ZsWqj2UpdbkA/6g==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^7.0.2","@types/node":"^26.1.1","@biomejs/biome":"^2.5.5","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.5.0_1785086902939_0.022811412005681708","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@cyanheads/openfec-mcp-server","version":"0.6.0","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.6.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"9b5467d56e2682960a3fd2de4d4be52e6600ad09","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.6.0.tgz","fileCount":134,"integrity":"sha512-Sn+SSIthnXbKy5cCzGeiNrtNZLVZx4sJqWxLCmEe/zVdZzmvkbGbtxpVLpsukbLgd6qIVsu31CtKmwT4Q/a0DA==","signatures":[{"sig":"MEUCIGmZ+tVYBjL/wTcwgJgF/DlUtq6jGExV1QTwjrr5r2wDAiEAgssJS9t7d/LJVmMfbNd3SP5KxYxZTAjVZ40P8S89dcE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":487778},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"9b5467d56e2682960a3fd2de4d4be52e6600ad09","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-Sn+SSIthnXbKy5cCzGeiNrtNZLVZx4sJqWxLCmEe/zVdZzmvkbGbtxpVLpsukbLgd6qIVsu31CtKmwT4Q/a0DA==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^7.0.2","@types/node":"^26.1.1","@biomejs/biome":"^2.5.5","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.6.0_1785094498956_0.14087289522943092","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@cyanheads/openfec-mcp-server","version":"0.7.0","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.7.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"69122992fb1794ec54d73f2b509ba57f658cefd9","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.7.0.tgz","fileCount":147,"integrity":"sha512-86vFtwq8kKZ/NEwtvGG1LTXEg3+6S8odbr1GAFkPp5mV58j4LiNg8Vk5XSg14e3RLVoY1/KPEykyzcE7c6xm8w==","signatures":[{"sig":"MEUCIBQvJr92GdpbbMUb1gxFNUjmMnVKdedId0r3MK7nIZNMAiEA+D3cco15qXTPpO1evKrRfZwRc1tCPcX26TQAx5ZaFM8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":571573},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"69122992fb1794ec54d73f2b509ba57f658cefd9","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-86vFtwq8kKZ/NEwtvGG1LTXEg3+6S8odbr1GAFkPp5mV58j4LiNg8Vk5XSg14e3RLVoY1/KPEykyzcE7c6xm8w==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^7.0.2","@types/node":"^26.1.1","@biomejs/biome":"^2.5.5","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.7.0_1785100667081_0.8946509919211068","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@cyanheads/openfec-mcp-server","version":"0.7.1","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.7.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"577f4bc223351c2bffbd03d66a45b1e2e0c1f584","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.7.1.tgz","fileCount":148,"integrity":"sha512-kMoO4w/fht3pjy7rc82izCZfCwsQ6VUMF4Jdqd/vpCMM9iAHHrpBOryaMAP2S2NFxBkRnRFBHsBGVjInqCKt/A==","signatures":[{"sig":"MEUCIQC4GOHCYHoZqASTT+1wnH6LjXc6LRRy99P/MVLxxrIMTgIgW7rXMGqdgJCE0luC8cOmmBC3VkjCNkijzlQdvDc62n8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":576017},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"577f4bc223351c2bffbd03d66a45b1e2e0c1f584","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-kMoO4w/fht3pjy7rc82izCZfCwsQ6VUMF4Jdqd/vpCMM9iAHHrpBOryaMAP2S2NFxBkRnRFBHsBGVjInqCKt/A==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^7.0.2","@types/node":"^26.1.1","@biomejs/biome":"^2.5.5","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.7.1_1785102036031_0.8977569464383053","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@cyanheads/openfec-mcp-server","version":"0.7.2","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.7.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"f70612de2019fab39d626712f9c0b9ba64bfcf7c","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.7.2.tgz","fileCount":149,"integrity":"sha512-oK5v/e7L0vCLaJSDnC20zJLokzATddXI7O9tkYj98XdxDjCEizNZpgjq9harQvqt6Mej5Yr5LK9qTEShFZprPQ==","signatures":[{"sig":"MEQCIDcGMiU+gC4DMDuzHtf86+j+xVEmnrTi9m+cJF68LS9EAiBEwdyt0IKrR1iddnkmhXo5trj4jerwVw6Q4eRWHfy8Mg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":582837},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"f70612de2019fab39d626712f9c0b9ba64bfcf7c","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-oK5v/e7L0vCLaJSDnC20zJLokzATddXI7O9tkYj98XdxDjCEizNZpgjq9harQvqt6Mej5Yr5LK9qTEShFZprPQ==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.12.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.11","depcheck":"^1.4.7","tsc-alias":"^1.9.2","typescript":"^7.0.2","@types/node":"26.2.0","@biomejs/biome":"^2.5.10","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.7.2_1787636856956_0.6293642739487564","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@cyanheads/openfec-mcp-server","version":"0.8.0","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.8.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"27d6c083b6dc6b6e35880daf5ced9ea2c5ce7978","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.8.0.tgz","fileCount":154,"integrity":"sha512-/LwTOO69XwIQ/I4OCbxBbrp7drNZnqezMyvA69ksH3ut3kPaptn7SRXRoPFQtqvKzMrvxhUGjZ+nfJMb+Gc/Pw==","signatures":[{"sig":"MEQCIEN6igjGn7o78tyQM+AYrM4mf1ITukJMjq84SajHQIrnAiBksaMmAWNEHp0FQZsRRWS9xhIo34EuRDRTZ/IBNkVaGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":615905},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"27d6c083b6dc6b6e35880daf5ced9ea2c5ce7978","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-/LwTOO69XwIQ/I4OCbxBbrp7drNZnqezMyvA69ksH3ut3kPaptn7SRXRoPFQtqvKzMrvxhUGjZ+nfJMb+Gc/Pw==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.12.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.11","depcheck":"^1.4.7","tsc-alias":"^1.9.2","typescript":"^7.0.2","@types/node":"26.4.0","@biomejs/biome":"^2.5.11","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.8.0_1788144396843_0.8457703059932697","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@cyanheads/openfec-mcp-server","version":"0.8.1","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.8.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"ab3e3f07f6f04eaa21c26881fe261dbbd5eabcd9","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.8.1.tgz","fileCount":156,"integrity":"sha512-/CuVYUJrPBdoYAx7O3BbEeXO1bO+i8Uk79lvJ6UUx/ZZ3YWqa+m9quZbo92isAtcsCA3K/ZmV0x8TpU7VKWVyw==","signatures":[{"sig":"MEYCIQDfd9jXbH/++olo/9L3dVyt5NK7v1luSNAWHBJ13GTe+AIhANtNu2R07lu94ThRVyzHQ/+eJWXC/4CUf/ZT3g8uexY4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBThpGM8kDCEjoZ/RNEwFMBsszQsNYhLXO51f23yuoCXAiEA7CdhQ0+JMmsUT5KJ6izMLFy4ci+LcRc/HocdpgCk18U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":661522},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"ab3e3f07f6f04eaa21c26881fe261dbbd5eabcd9","engines":{"bun":">=1.4.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","audit:fix":"bun audit fix","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-/CuVYUJrPBdoYAx7O3BbEeXO1bO+i8Uk79lvJ6UUx/ZZ3YWqa+m9quZbo92isAtcsCA3K/ZmV0x8TpU7VKWVyw==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.13.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^5.0.1","depcheck":"^1.4.7","tsc-alias":"^1.9.5","typescript":"^7.0.2","@types/node":"26.6.1","@biomejs/biome":"^2.5.14","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.8.1_1789852150314_0.015765721954769996","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@cyanheads/openfec-mcp-server","version":"0.8.2","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.8.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"311f63851c67ce0c26f6afa12ab5f41d52e33b4d","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.8.2.tgz","fileCount":157,"integrity":"sha512-qR/HD1EOwX0bRCSDg7VHrMxsGL8QeO+EIh+7pH6beNQOao2MmOvdsBdoP4tWjOSN93ykW4TzJf+o8IB1ETsvDg==","signatures":[{"sig":"MEUCICj74CVuEylNJNuFTGMom+U+PSgvPwnyoCHb0tyfvhgHAiEA6PAVlGSlzC6EzyvECnu9lIihFRdCsOXgQ3CbwWCCVg8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAGY5NJqIO2Ng7wGpvTSyb9cI3F13RtJM5Ulax/FdaJcAiALmBAyXOC4FwTqeyCHsR6Ngi1HyrmMtRU5Uirkl0gjWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":699868},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"311f63851c67ce0c26f6afa12ab5f41d52e33b4d","engines":{"bun":">=1.4.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","audit:fix":"bun audit fix","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-qR/HD1EOwX0bRCSDg7VHrMxsGL8QeO+EIh+7pH6beNQOao2MmOvdsBdoP4tWjOSN93ykW4TzJf+o8IB1ETsvDg==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.13.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^5.0.1","depcheck":"^1.4.7","tsc-alias":"^1.9.5","typescript":"^7.0.2","@types/node":"26.6.1","@biomejs/biome":"^2.5.14","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.8.2_1790099527222_0.971931879012162","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@cyanheads/openfec-mcp-server","version":"0.8.3","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.8.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"4b7b312223210bf0ed713505d33c387a189288e2","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.8.3.tgz","fileCount":158,"integrity":"sha512-oABnxNzWVA37g2y5e+3Ua/BKmfA2HVMOp5BlmqYijy3DtBZYpYKwyDW3ggmwnaV9R8Kz8LAwLOMeb9ZS9nzCJQ==","signatures":[{"sig":"MEUCIQDKCeX+jCTzdHkIx0Kl5z+76LTwSAvD8UrnbV4zbHMtKAIgNorWf+fLuquqygSl/eH/CFG2TVWw9E8AYizx2vMHnQc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCRanoHzwbHS+3zaCnPLNGPGLmFULW+/wq7NlbSf1aEygIgSGmYDrvcWGfhKpNn8F9wK/3zLrSTHfN6gvAGK9UF8zI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":709601},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"4b7b312223210bf0ed713505d33c387a189288e2","engines":{"bun":">=1.4.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","audit:fix":"bun audit fix","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-oABnxNzWVA37g2y5e+3Ua/BKmfA2HVMOp5BlmqYijy3DtBZYpYKwyDW3ggmwnaV9R8Kz8LAwLOMeb9ZS9nzCJQ==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.13.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^5.0.1","depcheck":"^1.4.7","tsc-alias":"^1.9.5","typescript":"^7.0.2","@types/node":"26.6.2","@biomejs/biome":"^2.5.14","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.8.3_1790209065244_0.9627627144876854","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@cyanheads/openfec-mcp-server","version":"0.8.4","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfec-mcp-server@0.8.4","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"bin":{"openfec-mcp-server":"dist/index.js"},"dist":{"shasum":"98c29cc581cadc9d7c525d6b10bc37fed0518867","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.8.4.tgz","fileCount":159,"integrity":"sha512-ZFrBDQuuHOrkWZBzjsMn6KHIQBHgllwHQi9XVucB0talAEcrwgw5gr+s7yLii6tlTebp3wkrqm9UTPpY2yGIRw==","signatures":[{"sig":"MEQCIGjYGagNRuSzr3wublQa7r/wdVKC4vxM736byTs06qQgAiAouG/zo2oWdy7VS5s01oInf4XS6QoZmT2MDHRD+elFWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICP0yJlw76rS9pgOv+xTC7MzSbe9Rc4c7gVM6FHu9e0hAiEAi2/iEWfNsmqk1jNSJ3qoPB4Yvjcx46f3A7uzC+9p7Bg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":750918},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"98c29cc581cadc9d7c525d6b10bc37fed0518867","engines":{"bun":">=1.4.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","audit:fix":"bun audit fix","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-ZFrBDQuuHOrkWZBzjsMn6KHIQBHgllwHQi9XVucB0talAEcrwgw5gr+s7yLii6tlTebp3wkrqm9UTPpY2yGIRw==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.13.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^5.0.1","depcheck":"^1.4.7","tsc-alias":"^1.9.5","typescript":"^7.0.2","@types/node":"26.6.2","@biomejs/biome":"^2.5.14","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfec-mcp-server_0.8.4_1790214358353_0.018845355521871943","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"_id":"@cyanheads/openfec-mcp-server@0.9.0","bin":{"openfec-mcp-server":"dist/index.js"},"bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"dist":{"shasum":"c43d7f00553d0bff82b868f236cfd410e0f76931","tarball":"https://registry.npmjs.org/@cyanheads/openfec-mcp-server/-/openfec-mcp-server-0.9.0.tgz","fileCount":164,"integrity":"sha512-VX8gFJvFsWIPKmLQsjeH6Ch4NUN8ER7P0zK9Rd/g+nsZd5VRjrAT43pCox1uyzvWDsEcbLWQb612BclU+cOLrQ==","signatures":[{"sig":"MEQCIEjra0WSmNJLmNK1wTIz6s2WttSGetvDeZgNagQf4UrCAiBL49UGhSr8SK+77Cxh3iNkd03oOLqGi3Xj3BUYPUAu1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDV4vySKPuh+cY2pPbj/8Gi6Xjb1bmacs4tEymuI+rE/wIhAKD70FaJCxscGyX6GtqUpafwGrClfXtnNGoipDyk0gub"}],"unpackedSize":833762},"main":"dist/index.js","name":"@cyanheads/openfec-mcp-server","type":"module","types":"dist/index.d.ts","author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","shasum":"c43d7f00553d0bff82b868f236cfd410e0f76931","engines":{"bun":">=1.4.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"license":"Apache-2.0","mcpName":"io.github.cyanheads/openfec-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && bunx -y @anthropic-ai/mcpb pack . dist/openfec-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfec-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","audit:fix":"bun audit fix","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"version":"0.9.0","_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"overrides":{"hono":">=4.12.14","vite":">=8.0.5","yaml":">=2.8.3","lodash":">=4.17.24","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","@hono/node-server":">=1.19.13","express-rate-limit":">=8.2.2"},"_integrity":"sha512-VX8gFJvFsWIPKmLQsjeH6Ch4NUN8ER7P0zK9Rd/g+nsZd5VRjrAT43pCox1uyzvWDsEcbLWQb612BclU+cOLrQ==","repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","directories":{},"maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@opentelemetry/api":"^1.9.1","@cyanheads/mcp-ts-core":"^0.13.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^5.0.1","depcheck":"^1.4.7","tsc-alias":"^1.9.5","typescript":"^7.0.2","@types/node":"26.6.2","@biomejs/biome":"^2.5.14","@socketsecurity/bun-security-scanner":"^1.1.3"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openfec-mcp-server_0.9.0_1790316127409_0.33694581226986364"}}},"time":{"created":"2026-04-05T02:15:42.976Z","modified":"2026-09-25T06:02:07.718Z","0.2.2":"2026-04-05T02:15:43.316Z","0.2.3":"2026-04-05T02:40:05.452Z","0.3.0":"2026-04-05T03:32:39.551Z","0.3.1":"2026-04-05T03:51:11.308Z","0.3.2":"2026-04-19T23:06:36.768Z","0.4.0":"2026-04-21T04:09:17.087Z","0.4.1":"2026-04-24T19:11:21.814Z","0.4.2":"2026-05-08T11:02:10.484Z","0.4.3":"2026-05-08T12:16:01.073Z","0.4.4":"2026-05-16T18:40:37.456Z","0.4.5":"2026-05-23T12:27:27.715Z","0.4.6":"2026-05-26T19:50:23.107Z","0.4.7":"2026-05-29T05:25:25.045Z","0.4.8":"2026-05-30T09:53:13.885Z","0.4.9":"2026-06-02T14:45:08.543Z","0.4.10":"2026-06-04T08:20:17.335Z","0.4.11":"2026-06-08T12:18:03.783Z","0.4.12":"2026-06-12T08:41:14.334Z","0.4.13":"2026-06-20T17:42:40.457Z","0.4.14":"2026-07-26T15:17:55.837Z","0.4.15":"2026-07-26T16:16:14.402Z","0.5.0":"2026-07-26T17:28:23.110Z","0.6.0":"2026-07-26T19:34:59.095Z","0.7.0":"2026-07-26T21:17:47.226Z","0.7.1":"2026-07-26T21:40:36.208Z","0.7.2":"2026-08-25T05:47:37.101Z","0.8.0":"2026-08-31T02:46:36.988Z","0.8.1":"2026-09-19T21:09:10.442Z","0.8.2":"2026-09-22T17:52:07.321Z","0.8.3":"2026-09-24T00:17:45.355Z","0.8.4":"2026-09-24T01:45:58.452Z","0.9.0":"2026-09-25T06:02:07.521Z"},"bugs":{"url":"https://github.com/cyanheads/openfec-mcp-server/issues"},"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","homepage":"https://github.com/cyanheads/openfec-mcp-server#readme","keywords":["mcp","mcp-server","model-context-protocol","openfec","fec","campaign-finance","elections","federal-elections","political-contributions","typescript","bun","stdio","streamable-http","ai-agent"],"repository":{"url":"git+https://github.com/cyanheads/openfec-mcp-server.git","type":"git"},"description":"Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"readme":"<div align=\"center\">\n  <h1>@cyanheads/openfec-mcp-server</h1>\n  <p><b>Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.</b>\n  <div>12 Tools • 5 Resources • 2 Prompts</div>\n  </p>\n</div>\n\n<div align=\"center\">\n\n[![Version](https://img.shields.io/badge/Version-0.9.0-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/openfec-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^2.0.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/openfec-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/openfec-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^7.0.2-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-^1.4.0-f9f1e1.svg?style=flat-square)](https://bun.sh/)\n\n</div>\n\n<div align=\"center\">\n\n[![Install in Claude Desktop](https://img.shields.io/badge/Install_in-Claude_Desktop-D97757?style=for-the-badge&logo=anthropic&logoColor=white)](https://github.com/cyanheads/openfec-mcp-server/releases/latest/download/openfec-mcp-server.mcpb) [![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=openfec-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvb3BlbmZlYy1tY3Atc2VydmVyIl0sImVudiI6eyJGRUNfQVBJX0tFWSI6InlvdXItYXBpLWtleSJ9fQ==) [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode:mcp/install?%7B%22name%22%3A%22openfec-mcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cyanheads%2Fopenfec-mcp-server%22%5D%2C%22env%22%3A%7B%22FEC_API_KEY%22%3A%22your-api-key%22%7D%7D)\n\n[![Framework](https://img.shields.io/badge/Built%20on-@cyanheads/mcp--ts--core-67E8F9?style=flat-square)](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)\n\n</div>\n\n<div align=\"center\">\n\n**Public Hosted Server:** [https://openfec.caseyjhand.com/mcp](https://openfec.caseyjhand.com/mcp)\n\n</div>\n\n---\n\n## Overview\n\nUS federal campaign finance data from the FEC's OpenFEC API. Search candidates, committees, and filings, trace contributions (Schedule A), disbursements (Schedule B), and independent and coordinated party expenditures (Schedules E/F), and look up election races, legal documents, and filing deadlines. Runs as a stdio process, a local Streamable HTTP server, or the public hosted endpoint above.\n\n### Tools\n\n| Tool | Description |\n|:---|:---|\n| `openfec_search_candidates` | Find federal candidates by name, state, office, party, or cycle; fetch one by FEC ID with financial totals |\n| `openfec_search_committees` | Find political committees by name, type, candidate affiliation, or state; fetch one by FEC ID |\n| `openfec_get_committee_totals` | Pre-aggregated financial totals for one committee by cycle, or ranked across committees of one entity type |\n| `openfec_search_contributions` | Itemized contributions (Schedule A), or aggregates by size, state, employer, or occupation |\n| `openfec_search_disbursements` | Itemized committee spending (Schedule B), or aggregates by purpose or recipient |\n| `openfec_search_expenditures` | Independent expenditures (Schedule E) supporting or opposing candidates, itemized or totaled per candidate |\n| `openfec_search_coordinated_expenditures` | Coordinated party expenditures (Schedule F) made on behalf of a candidate |\n| `openfec_search_filings` | FEC filings and reports by committee, candidate, form type, or date range |\n| `openfec_lookup_elections` | Candidates in a federal race with their fundraising totals, or an aggregate race summary |\n| `openfec_search_legal` | Advisory opinions, enforcement cases, alternative dispute resolutions, administrative fines, and statutes |\n| `openfec_get_legal_document` | One legal document in full, including the arrays search trims away, paged by entry when too large for one response |\n| `openfec_lookup_calendar` | FEC calendar events, filing deadlines, and election dates |\n\n### Resources\n\n| Resource | Description |\n|:---|:---|\n| `openfec://candidate/{candidate_id}` | Candidate profile with financial totals and principal committees |\n| `openfec://committee/{committee_id}` | Committee profile with type, designation, and financial summary |\n| `openfec://election/{cycle}/{office}` | Presidential race with candidate financial totals |\n| `openfec://election/{cycle}/{office}/{state}` | Senate or at-large House race with candidate financial totals |\n| `openfec://election/{cycle}/{office}/{state}/{district}` | House district race with candidate financial totals |\n\nThe same data is reachable through `openfec_search_candidates`, `openfec_search_committees`, and `openfec_lookup_elections` for tool-only clients.\n\n### Prompts\n\n| Prompt | Description |\n|:---|:---|\n| `openfec_money_trail` | Trace the money around a candidate: direct fundraising, PAC support, independent expenditures, and party spending |\n| `openfec_campaign_analysis` | Structured analysis of a candidate's financial position |\n\n## Capability reference\n\n### `openfec_search_candidates` <sub>tool</sub>\n\n- `query` name search filtered by state, district, office, party, cycle, election_year, incumbent_challenge, candidate_status, and has_raised_funds, up to 100 per page; or a `candidate_id` lookup (H/S/P + eight letters or digits) returning one full record\n- `include_totals` (default on for an ID lookup) adds per-cycle `totals` rows and caps a search page at 35 candidates when cycle or election_year scopes the totals, 5 when they span every cycle; candidates the totals fetch didn't reach are listed in `missing_totals`\n- Typed errors: `candidate_not_found`, `inputs_not_applicable_to_id_lookup`\n\n---\n\n### `openfec_search_committees` <sub>tool</sub>\n\n- `query` name search filtered by candidate_id, state, party, committee_type, designation, cycle, and treasurer_name, up to 100 per page; or a `committee_id` lookup (`C` + eight digits)\n- Typed errors: `committee_not_found`, `inputs_not_applicable_to_id_lookup`\n\n---\n\n### `openfec_get_committee_totals` <sub>tool</sub>\n\n- `mode: \"single\"` (default) takes a `committee_id` and returns one row per two-year cycle; `mode: \"by_entity_type\"` ranks every committee of one `entity_type` (`presidential`, `pac`, `party`, `pac-party`, `house-senate`, `ie-only`), filterable by state, type, designation, organization type, and receipts/disbursements bounds; up to 100 per page\n- Rows carry receipts, disbursements, cash on hand, debts, and the itemized/unitemized split; the output `mode` says whether rows are cycles or committees\n- Typed errors: `committee_id_required_for_single_mode`, `entity_type_required_for_group_mode`, `committee_totals_not_found`\n\n---\n\n### `openfec_search_contributions` <sub>tool</sub>\n\n- `itemized` (default) needs a `committee_id` and filters by contributor name, employer, occupation, city, state, ZIP, date and amount ranges, and `is_individual`, 30 rows per page; `by_size` / `by_state` take a `committee_id` or `candidate_id`, `by_employer` / `by_occupation` a `committee_id`\n- The output `mode` becomes `by_size_candidate` or `by_state_candidate` when scoped by candidate, a different row shape; itemized responses carry `next_cursor`, `count`, and `count_is_approximate`\n- Typed errors: `itemized_requires_committee_id`, `aggregate_requires_committee_id`\n\n---\n\n### `openfec_search_disbursements` <sub>tool</sub>\n\n- `committee_id` required in every mode: `itemized` (default; recipient name, state, city, and committee ID, description, purpose category, date and amount ranges, 30 rows per page), `by_purpose`, `by_recipient`, `by_recipient_id`\n- Itemized responses carry `next_cursor`, `count`, and `count_is_approximate`; aggregate modes page by number\n\n---\n\n### `openfec_search_expenditures` <sub>tool</sub>\n\n- `itemized` (default) filters by committee, candidate, `support_oppose`, payee, targeted office/state/district, party, `is_notice` (24/48-hour notices), dates, and amounts; `most_recent` defaults to true; 60 rows per page when scoped by `committee_id`, 30 otherwise\n- `by_candidate` totals need a `candidate_id` or a full race scope (`candidate_office=P` alone, `S` plus `candidate_office_state`, `H` plus state and `candidate_office_district`), or fail as `by_candidate_requires_scope`\n\n---\n\n### `openfec_search_coordinated_expenditures` <sub>tool</sub>\n\n- Scope by spending party `committee_id`, benefiting `candidate_id`, `cycle`, payee, dates, and amounts; unscoped queries span all years\n- Page-based, 80 rows per page when scoped by `committee_id` and 25 otherwise; rows carry `subordinate_committee_id`, the committee the spending is attributed to\n\n---\n\n### `openfec_search_filings` <sub>tool</sub>\n\n- Filters: committee_id, candidate_id, filer_name, form_type (F3, F3P, F3X, F24, F1, F2, F5), report_type, report_year, cycle, is_amended, and receipt date range; 65 rows per page\n- `most_recent` defaults to true, hiding superseded amendments; rows carry form and report type, financial totals, and `pdf_url`\n\n---\n\n### `openfec_lookup_elections` <sub>tool</sub>\n\n- `office` and an even `cycle` are required; Senate also needs `state` and House `state` plus `district`, unless a `zip` scopes a search\n- `mode: \"search\"` (default) returns the race's candidates with totals and `candidate_pcc_id` / `candidate_pcc_name`, that cycle's principal campaign committee; `mode: \"summary\"` returns one aggregate race row\n- Typed errors: `cycle_must_be_even`, `missing_state_for_office`, `missing_district_for_house`, `summary_does_not_support_zip`\n\n---\n\n### `openfec_search_legal` <sub>tool</sub>\n\n- `type` (`advisory_opinions`, `murs`, `adrs`, `admin_fines`, `statutes`), query, ao_number, case_number, respondent, citations, penalty bounds, or dates; at least one is required (`missing_filter`), and a date bound needs `type` plus a `date_kind` that type records\n- Citations, penalty bounds, respondent, ao_number, and case_number each filter only some types; one sent with a `type` it doesn't filter fails as `filter_not_valid_for_type`, and with `type` omitted the search returns only the types they all apply to, with a total over those types. On MURs and ADRs a citation can't be combined with case_number, respondent, a penalty bound, or an open/close date bound, which upstream would ignore; the two citation fields together match either one\n- Citations take the form upstream parses — `52 U.S.C. 30104` or `11 CFR 110.1` (`USC`, `C.F.R.`, `§`, and suffixes like `30104(g)` are fine); a bare `30106` or `110.1` fails as `invalid_citation` instead of silently returning unfiltered results. One citation per field: upstream applies only the first citation in a value, so `52 U.S.C. 30104, 52 U.S.C. 30118` fails the same way\n- Offset paging via `from_hit` / `hits_returned`, up to 200 per type within a 10,000-result window\n- Results are trimmed: `documents` becomes `document_count` and `document_categories`, `dispositions` becomes `disposition_count` and `disposition_categories`, highlights stop at 3 with their `<em>` match markup removed and render one per line, and `commission_votes` shrink to a date and a 200-character action; `openfec_get_legal_document` returns the full record\n- Each response stays under 100,000 bytes: whole results are admitted one type at a time until the next would not fit, and a page that held some back reports `truncated`, `shown`, and `nextFromHit` — the `from_hit` that continues each type, passed back with that `type`\n\n---\n\n### `openfec_get_legal_document` <sub>tool</sub>\n\n- `doc_type` is the plural of a search result's `document_type` (`mur` → `murs`); `no` is that result's `no` field\n- Returns the untrimmed record, including `documents`, `commission_votes`, and `dispositions`; fails as `legal_document_not_found`\n- A record over 100,000 bytes returns its scalar fields, the arrays that fit (smallest first), and `withheld` — each held-back array with its entry count and size; re-call with `array` and `offset` for that array's entries while they fit, plus `next_offset`. An array the record lacks fails as `array_not_in_record`\n\n---\n\n### `openfec_lookup_calendar` <sub>tool</sub>\n\n- `events` (default; `category`, one of 18 codes, and `description`), `filing_deadlines` (`report_type`, `report_year`), or `election_dates` (`state`, `office`, `district`, `election_year`); `min_date` / `max_date` apply in every mode, up to 100 per page\n- A `district` filter never matches an at-large race; pair it with `state`\n\n---\n\n### `openfec://candidate/{candidate_id}` <sub>resource</sub>\n\n- Candidate record merged with its financial totals and `principal_committees` (current designation `P`, not scoped to a cycle)\n- `candidate_id` comes from `openfec_search_candidates`; fails as `candidate_not_found`\n\n---\n\n### `openfec://committee/{committee_id}` <sub>resource</sub>\n\n- Committee record merged with its financial totals, which are absent for a committee that files no Form 3/3X/3P\n- `committee_id` comes from `openfec_search_committees`; fails as `committee_not_found`\n\n---\n\n### `openfec://election/{cycle}/{office}` <sub>resource</sub>\n\n- Presidential races (`office` `P`), with totals for the full election period\n- First page only: a longer race carries `truncation_notice` pointing to `openfec_lookup_elections`, and an empty one `empty_result_notice`\n\n---\n\n### `openfec://election/{cycle}/{office}/{state}` <sub>resource</sub>\n\n- Senate races, or an at-large House race in a single-district state (`office` `S` or `H`)\n- Same first-page limit and notices as the presidential template\n\n---\n\n### `openfec://election/{cycle}/{office}/{state}/{district}` <sub>resource</sub>\n\n- House district races (`office` `H`)\n- Same first-page limit and notices as the presidential template\n\n---\n\n### `openfec_money_trail` <sub>prompt</sub>\n\n- Arguments: `candidate_name` or `candidate_id` (one required), optional `cycle`\n- Seven steps: identify the candidate, resolve the cycle's principal committee via `candidate_pcc_id`, then direct fundraising, independent expenditures, coordinated party spending, disbursements, and a synthesis\n\n---\n\n### `openfec_campaign_analysis` <sub>prompt</sub>\n\n- Arguments: `candidate_name` or `candidate_id` (one required), optional `cycle`\n- Seven steps: candidate overview, principal committee and per-cycle trajectory, fundraising mix, burn rate, competitive position, outside money, and an assessment\n\n## Features\n\nBuilt on [`@cyanheads/mcp-ts-core`](https://github.com/cyanheads/mcp-ts-core): stdio and Streamable HTTP transports, pluggable auth (`none` / `jwt` / `oauth`), swappable storage (`in-memory`, `filesystem`, `Supabase`, `Cloudflare KV/R2/D1`), structured logging with optional OpenTelemetry tracing.\n\nOpenFEC-specific:\n\n- Type-safe client for the [OpenFEC REST API](https://api.open.fec.gov/developers/) with retry and a configurable timeout; error messages have the API key stripped and HTTP failures carry recovery hints\n- Cycles are even years covering two calendar years (2024 = Jan 2023 – Dec 2024); itemized Schedule A/B/E default to the current cycle when `cycle` is omitted, and `election_full` (default true) widens a race total to the full election period (4yr president, 6yr senate, 2yr house)\n- Itemized contributions and disbursements scope to a `committee_id`, not a `candidate_id`. Committee `designation` and `principal_committees` reflect current designation only, so for a cycle's principal committee read `candidate_pcc_id` from `openfec_lookup_elections`\n- Itemized Schedule A/B/E page with an opaque `next_cursor`, valid only for an otherwise-identical call; other tools page by number, and legal search by offset\n\nAgent-friendly output:\n\n- Effective-query echo: every tool response carries `search_criteria` with the post-default filters, and an empty result carries a `notice` on how to broaden it\n- Response budget of 100,000 bytes per surface: high-volume tools cap rows per page and report `truncated`, `shown`, and `cap` when a page falls below the requested `per_page` (page-based tools also echo the applied size in `pagination.per_page`); legal search holds back whole results and reports `nextFromHit`, and a large legal document pages its arrays by `offset`; a single-committee query lifts that committee into one top-level `committee` field instead of repeating it per row\n- Typed contracts: multi-mode tools echo the resolved `mode` and reject a filter the mode can't apply (`itemized_only_filters_in_aggregate_mode`, `inputs_not_applicable_to_mode`) instead of dropping it; every failure carries a typed `reason` and `recovery` text, and estimated totals are flagged `count_is_approximate`\n\n## Getting started\n\n### Public Hosted Instance\n\nA public instance is available at `https://openfec.caseyjhand.com/mcp` — no installation required. Point any MCP client at it via Streamable HTTP:\n\n```json\n{\n  \"mcpServers\": {\n    \"openfec-mcp-server\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://openfec.caseyjhand.com/mcp\"\n    }\n  }\n}\n```\n\n### Self-Hosted / Local\n\nAdd the following to your MCP client configuration file.\n\n```json\n{\n  \"mcpServers\": {\n    \"openfec-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"bunx\",\n      \"args\": [\"@cyanheads/openfec-mcp-server@latest\"],\n      \"env\": {\n        \"MCP_TRANSPORT_TYPE\": \"stdio\",\n        \"FEC_API_KEY\": \"your-api-key\"\n      }\n    }\n  }\n}\n```\n\nOr with npx (no Bun required):\n\n```json\n{\n  \"mcpServers\": {\n    \"openfec-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@cyanheads/openfec-mcp-server@latest\"],\n      \"env\": {\n        \"MCP_TRANSPORT_TYPE\": \"stdio\",\n        \"FEC_API_KEY\": \"your-api-key\"\n      }\n    }\n  }\n}\n```\n\nOr with Docker:\n\n```json\n{\n  \"mcpServers\": {\n    \"openfec-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"docker\",\n      \"args\": [\"run\", \"-i\", \"--rm\", \"-e\", \"MCP_TRANSPORT_TYPE=stdio\", \"-e\", \"FEC_API_KEY=your-api-key\", \"ghcr.io/cyanheads/openfec-mcp-server:latest\"]\n    }\n  }\n}\n```\n\nFor Streamable HTTP, set the transport and start the server:\n\n```sh\nMCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 FEC_API_KEY=your-key bun run start:http\n# Server listens at http://localhost:3010/mcp\n```\n\n### Prerequisites\n\n- [Bun v1.4.0](https://bun.sh/) or higher (or Node.js v24+).\n- Optional: a free [OpenFEC API key](https://api.data.gov/signup/) raises the rate limit from 30 to 1,000 requests per hour over the default `DEMO_KEY`.\n\n### Installation\n\n1. **Clone the repository:**\n\n```sh\ngit clone https://github.com/cyanheads/openfec-mcp-server.git\n```\n\n2. **Navigate into the directory:**\n\n```sh\ncd openfec-mcp-server\n```\n\n3. **Install dependencies:**\n\n```sh\nbun install\n```\n\n4. **Configure environment:**\n\n```sh\ncp .env.example .env\n# edit .env and set FEC_API_KEY (optional)\n```\n\n## Configuration\n\n| Variable | Description | Default |\n|:---|:---|:---|\n| `FEC_API_KEY` | OpenFEC API key from [api.data.gov](https://api.data.gov/signup/). `DEMO_KEY` allows 30 req/hr; your own key allows 1,000. | `DEMO_KEY` |\n| `FEC_BASE_URL` | OpenFEC API base URL. | `https://api.open.fec.gov/v1` |\n| `FEC_MAX_RETRIES` | Retry attempts for failed API requests. | `3` |\n| `FEC_REQUEST_TIMEOUT` | Per-request timeout, in ms. | `30000` |\n| `MCP_TRANSPORT_TYPE` | Transport: `stdio` or `http`. | `stdio` |\n| `MCP_HTTP_PORT` | HTTP server port. | `3010` |\n| `MCP_SESSION_MODE` | HTTP session mode: `stateless`, `stateful`, or `auto`. Overrides the `stateless` mode the server declares. | `stateless` |\n| `MCP_AUTH_MODE` | Authentication: `none`, `jwt`, or `oauth`. | `none` |\n| `MCP_LOG_LEVEL` | Log level (`debug`, `info`, `warning`, `error`, etc.). | `info` |\n| `LOGS_DIR` | Directory for log files (Node.js only). | `<project-root>/logs` |\n| `STORAGE_PROVIDER_TYPE` | Storage backend: `in-memory`, `filesystem`, `supabase`, `cloudflare-kv/r2/d1`. | `in-memory` |\n| `OTEL_ENABLED` | Enable [OpenTelemetry](https://github.com/cyanheads/mcp-ts-core/tree/main/docs/telemetry). | `false` |\n\nSee [`.env.example`](./.env.example) for the full list of optional overrides.\n\n## Running the server\n\n### Local development\n\n- **Build and run:**\n\n  ```sh\n  bun run rebuild\n  bun run start:stdio   # or start:http\n  ```\n\n- **Run checks and tests:**\n\n  ```sh\n  bun run devcheck      # Lint, format, typecheck, security audit\n  bun run test          # Vitest test suite\n  bun run lint:mcp      # Validate MCP definitions against spec\n  ```\n\n### Docker\n\n```sh\ndocker build -t openfec-mcp-server .\ndocker run --rm -e FEC_API_KEY=your-key -p 3010:3010 openfec-mcp-server\n```\n\nThe Dockerfile defaults to HTTP transport, stateless session mode, and logs to `/var/log/openfec-mcp-server`. OpenTelemetry peer dependencies are installed by default — build with `--build-arg OTEL_ENABLED=false` to omit them.\n\n## Project structure\n\n| Directory | Purpose |\n|:---|:---|\n| `src/index.ts` | `createApp()` entry point — registers tools/resources/prompts and inits the OpenFEC service. |\n| `src/config` | Server-specific environment variable parsing and validation with Zod. |\n| `src/mcp-server/tools` | Tool definitions (`*.tool.ts`), with shared validators and formatters in `definitions/utils/`. |\n| `src/mcp-server/resources` | Resource definitions (`*.resource.ts`). Candidate, committee, and three election-race templates. |\n| `src/mcp-server/prompts` | Prompt definitions (`*.prompt.ts`). Money trail and campaign analysis. |\n| `src/services/openfec` | OpenFEC API client and domain types. |\n| `tests/` | Unit and integration tests, mirroring the `src/` structure. |\n| `scripts/` | Build, clean, devcheck, tree, changelog, and lint scripts. |\n| `docs/` | Design notes and the OpenFEC OpenAPI spec. |\n\n## Development guide\n\nSee [`CLAUDE.md`](./CLAUDE.md) for development guidelines and architectural rules. The short version:\n\n- Handlers throw, framework catches — no `try/catch` in tool logic\n- Use `ctx.log` for logging, `ctx.state` for storage\n- Register new tools and resources in the barrels at `src/mcp-server/*/definitions/index.ts`\n- Wrap the OpenFEC API: validate raw → normalize to domain type → return the output schema; never fabricate fields the upstream response omitted\n\n## Contributing\n\nIssues are welcome. Run checks and tests before submitting:\n\n```sh\nbun run devcheck\nbun run test\n```\n\n## License\n\nApache-2.0 — see [LICENSE](LICENSE) for details.\n","readmeFilename":"README.md"}