{"_id":"@antl3x/toolrag","_rev":"9-0500fae66fd2ae508ef34a0019200aa2","name":"@antl3x/toolrag","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.1":{"name":"@antl3x/toolrag","version":"0.0.1","keywords":["llm","tool","registry","tools"],"author":{"url":"antl3x","name":"Antonio Moura"},"license":"Apache-2.0","_id":"@antl3x/toolrag@0.0.1","maintainers":[{"name":"nthypes","email":"aasm.moura@gmail.com"}],"dist":{"shasum":"d0ca2fb1e23d488b3f0c9859e423fd239d9295c1","tarball":"https://registry.npmjs.org/@antl3x/toolrag/-/toolrag-0.0.1.tgz","fileCount":61,"integrity":"sha512-XG3g3WjsrGmc608Q3AwqQ1SeepE77n2w8Fgx57hliDclzl9bOL3jf9j9L3x80FTFhWmk/+u4IQ+b4voIhXzf9w==","signatures":[{"sig":"MEQCIAeOEcJxJH/cMVvDicmh4vq/Ric1175YfDQjaCuFDQltAiBQNvV7ZqIcHCn5tPYDACAKtynzRzrwOicq104Dq1l/iw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":148797},"main":"./dist/cjs/index.js","type":"module","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"gitHead":"ff070975ec349d5b355ccb21ed45b6e7c9b3e180","scripts":{"lint":"task lint","test":"echo \"No tests yet\"","build":"task build","prepublishOnly":"task prepublish"},"_npmUser":{"name":"nthypes","email":"aasm.moura@gmail.com"},"_npmVersion":"10.2.3","description":"LLM's Tool Registry. Provide a registry for LLM's to find and use tools.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"zod":"^3.24.2","openai":"^4.89.1","sqlite3":"^5.1.7","winston":"^3.17.0","sqlite-vec":"0.1.7-alpha.2","@libsql/client":"^0.15.1","@google-cloud/vertexai":"^0.5.0","@google-cloud/aiplatform":"^4.1.0","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.6.5","devDependencies":{"zx":"^8.4.1","tsx":"^4.19.3","eslint":"^9.23.0","prettier":"^3.5.3","@eslint/js":"^9.23.0","typescript":"^5.8.2","@types/node":"^22.13.13","@eslint/config-helpers":"^0.2.0","eslint-config-prettier":"^10.1.1","@typescript-eslint/parser":"^8.28.0","@typescript-eslint/eslint-plugin":"^8.28.0"},"_npmOperationalInternal":{"tmp":"tmp/toolrag_0.0.1_1743227319002_0.5573760074908869","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-beta.0":{"name":"@antl3x/toolrag","version":"0.0.2-beta.0","keywords":["llm","tool","registry","tools","mcp","openai","anthropic","llm-tools","function-calling","llm-tool-call","mcp-servers","mcp-server"],"author":{"url":"antl3x","name":"Antonio Moura"},"license":"Apache-2.0","_id":"@antl3x/toolrag@0.0.2-beta.0","maintainers":[{"name":"nthypes","email":"aasm.moura@gmail.com"}],"dist":{"shasum":"6b3c887f0eb3a405ab7616b85d2583980f0c5497","tarball":"https://registry.npmjs.org/@antl3x/toolrag/-/toolrag-0.0.2-beta.0.tgz","fileCount":61,"integrity":"sha512-2YCOKvgnC+BO+eqnUZozi3OF9GnIuuBd5LPIuxbqHIruOgAkn4XGIHznTwc3GV4nnlohX7CTAhDkIDtoT6LxvQ==","signatures":[{"sig":"MEUCIQDqNZ8rbUl2IamM4rd/mQH3R4+W2OT39PoVTgOLu3cLHAIgHYeXSUD6T251xeO15WRPG1ebiwooTIZeCg+pIrvOd8c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149529},"main":"./dist/cjs/index.js","type":"module","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"gitHead":"ff070975ec349d5b355ccb21ed45b6e7c9b3e180","scripts":{"lint":"task lint","test":"echo \"No tests yet\"","build":"task build","prepublishOnly":"task prepublish"},"_npmUser":{"name":"nthypes","email":"aasm.moura@gmail.com"},"_npmVersion":"10.2.3","description":"Context-aware tool retrieval for language models - unlock the full potential of LLM function calling without context window limitations or constraints.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"zod":"^3.24.2","openai":"^4.89.1","sqlite3":"^5.1.7","winston":"^3.17.0","sqlite-vec":"0.1.7-alpha.2","@libsql/client":"^0.15.1","@google-cloud/vertexai":"^0.5.0","@google-cloud/aiplatform":"^4.1.0","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.6.5","devDependencies":{"zx":"^8.4.1","tsx":"^4.19.3","eslint":"^9.23.0","prettier":"^3.5.3","@eslint/js":"^9.23.0","typescript":"^5.8.2","@types/node":"^22.13.13","@eslint/config-helpers":"^0.2.0","eslint-config-prettier":"^10.1.1","@typescript-eslint/parser":"^8.28.0","@typescript-eslint/eslint-plugin":"^8.28.0"},"_npmOperationalInternal":{"tmp":"tmp/toolrag_0.0.2-beta.0_1743227711855_0.1756459707845477","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@antl3x/toolrag","version":"0.0.2","keywords":["llm","tool","registry","tools","mcp","openai","anthropic","llm-tools","function-calling","llm-tool-call","mcp-servers","mcp-server"],"author":{"url":"antl3x","name":"Antonio Moura"},"license":"Apache-2.0","_id":"@antl3x/toolrag@0.0.2","maintainers":[{"name":"nthypes","email":"aasm.moura@gmail.com"}],"dist":{"shasum":"970c8745532e3a3ccf536eeea179781e0696aba9","tarball":"https://registry.npmjs.org/@antl3x/toolrag/-/toolrag-0.0.2.tgz","fileCount":61,"integrity":"sha512-ZNkvURNbYV6bSCQVxSGRoKkayviF1iqp4h+FxJ3nVTvhvGJwkjj7SSDohIDIu2eB2dVNiI4gP66QdHnVyV13Wg==","signatures":[{"sig":"MEUCIQDFklYFVGKNDYgruxonR2QJ/gjjnM+JOwdkojPT5xXNDgIgHzr60ukOFU+i0AmBcsIMcTIwN24wbZbZMEILUCrC444=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149508},"main":"./dist/cjs/index.js","type":"module","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"gitHead":"ff070975ec349d5b355ccb21ed45b6e7c9b3e180","scripts":{"lint":"task lint","test":"echo \"No tests yet\"","build":"task build","prepublishOnly":"task prepublish"},"_npmUser":{"name":"nthypes","email":"aasm.moura@gmail.com"},"_npmVersion":"10.2.3","description":"Context-aware tool retrieval for language models - unlock the full potential of LLM function calling without context window limitations or constraints.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"zod":"^3.24.2","openai":"^4.89.1","sqlite3":"^5.1.7","winston":"^3.17.0","sqlite-vec":"0.1.7-alpha.2","@libsql/client":"^0.15.1","@google-cloud/vertexai":"^0.5.0","@google-cloud/aiplatform":"^4.1.0","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.6.5","devDependencies":{"zx":"^8.4.1","tsx":"^4.19.3","eslint":"^9.23.0","prettier":"^3.5.3","@eslint/js":"^9.23.0","typescript":"^5.8.2","@types/node":"^22.13.13","@eslint/config-helpers":"^0.2.0","eslint-config-prettier":"^10.1.1","@typescript-eslint/parser":"^8.28.0","@typescript-eslint/eslint-plugin":"^8.28.0"},"_npmOperationalInternal":{"tmp":"tmp/toolrag_0.0.2_1743227781571_0.9945684518034719","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-beta.1":{"name":"@antl3x/toolrag","version":"0.0.2-beta.1","keywords":["llm","tool","registry","tools","mcp","openai","anthropic","llm-tools","function-calling","llm-tool-call","mcp-servers","mcp-server"],"author":{"url":"antl3x","name":"Antonio Moura"},"license":"Apache-2.0","_id":"@antl3x/toolrag@0.0.2-beta.1","maintainers":[{"name":"nthypes","email":"aasm.moura@gmail.com"}],"dist":{"shasum":"29e2c71c77ffb25696ef33e262efe11e8da7db7f","tarball":"https://registry.npmjs.org/@antl3x/toolrag/-/toolrag-0.0.2-beta.1.tgz","fileCount":68,"integrity":"sha512-mG4Beni1Q3XBhup0hS4vyKXB+9YA+a/UaATWA3yke0POj6hp9TRZ2DbjJsWebU1ulKeq430/cjrL9FfUFQimzA==","signatures":[{"sig":"MEUCIQCipl2jiuirLriLMigniALUXfU6UVpndxCgn2g9jRAC1QIgCgyJ7P4CfjdId1x/puE00Dh5C4SEPhGFy/OMk4G/dHE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166497},"main":"./dist/cjs/index.js","type":"module","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"gitHead":"ff070975ec349d5b355ccb21ed45b6e7c9b3e180","scripts":{"lint":"task lint","test":"echo \"No tests yet\"","build":"task build","prepublishOnly":"task prepublish"},"_npmUser":{"name":"nthypes","email":"aasm.moura@gmail.com"},"_npmVersion":"10.2.3","description":"Context-aware tool retrieval for language models - unlock the full potential of LLM function calling without context window limitations or constraints.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"zod":"^3.24.2","openai":"^4.89.1","sqlite3":"^5.1.7","winston":"^3.17.0","sqlite-vec":"0.1.7-alpha.2","@libsql/client":"^0.15.1","@google-cloud/vertexai":"^0.5.0","@google-cloud/aiplatform":"^4.1.0","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.6.5","devDependencies":{"zx":"^8.4.1","tsx":"^4.19.3","eslint":"^9.23.0","prettier":"^3.5.3","@eslint/js":"^9.23.0","typescript":"^5.8.2","@types/node":"^22.13.13","@eslint/config-helpers":"^0.2.0","eslint-config-prettier":"^10.1.1","@typescript-eslint/parser":"^8.28.0","@typescript-eslint/eslint-plugin":"^8.28.0"},"_npmOperationalInternal":{"tmp":"tmp/toolrag_0.0.2-beta.1_1743228016634_0.5926681726117102","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-beta.2":{"name":"@antl3x/toolrag","version":"0.0.2-beta.2","keywords":["llm","tool","registry","tools","mcp","openai","anthropic","llm-tools","function-calling","llm-tool-call","mcp-servers","mcp-server"],"author":{"url":"antl3x","name":"Antonio Moura"},"license":"Apache-2.0","_id":"@antl3x/toolrag@0.0.2-beta.2","maintainers":[{"name":"nthypes","email":"aasm.moura@gmail.com"}],"dist":{"shasum":"e0f0380848c53eb7a3e2ccdf53408de27872abed","tarball":"https://registry.npmjs.org/@antl3x/toolrag/-/toolrag-0.0.2-beta.2.tgz","fileCount":68,"integrity":"sha512-bUjJpQvhzyx2xSAtKUBNsERFyGROMA6MrvcXfyVUr6RyBVg0MG2OWNPwB4PbJT72tLeosFtPmiB2fy0bBz5BQQ==","signatures":[{"sig":"MEUCIH7PeUm09j6oW8oVk2GS6uC2NPAphHsmS5nh0uXjI+klAiEA63d3bMQeTSayQyGUfA7/x7hd9CN5t/V5XMCvtgdDeJU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166479},"main":"./dist/cjs/index.js","type":"module","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"gitHead":"ff070975ec349d5b355ccb21ed45b6e7c9b3e180","scripts":{"lint":"task lint","test":"echo \"No tests yet\"","build":"task build","prepublishOnly":"task prepublish"},"_npmUser":{"name":"nthypes","email":"aasm.moura@gmail.com"},"_npmVersion":"10.2.3","description":"Context-aware tool retrieval for language models - unlock the full potential of LLM function calling without context window limitations or constraints.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"zod":"^3.24.2","openai":"^4.89.1","sqlite3":"^5.1.7","winston":"^3.17.0","sqlite-vec":"0.1.7-alpha.2","@libsql/client":"^0.15.1","@google-cloud/vertexai":"^0.5.0","@google-cloud/aiplatform":"^4.1.0","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.6.5","devDependencies":{"zx":"^8.4.1","tsx":"^4.19.3","eslint":"^9.23.0","prettier":"^3.5.3","@eslint/js":"^9.23.0","typescript":"^5.8.2","@types/node":"^22.13.13","@eslint/config-helpers":"^0.2.0","eslint-config-prettier":"^10.1.1","@typescript-eslint/parser":"^8.28.0","@typescript-eslint/eslint-plugin":"^8.28.0"},"_npmOperationalInternal":{"tmp":"tmp/toolrag_0.0.2-beta.2_1743228230118_0.3186484537431702","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-beta.4":{"name":"@antl3x/toolrag","version":"0.0.2-beta.4","keywords":["llm","tool","registry","tools","mcp","openai","anthropic","llm-tools","function-calling","llm-tool-call","mcp-servers","mcp-server"],"author":{"url":"antl3x","name":"Antonio Moura"},"license":"Apache-2.0","_id":"@antl3x/toolrag@0.0.2-beta.4","maintainers":[{"name":"nthypes","email":"aasm.moura@gmail.com"}],"homepage":"https://github.com/antl3x/ToolRAG","dist":{"shasum":"99f1c6e1160cf5680950202958ba0d46b8e88fb6","tarball":"https://registry.npmjs.org/@antl3x/toolrag/-/toolrag-0.0.2-beta.4.tgz","fileCount":68,"integrity":"sha512-u98/cGi1AERf9jzQ7iBh/8JR45OIakxrx7GaNXGBLughYuAwDEen2P21bghup0VsW5up3STWYVBHz6Adp6glfw==","signatures":[{"sig":"MEUCIQCsJdfRPAK7dm5IwmyRz5KwdW3vJ5HKgTHAN9OhF6f/hAIgbfkI5l2xZQ1z1KKYUp8iF2F9QHtEzhvVEgh5XTSaVTQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166738},"main":"./dist/cjs/index.js","type":"module","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"gitHead":"d503b58b95255389676b4c67c22932d0f7766923","scripts":{"lint":"task lint","test":"echo \"No tests yet\"","build":"task build","prepublishOnly":"task prepublish"},"_npmUser":{"name":"nthypes","email":"aasm.moura@gmail.com"},"_npmVersion":"10.2.3","description":"Context-aware tool retrieval for language models - unlock the full potential of LLM function calling without context window limitations or constraints.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"zod":"^3.24.2","openai":"^4.89.1","sqlite3":"^5.1.7","winston":"^3.17.0","sqlite-vec":"0.1.7-alpha.2","@libsql/client":"^0.15.1","@google-cloud/vertexai":"^0.5.0","@google-cloud/aiplatform":"^4.1.0","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.6.5","devDependencies":{"zx":"^8.4.1","tsx":"^4.19.3","eslint":"^9.23.0","prettier":"^3.5.3","@eslint/js":"^9.23.0","typescript":"^5.8.2","@types/node":"^22.13.13","@eslint/config-helpers":"^0.2.0","eslint-config-prettier":"^10.1.1","@typescript-eslint/parser":"^8.28.0","@typescript-eslint/eslint-plugin":"^8.28.0"},"_npmOperationalInternal":{"tmp":"tmp/toolrag_0.0.2-beta.4_1743234612800_0.014558583105382938","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-beta.5":{"name":"@antl3x/toolrag","version":"0.0.2-beta.5","keywords":["llm","tool","registry","tools","mcp","openai","anthropic","llm-tools","function-calling","llm-tool-call","mcp-servers","mcp-server"],"author":{"url":"antl3x","name":"Antonio Moura"},"license":"Apache-2.0","_id":"@antl3x/toolrag@0.0.2-beta.5","maintainers":[{"name":"nthypes","email":"aasm.moura@gmail.com"}],"homepage":"https://github.com/antl3x/ToolRAG","dist":{"shasum":"c659ea48e2e40781d1851b31fc81211f42cd532f","tarball":"https://registry.npmjs.org/@antl3x/toolrag/-/toolrag-0.0.2-beta.5.tgz","fileCount":68,"integrity":"sha512-gmsDsAjkkWZyzdaR+TurU704gz3vhk1JXx4x22bL7KIdFNXk82l6y5EGr+g1iclhdaEHZGYi7O9gScQPZ2R79w==","signatures":[{"sig":"MEUCIQDQE6gPdO4UGdKDFh7uecWIHwZ5LCe9ALmufrcN5t4l9AIga/yEYTfP+wVCE5eoahpHKgghPeZpckEJsWhHNhFhKkA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166855},"main":"./dist/cjs/index.js","type":"module","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"gitHead":"d503b58b95255389676b4c67c22932d0f7766923","imports":{"#*":"./source/*"},"scripts":{"lint":"task lint","test":"echo \"No tests yet\"","build":"task build","prepublishOnly":"task prepublish"},"_npmUser":{"name":"nthypes","email":"aasm.moura@gmail.com"},"_npmVersion":"10.2.3","description":"Context-aware tool retrieval for language models - unlock the full potential of LLM function calling without context window limitations or constraints.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"zod":"^3.24.2","openai":"^4.89.1","sqlite3":"^5.1.7","winston":"^3.17.0","sqlite-vec":"0.1.7-alpha.2","@libsql/client":"^0.15.1","@google-cloud/vertexai":"^0.5.0","@google-cloud/aiplatform":"^4.1.0","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.6.5","devDependencies":{"zx":"^8.4.1","tsx":"^4.19.3","eslint":"^9.23.0","prettier":"^3.5.3","@eslint/js":"^9.23.0","typescript":"^5.8.2","@types/node":"^22.13.13","@eslint/config-helpers":"^0.2.0","eslint-config-prettier":"^10.1.1","@typescript-eslint/parser":"^8.28.0","@typescript-eslint/eslint-plugin":"^8.28.0"},"_npmOperationalInternal":{"tmp":"tmp/toolrag_0.0.2-beta.5_1743266877577_0.6620322464389996","host":"s3://npm-registry-packages-npm-production"}},"0.0.3-beta.0":{"name":"@antl3x/toolrag","version":"0.0.3-beta.0","keywords":["llm","tool","registry","tools","mcp","openai","anthropic","llm-tools","function-calling","llm-tool-call","mcp-servers","mcp-server"],"author":{"url":"antl3x","name":"Antonio Moura"},"license":"Apache-2.0","_id":"@antl3x/toolrag@0.0.3-beta.0","maintainers":[{"name":"nthypes","email":"aasm.moura@gmail.com"}],"homepage":"https://github.com/antl3x/ToolRAG","dist":{"shasum":"6fcf3d9c1440f812e7be8e592a19cfd8a44fb015","tarball":"https://registry.npmjs.org/@antl3x/toolrag/-/toolrag-0.0.3-beta.0.tgz","fileCount":68,"integrity":"sha512-sbiQNFI1/1bmjluRi5EOxNu+HQiRYuTq/JqkPmP3Dq28QTyR2PNspl1bv/ZNpHQLCFjy5jBJnThuPcrwV4l4iA==","signatures":[{"sig":"MEYCIQDXbN8j4UlcvUQyAZNNHd2obb5TVF8/5kb962B0Ao1E1QIhAK0RB8aiLQ5GfeARd+HKVNBEY2pEHl0hNFwY4TMy7aeo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166855},"main":"./dist/cjs/index.js","type":"module","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"gitHead":"d503b58b95255389676b4c67c22932d0f7766923","imports":{"#*":"./source/*"},"scripts":{"lint":"task lint","test":"echo \"No tests yet\"","build":"task build","prepublishOnly":"task prepublish"},"_npmUser":{"name":"nthypes","email":"aasm.moura@gmail.com"},"_npmVersion":"10.2.3","description":"Context-aware tool retrieval for language models - unlock the full potential of LLM function calling without context window limitations or constraints.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"zod":"^3.24.2","openai":"^4.89.1","sqlite3":"^5.1.7","winston":"^3.17.0","sqlite-vec":"0.1.7-alpha.2","@libsql/client":"^0.15.1","@google-cloud/vertexai":"^0.5.0","@google-cloud/aiplatform":"^4.1.0","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.6.5","devDependencies":{"zx":"^8.4.1","tsx":"^4.19.3","eslint":"^9.23.0","prettier":"^3.5.3","@eslint/js":"^9.23.0","typescript":"^5.8.2","@types/node":"^22.13.13","@eslint/config-helpers":"^0.2.0","eslint-config-prettier":"^10.1.1","@typescript-eslint/parser":"^8.28.0","@typescript-eslint/eslint-plugin":"^8.28.0"},"_npmOperationalInternal":{"tmp":"tmp/toolrag_0.0.3-beta.0_1743268322844_0.7856759121193775","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@antl3x/toolrag","version":"0.0.3","type":"module","description":"Context-aware tool retrieval for language models - unlock the full potential of LLM function calling without context window limitations or constraints.","homepage":"https://github.com/antl3x/ToolRAG","keywords":["llm","tool","registry","tools","mcp","openai","anthropic","llm-tools","function-calling","llm-tool-call","mcp-servers","mcp-server"],"author":{"name":"Antonio Moura","url":"antl3x"},"license":"Apache-2.0","packageManager":"pnpm@10.6.5","main":"./dist/cjs/index.js","module":"./dist/esm/index.js","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"imports":{"#*":"./source/*"},"scripts":{"build":"task build","test":"echo \"No tests yet\"","lint":"task lint","prepublishOnly":"task prepublish"},"dependencies":{"@google-cloud/aiplatform":"^4.1.0","@google-cloud/vertexai":"^0.5.0","@libsql/client":"^0.15.1","@modelcontextprotocol/sdk":"^1.8.0","openai":"^4.89.1","sqlite-vec":"0.1.7-alpha.2","sqlite3":"^5.1.7","winston":"^3.17.0","zod":"^3.24.2"},"devDependencies":{"@eslint/config-helpers":"^0.2.0","@eslint/js":"^9.23.0","@types/node":"^22.13.13","@typescript-eslint/eslint-plugin":"^8.28.0","@typescript-eslint/parser":"^8.28.0","eslint":"^9.23.0","eslint-config-prettier":"^10.1.1","prettier":"^3.5.3","tsx":"^4.19.3","typescript":"^5.8.2","zx":"^8.4.1"},"_id":"@antl3x/toolrag@0.0.3","gitHead":"d503b58b95255389676b4c67c22932d0f7766923","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-fNEF0vEkHqQYqadTbateia8ytkrM4IPZFadSotv2NlKuGjZfYmgbA6DtK8SPEX1kCDCiuvWrK1qPV43ISu4Jcw==","shasum":"ddbf850066f02e217920d669e2af4dba53d15f5c","tarball":"https://registry.npmjs.org/@antl3x/toolrag/-/toolrag-0.0.3.tgz","fileCount":68,"unpackedSize":166834,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIC3R/10MQePCOvuG2JnrcQTaaQwgKKtzood+tFLVvjEgAiEAoMmTr+4f5ZC4g5plu5WY5p2n5oDEvpepYDN3M4fklL0="}]},"_npmUser":{"name":"nthypes","email":"aasm.moura@gmail.com"},"directories":{},"maintainers":[{"name":"nthypes","email":"aasm.moura@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/toolrag_0.0.3_1743268414405_0.32763623185757096"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-29T05:48:38.899Z","modified":"2025-03-29T17:13:36.166Z","0.0.1":"2025-03-29T05:48:39.160Z","0.0.2-beta.0":"2025-03-29T05:55:12.053Z","0.0.2":"2025-03-29T05:56:21.746Z","0.0.2-beta.1":"2025-03-29T06:00:16.833Z","0.0.2-beta.2":"2025-03-29T06:03:50.285Z","0.0.2-beta.4":"2025-03-29T07:50:12.969Z","0.0.2-beta.5":"2025-03-29T16:47:57.785Z","0.0.3-beta.0":"2025-03-29T17:12:03.027Z","0.0.3":"2025-03-29T17:13:35.971Z"},"author":{"name":"Antonio Moura","url":"antl3x"},"license":"Apache-2.0","homepage":"https://github.com/antl3x/ToolRAG","keywords":["llm","tool","registry","tools","mcp","openai","anthropic","llm-tools","function-calling","llm-tool-call","mcp-servers","mcp-server"],"description":"Context-aware tool retrieval for language models - unlock the full potential of LLM function calling without context window limitations or constraints.","maintainers":[{"name":"nthypes","email":"aasm.moura@gmail.com"}],"readme":"![toolrag-header](https://github.com/user-attachments/assets/ae45be26-d473-43d3-8432-48d68635a6f5)\n\n<div align=\"center\"><strong>ToolRAG</strong></div>\n<div align=\"center\">Infinity LLM tools, zero context conntraints<br />Context-aware tool retrieval for large language models.</div>\n\n\n# Introduction\nToolRAG provides a seamless solution for using an unlimited number of function definitions with Large Language Models (LLMs), without worrying about context window limitations, costs, or performance degradation.\n\n## 🌟 Key Features\n\n- **Unlimited Tool Definitions**: Say goodbye to context window constraints. ToolRAG dynamically selects only the most relevant tools for each query.\n- **Semantic Tool Search**: Uses vector embeddings to find the most contextually relevant tools for a given user query.\n- **Cost Optimization**: Reduces token usage by only including the most relevant function definitions.\n- **Performance Improvement**: Prevents performance degradation that occurs when overwhelming LLMs with too many function definitions.\n- **MCP Integration**: Works with any Model Context Protocol (MCP) compliant servers, enabling access to a wide ecosystem of tools.\n- **OpenAI Compatible**: Format tools as OpenAI function definitions for seamless integration.\n\n## 🔍 How It Works\n\n1. **Tool Registration**: ToolRAG connects to MCP servers and registers available tools.\n2. **Embedding Generation**: Tool descriptions and parameters are embedded using vector embeddings (OpenAI or Google).\n3. **Query Analysis**: When a user query comes in, ToolRAG finds the most relevant tools via semantic search.\n4. **Tool Execution**: Execute selected tools against the appropriate MCP servers.\n\n## Installation\n\n```bash\nnpm install @antl3x/toolrag\n# or\nyarn add @antl3x/toolrag\n# or\npnpm add @antl3x/toolrag\n```\n\n## 🚀 Quick Start\n\n```typescript\nimport { ToolRAG } from \"@antl3x/toolrag\";\nimport OpenAI from \"openai\";\n\n// Initialize ToolRAG with MCP servers\nconst toolRag = await ToolRAG.init({\n  mcpServers: [\n    \"https://mcp.pipedream.net/token/google_calendar\",\n    \"https://mcp.pipedream.net/token/stripe\",\n    // Add as many tool servers as you need!\n  ],\n});\n\nconst userQuery =\n  \"What events do I have tomorrow? Also, check my stripe balance.\";\n\n// Get relevant tools for a specific query\nconst client = new OpenAI();\n\nconst response = await client.responses.create({\n  model: \"gpt-4o\",\n  input: userQuery,\n  tools: await toolRag.listTools(userQuery),\n});\n\n// Execute the function calls from the LLM response\nfor (const call of response.output.filter(\n  (item) => item.type === \"function_call\"\n)) {\n  const result = await toolRag.callTool(call.name, JSON.parse(call.arguments));\n  console.log(result);\n}\n```\n\n## 🏗️ Architecture\n\nToolRAG uses a Retrieval-Augmented Generation (RAG) approach optimized for tools:\n\n1. **Storage**: LibSQL database to store tool definitions and their vector embeddings\n2. **Retrieval**: Cosine similarity search to find the most relevant tools\n3. **Execution**: Direct integration with MCP servers for tool execution\n\n## 👨‍💻 Use Cases\n\n- **Multi-tool AI Assistants**: Build assistants that can access hundreds of APIs\n- **Enterprise Systems**: Connect to internal tools and services without context limits\n- **AI Platforms**: Provide a unified interface for tool discovery and execution\n\n## 🔧 Configuration Options\n\nToolRAG offers flexible configuration options:\n\n- Multiple embedding providers (OpenAI, Google)\n- Customizable relevance thresholds\n- Database configuration for persistence\n\n## 📝 License\n\nApache License 2.0\n","readmeFilename":"README.md"}