{"_id":"@beshkenadze/ecfr-sdk","_rev":"5-64d89ff15623f0eae34516be9cac526c","name":"@beshkenadze/ecfr-sdk","dist-tags":{"latest":"0.7.1"},"versions":{"0.1.0":{"name":"@beshkenadze/ecfr-sdk","version":"0.1.0","keywords":["ecfr","federal","regulations","api","sdk","mcp","typescript"],"author":{"name":"Akira Beshkenadze"},"license":"MIT","_id":"@beshkenadze/ecfr-sdk@0.1.0","maintainers":[{"name":"beshkenadze","email":"beshkenadze@gmail.com"}],"homepage":"https://github.com/beshkenadze/ecfr-sdk#readme","bugs":{"url":"https://github.com/beshkenadze/ecfr-sdk/issues"},"dist":{"shasum":"e3fa4e52ecf21b649a10838a42ff64308b0ff62b","tarball":"https://registry.npmjs.org/@beshkenadze/ecfr-sdk/-/ecfr-sdk-0.1.0.tgz","fileCount":23,"integrity":"sha512-CBUX5Kyob2Udmf+tuPPpVodQyKrWdnc3wNCNGylPpules4ctusB/2pKW1tcUiqZQxVaJfhDv1p8oiHET8r/lWA==","signatures":[{"sig":"MEYCIQDO50RisSP26afVEyBSSalVUaqGzIV47Fs2Q4GnjS0jmgIhAOqLz6iVZOupypgwmmbMQaHluTfAYY7rfrWJqghSEajA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":426723},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"src/index.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"}},"gitHead":"01954346fda57e2d2622377d2af9e3b0f134be75","scripts":{"dev":"bun run src/index.ts","lint":"biome lint --write .","test":"bun test src","build":"bun run build:clean && bun run build:js && bun run build:types","check":"biome check --write .","format":"biome format --write .","build:js":"bun build --target=node ./src/index.ts --outdir=dist --splitting","check:ci":"biome ci .","generate":"bun run scripts/fix-and-convert-swagger.ts && orval","test:all":"bun test","test:e2e":"SKIP_E2E_TESTS=false bun test tests/e2e","docker:run":"docker run -i --rm ecfr-mcp-server","mcp:server":"bun run src/mcp/server.ts","test:watch":"bun test --watch src","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --project tsconfig.build.json","docker:build":"docker build -t ecfr-mcp-server .","test:e2e:api":"SKIP_E2E_TESTS=false bun test tests/e2e/api.e2e.test.ts","test:e2e:mcp":"SKIP_E2E_TESTS=false bun test tests/e2e/mcp-server.e2e.test.ts","test:e2e:full":"SKIP_E2E_TESTS=false bun test tests/e2e/full-integration.e2e.test.ts","prepublishOnly":"bun run build","test:integration":"SKIP_INTEGRATION_TESTS=false bun test src"},"_npmUser":{"name":"beshkenadze","email":"beshkenadze@gmail.com"},"repository":{"url":"git+https://github.com/beshkenadze/ecfr-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"TypeScript SDK and MCP server for the eCFR (Electronic Code of Federal Regulations) API","directories":{},"_nodeVersion":"20.19.3","dependencies":{"zod":"^4.0.5","axios":"^1.10.0","@modelcontextprotocol/sdk":"^1.15.1"},"_hasShrinkwrap":false,"devDependencies":{"orval":"^7.10.0","@types/bun":"latest","playwright":"^1.48.2","typescript":"^5.8.3","@types/node":"^24.0.14","@biomejs/biome":"^2.1.1","swagger2openapi":"^7.0.8"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ecfr-sdk_0.1.0_1752867936164_0.38832608903756216","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@beshkenadze/ecfr-sdk","version":"0.2.0","keywords":["ecfr","federal","regulations","api","sdk","mcp","typescript"],"author":{"name":"Akira Beshkenadze"},"license":"MIT","_id":"@beshkenadze/ecfr-sdk@0.2.0","maintainers":[{"name":"beshkenadze","email":"beshkenadze@gmail.com"}],"homepage":"https://github.com/beshkenadze/ecfr-sdk#readme","bugs":{"url":"https://github.com/beshkenadze/ecfr-sdk/issues"},"dist":{"shasum":"dafeffb91af316f1330b890731f90eb065f8b117","tarball":"https://registry.npmjs.org/@beshkenadze/ecfr-sdk/-/ecfr-sdk-0.2.0.tgz","fileCount":23,"integrity":"sha512-pAxKj2MKrDROOR4QYmT6t/LFnuBlGPV2/A21BexkglhjOwa1TVhD/xHGJAVLpmMaEwSXT+jHnpvlHCi1dt9PDw==","signatures":[{"sig":"MEQCIAmvAq8mVKnEFxGyBvvGG1EwgnEAKQ//Dd/l+UUMBphBAiAHrv19Wf9zt5jKsX/sHdfOHNi5gJC6NtGhhZPqOZuSrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":430806},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"src/index.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"}},"gitHead":"d3b7cc0a7c1c8b2b3f94abbe2a19b141ef44aca6","scripts":{"dev":"bun run src/index.ts","lint":"biome lint --write .","test":"bun test src","build":"bun run build:clean && bun run build:js && bun run build:types","check":"biome check --write .","format":"biome format --write .","build:js":"bun build --target=node ./src/index.ts --outdir=dist --splitting","check:ci":"biome ci .","generate":"bun run scripts/fix-and-convert-swagger.ts && orval","test:all":"bun test","test:e2e":"SKIP_E2E_TESTS=false bun test tests/e2e","docker:run":"docker run -i --rm ecfr-mcp-server","mcp:server":"bun run src/mcp/server.ts","test:watch":"bun test --watch src","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --project tsconfig.build.json","docker:build":"docker build -t ecfr-mcp-server .","test:e2e:api":"SKIP_E2E_TESTS=false bun test tests/e2e/api.e2e.test.ts","test:e2e:mcp":"SKIP_E2E_TESTS=false bun test tests/e2e/mcp-server.e2e.test.ts","test:e2e:full":"SKIP_E2E_TESTS=false bun test tests/e2e/full-integration.e2e.test.ts","prepublishOnly":"bun run build","test:integration":"SKIP_INTEGRATION_TESTS=false bun test src"},"_npmUser":{"name":"beshkenadze","email":"beshkenadze@gmail.com"},"repository":{"url":"git+https://github.com/beshkenadze/ecfr-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"TypeScript SDK and MCP server for the eCFR (Electronic Code of Federal Regulations) API","directories":{},"_nodeVersion":"20.19.3","dependencies":{"zod":"^4.0.5","axios":"^1.10.0","@modelcontextprotocol/sdk":"^1.15.1"},"_hasShrinkwrap":false,"devDependencies":{"orval":"^7.10.0","@types/bun":"latest","playwright":"^1.48.2","typescript":"^5.8.3","@types/node":"^24.0.14","@biomejs/biome":"^2.1.1","swagger2openapi":"^7.0.8"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ecfr-sdk_0.2.0_1753018276564_0.6394766626121549","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@beshkenadze/ecfr-sdk","version":"0.3.0","keywords":["ecfr","federal","regulations","api","sdk","mcp","typescript"],"author":{"name":"Akira Beshkenadze"},"license":"MIT","_id":"@beshkenadze/ecfr-sdk@0.3.0","maintainers":[{"name":"beshkenadze","email":"beshkenadze@gmail.com"}],"homepage":"https://github.com/beshkenadze/ecfr-sdk#readme","bugs":{"url":"https://github.com/beshkenadze/ecfr-sdk/issues"},"dist":{"shasum":"c95fa1b10011c01f0a2442e511b977ed6516841d","tarball":"https://registry.npmjs.org/@beshkenadze/ecfr-sdk/-/ecfr-sdk-0.3.0.tgz","fileCount":23,"integrity":"sha512-LujZ9ghnLOWzn4qMo1FvakDTBC3TJ97ZK7cofCI0mKMuydMaAtPJndyRSTlc6wbYgt+YKGj7WHJj4bQEtnlhPQ==","signatures":[{"sig":"MEUCIQDYGj4MLF5OclqgfQbRG5fZu2txyU5+seOMS25hpxkMgAIgWtXDFQg05IQvgShuUm3bKk6OXzuD+qei5dAgt8yYazA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":432204},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"src/index.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js"}},"gitHead":"6220557898ab447f2b43fef0c13396c9be5bd8dd","scripts":{"dev":"bun run src/index.ts","lint":"biome lint --write .","test":"bun test src","build":"bun run build:clean && bun run build:js && bun run build:types","check":"biome check --write .","format":"biome format --write .","build:js":"bun build --target=node ./src/index.ts --outdir=dist --splitting","check:ci":"biome ci .","generate":"bun run scripts/fix-and-convert-swagger.ts && orval","test:all":"bun test","test:e2e":"SKIP_E2E_TESTS=false bun test tests/e2e","docker:run":"docker run -i --rm ecfr-mcp-server","mcp:server":"bun run src/mcp/server.ts","test:watch":"bun test --watch src","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --project tsconfig.build.json","docker:build":"docker build -t ecfr-mcp-server .","test:e2e:api":"SKIP_E2E_TESTS=false bun test tests/e2e/api.e2e.test.ts","test:e2e:mcp":"SKIP_E2E_TESTS=false bun test tests/e2e/mcp-server.e2e.test.ts","test:e2e:full":"SKIP_E2E_TESTS=false bun test tests/e2e/full-integration.e2e.test.ts","prepublishOnly":"bun run build","test:integration":"SKIP_INTEGRATION_TESTS=false bun test src"},"_npmUser":{"name":"beshkenadze","email":"beshkenadze@gmail.com"},"repository":{"url":"git+https://github.com/beshkenadze/ecfr-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"TypeScript SDK and MCP server for the eCFR (Electronic Code of Federal Regulations) API","directories":{},"_nodeVersion":"20.19.3","dependencies":{"zod":"^4.0.5","axios":"^1.10.0","@modelcontextprotocol/sdk":"^1.15.1"},"_hasShrinkwrap":false,"devDependencies":{"orval":"^7.10.0","@types/bun":"latest","playwright":"^1.48.2","typescript":"^5.8.3","@types/node":"^24.0.14","@biomejs/biome":"^2.1.1","swagger2openapi":"^7.0.8"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ecfr-sdk_0.3.0_1753025075262_0.6988625999210234","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@beshkenadze/ecfr-sdk","version":"0.4.0","keywords":["ecfr","federal","regulations","api","sdk","mcp","typescript"],"author":{"name":"Aleksandr Beshkenadze","email":"beshkenadze@gmail.com"},"license":"MIT","_id":"@beshkenadze/ecfr-sdk@0.4.0","maintainers":[{"name":"beshkenadze","email":"beshkenadze@gmail.com"}],"homepage":"https://github.com/beshkenadze/ecfr-sdk#readme","bugs":{"url":"https://github.com/beshkenadze/ecfr-sdk/issues"},"dist":{"shasum":"8a1cb9e8eb1ab499daf28859ba04938391a780d9","tarball":"https://registry.npmjs.org/@beshkenadze/ecfr-sdk/-/ecfr-sdk-0.4.0.tgz","fileCount":10,"integrity":"sha512-7KZvNC5aDPskVq3f3kCLkFpuMqFLL+9r3lVfL0XNB79ONAcaqSGr91N7GUCfz1/MCnud6Rkfo9k0ua8+P7pa9w==","signatures":[{"sig":"MEQCIFozoDrKiUJh94okUeclcemAVHo/Kw0rRd9w9hjdhMikAiB2h31XAIITolpL/w/W2rM0femjgVxUmCFOJFmIIVsiHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52696},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.mjs","require":"./dist/mcp/index.js"}},"gitHead":"382204b5f11991e9baf2fe4eb85d9aebb6b3a9c4","scripts":{"dev":"bun run src/index.ts","lint":"biome lint --write .","test":"bun test src","build":"bun run build.ts","check":"biome check --write .","format":"biome format --write .","check:ci":"biome ci .","download":"bun run scripts/fix-and-convert-swagger.ts","generate":"orval","test:all":"bun test","test:e2e":"SKIP_E2E_TESTS=false bun test tests/e2e","docker:run":"docker run -i --rm ecfr-mcp-server","mcp:server":"bun run src/mcp/server.ts","test:watch":"bun test --watch src","docker:build":"docker build -t ecfr-mcp-server .","test:e2e:api":"SKIP_E2E_TESTS=false bun test tests/e2e/api.e2e.test.ts","test:e2e:mcp":"SKIP_E2E_TESTS=false bun test tests/e2e/mcp-server.e2e.test.ts","test:e2e:full":"SKIP_E2E_TESTS=false bun test tests/e2e/full-integration.e2e.test.ts","prepublishOnly":"bun run build","test:integration":"SKIP_INTEGRATION_TESTS=false bun test src"},"_npmUser":{"name":"beshkenadze","email":"beshkenadze@gmail.com"},"repository":{"url":"git+https://github.com/beshkenadze/ecfr-sdk.git","type":"git","directory":"packages/ecfr-sdk"},"_npmVersion":"10.9.2","description":"TypeScript SDK and MCP server for the eCFR (Electronic Code of Federal Regulations) API","directories":{},"_nodeVersion":"22.17.1","dependencies":{"zod":"^3.24.1","axios":"^1.10.0","@modelcontextprotocol/sdk":"^1.16.0"},"_hasShrinkwrap":false,"devDependencies":{"orval":"^7.10.0","@types/bun":"latest","typescript":"^5.8.3","@types/node":"^24.1.0","@biomejs/biome":"^2.1.2","swagger2openapi":"^7.0.8","@us-legal-tools/tsconfig":"workspace:*"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ecfr-sdk_0.4.0_1753447877557_0.13442554905453785","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@beshkenadze/ecfr-sdk","version":"0.7.1","description":"TypeScript SDK and MCP server for the eCFR (Electronic Code of Federal Regulations) API","author":{"name":"Aleksandr Beshkenadze","email":"beshkenadze@gmail.com"},"license":"MIT","keywords":["ecfr","federal","regulations","api","sdk","mcp","typescript"],"homepage":"https://github.com/beshkenadze/ecfr-sdk#readme","repository":{"type":"git","url":"git+https://github.com/beshkenadze/ecfr-sdk.git","directory":"packages/ecfr-sdk"},"bugs":{"url":"https://github.com/beshkenadze/ecfr-sdk/issues"},"type":"module","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.mjs","require":"./dist/mcp/index.js"}},"scripts":{"dev":"bun run src/index.ts","build":"bun run build.ts","download":"bun run scripts/fix-and-convert-swagger.ts","generate":"orval","format":"biome format --write .","lint":"biome lint --write .","check":"biome check --write .","check:ci":"biome ci .","prepublishOnly":"bun run build","test":"bun test src","test:watch":"bun test --watch src","test:integration":"SKIP_INTEGRATION_TESTS=false bun test src","test:e2e":"SKIP_E2E_TESTS=false bun test tests/e2e","test:e2e:api":"SKIP_E2E_TESTS=false bun test tests/e2e/api.e2e.test.ts","test:e2e:mcp":"SKIP_E2E_TESTS=false bun test tests/e2e/mcp-server.e2e.test.ts","test:e2e:full":"SKIP_E2E_TESTS=false bun test tests/e2e/full-integration.e2e.test.ts","test:all":"bun test","mcp:server":"bun run src/mcp/server.ts","docker:build":"docker build -t ecfr-mcp-server .","docker:run":"docker run -i --rm ecfr-mcp-server"},"devDependencies":{"@biomejs/biome":"2.1.2","@types/bun":"latest","@types/node":"^24.1.0","@us-legal-tools/tsconfig":"workspace:*","orval":"^7.10.0","swagger2openapi":"^7.0.8","typescript":"^5.8.3"},"dependencies":{"@modelcontextprotocol/sdk":"^1.17.0","axios":"^1.11.0","zod":"^3.24.1"},"peerDependencies":{"typescript":"^5.0.0"},"engines":{"node":">=22.0.0"},"publishConfig":{"access":"public"},"_id":"@beshkenadze/ecfr-sdk@0.7.1","gitHead":"73799a0c7d6930616470e9e88f361f9a197d2184","_nodeVersion":"22.14.0","_npmVersion":"11.4.2","dist":{"integrity":"sha512-hTpKbhg5kkTcQkmGJa2b0n6ncwHVGgO31U2t8K7SAvOHl8d6WC+CJQtE+BK0FSBRqVuTilAZ36vijwB/1Hkiwg==","shasum":"68d3ccad1c9b5af27e992244a98d80759855b34b","tarball":"https://registry.npmjs.org/@beshkenadze/ecfr-sdk/-/ecfr-sdk-0.7.1.tgz","fileCount":51,"unpackedSize":123386,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHE7sfdy8xTCTjTEFoCZAjvlafkzWHfob8RYw6t0RjUbAiA29oxeBvYpj64B5zxJTvUCY2ptFHyU46urSLfYJfHFZQ=="}]},"_npmUser":{"name":"beshkenadze","email":"beshkenadze@gmail.com"},"directories":{},"maintainers":[{"name":"beshkenadze","email":"beshkenadze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ecfr-sdk_0.7.1_1753791043273_0.9525615297301648"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-18T19:45:36.086Z","modified":"2025-07-29T12:10:43.958Z","0.1.0":"2025-07-18T19:45:36.343Z","0.2.0":"2025-07-20T13:31:16.785Z","0.3.0":"2025-07-20T15:24:35.457Z","0.4.0":"2025-07-25T12:51:17.788Z","0.7.1":"2025-07-29T12:10:43.459Z"},"bugs":{"url":"https://github.com/beshkenadze/ecfr-sdk/issues"},"author":{"name":"Aleksandr Beshkenadze","email":"beshkenadze@gmail.com"},"license":"MIT","homepage":"https://github.com/beshkenadze/ecfr-sdk#readme","keywords":["ecfr","federal","regulations","api","sdk","mcp","typescript"],"repository":{"type":"git","url":"git+https://github.com/beshkenadze/ecfr-sdk.git","directory":"packages/ecfr-sdk"},"description":"TypeScript SDK and MCP server for the eCFR (Electronic Code of Federal Regulations) API","maintainers":[{"name":"beshkenadze","email":"beshkenadze@gmail.com"}],"readme":"# @beshkenadze/ecfr-sdk\n\nTypeScript SDK and MCP (Model Context Protocol) server for the eCFR (Electronic Code of Federal Regulations) API.\n\n[![npm version](https://img.shields.io/npm/v/@beshkenadze/ecfr-sdk.svg)](https://www.npmjs.com/package/@beshkenadze/ecfr-sdk)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## Features\n\n- 🚀 **TypeScript SDK** - Fully typed client for all eCFR API endpoints\n- 🤖 **MCP Server** - AI-ready server for integration with Claude and other AI assistants\n- 🔄 **Auto-generated** - Automatically updated from the official eCFR OpenAPI specification\n- 📦 **Modern tooling** - Built with Bun, Biome, and Orval\n- 🐳 **Docker support** - Ready-to-use Docker image for the MCP server\n- ✨ **Tree-shakeable** - Only import what you need\n- 🔍 **Type-safe** - Full TypeScript support with auto-completion\n\n## Installation\n\n```bash\n# npm\nnpm install @beshkenadze/ecfr-sdk\n\n# yarn\nyarn add @beshkenadze/ecfr-sdk\n\n# pnpm\npnpm add @beshkenadze/ecfr-sdk\n\n# bun\nbun add @beshkenadze/ecfr-sdk\n```\n\n## Quick Start\n\n### Basic Usage\n\n```typescript\nimport { getApiSearchV1Results, getApiVersionerV1TitlesJson } from '@beshkenadze/ecfr-sdk';\n\n// Search for regulations\nconst searchResults = await getApiSearchV1Results({\n  q: 'environmental protection',\n  per_page: 10,\n  page: 1\n});\n\nconsole.log(`Found ${searchResults.count} regulations`);\nsearchResults.results.forEach(result => {\n  console.log(`- ${result.title}: ${result.label_string}`);\n});\n\n// Get all available titles\nconst titles = await getApiVersionerV1TitlesJson();\nconsole.log(`Available titles: ${titles.titles.length}`);\n```\n\n### Advanced Search\n\n```typescript\nimport { getApiSearchV1Results } from '@beshkenadze/ecfr-sdk';\n\n// Search with filters\nconst results = await getApiSearchV1Results({\n  q: 'clean air',\n  title: 40, // Title 40: Protection of Environment\n  part: 50,  // Part 50\n  date: '2024-01-01',\n  condition: 'AND',\n  per_page: 20\n});\n\n// Access faceted search metadata\nconsole.log('Search facets:', results.meta?.facets);\n```\n\n### Historical Versions\n\n```typescript\nimport { getApiVersionerV1FullDateTitleTitleXml } from '@beshkenadze/ecfr-sdk';\n\n// Get a specific version of a regulation\nconst historicalVersion = await getApiVersionerV1FullDateTitleTitleXml({\n  date: '2023-01-01',\n  title: '40',\n  part: '50',\n  section: '7'\n});\n```\n\n## API Reference\n\n### Search Endpoints\n\n- `getApiSearchV1Results` - Search all regulations\n- `getApiSearchV1Count` - Get search result count\n- `getApiSearchV1Summary` - Get search summary\n- `getApiSearchV1CountsDaily` - Get daily search counts\n- `getApiSearchV1CountsTitles` - Get search counts by title\n- `getApiSearchV1CountsHierarchy` - Get hierarchical search counts\n- `getApiSearchV1Suggestions` - Get search suggestions\n\n### Versioning Endpoints\n\n- `getApiVersionerV1TitlesJson` - Get all available titles\n- `getApiVersionerV1FullDateTitleTitleXml` - Get full regulation text\n- `getApiVersionerV1StructureDateTitleTitleJson` - Get regulation structure\n- `getApiVersionerV1VersionsTitleTitleJson` - Get available versions\n- `getApiVersionerV1AncestryDateTitleTitleJson` - Get regulation ancestry\n\n### Admin Endpoints\n\n- `getApiAdminV1AgenciesJson` - Get all agencies\n- `getApiAdminV1CorrectionsJson` - Get all corrections\n- `getApiAdminV1CorrectionsTitleTitleJson` - Get corrections for a title\n\n## MCP Server\n\nThe MCP server allows AI assistants to interact with the eCFR API.\n\n### Running the Server\n\n```bash\n# Using the SDK directly\nnpx @beshkenadze/ecfr-sdk/mcp\n\n# Or if installed locally\ncd node_modules/@beshkenadze/ecfr-sdk\nnpm run mcp:server\n```\n\n### Docker Support\n\n```bash\n# Pull and run the Docker image\ndocker run -i ghcr.io/beshkenadze/ecfr-mcp-server:latest\n```\n\n### Integration with Claude\n\nAdd to your Claude configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"ecfr\": {\n      \"command\": \"npx\",\n      \"args\": [\"@beshkenadze/ecfr-sdk/mcp\"]\n    }\n  }\n}\n```\n\n## Error Handling\n\n```typescript\nimport { getApiSearchV1Results } from '@beshkenadze/ecfr-sdk';\n\ntry {\n  const results = await getApiSearchV1Results({\n    q: 'search term',\n    per_page: 10\n  });\n} catch (error) {\n  if (error.response?.status === 400) {\n    console.error('Invalid search parameters');\n  } else if (error.response?.status === 429) {\n    console.error('Rate limit exceeded');\n  } else {\n    console.error('API error:', error.message);\n  }\n}\n```\n\n## Configuration\n\nThe SDK uses axios under the hood. You can access and modify the axios instance:\n\n```typescript\nimport { axiosInstance } from '@beshkenadze/ecfr-sdk';\n\n// Add request interceptor\naxiosInstance.interceptors.request.use(config => {\n  console.log('Making request to:', config.url);\n  return config;\n});\n\n// Modify timeout\naxiosInstance.defaults.timeout = 60000; // 60 seconds\n```\n\n## License\n\nMIT License - see [LICENSE](../../LICENSE) for details\n\n## Links\n\n- [GitHub Repository](https://github.com/beshkenadze/ecfr-sdk)\n- [npm Package](https://www.npmjs.com/package/@beshkenadze/ecfr-sdk)\n- [eCFR Website](https://www.ecfr.gov/)\n- [eCFR API Documentation](https://www.ecfr.gov/api/docs)","readmeFilename":"README.md"}