{"_id":"@blen/fedreg-mcp-server","_rev":"9-d1e0f04e439ff2474424d0f999b60402","name":"@blen/fedreg-mcp-server","dist-tags":{"latest":"2.0.8"},"versions":{"2.0.0":{"name":"@blen/fedreg-mcp-server","version":"2.0.0","keywords":["mcp","model-context-protocol","federal-register","ecfr","regulations.gov","public-comments","code-mode","sandbox","isolated-vm","ai-agents","claude","anthropic","regulations","government-data"],"author":{"url":"https://blenlabs.com","name":"BLEN, Inc."},"license":"Apache-2.0","_id":"@blen/fedreg-mcp-server@2.0.0","maintainers":[{"name":"dotmike","email":"mike@blencorp.com"},{"name":"naodya","email":"naodya@gmail.com"},{"name":"naodyaw","email":"naod@blencorp.com"},{"name":"juliusohblen","email":"julius@blencorp.com"}],"homepage":"https://github.com/blen-labs/fedreg-mcp-server#readme","bugs":{"url":"https://github.com/blen-labs/fedreg-mcp-server/issues"},"bin":{"fedreg-mcp-server":"dist/bin.js"},"dist":{"shasum":"bfe5ad4aef4ca68e4a1b618c4b36737ab76a441d","tarball":"https://registry.npmjs.org/@blen/fedreg-mcp-server/-/fedreg-mcp-server-2.0.0.tgz","fileCount":161,"integrity":"sha512-B2DGS7bmh9nPII/WGAjY8G1trrAHF0sA3iSCG/FYGyoCUqbjkK3R5WIImBDT8AYrrbxAbtzhpJw4ZvASWFdjOQ==","signatures":[{"sig":"MEQCIHKuVslINYY9qBBSjDaYOa+1eLA3rwRMMTc9bn5hwJfWAiBGCnOpSqF2UpnmLxJMpMitAJ6qy8MMXiGYX46L79kcaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blen%2ffedreg-mcp-server@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":244184},"main":"dist/index.js","type":"module","_from":"file:blen-fedreg-mcp-server-2.0.0.tgz","types":"dist/index.d.ts","engines":{"node":">=20.10"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/bin.ts","lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json && (chmod +x dist/bin.js || true)","start":"node dist/bin.js","mcpb:pack":"mcpb pack","typecheck":"tsc --noEmit","test:watch":"vitest","mcpb:prepare":"node scripts/mcpb-prepare.mjs"},"_npmUser":{"name":"dotmike","email":"mike@blencorp.com"},"_resolved":"/tmp/be11886694c26502f3e8630e8a3e3089/blen-fedreg-mcp-server-2.0.0.tgz","_integrity":"sha512-B2DGS7bmh9nPII/WGAjY8G1trrAHF0sA3iSCG/FYGyoCUqbjkK3R5WIImBDT8AYrrbxAbtzhpJw4ZvASWFdjOQ==","repository":{"url":"git+https://github.com/blen-labs/fedreg-mcp-server.git","type":"git"},"_npmVersion":"10.9.8","description":"Code-mode MCP server for the U.S. Federal Register, Electronic Code of Federal Regulations, and regulations.gov APIs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.23.8","jose":"^5.9.6","acorn":"^8.12.1","undici":"^6.21.0","lru-cache":"^11.0.2","acorn-walk":"^8.3.4","@modelcontextprotocol/node":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","nock":"^14.0.0-beta.19","eslint":"^9.17.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.2","@anthropic-ai/mcpb":"^2.1.2","@typescript-eslint/parser":"^8.18.0","@modelcontextprotocol/client":"2.0.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"optionalDependencies":{"isolated-vm":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/fedreg-mcp-server_2.0.0_1786048661770_0.5630802270892066","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@blen/fedreg-mcp-server","version":"2.0.1","keywords":["mcp","model-context-protocol","federal-register","ecfr","regulations.gov","public-comments","code-mode","sandbox","isolated-vm","ai-agents","claude","anthropic","regulations","government-data"],"author":{"url":"https://blenlabs.com","name":"BLEN, Inc."},"license":"Apache-2.0","_id":"@blen/fedreg-mcp-server@2.0.1","maintainers":[{"name":"dotmike","email":"mike@blencorp.com"},{"name":"naodya","email":"naodya@gmail.com"},{"name":"naodyaw","email":"naod@blencorp.com"},{"name":"juliusohblen","email":"julius@blencorp.com"}],"homepage":"https://github.com/blen-labs/fedreg-mcp-server#readme","bugs":{"url":"https://github.com/blen-labs/fedreg-mcp-server/issues"},"bin":{"fedreg-mcp-server":"dist/bin.js"},"dist":{"shasum":"1afe897a33b9ddf7d8e56f0b03db3bb3b18c78d8","tarball":"https://registry.npmjs.org/@blen/fedreg-mcp-server/-/fedreg-mcp-server-2.0.1.tgz","fileCount":161,"integrity":"sha512-OL+8AGsKvkfjNx4i5yAO946BBCs/XF3WkbiNzuQi2QqJQmY3Q877tB4ia03T5JgCbCD2hvDKOlM55PeBxM0fUg==","signatures":[{"sig":"MEQCIE/Atz0aa5FJV3xvaoNC9yJ1NAyWO0xKZJulmiV1nUSpAiAZAMSUBgR8Us9mJRRAUmGJWBd3jVbG5f2g9fcTIcUJYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blen%2ffedreg-mcp-server@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":248722},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.10"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"1c6eb3e9d43ba7a8c20ef7225e853e514d6e4596","scripts":{"dev":"tsx src/bin.ts","lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json && (chmod +x dist/bin.js || true)","start":"node dist/bin.js","prepack":"pnpm run build","mcpb:pack":"mcpb pack mcpb-build fedreg-mcp-server.mcpb","typecheck":"tsc --noEmit","test:watch":"vitest","mcpb:prepare":"node scripts/mcpb-prepare.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:eb7a10d2-cb64-4159-802a-cf22cdb800ee"}},"repository":{"url":"git+https://github.com/blen-labs/fedreg-mcp-server.git","type":"git"},"_npmVersion":"12.0.2","description":"Code-mode MCP server for the U.S. Federal Register, Electronic Code of Federal Regulations, and regulations.gov APIs.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.8","jose":"^5.9.6","acorn":"^8.12.1","undici":"^6.21.0","lru-cache":"^11.0.2","acorn-walk":"^8.3.4","@modelcontextprotocol/node":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"tsx":"^4.19.2","nock":"^14.0.0-beta.19","eslint":"^9.17.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.2","@anthropic-ai/mcpb":"^2.1.2","@typescript-eslint/parser":"^8.18.0","@modelcontextprotocol/client":"2.0.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"optionalDependencies":{"isolated-vm":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/fedreg-mcp-server_2.0.1_1786058208517_0.06390202641249365","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@blen/fedreg-mcp-server","version":"2.0.2","keywords":["mcp","model-context-protocol","federal-register","ecfr","regulations.gov","public-comments","code-mode","sandbox","isolated-vm","ai-agents","claude","anthropic","regulations","government-data"],"author":{"url":"https://blenlabs.com","name":"BLEN, Inc."},"license":"Apache-2.0","_id":"@blen/fedreg-mcp-server@2.0.2","maintainers":[{"name":"dotmike","email":"mike@blencorp.com"},{"name":"naodya","email":"naodya@gmail.com"},{"name":"naodyaw","email":"naod@blencorp.com"},{"name":"juliusohblen","email":"julius@blencorp.com"}],"homepage":"https://github.com/blen-labs/fedreg-mcp-server#readme","bugs":{"url":"https://github.com/blen-labs/fedreg-mcp-server/issues"},"bin":{"fedreg-mcp-server":"dist/bin.js"},"dist":{"shasum":"df5e5fe3f03b69b2e277287b4bf27d863bb98764","tarball":"https://registry.npmjs.org/@blen/fedreg-mcp-server/-/fedreg-mcp-server-2.0.2.tgz","fileCount":161,"integrity":"sha512-AmeBGRzF753hDGoVJ9EVohYYq3eerAcBfamT4HCysj+ltnHJhviE+FqBRHogy+HP5BXYXRBjO4x5Wsi2f16wHg==","signatures":[{"sig":"MEYCIQDK5QvxTXCkejFDc6RCZSUR4SILYJyrFKOrAnlv+fxbAgIhAIOlOoNdU+CgnaSldaukTL2Oet8mDY6CuSPZulycmCWC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blen%2ffedreg-mcp-server@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":248899},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.10"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"91637302ed09c6df1d86cd1c319b55b0ccb2aba1","scripts":{"dev":"tsx src/bin.ts","lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json && (chmod +x dist/bin.js || true)","start":"node dist/bin.js","prepack":"pnpm run build","mcpb:pack":"mcpb pack mcpb-build fedreg-mcp-server.mcpb","typecheck":"tsc --noEmit","test:watch":"vitest","mcpb:prepare":"node scripts/mcpb-prepare.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:eb7a10d2-cb64-4159-802a-cf22cdb800ee"}},"repository":{"url":"git+https://github.com/blen-labs/fedreg-mcp-server.git","type":"git"},"_npmVersion":"12.0.2","description":"Code-mode MCP server for the U.S. Federal Register, Electronic Code of Federal Regulations, and regulations.gov APIs.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.8","jose":"^5.9.6","acorn":"^8.12.1","undici":"^6.21.0","lru-cache":"^11.0.2","acorn-walk":"^8.3.4","@modelcontextprotocol/node":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"tsx":"^4.19.2","nock":"^14.0.0-beta.19","eslint":"^9.17.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.2","@anthropic-ai/mcpb":"^2.1.2","@typescript-eslint/parser":"^8.18.0","@modelcontextprotocol/client":"2.0.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"optionalDependencies":{"isolated-vm":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/fedreg-mcp-server_2.0.2_1786058288074_0.3550126471193946","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@blen/fedreg-mcp-server","version":"2.0.3","keywords":["mcp","model-context-protocol","federal-register","ecfr","regulations.gov","public-comments","code-mode","sandbox","isolated-vm","ai-agents","claude","anthropic","regulations","government-data"],"author":{"url":"https://blenlabs.com","name":"BLEN, Inc."},"license":"Apache-2.0","_id":"@blen/fedreg-mcp-server@2.0.3","maintainers":[{"name":"dotmike","email":"mike@blencorp.com"},{"name":"naodya","email":"naodya@gmail.com"},{"name":"naodyaw","email":"naod@blencorp.com"},{"name":"juliusohblen","email":"julius@blencorp.com"}],"homepage":"https://github.com/blen-labs/fedreg-mcp-server#readme","bugs":{"url":"https://github.com/blen-labs/fedreg-mcp-server/issues"},"bin":{"fedreg-mcp-server":"dist/bin.js"},"dist":{"shasum":"852ad9c18b8b7536e406a3a8f8ed413d41f4127e","tarball":"https://registry.npmjs.org/@blen/fedreg-mcp-server/-/fedreg-mcp-server-2.0.3.tgz","fileCount":161,"integrity":"sha512-Z0RDojCdJOg6EhTzTzIyN2DWz9ImGrSShgYwoU/38XBdNSfqIoz2HUqEhw0KUr4mpSRs9YUm6nhgRwuoKs4+lw==","signatures":[{"sig":"MEYCIQCLEOr5AqmmCdNS9JGjx/EL2mQqE9YGMYECLwzoZNdbwwIhAPNm+6WHwqnW7kzzeTl++JmmxyAaQegPNfaxGONAFQQP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blen%2ffedreg-mcp-server@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":249063},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.10"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"09dfd33309d1a57fc20e56f97b255dae0b437e72","scripts":{"dev":"tsx src/bin.ts","lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json && (chmod +x dist/bin.js || true)","start":"node dist/bin.js","prepack":"pnpm run build","mcpb:pack":"mcpb pack mcpb-build fedreg-mcp-server.mcpb","typecheck":"tsc --noEmit","test:watch":"vitest","mcpb:prepare":"node scripts/mcpb-prepare.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:eb7a10d2-cb64-4159-802a-cf22cdb800ee"}},"repository":{"url":"git+https://github.com/blen-labs/fedreg-mcp-server.git","type":"git"},"_npmVersion":"12.0.2","description":"Code-mode MCP server for the U.S. Federal Register, Electronic Code of Federal Regulations, and regulations.gov APIs.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.8","jose":"^5.9.6","acorn":"^8.12.1","undici":"^6.21.0","lru-cache":"^11.0.2","acorn-walk":"^8.3.4","@modelcontextprotocol/node":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"tsx":"^4.19.2","nock":"^14.0.0-beta.19","eslint":"^9.17.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.2","@anthropic-ai/mcpb":"^2.1.2","@typescript-eslint/parser":"^8.18.0","@modelcontextprotocol/client":"2.0.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"optionalDependencies":{"isolated-vm":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/fedreg-mcp-server_2.0.3_1786058386419_0.7217590791938753","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@blen/fedreg-mcp-server","version":"2.0.4","keywords":["mcp","model-context-protocol","federal-register","ecfr","regulations.gov","public-comments","code-mode","sandbox","isolated-vm","ai-agents","claude","anthropic","regulations","government-data"],"author":{"url":"https://blenlabs.com","name":"BLEN, Inc."},"license":"Apache-2.0","_id":"@blen/fedreg-mcp-server@2.0.4","maintainers":[{"name":"dotmike","email":"mike@blencorp.com"},{"name":"naodya","email":"naodya@gmail.com"},{"name":"naodyaw","email":"naod@blencorp.com"},{"name":"juliusohblen","email":"julius@blencorp.com"}],"homepage":"https://github.com/blen-labs/fedreg-mcp-server#readme","bugs":{"url":"https://github.com/blen-labs/fedreg-mcp-server/issues"},"bin":{"fedreg-mcp-server":"dist/bin.js"},"dist":{"shasum":"e98d5bf2f04ea57f99db9fb16b947e69a52b48e8","tarball":"https://registry.npmjs.org/@blen/fedreg-mcp-server/-/fedreg-mcp-server-2.0.4.tgz","fileCount":161,"integrity":"sha512-WlRRbmQoZAhHAJrNAoGr9fjRi5/lZ2sbpoz3QTGjqg1v0yFKKWa2nBkq3fevOvtFnlxGceNlIRHUwpXjk1pzpw==","signatures":[{"sig":"MEUCIQCTuZ6gl0NwI2EepFRb4GDWmpD9QJd2IOcn6R9QgPAgNQIgfAxwaoTe2Pk7M4yLAPREQG+qLTyMy67gOQf9BDDovq0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blen%2ffedreg-mcp-server@2.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":249220},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.10"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"04c5b322596a13d468a1f2729ffefb858eac3e36","scripts":{"dev":"tsx src/bin.ts","lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json && (chmod +x dist/bin.js || true)","start":"node dist/bin.js","prepack":"pnpm run build","mcpb:pack":"mcpb pack mcpb-build fedreg-mcp-server.mcpb","typecheck":"tsc --noEmit","test:watch":"vitest","mcpb:prepare":"node scripts/mcpb-prepare.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:eb7a10d2-cb64-4159-802a-cf22cdb800ee"}},"repository":{"url":"git+https://github.com/blen-labs/fedreg-mcp-server.git","type":"git"},"_npmVersion":"12.0.2","description":"Code-mode MCP server for the U.S. Federal Register, Electronic Code of Federal Regulations, and regulations.gov APIs.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.8","jose":"^5.9.6","acorn":"^8.12.1","undici":"^6.21.0","lru-cache":"^11.0.2","acorn-walk":"^8.3.4","@modelcontextprotocol/node":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"tsx":"^4.19.2","nock":"^14.0.0-beta.19","eslint":"^9.17.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.2","@anthropic-ai/mcpb":"^2.1.2","@typescript-eslint/parser":"^8.18.0","@modelcontextprotocol/client":"2.0.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"optionalDependencies":{"isolated-vm":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/fedreg-mcp-server_2.0.4_1786058592611_0.7473828857813805","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@blen/fedreg-mcp-server","version":"2.0.5","keywords":["mcp","model-context-protocol","federal-register","ecfr","regulations.gov","public-comments","code-mode","sandbox","isolated-vm","ai-agents","claude","anthropic","regulations","government-data"],"author":{"url":"https://blenlabs.com","name":"BLEN, Inc."},"license":"Apache-2.0","_id":"@blen/fedreg-mcp-server@2.0.5","maintainers":[{"name":"dotmike","email":"mike@blencorp.com"},{"name":"naodya","email":"naodya@gmail.com"},{"name":"naodyaw","email":"naod@blencorp.com"},{"name":"juliusohblen","email":"julius@blencorp.com"}],"homepage":"https://github.com/blen-labs/fedreg-mcp-server#readme","bugs":{"url":"https://github.com/blen-labs/fedreg-mcp-server/issues"},"bin":{"fedreg-mcp-server":"dist/bin.js"},"dist":{"shasum":"8de650a93bd69751b9c08ae34a53f60038b49973","tarball":"https://registry.npmjs.org/@blen/fedreg-mcp-server/-/fedreg-mcp-server-2.0.5.tgz","fileCount":161,"integrity":"sha512-HAt5roFe0hzO8gLR+pnEvOFzOibkdiE7UKw7o37KDiCeTWGkn+z5WImSvYKjNuhbtGKlxet/LFFBjT2s5W2TiQ==","signatures":[{"sig":"MEQCIAMs+xpWkX1eavOy8irH6OF6umDHb/dwu2CxeDC0KJ6NAiBFQ73acs3hqem4dbQV6p/xBShFXjOf1EcgWGYMZXelwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blen%2ffedreg-mcp-server@2.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":249408},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.10"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"c40772d255fa86a13c4560ce36a7c0f58c514a01","scripts":{"dev":"tsx src/bin.ts","lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json && (chmod +x dist/bin.js || true)","start":"node dist/bin.js","prepack":"pnpm run build","mcpb:pack":"mcpb pack mcpb-build fedreg-mcp-server.mcpb","typecheck":"tsc --noEmit","test:watch":"vitest","mcpb:prepare":"node scripts/mcpb-prepare.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:eb7a10d2-cb64-4159-802a-cf22cdb800ee"}},"repository":{"url":"git+https://github.com/blen-labs/fedreg-mcp-server.git","type":"git"},"_npmVersion":"12.0.2","description":"Code-mode MCP server for the U.S. Federal Register, Electronic Code of Federal Regulations, and regulations.gov APIs.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.8","jose":"^5.9.6","acorn":"^8.12.1","undici":"^6.21.0","lru-cache":"^11.0.2","acorn-walk":"^8.3.4","@modelcontextprotocol/node":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"tsx":"^4.19.2","nock":"^14.0.0-beta.19","eslint":"^9.17.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.2","@anthropic-ai/mcpb":"^2.1.2","@typescript-eslint/parser":"^8.18.0","@modelcontextprotocol/client":"2.0.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"optionalDependencies":{"isolated-vm":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/fedreg-mcp-server_2.0.5_1786059430353_0.7808522419391897","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"@blen/fedreg-mcp-server","version":"2.0.6","keywords":["mcp","model-context-protocol","federal-register","ecfr","regulations.gov","public-comments","code-mode","sandbox","isolated-vm","ai-agents","claude","anthropic","regulations","government-data"],"author":{"url":"https://blenlabs.com","name":"BLEN, Inc."},"license":"Apache-2.0","_id":"@blen/fedreg-mcp-server@2.0.6","maintainers":[{"name":"dotmike","email":"mike@blencorp.com"},{"name":"naodya","email":"naodya@gmail.com"},{"name":"naodyaw","email":"naod@blencorp.com"},{"name":"juliusohblen","email":"julius@blencorp.com"}],"homepage":"https://github.com/blen-labs/fedreg-mcp-server#readme","bugs":{"url":"https://github.com/blen-labs/fedreg-mcp-server/issues"},"bin":{"fedreg-mcp-server":"dist/bin.js"},"dist":{"shasum":"a619b776fae6003084f29fb94cbd7d35804ed8a1","tarball":"https://registry.npmjs.org/@blen/fedreg-mcp-server/-/fedreg-mcp-server-2.0.6.tgz","fileCount":161,"integrity":"sha512-OARYV4KUCCURnV/FBvD39lbbaIOTLDwGS8hdwG3RQtfDeIYLXfjngyyKqOHWAgDoD8auMMTIaGBCJZ0z+PuOCw==","signatures":[{"sig":"MEUCIQC5XbEdtVOFIiFbR1v/rpsjbWUY0K9ExbPcny4Lc+e0KQIgIE7f4kmXYCF2rR/+uVsIMZWNxeCSHLt6fie6G084Yqc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFO/A75bBYWnak1In+C0LP24nlfuuuQMya06Rt9g5asJAiEA5Fj4kKgrhpOIIJIl2V8q2sRjsz/01LyGgesyCQbUngs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blen%2ffedreg-mcp-server@2.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":258011},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.10"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"14dbe6449319f0bad94239f74a2d23cbaa8f753d","scripts":{"dev":"tsx src/bin.ts","lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json && (chmod +x dist/bin.js || true)","start":"node dist/bin.js","prepack":"pnpm run build","mcpb:pack":"mcpb pack mcpb-build fedreg-mcp-server.mcpb","typecheck":"tsc --noEmit","test:watch":"vitest","mcpb:prepare":"node scripts/mcpb-prepare.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:eb7a10d2-cb64-4159-802a-cf22cdb800ee"}},"repository":{"url":"git+https://github.com/blen-labs/fedreg-mcp-server.git","type":"git"},"_npmVersion":"12.0.2","description":"Code-mode MCP server for the U.S. Federal Register, Electronic Code of Federal Regulations, and regulations.gov APIs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.23.8","jose":"^5.9.6","acorn":"^8.12.1","undici":"^6.21.0","lru-cache":"^11.0.2","acorn-walk":"^8.3.4","@modelcontextprotocol/node":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"tsx":"^4.19.2","nock":"^14.0.0-beta.19","eslint":"^9.17.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.2","@anthropic-ai/mcpb":"^2.1.2","@typescript-eslint/parser":"^8.18.0","@modelcontextprotocol/client":"2.0.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"optionalDependencies":{"isolated-vm":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/fedreg-mcp-server_2.0.6_1790124728253_0.8474234337928808","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"@blen/fedreg-mcp-server","version":"2.0.7","keywords":["mcp","model-context-protocol","federal-register","ecfr","regulations.gov","public-comments","code-mode","sandbox","isolated-vm","ai-agents","claude","anthropic","regulations","government-data"],"author":{"url":"https://blenlabs.com","name":"BLEN, Inc."},"license":"Apache-2.0","_id":"@blen/fedreg-mcp-server@2.0.7","maintainers":[{"name":"dotmike","email":"mike@blencorp.com"},{"name":"naodya","email":"naodya@gmail.com"},{"name":"naodyaw","email":"naod@blencorp.com"},{"name":"juliusohblen","email":"julius@blencorp.com"}],"homepage":"https://github.com/blen-labs/fedreg-mcp-server#readme","bugs":{"url":"https://github.com/blen-labs/fedreg-mcp-server/issues"},"bin":{"fedreg-mcp-server":"dist/bin.js"},"dist":{"shasum":"0df221126fa59224a9e82c09b30586940656069a","tarball":"https://registry.npmjs.org/@blen/fedreg-mcp-server/-/fedreg-mcp-server-2.0.7.tgz","fileCount":161,"integrity":"sha512-eFM7Bx41HrzjIhVzuhOGYnkUwO6cIMw/oerOhCijqCgeWDN+MCH9nAjQHS5Mmc5rjtPZSMiO6pVW+qQyV4PKGg==","signatures":[{"sig":"MEYCIQDNp5CWvJYGS0bx84Ubpiiul3D6Y5MHwcsbGTBvlJzNIgIhAIT6thJG5lgW14qzq3e3UqNsUjGBL8g2sOTJAds8IWUm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAOVH6piWFl+esCClpr63safAmXHeVdhHvyxkMa7avteAiEA5ieF9ZYY7JGOIKxE+w6dGxT7URQHr9VbeVquxKxkM+Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blen%2ffedreg-mcp-server@2.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":258476},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.10"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"b1012235c822f384de0b072323b42306f77210b3","scripts":{"dev":"tsx src/bin.ts","lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json && (chmod +x dist/bin.js || true)","start":"node dist/bin.js","prepack":"pnpm run build","mcpb:pack":"mcpb pack mcpb-build fedreg-mcp-server.mcpb","typecheck":"tsc --noEmit","test:watch":"vitest","mcpb:prepare":"node scripts/mcpb-prepare.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:eb7a10d2-cb64-4159-802a-cf22cdb800ee"}},"repository":{"url":"git+https://github.com/blen-labs/fedreg-mcp-server.git","type":"git"},"_npmVersion":"12.0.2","description":"Code-mode MCP server for the U.S. Federal Register, Electronic Code of Federal Regulations, and regulations.gov APIs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.23.8","jose":"^5.9.6","acorn":"^8.12.1","undici":"^6.21.0","lru-cache":"^11.0.2","acorn-walk":"^8.3.4","@modelcontextprotocol/node":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"tsx":"^4.19.2","nock":"^14.0.0-beta.19","eslint":"^9.17.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.2","@anthropic-ai/mcpb":"^2.1.2","@typescript-eslint/parser":"^8.18.0","@modelcontextprotocol/client":"2.0.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"optionalDependencies":{"isolated-vm":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/fedreg-mcp-server_2.0.7_1790125516177_0.04691459911218332","host":"s3://npm-registry-packages-npm-production"}},"2.0.8":{"_id":"@blen/fedreg-mcp-server@2.0.8","bin":{"fedreg-mcp-server":"dist/bin.js"},"bugs":{"url":"https://github.com/blen-labs/fedreg-mcp-server/issues"},"dist":{"shasum":"23094abbfd1e4cbfcc9b2d52386190664e581c93","tarball":"https://registry.npmjs.org/@blen/fedreg-mcp-server/-/fedreg-mcp-server-2.0.8.tgz","fileCount":161,"integrity":"sha512-02f6CElg7AOyovxmje8xoFRVkMuZX538fCTwNQG/ihu+FcU17331TW9Lcl4yRaIYJL+HjharzqUbmy64BL0qaQ==","signatures":[{"sig":"MEUCIDYMYYkERWkCfoawknVY8vy746AgPMjCsThbJjU3ACVmAiEAsw9m8sSOHO4utEprIOv5fjrDdLjAKzFfGJoL7txZgac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDLhGFuFuvfbGb+84rRYkffzfVL2KNlgF1LT7YbxuVVrwIga2w/YLBs8Lty/11vWT4LRHRiXY3j874RFxc8/5/CF9Q="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blen%2ffedreg-mcp-server@2.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":258648},"main":"dist/index.js","name":"@blen/fedreg-mcp-server","type":"module","types":"dist/index.d.ts","author":{"url":"https://blenlabs.com","name":"BLEN, Inc."},"engines":{"node":">=20.10"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"e0e68f8cfadf3710aec1f05938ebe7f7c0a10858","license":"Apache-2.0","scripts":{"dev":"tsx src/bin.ts","lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json && (chmod +x dist/bin.js || true)","start":"node dist/bin.js","prepack":"pnpm run build","mcpb:pack":"mcpb pack mcpb-build fedreg-mcp-server.mcpb","typecheck":"tsc --noEmit","test:watch":"vitest","mcpb:prepare":"node scripts/mcpb-prepare.mjs"},"version":"2.0.8","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:eb7a10d2-cb64-4159-802a-cf22cdb800ee"}},"homepage":"https://github.com/blen-labs/fedreg-mcp-server#readme","keywords":["mcp","model-context-protocol","federal-register","ecfr","regulations.gov","public-comments","code-mode","sandbox","isolated-vm","ai-agents","claude","anthropic","regulations","government-data"],"repository":{"url":"git+https://github.com/blen-labs/fedreg-mcp-server.git","type":"git"},"_npmVersion":"12.0.2","description":"Code-mode MCP server for the U.S. Federal Register, Electronic Code of Federal Regulations, and regulations.gov APIs.","directories":{},"maintainers":[{"name":"dotmike","email":"mike@blencorp.com"},{"name":"naodya","email":"naodya@gmail.com"},{"name":"naodyaw","email":"naod@blencorp.com"},{"name":"juliusohblen","email":"julius@blencorp.com"}],"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.23.8","jose":"^5.9.6","acorn":"^8.12.1","undici":"^6.21.0","lru-cache":"^11.0.2","acorn-walk":"^8.3.4","@modelcontextprotocol/node":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"tsx":"^4.19.2","nock":"^14.0.0-beta.19","eslint":"^9.17.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.2","@anthropic-ai/mcpb":"^2.1.2","@typescript-eslint/parser":"^8.18.0","@modelcontextprotocol/client":"2.0.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"optionalDependencies":{"isolated-vm":"^5.0.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fedreg-mcp-server_2.0.8_1790127284975_0.2859146272964692"}}},"time":{"created":"2026-08-06T20:37:41.624Z","modified":"2026-09-23T01:34:45.435Z","2.0.0":"2026-08-06T20:37:41.938Z","2.0.1":"2026-08-06T23:16:48.651Z","2.0.2":"2026-08-06T23:18:08.230Z","2.0.3":"2026-08-06T23:19:46.561Z","2.0.4":"2026-08-06T23:23:12.765Z","2.0.5":"2026-08-06T23:37:10.510Z","2.0.6":"2026-09-23T00:52:08.364Z","2.0.7":"2026-09-23T01:05:16.286Z","2.0.8":"2026-09-23T01:34:45.084Z"},"bugs":{"url":"https://github.com/blen-labs/fedreg-mcp-server/issues"},"author":{"url":"https://blenlabs.com","name":"BLEN, Inc."},"license":"Apache-2.0","homepage":"https://github.com/blen-labs/fedreg-mcp-server#readme","keywords":["mcp","model-context-protocol","federal-register","ecfr","regulations.gov","public-comments","code-mode","sandbox","isolated-vm","ai-agents","claude","anthropic","regulations","government-data"],"repository":{"url":"git+https://github.com/blen-labs/fedreg-mcp-server.git","type":"git"},"description":"Code-mode MCP server for the U.S. Federal Register, Electronic Code of Federal Regulations, and regulations.gov APIs.","maintainers":[{"name":"dotmike","email":"mike@blencorp.com"},{"name":"naodya","email":"naodya@gmail.com"},{"name":"naodyaw","email":"naod@blencorp.com"},{"name":"juliusohblen","email":"julius@blencorp.com"}],"readme":"# Federal Register MCP Server\n\n[![CI](https://github.com/blen-labs/fedreg-mcp-server/actions/workflows/ci.yml/badge.svg)](https://github.com/blen-labs/fedreg-mcp-server/actions/workflows/ci.yml)\n[![npm](https://img.shields.io/npm/v/@blen/fedreg-mcp-server.svg)](https://www.npmjs.com/package/@blen/fedreg-mcp-server)\n[![license: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](./LICENSE)\n[![Node](https://img.shields.io/badge/node-%E2%89%A520.10-339933.svg)](https://nodejs.org/)\n[![MCP](https://img.shields.io/badge/MCP-2026--07--28-7c3aed.svg)](https://modelcontextprotocol.io/specification/2026-07-28)\n\n<p align=\"center\">\n  <video src=\"https://github.com/blen-labs/fedreg-mcp-server/raw/main/media/fedreg-launch.mp4\" poster=\"https://raw.githubusercontent.com/blen-labs/fedreg-mcp-server/main/media/launch-poster.png\" controls muted playsinline width=\"760\"></video>\n</p>\n\n**Ask your AI assistant real questions about U.S. federal regulations — and get answers grounded in the official Federal Register, eCFR, and regulations.gov.**\n\nThis is a [Model Context Protocol](https://modelcontextprotocol.io) server that connects any MCP client (Claude Desktop and others) to three official U.S. government sources:\n\n- **[Federal Register](https://www.federalregister.gov)** — the daily journal of the federal government: rules, proposed rules, notices, and presidential documents since 1994.\n- **[Electronic Code of Federal Regulations (eCFR)](https://www.ecfr.gov)** — the current, continuously updated text of the Code of Federal Regulations.\n- **[regulations.gov](https://www.regulations.gov)** — public comments, dockets, and live comment-period status for federal rulemakings.\n\nInstead of bolting on dozens of rigid, narrow tools, it hands the model a small, well-documented SDK and lets it write the exact query it needs in JavaScript — then runs that code in a locked-down sandbox. This is the **code-mode** pattern, and it makes wide government APIs usable without overwhelming the model with tool definitions.\n\n> Independent open-source project. It calls public U.S. government APIs and is not affiliated with or endorsed by the U.S. government.\n\n## See it in action\n\nAsk Claude:\n\n> *\"What does 50 CFR 21.150 cover, and have there been recent Federal Register rules touching migratory-bird depredation?\"*\n\nThe model finds the right calls and runs them in the sandbox — no hand-written tool per endpoint:\n\n```ts\n// Pull the current text of an eCFR section…\nconst { titles } = await ecfr.titles.list();\nconst date = titles.find(t => t.number === 50).latest_issue_date;\nconst section = await ecfr.full(date, 50, { part: '21', section: '21.150' });\n\n// …and search the Federal Register for related rulemaking.\nconst rules = await fr.documents.search({\n  conditions: { term: 'migratory bird depredation', type: ['RULE', 'PRORULE'] },\n  fields: ['title', 'publication_date', 'html_url'],\n  per_page: 5,\n  order: 'newest',\n});\n```\n\n…then answers in plain English, citing the section and the rules it found.\n\n## Features\n\n- **Three official sources, one server** — the full Federal Register v1 (`fr.*`), eCFR (`ecfr.*`), and regulations.gov v4 (`regs.*`) APIs behind one server.\n- **Code mode, not tool sprawl** — the model writes JavaScript against the `fr` / `ecfr` / `regs` SDKs instead of juggling dozens of single-purpose tools.\n- **Safe by construction** — user code runs in an `isolated-vm` (or Deno) sandbox with **no network, filesystem, env, or subprocess access**. The only way out is to the three upstream government APIs.\n- **Runs anywhere MCP does** — stdio for Claude Desktop, or a remote Streamable HTTP server with OAuth, rate limiting, and quotas.\n- **Discovery built in** — `search_api` and `describe_schema` help the model (and you) find the right call fast.\n\n## Which source for what\n\n| Need | Source |\n|---|---|\n| Daily rules, proposed rules, notices; FR document metadata since 1994 | `fr` |\n| Current Code of Federal Regulations text | `ecfr` |\n| Public comments, dockets, live comment-period status | `regs` |\n\nFor canonical Federal Register rule text and metadata since 1994, prefer `fr.documents` — regulations.gov documents overlap it. Reach for `regs` when you need what only it has: public **comments**, **dockets**, and live comment-period status.\n\n### regulations.gov API key\n\nregulations.gov requires a free API key from [api.data.gov / open.gsa.gov](https://open.gsa.gov/api/regulationsgov/). Set it via `FEDREG_REGS_API_KEY`. The key is held host-side and never reaches the sandbox.\n\nWithout a key the `regs` source is **disabled** — `regs.*` calls return a clear `SourceUnavailable` error, while `fr` and `ecfr` keep working normally.\n\nBecause the regulations.gov key is shared, `regs` upstream calls are bounded by a process-wide hourly bucket (`FEDREG_REGS_RATE_PER_HOUR`), a per-subject hourly quota in HTTP mode (`FEDREG_REGS_SUBJECT_RATE_PER_HOUR`; under `--insecure` all callers share the single `anonymous` bucket, and stdio skips it), and a per-`execute()` call budget (`FEDREG_REGS_MAX_CALLS_PER_EXECUTE`). For the two hourly rates, `0` is **not** \"unlimited\" — it blocks all regs calls; to disable regs entirely, leave `FEDREG_REGS_API_KEY` unset.\n\n### Bridge example: comments on a Federal Register rule\n\n`frDocNum` is a *returned* attribute on regs documents, not a filter — so bridge from FR to regulations.gov via the document number as a `searchTerm`:\n\n```ts\n// 1. Find the rule in the Federal Register and read its document number.\nconst fr1 = await fr.documents.search({\n  conditions: { term: 'methane', type: ['RULE'] },\n  per_page: 1,\n  order: 'newest',\n});\nconst docNum = fr1.results[0].document_number;\n\n// 2. Look it up on regulations.gov by document number, then read its objectId.\nconst rd = await regs.documents.search({ filter: { searchTerm: docNum } });\nconst objectId = rd.data[0].attributes.objectId;\n\n// 3. Pull the public comments filed on that document.\nconst comments = await regs.comments.search({\n  filter: { commentOnId: objectId },\n  page: { size: 250 },\n});\n```\n\n## Quickstart (Claude Desktop)\n\nAdd the server to your Claude Desktop config (**Settings → Developer → Edit Config**):\n\n```json\n{\n  \"mcpServers\": {\n    \"fedreg\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@blen/fedreg-mcp-server\"]\n    }\n  }\n}\n```\n\nRestart Claude Desktop, then just ask in plain language:\n\n> *\"Find EPA methane rules published since 2024.\"*\n> *\"What does 40 CFR Part 60 cover?\"*\n> *\"Which proposed rules opened for public comment this week?\"*\n\nRequires **Node.js ≥ 20.10**. `npx` downloads and runs the server on demand; no global install needed. If the `execute` tool reports `SandboxUnavailable`, see [Sandbox runtimes](#sandbox-runtimes).\n\n## How it works\n\nThree tools, in the order the model uses them:\n\n| Tool | What it does |\n|---|---|\n| `search_api(query, k?)` | Finds the right endpoint/field via BM25 over the SDK docs. Returns signatures and ready-to-run JavaScript snippets. |\n| `describe_schema({ path? \\| prefix? })` | Looks up an exact call or lists a whole namespace. |\n| `execute({ code, timeoutMs?, memoryMb? })` | Runs JavaScript (no type annotations; top-level `await`/`return` allowed) in the sandbox, with `fr`, `ecfr`, and `regs` as globals. (`regs` is always defined; without `FEDREG_REGS_API_KEY` its calls return a `SourceUnavailable` error rather than a `ReferenceError`.) |\n\nAll three tools carry MCP annotations marking them read-only and non-destructive (`execute` is additionally `openWorldHint: true`, since it reaches the upstream APIs), so clients that honor annotations can auto-approve them.\n\nA request flows from the MCP client through `execute` into the sandbox; the `fr.*` / `ecfr.*` / `regs.*` globals are thin proxies that marshal each call across a host-side RPC bridge to the real APIs:\n\n```text\nMCP client → execute(code) → sandbox → fr.* / ecfr.* / regs.* RPC bridge → upstream APIs\n```\n\nFull SDK surface: [`docs/sdk-reference.md`](./docs/sdk-reference.md) · Architecture: [`docs/architecture.md`](./docs/architecture.md) · Paste-ready examples: [`examples/`](./examples/).\n\n## Sandbox runtimes\n\n`execute` needs a sandbox runner. The server picks one automatically:\n\n1. **`isolated-vm`** (preferred) — a fresh V8 isolate. Built automatically during install on Linux/macOS/Windows (x64/arm64) where a C++ toolchain is present.\n2. **Deno** (fallback) — used when `isolated-vm` isn't available and `deno` is on `PATH`.\n3. If neither is available, `search_api` and `describe_schema` still work; `execute` returns `SandboxUnavailable`.\n\n> On very new Node majors, `isolated-vm` may not have a compatible prebuild yet. Install [Deno](https://docs.deno.com/runtime/getting_started/installation/) and run with `--sandbox deno` (or `FEDREG_SANDBOX=deno`). Node 20 and 22 build `isolated-vm` cleanly.\n\n## Self-hosting (remote HTTP)\n\nRun a shared, authenticated endpoint over Streamable HTTP:\n\n```bash\n# Dev only — no auth, loopback-bound:\nnpx @blen/fedreg-mcp-server --http --insecure --host 127.0.0.1 --port 8080\n\n# Production — auth via any OIDC issuer:\nFEDREG_AUTH_PROVIDER=clerk \\\nFEDREG_AUTH_ISSUER=https://<tenant>.clerk.accounts.dev \\\nFEDREG_AUTH_JWKS_URL=https://<tenant>.clerk.accounts.dev/.well-known/jwks.json \\\nFEDREG_PUBLIC_ORIGIN=https://your-host.example.com \\\nFEDREG_ALLOWED_HOSTS=your-host.example.com \\\n  npx @blen/fedreg-mcp-server --http\n```\n\nThen point any MCP client at it:\n\n```json\n{ \"mcpServers\": { \"fedreg\": { \"type\": \"http\", \"url\": \"https://your-host.example.com/mcp\" } } }\n```\n\nThe HTTP transport implements the stateless MCP `2026-07-28` Streamable HTTP profile — no `initialize` handshake and no `Mcp-Session-Id`, so requests can be load-balanced across replicas without sticky routing. Pre-2026 clients are still served through a stateless legacy fallback. It adds OAuth 2.0 Protected Resource Metadata (RFC 9728), per-IP rate limiting, per-subject daily quotas, Host-header allowlisting, and Origin validation on `/mcp` (browser cross-origin requests are rejected unless allowlisted via `FEDREG_ALLOWED_ORIGINS`; non-browser clients are unaffected). A step-by-step Railway walkthrough is in [`deploy/RAILWAY.md`](./deploy/RAILWAY.md); the bundled [`Dockerfile`](./deploy/Dockerfile) precompiles `isolated-vm` and slims to a ~220 MB `node:22-bookworm-slim` runtime.\n\n### Configuration\n\nThe most common knobs (full list and defaults in [`.env.example`](./.env.example)):\n\n| Variable | Default | Notes |\n|---|---|---|\n| `FEDREG_SANDBOX` | `auto` | `auto` / `isolate` / `deno` |\n| `FEDREG_USER_AGENT` | `fedreg-mcp-server/2.0 …` | Identify yourself, per FR/eCFR etiquette. |\n| `FEDREG_REGS_API_KEY` | — | Free key from regulations.gov / api.data.gov. Unset ⇒ `regs` disabled (fr/ecfr unaffected). |\n| `FEDREG_REGS_BASE_URL` | `https://api.regulations.gov` | regulations.gov v4 API base URL. |\n| `FEDREG_REGS_MAX_CALLS_PER_EXECUTE` | `30` | Caps regulations.gov upstream calls per `execute()` run (rate-limit guardrail). |\n| `FEDREG_REGS_RATE_PER_HOUR` | `1000` | Process-wide cap on regs upstream calls/hour (protects the shared key). In-memory; with N replicas, divide by N. Must be ≥ 1. |\n| `FEDREG_REGS_SUBJECT_RATE_PER_HOUR` | `500` | Per-subject regs calls/hour (HTTP mode only; skipped on stdio; one shared `anonymous` bucket under `--insecure`). Must be ≥ 1. |\n| `FEDREG_AUTH_PROVIDER` | `none` | `none` / `embedded` / `generic-oidc` / `clerk` / `workos` / `auth0` |\n| `FEDREG_PUBLIC_ORIGIN` | — | Public origin clients reach (used in OAuth metadata). |\n| `FEDREG_SUBJECT_DAILY_QUOTA` | `10000` | Requests per authenticated subject per UTC day. |\n\nCLI options: `--http`, `--port`, `--host`, `--sandbox auto|isolate|deno`, `--insecure`, `--help`.\n\n## Security\n\nUser code is sandboxed by design — no network, filesystem, env, or subprocess access, an `acorn` AST preflight, a wall-clock timeout, and — on the `isolated-vm` runner — a heap cap (`memoryMb` is not enforceable on the Deno fallback). The full threat model is in [`SECURITY.md`](./SECURITY.md). Found a sandbox escape or auth bypass? Please open a [private Security Advisory](https://github.com/blen-labs/fedreg-mcp-server/security/advisories/new) rather than a public issue.\n\n## Contributing\n\nContributions are welcome — see [`CONTRIBUTING.md`](./CONTRIBUTING.md) for the dev setup and ground rules, and please open an issue before anything non-trivial. By participating you agree to the [Code of Conduct](./CODE_OF_CONDUCT.md).\n\n## License\n\n[Apache-2.0](./LICENSE) © 2026 BLEN, Inc. See also [`NOTICE`](./NOTICE).\n\n## Hosted service policies\n\nThe BLEN-hosted connector's [Privacy Policy](./legal/privacy-policy.md) and\n[Terms of Service](./legal/terms.md) describe data handling and conditions of\nuse. The software remains licensed under Apache-2.0; self-hosted operators\nare responsible for their own policies.\n\n## Acknowledgements\n\n- The U.S. Government Publishing Office and the National Archives for publishing the Federal Register and eCFR APIs.\n- The [Model Context Protocol](https://modelcontextprotocol.io) team for the spec and TypeScript SDK.\n- The teams who popularized the code-mode pattern for wide APIs.\n\n---\n\nBuilt with ❤️ by [BLEN, Inc](https://www.blencorp.com).\n\n## About BLEN\n\nBLEN, Inc is a digital services company that provides Emerging Technology (ML/AI, RPA), Digital Modernization (Legacy to Cloud), and Human-Centered Web/Mobile Design and Development.\n","readmeFilename":"README.md"}