{"_id":"mcp-from-openapi","_rev":"14-89cd004b50f54852e78971bf64ed271b","name":"mcp-from-openapi","dist-tags":{"latest":"2.7.0"},"versions":{"0.0.1":{"name":"mcp-from-openapi","version":"0.0.1","keywords":["mcp","model-context-protocol","openapi","swagger","api","rest","schema","json-schema","typescript","tool-generator","anthropic","claude"],"author":{"name":"AgentFront","email":"info@agentfront.dev"},"license":"Apache-2.0","_id":"mcp-from-openapi@0.0.1","maintainers":[{"name":"davidfrontegg","email":"david@frontegg.com"}],"homepage":"https://github.com/agentfront/frontmcp/blob/main/libs/mcp-from-openapi/README.md","bugs":{"url":"https://github.com/agentfront/frontmcp/issues"},"dist":{"shasum":"466f0b46b37094da6d3f5576e584177ff757ea5e","tarball":"https://registry.npmjs.org/mcp-from-openapi/-/mcp-from-openapi-0.0.1.tgz","fileCount":27,"integrity":"sha512-vrOqK6SrJceWitGqlsfjc9ADpT6/1zbyIKsavNTWjHKyyf+9M29JmQ0bsK48HPwq6dvZflkonx+bCn6koWyUSg==","signatures":[{"sig":"MEUCIC1aN5l6ah93bEWDPYiWkXc77rvGMTfi/BOM3l7E1hFTAiEAiuUUQunwIBKmr1S237Lk0F0kaVLAVDPQ5aDVf8l8i7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186523},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","exports":{".":{"types":"./src/index.d.ts","import":"./src/index.js","default":"./src/index.js"},"./package.json":"./package.json"},"gitHead":"3ef0983abe2ca4ac4b879bad94e088face7f2f06","_npmUser":{"name":"davidfrontegg","email":"david@frontegg.com"},"repository":{"url":"git+https://github.com/agentfront/frontmcp.git","type":"git"},"_npmVersion":"10.9.0","description":"Production-ready library for converting OpenAPI specifications into MCP tool definitions","directories":{},"_nodeVersion":"22.12.0","dependencies":{"yaml":"^2.8.1","json-schema":"^0.4.0","openapi-types":"^12.1.3","@apidevtools/json-schema-ref-parser":"^11.5.4"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8","typescript":"^5.0.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-from-openapi_0.0.1_1763521921738_0.994695614653323","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"mcp-from-openapi","version":"1.0.0","keywords":["mcp","model-context-protocol","openapi","swagger","api","rest","schema","json-schema","typescript","tool-generator","anthropic","claude"],"author":{"name":"AgentFront","email":"info@agentfront.dev"},"license":"Apache-2.0","_id":"mcp-from-openapi@1.0.0","maintainers":[{"name":"davidfrontegg","email":"david@frontegg.com"}],"homepage":"https://github.com/agentfront/frontmcp/blob/main/libs/mcp-from-openapi/README.md","bugs":{"url":"https://github.com/agentfront/frontmcp/issues"},"dist":{"shasum":"1e06c2f0029a1b33644608f8bc5380088222f585","tarball":"https://registry.npmjs.org/mcp-from-openapi/-/mcp-from-openapi-1.0.0.tgz","fileCount":31,"integrity":"sha512-v+pvlR0JxaOF0NoLz6JrUCCJmMAFcEBYeua1CPARPcjxPJVP/1KJgEeNRvuVoqnZ0ifdZifugybujy2f652Pxg==","signatures":[{"sig":"MEQCICIF3agiJbK5ZDBcwleQ1oLu1+DfiTQIycooVO09LV8zAiAnSuJYWS3pJT4gx8kuTxKOelEGgVe0pQ+XHuU5BX2C/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":254901},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./src/index.d.ts","import":"./src/index.js","default":"./src/index.js"},"./package.json":"./package.json"},"gitHead":"cd48bde2b78d55ac26546e433662339a6a4d0b4e","_npmUser":{"name":"davidfrontegg","email":"david@frontegg.com"},"repository":{"url":"git+https://github.com/agentfront/frontmcp.git","type":"git"},"_npmVersion":"10.9.0","description":"Production-ready library for converting OpenAPI specifications into MCP tool definitions","directories":{},"_nodeVersion":"22.12.0","dependencies":{"yaml":"^2.8.1","openapi-types":"^12.1.3","@types/json-schema":"^7.0.15","@apidevtools/json-schema-ref-parser":"^11.5.4"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8","typescript":"^5.0.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-from-openapi_1.0.0_1763779543089_0.05923623728961913","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"mcp-from-openapi","version":"2.0.0","keywords":["mcp","model-context-protocol","openapi","swagger","api","rest","schema","json-schema","typescript","tool-generator","anthropic","claude"],"author":{"name":"AgentFront","email":"info@agentfront.dev"},"license":"Apache-2.0","_id":"mcp-from-openapi@2.0.0","maintainers":[{"name":"davidfrontegg","email":"david@frontegg.com"}],"homepage":"https://github.com/agentfront/frontmcp/blob/main/libs/mcp-from-openapi/README.md","bugs":{"url":"https://github.com/agentfront/frontmcp/issues"},"dist":{"shasum":"505b111fc7d381be88e65ec5239d6c6231dc6e15","tarball":"https://registry.npmjs.org/mcp-from-openapi/-/mcp-from-openapi-2.0.0.tgz","fileCount":31,"integrity":"sha512-T/9VWRxv4hppqTb1Mcq9YUqHuPUsh29Y9nbPDj/5UTFQk8InGa7Agc9P3mSOG2Tr54T+FXHbPHr4nyCwSzeYmw==","signatures":[{"sig":"MEUCICbNKM7IsVJhXTsryHPcPMSxROlsXTU5nzOX/knUcPRSAiEAk5U1g4UJ71HoUHTtDqI4p7WIm8afwjHzFhMvXBp4AFs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":255949},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./src/index.d.ts","import":"./src/index.js","default":"./src/index.js"},"./package.json":"./package.json"},"gitHead":"e3bb81ed908681faa2fb41916347f4da34056390","_npmUser":{"name":"davidfrontegg","email":"david@frontegg.com"},"repository":{"url":"git+https://github.com/agentfront/frontmcp.git","type":"git","directory":"libs/mcp-from-openapi"},"_npmVersion":"11.6.2","description":"Production-ready library for converting OpenAPI specifications into MCP tool definitions","directories":{},"_nodeVersion":"24.11.1","dependencies":{"yaml":"^2.8.1","openapi-types":"^12.1.3","@apidevtools/json-schema-ref-parser":"^11.5.4"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","typescript":"^5.0.0","@types/node":"^24.0.0"},"peerDependencies":{"zod":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-from-openapi_2.0.0_1765472562672_0.5453811145540417","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"mcp-from-openapi","version":"2.1.0","keywords":["mcp","model-context-protocol","openapi","swagger","api","rest","schema","json-schema","typescript","tool-generator","anthropic","claude"],"author":{"name":"AgentFront","email":"info@agentfront.dev"},"license":"Apache-2.0","_id":"mcp-from-openapi@2.1.0","maintainers":[{"name":"davidfrontegg","email":"david@frontegg.com"}],"homepage":"https://github.com/agentfront/frontmcp/blob/main/libs/mcp-from-openapi/README.md","bugs":{"url":"https://github.com/agentfront/frontmcp/issues"},"dist":{"shasum":"ed6788e722beb921a2d709acfecc7194e999befe","tarball":"https://registry.npmjs.org/mcp-from-openapi/-/mcp-from-openapi-2.1.0.tgz","fileCount":31,"integrity":"sha512-tgh0eMgoNcBGQ9PF3r1cyft8JGxB1xjSXWgVtRBOokdPfRuhClDu6hVOd22i198eODwfv12nPI6yF/U5/SjnAw==","signatures":[{"sig":"MEUCIQCrByVEEGDe6O1ZB1b3MSGUsxvjqePGZpNIHyC6ZBYoEAIgGjv1gkx+OcXX8AjWgp7slkmLv7ApvDrhmM8DTfn6BjQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260591},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./src/index.d.ts","import":"./src/index.js","default":"./src/index.js"},"./package.json":"./package.json"},"gitHead":"c41666b88d411e0af19a7e666b2c48ac9b2f8dd1","_npmUser":{"name":"davidfrontegg","email":"david@frontegg.com"},"repository":{"url":"git+https://github.com/agentfront/frontmcp.git","type":"git","directory":"libs/mcp-from-openapi"},"_npmVersion":"11.6.2","description":"Production-ready library for converting OpenAPI specifications into MCP tool definitions","directories":{},"_nodeVersion":"24.11.1","dependencies":{"yaml":"^2.8.1","openapi-types":"^12.1.3","@apidevtools/json-schema-ref-parser":"^11.5.4"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","typescript":"^5.0.0","@types/node":"^24.0.0"},"peerDependencies":{"zod":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-from-openapi_2.1.0_1766125945677_0.4053606566483894","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"mcp-from-openapi","version":"2.1.1","keywords":["mcp","model-context-protocol","openapi","swagger","api","rest","schema","json-schema","typescript","tool-generator","anthropic","claude"],"author":{"name":"AgentFront","email":"info@agentfront.dev"},"license":"Apache-2.0","_id":"mcp-from-openapi@2.1.1","maintainers":[{"name":"davidfrontegg","email":"david@frontegg.com"}],"homepage":"https://github.com/agentfront/frontmcp/blob/main/libs/mcp-from-openapi/README.md","bugs":{"url":"https://github.com/agentfront/frontmcp/issues"},"dist":{"shasum":"1e7beb79f368e05899d18145811a37d0b525acbe","tarball":"https://registry.npmjs.org/mcp-from-openapi/-/mcp-from-openapi-2.1.1.tgz","fileCount":16,"integrity":"sha512-+z314eDXE1/WeE3ZkAv6//zSXyxsYz0WgwiBlotS1LnUCKog82WytIG6s6zCekbyOQaJk3OhfeuHWxhO+6K5Mg==","signatures":[{"sig":"MEUCIGWe78L4cW1zeTq6fXYSOAk+f5TvaoI5642mCKJOFtbgAiEA1t8D5+BgTA5IIoBT4Yv9YBW7s/P1OciYkkvwYv+SMcM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160768},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./esm/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}},"./esm":null,"./package.json":"./package.json"},"gitHead":"8cd44d36e1cec7af564fe37f171028de7810ae00","_npmUser":{"name":"davidfrontegg","email":"david@frontegg.com"},"repository":{"url":"git+https://github.com/agentfront/frontmcp.git","type":"git","directory":"libs/mcp-from-openapi"},"_npmVersion":"11.6.2","description":"Production-ready library for converting OpenAPI specifications into MCP tool definitions","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","dependencies":{"yaml":"^2.8.1","openapi-types":"^12.1.3","@apidevtools/json-schema-ref-parser":"^11.9.3"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","typescript":"^5.0.0","@types/node":"^24.0.0"},"peerDependencies":{"zod":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-from-openapi_2.1.1_1766543739258_0.28109380779527227","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"mcp-from-openapi","version":"2.1.2","keywords":["mcp","model-context-protocol","openapi","swagger","api","rest","schema","json-schema","typescript","tool-generator","anthropic","claude"],"author":{"name":"AgentFront","email":"info@agentfront.dev"},"license":"Apache-2.0","_id":"mcp-from-openapi@2.1.2","maintainers":[{"name":"davidfrontegg","email":"david@frontegg.com"}],"homepage":"https://github.com/agentfront/frontmcp/blob/main/libs/mcp-from-openapi/README.md","bugs":{"url":"https://github.com/agentfront/frontmcp/issues"},"dist":{"shasum":"7623fb60f278f00464256f15765f46b6103d4afc","tarball":"https://registry.npmjs.org/mcp-from-openapi/-/mcp-from-openapi-2.1.2.tgz","fileCount":16,"integrity":"sha512-CTIKWPXIPmgvKEpfAQejXXD2MWzK6pTZnW5RAlgKl4+MEc/bI2TGYTAX6v28a3prRAvdycFnyr+ew6ZLxkmLcQ==","signatures":[{"sig":"MEUCIQDT1xYOM4Cyms37N7E5H+MyWGm84stJeyRxsUBR2zF42wIgP4feHfWXFluAptlTF3NHIQP8hB0TPW1Kjkdd74wSvO4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160816},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./esm/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}},"./esm":null,"./package.json":"./package.json"},"gitHead":"5a5dfb4e9b127012935c37c2df7cec525ebc5603","_npmUser":{"name":"davidfrontegg","email":"david@frontegg.com"},"repository":{"url":"git+https://github.com/agentfront/frontmcp.git","type":"git","directory":"libs/mcp-from-openapi"},"_npmVersion":"11.6.2","description":"Production-ready library for converting OpenAPI specifications into MCP tool definitions","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","dependencies":{"yaml":"^2.8.1","openapi-types":"^12.1.3","@apidevtools/json-schema-ref-parser":"^11.9.3"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","typescript":"^5.0.0","@types/node":"^24.0.0"},"peerDependencies":{"zod":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-from-openapi_2.1.2_1766882618635_0.7931936417959689","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"mcp-from-openapi","version":"2.2.0","keywords":["mcp","model-context-protocol","openapi","swagger","api","rest","schema","json-schema","typescript","tool-generator","anthropic","claude"],"author":{"name":"AgentFront","email":"info@agentfront.dev"},"license":"Apache-2.0","_id":"mcp-from-openapi@2.2.0","maintainers":[{"name":"davidfrontegg","email":"david@frontegg.com"}],"homepage":"https://github.com/agentfront/mcp-from-openapi#readme","bugs":{"url":"https://github.com/agentfront/mcp-from-openapi/issues"},"dist":{"shasum":"92d5547d520694b57184855c0e9689c0574ca97c","tarball":"https://registry.npmjs.org/mcp-from-openapi/-/mcp-from-openapi-2.2.0.tgz","fileCount":16,"integrity":"sha512-81c/ToypJb+Zl/o4MnR3Jjy5MEH/bEcs9DI9xUxkaVN2khGhHiZnrdeAgyjsN5KthHmKPdkBHKngpApjyAkFVw==","signatures":[{"sig":"MEUCIQD4XBuIhFuK5NZHTaZBIO6MCtT1+h56H5rkoXETt+duawIgO7ecTQ2Q7JBTC67MFtU6ozZ1LygM+W7iPvErf5m3Dfg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-from-openapi@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":169311},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./esm/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}},"./package.json":"./package.json"},"gitHead":"4e888d7f956ad6897620b0bf275ec18b9649307f","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:63ac216e-de90-4eae-a07a-b520133e6d20"}},"repository":{"url":"git+https://github.com/agentfront/mcp-from-openapi.git","type":"git"},"_npmVersion":"11.12.1","description":"Production-ready library for converting OpenAPI specifications into MCP tool definitions","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"yaml":"^2.8.3","openapi-types":"^12.1.3","@apidevtools/json-schema-ref-parser":"^11.9.3"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","jest":"^29.7.0","tslib":"^2.8.1","esbuild":"^0.27.2","@swc/core":"~1.5.7","@swc/jest":"~0.2.38","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^24.0.0","@swc/helpers":"^0.5.18"},"peerDependencies":{"zod":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-from-openapi_2.2.0_1775599937909_0.48422564960809034","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"mcp-from-openapi","version":"2.3.0","keywords":["mcp","model-context-protocol","openapi","swagger","api","rest","schema","json-schema","typescript","tool-generator","anthropic","claude"],"author":{"name":"AgentFront","email":"info@agentfront.dev"},"license":"Apache-2.0","_id":"mcp-from-openapi@2.3.0","maintainers":[{"name":"davidfrontegg","email":"david@frontegg.com"}],"homepage":"https://github.com/agentfront/mcp-from-openapi#readme","bugs":{"url":"https://github.com/agentfront/mcp-from-openapi/issues"},"dist":{"shasum":"70830ad29730391d782556b2523a3851da02e49f","tarball":"https://registry.npmjs.org/mcp-from-openapi/-/mcp-from-openapi-2.3.0.tgz","fileCount":16,"integrity":"sha512-13uM4BBy3GDWReyO7ktYnMjvLteDvpX58WW9FVK4J8dc5TgOW89AUVrQiHEPbPJvycAJ5lz6OWLGJdguzHkwmQ==","signatures":[{"sig":"MEUCIFMbO2ijiDl420+KUDacimrFIvRxUKANkFlZEh6v6zJvAiEAl1QW8XbA0Fr566qNrWkHFir6a9qvhU7jiipgMlU7bFQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-from-openapi@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":167476},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./esm/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"import":{"types":"./index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}},"./package.json":"./package.json"},"gitHead":"07bb8744bcab4ffb3fe08e22baaa5e8102bf214c","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:63ac216e-de90-4eae-a07a-b520133e6d20"}},"repository":{"url":"git+https://github.com/agentfront/mcp-from-openapi.git","type":"git"},"_npmVersion":"11.12.1","description":"Production-ready library for converting OpenAPI specifications into MCP tool definitions","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"yaml":"^2.8.3","openapi-types":"^12.1.3","@apidevtools/json-schema-ref-parser":"^15.3.5"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.0","jest":"^29.7.0","tslib":"^2.8.1","esbuild":"^0.27.2","@swc/core":"~1.5.7","@swc/jest":"~0.2.38","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^24.0.0","@swc/helpers":"^0.5.18","@types/json-schema":"^7.0.15"},"peerDependencies":{"zod":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-from-openapi_2.3.0_1775610084745_0.2867871915380993","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"mcp-from-openapi","version":"2.4.0","keywords":["mcp","model-context-protocol","openapi","swagger","api","rest","schema","json-schema","typescript","tool-generator","anthropic","claude"],"author":{"name":"AgentFront","email":"info@agentfront.dev"},"license":"Apache-2.0","_id":"mcp-from-openapi@2.4.0","maintainers":[{"name":"davidfrontegg","email":"david@frontegg.com"}],"homepage":"https://github.com/agentfront/mcp-from-openapi#readme","bugs":{"url":"https://github.com/agentfront/mcp-from-openapi/issues"},"dist":{"shasum":"21b5f95a7731ad7d811cc7f123097c8a99e145e7","tarball":"https://registry.npmjs.org/mcp-from-openapi/-/mcp-from-openapi-2.4.0.tgz","fileCount":16,"integrity":"sha512-duyYUjT6nw104te7vNpQ7VTc0EK/x1KtOHR6WrAp3F+fI4+dYl4bKmGJpDwN7AarSH46zeUnU7pU6pa6IunUxQ==","signatures":[{"sig":"MEYCIQDBGvC26iuKTT0gRAaoYGArVvJETAgbVVPBTjoGv5x/iwIhAJ3r3TEqIbzgWABb7PAkTDoZn53StyNtrbtDZcqGCQ6L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-from-openapi@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177912},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./esm/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"import":{"types":"./index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}},"./package.json":"./package.json"},"gitHead":"0dedbf5f5f6fa736275c7b071c576db2fb94a134","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:63ac216e-de90-4eae-a07a-b520133e6d20"}},"repository":{"url":"git+https://github.com/agentfront/mcp-from-openapi.git","type":"git"},"_npmVersion":"11.17.0","description":"Production-ready library for converting OpenAPI specifications into MCP tool definitions","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"yaml":"^2.8.3","openapi-types":"^12.1.3","@apidevtools/json-schema-ref-parser":"^15.3.5"},"_hasShrinkwrap":false,"packageManager":"yarn@4.14.1","devDependencies":{"zod":"^4.0.0","jest":"^29.7.0","tslib":"^2.8.1","esbuild":"^0.27.2","@swc/core":"~1.5.7","@swc/jest":"~0.2.38","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^24.0.0","@swc/helpers":"^0.5.18","@types/json-schema":"^7.0.15"},"peerDependencies":{"zod":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-from-openapi_2.4.0_1781816977236_0.9729122403560913","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"mcp-from-openapi","version":"2.5.0","keywords":["mcp","model-context-protocol","openapi","swagger","api","rest","schema","json-schema","typescript","tool-generator","anthropic","claude"],"author":{"name":"AgentFront","email":"info@agentfront.dev"},"license":"Apache-2.0","_id":"mcp-from-openapi@2.5.0","maintainers":[{"name":"davidfrontegg","email":"david@frontegg.com"}],"homepage":"https://github.com/agentfront/mcp-from-openapi#readme","bugs":{"url":"https://github.com/agentfront/mcp-from-openapi/issues"},"dist":{"shasum":"c84da0b7b550064b7794b4d58cd74b586e61696d","tarball":"https://registry.npmjs.org/mcp-from-openapi/-/mcp-from-openapi-2.5.0.tgz","fileCount":17,"integrity":"sha512-2Vw2JOL4OUKLin61pLMhONJeFdTcB1MQJjtJibTtHV2QKYPLeaADySvKFHazeS/5EJCBXi1WBFjZHTrNF9/zzg==","signatures":[{"sig":"MEQCIGHSAGwqZxTSG5HbFsUM/6tx1jwRyomv79Tm3pEUiRZ1AiBT7NLh/NvcRTF4CmC2IuCQVX1SmX9qom1QBJLEFsJQVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-from-openapi@2.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":194232},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./esm/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"import":{"types":"./index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}},"./package.json":"./package.json"},"gitHead":"a8c0ff2f6fa1c072604d9c30027d8368f11a07b4","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:63ac216e-de90-4eae-a07a-b520133e6d20"}},"repository":{"url":"git+https://github.com/agentfront/mcp-from-openapi.git","type":"git"},"_npmVersion":"11.17.0","description":"Production-ready library for converting OpenAPI specifications into MCP tool definitions","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"yaml":"^2.8.3","openapi-types":"^12.1.3","@apidevtools/json-schema-ref-parser":"^15.3.5"},"_hasShrinkwrap":false,"packageManager":"yarn@4.14.1","devDependencies":{"zod":"^4.0.0","jest":"^29.7.0","tslib":"^2.8.1","esbuild":"^0.27.2","@swc/core":"~1.5.7","@swc/jest":"~0.2.38","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^24.0.0","@swc/helpers":"^0.5.18","@types/json-schema":"^7.0.15"},"peerDependencies":{"zod":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-from-openapi_2.5.0_1782078833745_0.7432376259781526","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"mcp-from-openapi","version":"2.5.1","keywords":["mcp","model-context-protocol","openapi","swagger","api","rest","schema","json-schema","typescript","tool-generator","anthropic","claude"],"author":{"name":"AgentFront","email":"info@agentfront.dev"},"license":"Apache-2.0","_id":"mcp-from-openapi@2.5.1","maintainers":[{"name":"davidfrontegg","email":"david@frontegg.com"}],"homepage":"https://github.com/agentfront/mcp-from-openapi#readme","bugs":{"url":"https://github.com/agentfront/mcp-from-openapi/issues"},"dist":{"shasum":"fbccdc67a8642ffdfbae6d637f96acf6d66398b4","tarball":"https://registry.npmjs.org/mcp-from-openapi/-/mcp-from-openapi-2.5.1.tgz","fileCount":17,"integrity":"sha512-tcP3lMFaDOpNn0pED6Oq2HU1gyQy8d0VATtHws2OkqCNVwJKElEJdFTSAR8894tuKWc9JSbyW2EMVzGeR3M7cA==","signatures":[{"sig":"MEUCIC+eg9S2zAC3kahzi5PJG7Fsddzx1Wj+CUa59Rt4NahFAiEAkWZ9MFlgl58f9qS4vCw/+sXrnD/18hCRU6Nl3xzQr3c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-from-openapi@2.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":204740},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./esm/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"import":{"types":"./index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}},"./package.json":"./package.json"},"gitHead":"ccbc6310b250d93fbf1797192e5d50b1839d7173","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:63ac216e-de90-4eae-a07a-b520133e6d20"}},"repository":{"url":"git+https://github.com/agentfront/mcp-from-openapi.git","type":"git"},"_npmVersion":"12.0.1","description":"Production-ready library for converting OpenAPI specifications into MCP tool definitions","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"yaml":"^2.8.3","openapi-types":"^12.1.3","@apidevtools/json-schema-ref-parser":"^15.3.5"},"_hasShrinkwrap":false,"packageManager":"yarn@4.14.1","devDependencies":{"zod":"^4.0.0","jest":"^29.7.0","tslib":"^2.8.1","esbuild":"^0.27.2","@swc/core":"~1.5.7","@swc/jest":"~0.2.38","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^24.0.0","@swc/helpers":"^0.5.18","@types/json-schema":"^7.0.15"},"peerDependencies":{"zod":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-from-openapi_2.5.1_1784597979952_0.2871162905043374","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"mcp-from-openapi","version":"2.6.0","keywords":["mcp","model-context-protocol","openapi","swagger","api","rest","schema","json-schema","typescript","tool-generator","anthropic","claude"],"author":{"name":"AgentFront","email":"info@agentfront.dev"},"license":"Apache-2.0","_id":"mcp-from-openapi@2.6.0","maintainers":[{"name":"davidfrontegg","email":"david@frontegg.com"}],"homepage":"https://github.com/agentfront/mcp-from-openapi#readme","bugs":{"url":"https://github.com/agentfront/mcp-from-openapi/issues"},"dist":{"shasum":"5274ad74b9a238fe6d828321a7d97f10e1d46a56","tarball":"https://registry.npmjs.org/mcp-from-openapi/-/mcp-from-openapi-2.6.0.tgz","fileCount":21,"integrity":"sha512-tRlWgTiI3lFfKIBEu1vV3UUMtQ+9SlO1I5qZApSTCjig017Z2qtZd5qH5pzev/xvpGBTKtAxZ+LSkpbu567ADQ==","signatures":[{"sig":"MEUCIFNRkYsKmV0GkDTYNmdtcUgbjiQyv7nBJlG2hbSprQfyAiEAtB43t1tq8bWbUr3NL2tg2EAzUKQtUMSIwMYEPobhj5g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-from-openapi@2.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":314056},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./esm/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"import":{"types":"./index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}},"./package.json":"./package.json"},"gitHead":"79c89866d21c49343a3d4fc6bfb95c458cc4e389","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:63ac216e-de90-4eae-a07a-b520133e6d20"}},"repository":{"url":"git+https://github.com/agentfront/mcp-from-openapi.git","type":"git"},"_npmVersion":"12.0.2","description":"Production-ready library for converting OpenAPI specifications into MCP tool definitions","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"yaml":"^2.8.3","openapi-types":"^12.1.3","@apidevtools/json-schema-ref-parser":"^15.3.5"},"_hasShrinkwrap":false,"packageManager":"yarn@4.14.1","devDependencies":{"zod":"^4.0.0","jest":"^29.7.0","tslib":"^2.8.1","esbuild":"^0.27.2","@swc/core":"~1.5.7","@swc/jest":"~0.2.38","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^24.0.0","@swc/helpers":"^0.5.18","@types/json-schema":"^7.0.15"},"peerDependencies":{"zod":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-from-openapi_2.6.0_1786491731751_0.31779777527930064","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"mcp-from-openapi","version":"2.6.1","keywords":["mcp","model-context-protocol","openapi","swagger","api","rest","schema","json-schema","typescript","tool-generator","anthropic","claude"],"author":{"name":"AgentFront","email":"info@agentfront.dev"},"license":"Apache-2.0","_id":"mcp-from-openapi@2.6.1","maintainers":[{"name":"davidfrontegg","email":"david@frontegg.com"}],"homepage":"https://github.com/agentfront/mcp-from-openapi#readme","bugs":{"url":"https://github.com/agentfront/mcp-from-openapi/issues"},"dist":{"shasum":"17472d1d079007a1ae0d76cadd9a78141ccce47f","tarball":"https://registry.npmjs.org/mcp-from-openapi/-/mcp-from-openapi-2.6.1.tgz","fileCount":24,"integrity":"sha512-KNOlqj9IgSz3SJDG9iAyzoivns3WONQbNLIa8yF3c6L0MB1iaeXiNbJWwXmBZxJHJHOBUmG+UXw+OHY3aWY7sw==","signatures":[{"sig":"MEUCIQC6SaQCq2EK3WjKEcV50Vj11q3qyCLlSC9iY37xwfYHVAIgA7bzeKJV2ifznp4MPVbtUi9FkpkmdSCCTJyv73zJN/w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-from-openapi@2.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":390216},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./esm/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"import":{"types":"./index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}},"./package.json":"./package.json"},"gitHead":"2431f0ecc8adbee79639eb315ad7bd829fefae77","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:63ac216e-de90-4eae-a07a-b520133e6d20"}},"repository":{"url":"git+https://github.com/agentfront/mcp-from-openapi.git","type":"git"},"_npmVersion":"12.0.2","description":"Production-ready library for converting OpenAPI specifications into MCP tool definitions","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"yaml":"^2.9.0","openapi-types":"^12.1.3","@apidevtools/json-schema-ref-parser":"^15.5.1"},"_hasShrinkwrap":false,"packageManager":"yarn@4.14.1","devDependencies":{"zod":"^4.0.0","jest":"^29.7.0","tslib":"^2.8.1","esbuild":"^0.27.2","@swc/core":"~1.5.7","@swc/jest":"~0.2.38","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^24.0.0","@swc/helpers":"^0.5.18","@types/json-schema":"^7.0.15"},"peerDependencies":{"zod":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-from-openapi_2.6.1_1786541622359_0.6556686088916492","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"mcp-from-openapi","version":"2.7.0","description":"Production-ready library for converting OpenAPI specifications into MCP tool definitions","author":{"name":"AgentFront","email":"info@agentfront.dev"},"license":"Apache-2.0","packageManager":"yarn@4.14.1","keywords":["mcp","model-context-protocol","openapi","swagger","api","rest","schema","json-schema","typescript","tool-generator","anthropic","claude"],"repository":{"type":"git","url":"git+https://github.com/agentfront/mcp-from-openapi.git"},"bugs":{"url":"https://github.com/agentfront/mcp-from-openapi/issues"},"homepage":"https://github.com/agentfront/mcp-from-openapi#readme","engines":{"node":">=20.0.0"},"type":"commonjs","main":"./index.js","module":"./esm/index.mjs","types":"./index.d.ts","sideEffects":false,"exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","default":"./index.js"},"import":{"types":"./index.d.ts","default":"./esm/index.mjs"}}},"dependencies":{"@apidevtools/json-schema-ref-parser":"^15.5.1","openapi-types":"^12.1.3","yaml":"^2.9.0"},"peerDependencies":{"zod":"^4.0.0"},"devDependencies":{"@modelcontextprotocol/sdk":"^1.30.0","@swc/core":"~1.5.7","@swc/helpers":"^0.5.18","@swc/jest":"~0.2.38","@types/jest":"^29.5.0","@types/json-schema":"^7.0.15","@types/node":"^24.0.0","ajv":"^8.17.0","esbuild":"^0.27.2","jest":"^29.7.0","tslib":"^2.8.1","typescript":"^5.0.0","zod":"^4.0.0"},"gitHead":"062319a524defcb81ff3d22cd07d30e24a26376e","_id":"mcp-from-openapi@2.7.0","_nodeVersion":"24.18.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-9X2yacWxhk/NzEVnxqMOqPuEvlRM6AanY/T/1qmSwtOOFBQxRuGmY6wRqqHQ4rlaVsFEtEElQy3t2n35ySO3Lg==","shasum":"1d57b6d02abc32f6caeaffbae70584abab611bef","tarball":"https://registry.npmjs.org/mcp-from-openapi/-/mcp-from-openapi-2.7.0.tgz","fileCount":30,"unpackedSize":547098,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-from-openapi@2.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDnX/XHO+JYZ+YoLg0JPsy42QA32QO7K88t8L+HiDapmAiEAq3NQp3x/+AkYYgP72QrlxGeq9/flYVao5/pqHl88kQo="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:63ac216e-de90-4eae-a07a-b520133e6d20"}},"directories":{},"maintainers":[{"name":"davidfrontegg","email":"david@frontegg.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-from-openapi_2.7.0_1786617135807_0.5506789375639183"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-19T03:12:01.737Z","modified":"2026-08-13T10:32:16.285Z","0.0.1":"2025-11-19T03:12:01.936Z","1.0.0":"2025-11-22T02:45:43.354Z","2.0.0":"2025-12-11T17:02:42.846Z","2.1.0":"2025-12-19T06:32:25.822Z","2.1.1":"2025-12-24T02:35:39.413Z","2.1.2":"2025-12-28T00:43:38.788Z","2.2.0":"2026-04-07T22:12:18.051Z","2.3.0":"2026-04-08T01:01:24.943Z","2.4.0":"2026-06-18T21:09:37.375Z","2.5.0":"2026-06-21T21:53:53.868Z","2.5.1":"2026-07-21T01:39:40.099Z","2.6.0":"2026-08-11T23:42:11.895Z","2.6.1":"2026-08-12T13:33:42.497Z","2.7.0":"2026-08-13T10:32:15.982Z"},"bugs":{"url":"https://github.com/agentfront/mcp-from-openapi/issues"},"author":{"name":"AgentFront","email":"info@agentfront.dev"},"license":"Apache-2.0","homepage":"https://github.com/agentfront/mcp-from-openapi#readme","keywords":["mcp","model-context-protocol","openapi","swagger","api","rest","schema","json-schema","typescript","tool-generator","anthropic","claude"],"repository":{"type":"git","url":"git+https://github.com/agentfront/mcp-from-openapi.git"},"description":"Production-ready library for converting OpenAPI specifications into MCP tool definitions","maintainers":[{"name":"davidfrontegg","email":"david@frontegg.com"}],"readme":"# mcp-from-openapi\n\n> Convert OpenAPI specifications into MCP tool definitions with automatic parameter conflict resolution\n\n[![npm version](https://img.shields.io/npm/v/mcp-from-openapi.svg)](https://www.npmjs.com/package/mcp-from-openapi)\n[![npm downloads](https://img.shields.io/npm/dm/mcp-from-openapi.svg)](https://www.npmjs.com/package/mcp-from-openapi)\n[![CI](https://github.com/agentfront/mcp-from-openapi/actions/workflows/push.yml/badge.svg)](https://github.com/agentfront/mcp-from-openapi/actions/workflows/push.yml)\n[![coverage](https://img.shields.io/badge/coverage-100%25-brightgreen.svg)](https://github.com/agentfront/mcp-from-openapi/actions/workflows/push.yml)\n[![CodeQL](https://github.com/agentfront/mcp-from-openapi/actions/workflows/codeql.yml/badge.svg)](https://github.com/agentfront/mcp-from-openapi/actions/workflows/codeql.yml)\n[![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-yellow.svg)](https://opensource.org/license/apache-2-0)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue.svg)](https://www.typescriptlang.org/)\n[![node](https://img.shields.io/node/v/mcp-from-openapi.svg)](https://nodejs.org/)\n\n## What This Solves\n\nWhen converting OpenAPI specs to MCP tools, you hit **parameter conflicts** -- the same name appears in different locations (path, query, body). This library resolves them automatically and gives you an **explicit mapper** for building HTTP requests.\n\n**The Problem:**\n\n```yaml\npaths:\n  /users/{id}:\n    post:\n      parameters:\n        - name: id # path\n          in: path\n      requestBody:\n        content:\n          application/json:\n            schema:\n              properties:\n                id: # body -- CONFLICT!\n                  type: string\n```\n\n**The Solution:**\n\n```typescript\n{\n  inputSchema: {\n    properties: {\n      pathId: { type: \"string\" },    // Automatically renamed\n      bodyId: { type: \"string\" }     // Automatically renamed\n    }\n  },\n  mapper: [\n    { inputKey: \"pathId\", type: \"path\", key: \"id\" },\n    { inputKey: \"bodyId\", type: \"body\", key: \"id\" }\n  ]\n}\n```\n\nNow you know exactly how to build the HTTP request.\n\n## Features\n\n- **Built-in Request Builder** -- `buildHttpRequest()` applies the full OpenAPI serialization table (form/deepObject/pipeDelimited queries, label/matrix paths, multipart, binary, `wholeBody`) so you never hand-write request assembly\n- **Client Compatibility Targets** -- `target: 'claude' | 'openai' | 'gemini' | 'strict'` emits schemas each client actually accepts (inlined refs, closed objects, collapsed unions, demoted formats)\n- **Context-Budget Reports** -- `analyzeToolSet()` estimates the token bill per tool and warns at the thresholds where agent accuracy degrades\n- **Overlays & Lint** -- apply [OpenAPI Overlay](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/curation.md) curation files at load time; `lint()` flags the spec gaps that hurt tool-calling accuracy\n- **Curation-Grade Filtering** -- Filter by tag, method, path glob (`/admin/**`), operationId, a `readOnlyOnly` safety switch, and `x-mcp` extension flags with root < path < operation precedence\n- **Smart Parameter Handling** -- Automatic conflict detection and resolution across path, query, header, cookie, and body; `allOf` bodies flatten, union and binary bodies map cleanly (`wholeBody`, `binary` markers)\n- **Complete Schemas** -- Input schema combines all parameters; output schema from responses (with oneOf unions); clean JSON Schema 2020-12 output (`nullable` unions, normalized `examples`)\n- **MCP-Native Tools** -- `title` and tool `annotations` (readOnly/destructive/idempotent hints) inferred from HTTP semantics, overridable via the `x-mcp` extension family; spec-compliant tool names (64-char cap, stable hash truncation, collision dedup); deterministic tool ordering for prompt-cache friendliness; `toSdkTool()` for one-line SDK registration\n- **Security Resolution** -- Framework-agnostic auth for Bearer, Basic, Digest, API Key, OAuth2, OpenID, mTLS, HMAC, AWS Sig V4; per-scheme `includeSecurityInInput`\n- **SSRF Prevention** -- Blocks internal IPs, localhost, and cloud metadata endpoints by default during `$ref` resolution; one-flag `secureDefaults` posture for untrusted specs\n- **Multiple Input Sources** -- Load from URL, file, YAML string, or JSON object\n- **Rich Metadata** -- Authentication, servers, tags, deprecation, external docs, `x-frontmcp` extension\n- **Production Ready** -- Full TypeScript support, validation, structured errors, 100% test coverage (enforced)\n- **Runtime Agnostic** -- Works on Node and V8 isolates (Cloudflare Workers) alike\n\n## Installation\n\n```bash\nnpm install mcp-from-openapi\n# or\nyarn add mcp-from-openapi\n# or\npnpm add mcp-from-openapi\n```\n\n## Quick Start\n\n```typescript\nimport { OpenAPIToolGenerator } from \"mcp-from-openapi\";\n\n// Load an OpenAPI spec\nconst generator = await OpenAPIToolGenerator.fromURL(\n  \"https://api.example.com/openapi.json\",\n);\n\n// Generate MCP tools\nconst tools = await generator.generateTools();\n\n// Each tool has everything you need\ntools.forEach((tool) => {\n  console.log(tool.name); // \"createUser\"\n  console.log(tool.title); // \"Create a user\" (from summary/extensions)\n  console.log(tool.annotations); // { readOnlyHint: false, destructiveHint: true, ... }\n  console.log(tool.inputSchema); // Combined schema for all params\n  console.log(tool.outputSchema); // Response schema\n  console.log(tool.mapper); // How to build the HTTP request\n  console.log(tool.metadata); // Auth, servers, tags, etc.\n});\n```\n\n## Building Requests\n\n`buildHttpRequest()` turns a tool plus input values into a ready-to-send request — style/explode serialization, deepObject queries, multipart, binary, and `wholeBody` handled correctly:\n\n```typescript\nimport { buildHttpRequest } from \"mcp-from-openapi\";\n\nconst request = buildHttpRequest(tool, { id: \"42\", filter: { tag: \"news\" } });\n// { url: 'https://api.example.com/users/42?filter[tag]=news',\n//   method: 'GET', headers: {...}, body: undefined, ... }\n\nawait fetch(request.url, {\n  method: request.method,\n  headers: request.headers,\n  body: request.body as BodyInit,\n});\n```\n\nThe `mapper` array stays public for anyone who needs custom request assembly — see [Request Builder](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/request-builder.md) and [Parameter Conflicts](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/parameter-conflicts.md) for its contract.\n\n## Serving with the Official MCP SDK\n\n```typescript\nimport { toSdkTool, buildHttpRequest } from \"mcp-from-openapi\";\nimport { fromJsonSchema } from \"@modelcontextprotocol/server\"; // SDK v2\n\nfor (const tool of await generator.generateTools({ target: \"claude\" })) {\n  server.registerTool(...toSdkTool(tool, { fromJsonSchema }), async (input) => {\n    const request = buildHttpRequest(tool, input);\n    const response = await fetch(request.url, {\n      method: request.method,\n      headers: request.headers,\n      body: request.body as BodyInit,\n    });\n    return { content: [{ type: \"text\", text: await response.text() }] };\n  });\n}\n```\n\n## Documentation\n\n| Document                                                                                                    | Description                                                       |\n| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |\n| [Getting Started](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/getting-started.md)         | Loading specs, generating tools, building requests                |\n| [Configuration](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/configuration.md)             | LoadOptions, GenerateOptions, RefResolutionOptions                |\n| [Parameter Conflicts](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/parameter-conflicts.md) | How conflict detection and resolution works                       |\n| [Request Builder](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/request-builder.md)         | `buildHttpRequest` — full OpenAPI parameter serialization         |\n| [Client Targets](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/client-targets.md)           | Per-client schema dialects (Claude, OpenAI, Gemini)               |\n| [Curation](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/curation.md)                       | Token budgets, overlays, lint, trimming, response hints           |\n| [Type Signatures](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/type-signatures.md)         | TypeScript call contracts for code-execution surfaces             |\n| [Modern MCP Fields](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/modern-mcp-fields.md)     | Tool `_meta`, icons, `x-mcp-header`, elicitation descriptors      |\n| [Arazzo Workflows](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/arazzo.md)                 | fromArazzo() — Arazzo 1.0 workflows as consolidated MCP tools     |\n| [Tested Examples](https://github.com/agentfront/mcp-from-openapi/tree/main/examples)                        | Runnable examples, each executed as an e2e test on every CI run   |\n| [Response Schemas](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/response-schemas.md)       | Output schemas, status codes, oneOf unions                        |\n| [Annotations & Extensions](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/annotations.md)    | Tool title, annotation inference, `x-mcp` extension family        |\n| [Security](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/security.md)                       | SecurityResolver, all auth types, custom resolvers                |\n| [SSRF Prevention](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/ssrf-prevention.md)         | Ref resolution security, blocked IPs and hosts                    |\n| [Format Resolution](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/FORMAT_RESOLUTION.md)     | Format-to-schema enrichment (uuid, date-time, email, int32, etc.) |\n| [Naming Strategies](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/naming-strategies.md)     | Custom tool naming and conflict resolvers                         |\n| [SchemaBuilder](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/schema-builder.md)            | JSON Schema utility methods                                       |\n| [Error Handling](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/error-handling.md)           | Error classes, context, and patterns                              |\n| [x-frontmcp Extension](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/x-frontmcp.md)         | Custom OpenAPI extension for MCP annotations                      |\n| [API Reference](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/api-reference.md)             | Complete types, interfaces, and exports                           |\n| [Examples](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/examples.md)                       | MCP server, Zod, filtering, security, and more                    |\n| [Architecture](https://github.com/agentfront/mcp-from-openapi/blob/main/docs/architecture.md)               | System overview, data flow, design patterns                       |\n\n## Requirements\n\n- Node.js >= 20.0.0\n- TypeScript >= 5.0 (for TypeScript users)\n- Peer dependency: `zod@^4.0.0`\n\n## Contributing\n\nContributions are welcome! Start with the\n[contributing guide](https://github.com/agentfront/mcp-from-openapi/blob/main/CONTRIBUTING.md);\nthis project follows the\n[Contributor Covenant](https://github.com/agentfront/mcp-from-openapi/blob/main/CODE_OF_CONDUCT.md).\nBug reports and feature requests go through the\n[issue templates](https://github.com/agentfront/mcp-from-openapi/issues/new/choose).\n\n## Security\n\nReport vulnerabilities privately — see the\n[security policy](https://github.com/agentfront/mcp-from-openapi/blob/main/SECURITY.md).\nWhen loading untrusted specs, use `secureDefaults: true`.\n\n## Related Projects\n\n- [Model Context Protocol](https://modelcontextprotocol.io/)\n- [OpenAPI Specification](https://www.openapis.org/)\n\n## License\n\n[Apache 2.0](https://github.com/agentfront/mcp-from-openapi/blob/main/LICENSE)\n","readmeFilename":"README.md"}