{"_id":"@easecloudio/mcp-metabase-server","_rev":"9-dae46727587d49697582c089739134a2","name":"@easecloudio/mcp-metabase-server","dist-tags":{"latest":"1.3.0"},"versions":{"1.0.0":{"name":"@easecloudio/mcp-metabase-server","version":"1.0.0","keywords":["mcp","model-context-protocol","metabase","analytics","business-intelligence","ai","claude"],"author":{"name":"Safoor Safdar","email":"safoor@easecloud.io"},"license":"MIT","_id":"@easecloudio/mcp-metabase-server@1.0.0","maintainers":[{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"}],"homepage":"https://github.com/easecloudio/mcp-metabase-server","bugs":{"url":"https://github.com/easecloudio/mcp-metabase-server/issues"},"bin":{"mcp-metabase-server":"dist/index.js"},"dist":{"shasum":"89c392a8ab0305e595554c4d87649e78b0a1d5a8","tarball":"https://registry.npmjs.org/@easecloudio/mcp-metabase-server/-/mcp-metabase-server-1.0.0.tgz","fileCount":13,"integrity":"sha512-k4sbyF+xDm9jNRQ7/HXMHCF7CqFr7TwHL1yWjTT+yzCHUPIeufhcgbRIwLhwViqFOvyVyQsmYv0s0vmpvQqoYQ==","signatures":[{"sig":"MEUCICzyhsZau0kl8qfr1JJPxt+aZebRXMG4cEZK62Xm2zIHAiEAxwwKJjojcK3jTFhxhvynu5TtpbyVVcMMvlNMJx8LdlY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92220},"main":"./dist/index.js","type":"module","gitHead":"711d3b1d32000e2d5833dd6e3cfb39cfd3295f3e","private":false,"scripts":{"dev":"npm run build && npm start","lint":"echo 'Linting would go here'","test":"npm run build && echo 'Tests would go here'","build":"tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\" && mkdir -p dist && cp -r build/* dist/","clean":"rm -rf build dist","start":"node dist/index.js","watch":"tsc --watch","inspector":"npx @modelcontextprotocol/inspector dist/index.js","docker:run":"docker run -it --rm mcp-metabase-server","docker:build":"docker build -t mcp-metabase-server .","docker:compose":"docker-compose up"},"_npmUser":{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"},"repository":{"url":"git+https://github.com/easecloudio/mcp-metabase-server.git","type":"git"},"_npmVersion":"10.7.0","description":"A Model Context Protocol server for Metabase integration","directories":{},"_nodeVersion":"22.2.0","dependencies":{"axios":"^1.8.2","abort-controller":"^3.0.0","@modelcontextprotocol/sdk":"^0.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.17.22"},"_npmOperationalInternal":{"tmp":"tmp/mcp-metabase-server_1.0.0_1752954030387_0.9529355297933109","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@easecloudio/mcp-metabase-server","version":"1.0.1","keywords":["mcp","model-context-protocol","metabase","analytics","business-intelligence","ai","claude"],"author":{"name":"Safoor Safdar","email":"safoor@easecloud.io"},"license":"MIT","_id":"@easecloudio/mcp-metabase-server@1.0.1","maintainers":[{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"}],"homepage":"https://github.com/easecloudio/mcp-metabase-server","bugs":{"url":"https://github.com/easecloudio/mcp-metabase-server/issues"},"bin":{"mcp-metabase-server":"dist/index.js"},"dist":{"shasum":"c686bf99efd7a7c2e08dfec74afc78fe893c6090","tarball":"https://registry.npmjs.org/@easecloudio/mcp-metabase-server/-/mcp-metabase-server-1.0.1.tgz","fileCount":13,"integrity":"sha512-nGcmjC4vCuemuQwt7lKuxt/Tm2Wej5JgAkVf7S5xdDdW2FePugBQRNnjBRpJpysb2B4jyskpnPfp0fdnSCcEhA==","signatures":[{"sig":"MEUCIAGtDsOu1t056V1Qsj7yGaVfgnlJniSY3yK8mG++Tl3uAiEA5a/+ckjy0iwKqlo11ui93nZEmWHJZFP2Zsw1WE9acws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92228},"main":"./dist/index.js","type":"module","gitHead":"711d3b1d32000e2d5833dd6e3cfb39cfd3295f3e","private":false,"scripts":{"dev":"npm run build && npm start","lint":"echo 'Linting would go here'","test":"npm run build && echo 'Tests would go here'","build":"tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\" && mkdir -p dist && cp -r build/* dist/","clean":"rm -rf build dist","start":"node dist/index.js","watch":"tsc --watch","inspector":"npx @modelcontextprotocol/inspector dist/index.js","docker:run":"docker run -it --rm mcp-metabase-server","docker:build":"docker build -t mcp-metabase-server .","docker:compose":"docker-compose up"},"_npmUser":{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"},"repository":{"url":"git+https://github.com/easecloudio/mcp-metabase-server.git","type":"git"},"_npmVersion":"10.7.0","description":"A Model Context Protocol server for Metabase integration","directories":{},"_nodeVersion":"22.2.0","dependencies":{"axios":"^1.8.2","abort-controller":"^3.0.0","@modelcontextprotocol/sdk":"^0.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.17.22"},"_npmOperationalInternal":{"tmp":"tmp/mcp-metabase-server_1.0.1_1752954317661_0.14336089447712386","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@easecloudio/mcp-metabase-server","version":"1.0.2","keywords":["mcp","model-context-protocol","metabase","analytics","business-intelligence","ai","claude"],"author":{"name":"Safoor Safdar","email":"safoor@easecloud.io"},"license":"MIT","_id":"@easecloudio/mcp-metabase-server@1.0.2","maintainers":[{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"}],"homepage":"https://github.com/easecloudio/mcp-metabase-server","bugs":{"url":"https://github.com/easecloudio/mcp-metabase-server/issues"},"bin":{"mcp-metabase-server":"dist/index.js"},"dist":{"shasum":"c9530e37bdfb3bd11b6daa116f5f906777caed3e","tarball":"https://registry.npmjs.org/@easecloudio/mcp-metabase-server/-/mcp-metabase-server-1.0.2.tgz","fileCount":14,"integrity":"sha512-3X8rx/2s3qlQhy+xW7Uj+xXnKM6Q2keuei+U3+rMTxpleCiec2BSiyu2f6tdIj0Cvq0iKkI5gBlHxN124boZQA==","signatures":[{"sig":"MEUCIQDlrDTAo3zr6z22uYYq25gT7LgsYkn3OUysFLouWt1i3QIgK3MkSU8MGjcONuRBoGEvQeLhxK3Z8MQbrI9FILEm4So=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95872},"main":"./dist/index.js","type":"module","gitHead":"40686adf28965f5fda785c5077aacf51df9a525a","private":false,"scripts":{"dev":"npm run build && npm start","lint":"echo 'Linting would go here'","test":"npm run build && echo 'Tests would go here'","build":"tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\" && mkdir -p dist && cp -r build/* dist/","clean":"rm -rf build dist","start":"node dist/index.js","watch":"tsc --watch","inspector":"npx @modelcontextprotocol/inspector dist/index.js","docker:run":"docker run -it --rm mcp-metabase-server","docker:build":"docker build -t mcp-metabase-server .","docker:compose":"docker-compose up"},"_npmUser":{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"},"repository":{"url":"git+https://github.com/easecloudio/mcp-metabase-server.git","type":"git"},"_npmVersion":"11.5.1","description":"A Model Context Protocol server for Metabase integration","directories":{},"_nodeVersion":"24.6.0","dependencies":{"axios":"^1.8.2","abort-controller":"^3.0.0","@modelcontextprotocol/sdk":"^0.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.17.22"},"_npmOperationalInternal":{"tmp":"tmp/mcp-metabase-server_1.0.2_1756375761445_0.7849489707514294","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@easecloudio/mcp-metabase-server","version":"1.0.3","keywords":["mcp","model-context-protocol","metabase","analytics","business-intelligence","ai","claude"],"author":{"name":"Safoor Safdar","email":"safoor@easecloud.io"},"license":"MIT","_id":"@easecloudio/mcp-metabase-server@1.0.3","maintainers":[{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"}],"homepage":"https://github.com/easecloudio/mcp-metabase-server","bugs":{"url":"https://github.com/easecloudio/mcp-metabase-server/issues"},"bin":{"mcp-metabase-server":"dist/index.js"},"dist":{"shasum":"abf24b246261dcd4c21ba22c2c544c1888da2daa","tarball":"https://registry.npmjs.org/@easecloudio/mcp-metabase-server/-/mcp-metabase-server-1.0.3.tgz","fileCount":14,"integrity":"sha512-xCjNsStbTpD/oByOYxoZKTwP84ETXQnv+MjjcCc0Tvs4vgDTPxrV9KAikM0Ukd0eLtAVeCC1NNk2LO7Ml304LA==","signatures":[{"sig":"MEUCIQDX/htsbUZLC5IFNLimRj1IpUc8gaVIkWpAcBlACrxZEAIge6mPGuXxbJxxV6Kz6xKrL1PzF6EWPPKSl3O4Gj7VzcQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95891},"main":"./dist/index.js","type":"module","gitHead":"825020617b20bf0d4dbe1e451719b02ffd9eabed","private":false,"scripts":{"dev":"npm run build && npm start","lint":"echo 'Linting would go here'","test":"npm run build && echo 'Tests would go here'","build":"tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\" && mkdir -p dist && cp -r build/* dist/","clean":"rm -rf build dist","start":"node dist/index.js","watch":"tsc --watch","inspector":"npx @modelcontextprotocol/inspector dist/index.js","docker:run":"docker run -it --rm mcp-metabase-server","docker:build":"docker build -t mcp-metabase-server .","docker:compose":"docker-compose up"},"_npmUser":{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"},"repository":{"url":"git+https://github.com/easecloudio/mcp-metabase-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A Model Context Protocol server for Metabase integration","directories":{},"_nodeVersion":"20.20.1","dependencies":{"axios":"^1.8.2","abort-controller":"^3.0.0","@modelcontextprotocol/sdk":"^0.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.17.22"},"_npmOperationalInternal":{"tmp":"tmp/mcp-metabase-server_1.0.3_1774647911233_0.2838428759314282","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@easecloudio/mcp-metabase-server","version":"1.1.0","keywords":["mcp","model-context-protocol","metabase","analytics","business-intelligence","ai","claude"],"author":{"name":"Safoor Safdar","email":"safoor@easecloud.io"},"license":"MIT","_id":"@easecloudio/mcp-metabase-server@1.1.0","maintainers":[{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"}],"homepage":"https://github.com/easecloudio/mcp-metabase-server","bugs":{"url":"https://github.com/easecloudio/mcp-metabase-server/issues"},"bin":{"mcp-metabase-server":"dist/index.js"},"dist":{"shasum":"11084dd5b7ff60ff704013f01e3d4275e897e852","tarball":"https://registry.npmjs.org/@easecloudio/mcp-metabase-server/-/mcp-metabase-server-1.1.0.tgz","fileCount":14,"integrity":"sha512-aqtLToEi3msvJCiqmUHyyyZawj6cUOSPCGlRzvxy4VfLpX8pvEd1A2VjaAzr4HpXU5MGmKGED7HIkaF452veYw==","signatures":[{"sig":"MEUCIQC+z9hGlEJQd2Uzbqb9fsI5N8unK5HHqu0HdzhCBkfdIAIgczsUplBp/+4chaoK7QqUZIQ8opMp4lAVbBlItM3vLbE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99195},"main":"./dist/index.js","type":"module","gitHead":"d249e0dc7ea8a9910acbc80e46baf4581e582ce8","private":false,"scripts":{"dev":"npm run build && npm start","lint":"echo 'Linting would go here'","test":"npm run build && echo 'Tests would go here'","build":"tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\" && mkdir -p dist && cp -r build/* dist/","clean":"rm -rf build dist","start":"node dist/index.js","watch":"tsc --watch","inspector":"npx @modelcontextprotocol/inspector dist/index.js","docker:run":"docker run -it --rm mcp-metabase-server","docker:build":"docker build -t mcp-metabase-server .","docker:compose":"docker-compose up"},"_npmUser":{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"},"repository":{"url":"git+https://github.com/easecloudio/mcp-metabase-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A Model Context Protocol server for Metabase integration","directories":{},"_nodeVersion":"20.20.2","dependencies":{"axios":"^1.8.2","abort-controller":"^3.0.0","@modelcontextprotocol/sdk":"^0.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.17.22"},"_npmOperationalInternal":{"tmp":"tmp/mcp-metabase-server_1.1.0_1775921367322_0.507059925265855","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@easecloudio/mcp-metabase-server","version":"1.0.4","keywords":["mcp","model-context-protocol","metabase","analytics","business-intelligence","ai","claude"],"author":{"name":"Safoor Safdar","email":"safoor@easecloud.io"},"license":"MIT","_id":"@easecloudio/mcp-metabase-server@1.0.4","maintainers":[{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"}],"homepage":"https://github.com/easecloudio/mcp-metabase-server","bugs":{"url":"https://github.com/easecloudio/mcp-metabase-server/issues"},"bin":{"mcp-metabase-server":"dist/index.js"},"dist":{"shasum":"99d441fbac74df623b8a937f79e7e4d41ed1334d","tarball":"https://registry.npmjs.org/@easecloudio/mcp-metabase-server/-/mcp-metabase-server-1.0.4.tgz","fileCount":14,"integrity":"sha512-MB+Zf34YTwn+dxXXGIEkNK9bXZazR6riztcVY0rj0J748olXE1JNwXW3W0nrk//HoqHfGOcL+tB5PFAsMB11Sw==","signatures":[{"sig":"MEQCIG4e/UnbyxJrmdWqZjpDFwRI3lQYYu8m5+Pq6O7rHfV3AiAHo9N0fXynRS0E4ovtplu6TIxhfxNbDfIquQtUyzfjEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99195},"main":"./dist/index.js","type":"module","gitHead":"4ea5e0956f08adba196523eadb414b96f6f51fdb","private":false,"scripts":{"dev":"npm run build && npm start","lint":"echo 'Linting would go here'","test":"npm run build && echo 'Tests would go here'","build":"tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\" && mkdir -p dist && cp -r build/* dist/","clean":"rm -rf build dist","start":"node dist/index.js","watch":"tsc --watch","inspector":"npx @modelcontextprotocol/inspector dist/index.js","docker:run":"docker run -it --rm mcp-metabase-server","docker:build":"docker build -t mcp-metabase-server .","docker:compose":"docker-compose up"},"_npmUser":{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"},"repository":{"url":"git+https://github.com/easecloudio/mcp-metabase-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A Model Context Protocol server for Metabase integration","directories":{},"_nodeVersion":"20.20.2","dependencies":{"axios":"^1.8.2","abort-controller":"^3.0.0","@modelcontextprotocol/sdk":"^0.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.17.22"},"_npmOperationalInternal":{"tmp":"tmp/mcp-metabase-server_1.0.4_1775921445131_0.9386419074796244","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@easecloudio/mcp-metabase-server","version":"1.0.5","keywords":["mcp","model-context-protocol","metabase","analytics","business-intelligence","ai","claude"],"author":{"name":"Safoor Safdar","email":"safoor@easecloud.io"},"license":"MIT","_id":"@easecloudio/mcp-metabase-server@1.0.5","maintainers":[{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"}],"homepage":"https://github.com/easecloudio/mcp-metabase-server","bugs":{"url":"https://github.com/easecloudio/mcp-metabase-server/issues"},"bin":{"mcp-metabase-server":"dist/index.js"},"dist":{"shasum":"fbf88ea5062c3091d935bc44120a8a8e17c00155","tarball":"https://registry.npmjs.org/@easecloudio/mcp-metabase-server/-/mcp-metabase-server-1.0.5.tgz","fileCount":14,"integrity":"sha512-l5yyMxY0t18HDjIES8ChqGp+klYQaP0xUYBRBT8YbpcJLp3zhtIXLvaCeNCP6cRf+gxmMrfemPa8Y5PBf+qKYw==","signatures":[{"sig":"MEUCIDfOZHnafz4hpvRudYzfWEmtv7y3Ay+DLUPaJCBH3aAEAiEA67UdbrTn4ALoYefP/1/6bddQMSvOqZPKi1ZaLTZymWM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103492},"main":"./dist/index.js","type":"module","gitHead":"1f9fd15b1c686d34b3f8f18f834be297722f7453","private":false,"scripts":{"dev":"npm run build && npm start","lint":"echo 'Linting would go here'","test":"npm run build && echo 'Tests would go here'","build":"tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\" && mkdir -p dist && cp -r build/* dist/","clean":"rm -rf build dist","start":"node dist/index.js","watch":"tsc --watch","inspector":"npx @modelcontextprotocol/inspector dist/index.js","docker:run":"docker run -it --rm mcp-metabase-server","docker:build":"docker build -t mcp-metabase-server .","docker:compose":"docker-compose up"},"_npmUser":{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"},"repository":{"url":"git+https://github.com/easecloudio/mcp-metabase-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A Model Context Protocol server for Metabase integration","directories":{},"_nodeVersion":"20.20.2","dependencies":{"axios":"^1.8.2","abort-controller":"^3.0.0","@modelcontextprotocol/sdk":"^0.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.17.22"},"_npmOperationalInternal":{"tmp":"tmp/mcp-metabase-server_1.0.5_1776723044644_0.8730598617764429","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@easecloudio/mcp-metabase-server","version":"1.2.0","keywords":["mcp","model-context-protocol","metabase","analytics","business-intelligence","ai","claude"],"author":{"name":"Safoor Safdar","email":"safoor@easecloud.io"},"license":"MIT","_id":"@easecloudio/mcp-metabase-server@1.2.0","maintainers":[{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"}],"homepage":"https://github.com/easecloudio/mcp-metabase-server","bugs":{"url":"https://github.com/easecloudio/mcp-metabase-server/issues"},"bin":{"mcp-metabase-server":"dist/index.js"},"dist":{"shasum":"291c0e05fd70484ba7144e82c1d7a2b5344607f5","tarball":"https://registry.npmjs.org/@easecloudio/mcp-metabase-server/-/mcp-metabase-server-1.2.0.tgz","fileCount":18,"integrity":"sha512-5bqwfOSJB/kJ0DcWB3rUXTY18BVqsmL7sHrQtpKmRt0yLGgJJzIw/n0Pi8WfgReU91vpS4XSODOU1DxsXZ0PNg==","signatures":[{"sig":"MEUCIQCQ49DGMra4qimzxeBwoZDuP6ejpeTP4adtS+OkERB2dAIgdaetnTSWFAzCDtKv9qkNkykrdqjw5oS9jLm8EBW7HNI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153656},"main":"./dist/index.js","type":"module","gitHead":"31e462e8e443a79979a6693fa2a54ae6827a6694","private":false,"scripts":{"dev":"npm run build && npm start","lint":"echo 'Linting would go here'","test":"npm run build && echo 'Tests would go here'","build":"tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\" && mkdir -p dist && cp -r build/* dist/","clean":"rm -rf build dist","start":"node dist/index.js","watch":"tsc --watch","inspector":"npx @modelcontextprotocol/inspector dist/index.js","docker:run":"docker run -it --rm mcp-metabase-server","docker:build":"docker build -t mcp-metabase-server .","docker:compose":"docker-compose up"},"_npmUser":{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"},"repository":{"url":"git+https://github.com/easecloudio/mcp-metabase-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A Model Context Protocol server for Metabase integration","directories":{},"_nodeVersion":"20.20.2","dependencies":{"axios":"^1.8.2","abort-controller":"^3.0.0","@modelcontextprotocol/sdk":"^0.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.17.22"},"_npmOperationalInternal":{"tmp":"tmp/mcp-metabase-server_1.2.0_1778738103680_0.03134546473428901","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@easecloudio/mcp-metabase-server","version":"1.3.0","description":"MCP server for Metabase — 96 tools covering dashboards, cards, databases, tables, collections, public sharing, schema cache, and SQL-to-MBQL conversion","author":{"name":"Safoor Safdar","email":"safoor@easecloud.io"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/easecloudio/mcp-metabase-server.git"},"publishConfig":{"access":"public"},"homepage":"https://github.com/easecloudio/mcp-metabase-server","bugs":{"url":"https://github.com/easecloudio/mcp-metabase-server/issues"},"keywords":["mcp","mcp-server","model-context-protocol","metabase","analytics","business-intelligence","ai","claude","dashboard","sql","mbql","bi"],"private":false,"type":"module","main":"./dist/index.js","bin":{"mcp-metabase-server":"dist/index.js"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\" && mkdir -p dist && cp -r build/* dist/","watch":"tsc --watch","inspector":"npx @modelcontextprotocol/inspector dist/index.js","start":"node dist/index.js","dev":"npm run build && npm start","clean":"rm -rf build dist","test":"npm run build && echo 'Tests would go here'","lint":"echo 'Linting would go here'","docker:build":"docker build -t mcp-metabase-server .","docker:run":"docker run -it --rm mcp-metabase-server","docker:compose":"docker-compose up"},"dependencies":{"@modelcontextprotocol/sdk":"^0.6.1","abort-controller":"^3.0.0","axios":"^1.8.2"},"devDependencies":{"@types/node":"^20.17.22","typescript":"^5.3.3"},"_id":"@easecloudio/mcp-metabase-server@1.3.0","gitHead":"464fc93edd22b40d5edd260c5149202f6a3ea68d","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-TN917Cktp7yoNeo8W1KpeySbWe0wTigpJ+1AoHFV/VRuXZvp7MGmHJxKA8L9sZislz+1pjcoVk5dTfhVXZuIug==","shasum":"c37ac4c3742304d96d6b2b8b38366a92d642049b","tarball":"https://registry.npmjs.org/@easecloudio/mcp-metabase-server/-/mcp-metabase-server-1.3.0.tgz","fileCount":18,"unpackedSize":195324,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDqiMFA2XXg04fYW1Gzj74v/L+5tUC/Hr51bvrwjjV1UgIgGw0UAMPiEGkE8yn6s5DwpEwk/yw3RP6T+ganj1ZNPMk="}]},"_npmUser":{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"},"directories":{},"maintainers":[{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-metabase-server_1.3.0_1778763396291_0.5489515930138364"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-19T19:40:30.295Z","modified":"2026-05-14T12:56:36.576Z","1.0.0":"2025-07-19T19:40:30.571Z","1.0.1":"2025-07-19T19:45:17.871Z","1.0.2":"2025-08-28T10:09:21.674Z","1.0.3":"2026-03-27T21:45:11.405Z","1.1.0":"2026-04-11T15:29:27.515Z","1.0.4":"2026-04-11T15:30:45.276Z","1.0.5":"2026-04-20T22:10:44.792Z","1.2.0":"2026-05-14T05:55:03.836Z","1.3.0":"2026-05-14T12:56:36.461Z"},"bugs":{"url":"https://github.com/easecloudio/mcp-metabase-server/issues"},"author":{"name":"Safoor Safdar","email":"safoor@easecloud.io"},"license":"MIT","homepage":"https://github.com/easecloudio/mcp-metabase-server","keywords":["mcp","mcp-server","model-context-protocol","metabase","analytics","business-intelligence","ai","claude","dashboard","sql","mbql","bi"],"repository":{"type":"git","url":"git+https://github.com/easecloudio/mcp-metabase-server.git"},"description":"MCP server for Metabase — 96 tools covering dashboards, cards, databases, tables, collections, public sharing, schema cache, and SQL-to-MBQL conversion","maintainers":[{"name":"safoor.safdar","email":"safoor.safdar@gmail.com"}],"readme":"# Metabase MCP Server\n\n[![npm version](https://img.shields.io/npm/v/@easecloudio/mcp-metabase-server)](https://www.npmjs.com/package/@easecloudio/mcp-metabase-server)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=flat&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)\n[![GitHub](https://img.shields.io/badge/GitHub-easecloudio%2Fmcp--metabase--server-blue)](https://github.com/easecloudio/mcp-metabase-server)\n\nA **Model Context Protocol (MCP) server for Metabase** that gives AI assistants full access to your analytics platform — dashboards, cards, databases, tables, collections, and more.\n\n**Developed and maintained by [EaseCloud](https://easecloud.io)** — cloud-native, AI-driven, and data infrastructure solutions.\n\n## Quick Start\n\n```bash\nexport METABASE_URL=https://your-metabase-instance.com\nexport METABASE_API_KEY=your_metabase_api_key\nnpx @easecloudio/mcp-metabase-server\n```\n\n## 96 Tools Available\n\n| Domain | Tools |\n|---|---|\n| Dashboard Management | 27 |\n| Card / Question Management | 21 |\n| Database Management | 16 |\n| Table Management | 17 |\n| Collections, Users & Search | 13 |\n| Schema Cache (SQL→MBQL) | 2 |\n\n## Supported Metabase Versions\n\n- Metabase v0.46.x and above (recommended: v0.48.x or later)\n- Metabase Cloud (fully supported)\n- Self-hosted instances (Docker, JAR, or cloud deployments)\n\n## Installation\n\n### npx (Recommended)\n\n```bash\nnpx @easecloudio/mcp-metabase-server\n```\n\n### Global install\n\n```bash\nnpm install -g @easecloudio/mcp-metabase-server\nmcp-metabase-server\n```\n\n### Docker\n\n```bash\ndocker build -t mcp-metabase-server .\ndocker run -it --rm \\\n  -e METABASE_URL=https://your-metabase-instance.com \\\n  -e METABASE_API_KEY=your_metabase_api_key \\\n  mcp-metabase-server\n```\n\n## Configuration\n\n### Authentication\n\n**API Key (preferred):**\n\n```bash\nMETABASE_URL=https://your-metabase-instance.com\nMETABASE_API_KEY=your_metabase_api_key\n```\n\n**Username / Password (fallback):**\n\n```bash\nMETABASE_URL=https://your-metabase-instance.com\nMETABASE_USERNAME=your_username\nMETABASE_PASSWORD=your_password\n```\n\nCopy `.env.example` to `.env` and fill in your values.\n\n### Tool Filtering (TOOL_MODE)\n\nSet `TOOL_MODE` to control which tools are exposed to the AI. Useful for limiting surface area or preventing accidental writes.\n\n| Mode | Description |\n|---|---|\n| `all` | Every available tool (default) |\n| `essential` | Core read + execute tools only |\n| `read` | All non-destructive tools |\n| `write` | All tools including create / update / delete |\n\n```bash\nTOOL_MODE=essential  # smallest surface area\nTOOL_MODE=read       # read-only\nTOOL_MODE=all        # everything (default)\n```\n\n## Claude Desktop Integration\n\nMacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`\nWindows: `%APPDATA%/Claude/claude_desktop_config.json`\n\n**Using npx:**\n\n```json\n{\n  \"mcpServers\": {\n    \"metabase\": {\n      \"command\": \"npx\",\n      \"args\": [\"@easecloudio/mcp-metabase-server\"],\n      \"env\": {\n        \"METABASE_URL\": \"https://your-metabase-instance.com\",\n        \"METABASE_API_KEY\": \"your_metabase_api_key\"\n      }\n    }\n  }\n}\n```\n\n**With tool filtering:**\n\n```json\n{\n  \"mcpServers\": {\n    \"metabase\": {\n      \"command\": \"npx\",\n      \"args\": [\"@easecloudio/mcp-metabase-server\"],\n      \"env\": {\n        \"METABASE_URL\": \"https://your-metabase-instance.com\",\n        \"METABASE_API_KEY\": \"your_metabase_api_key\",\n        \"TOOL_MODE\": \"essential\"\n      }\n    }\n  }\n}\n```\n\n**Using a local build:**\n\n```json\n{\n  \"mcpServers\": {\n    \"metabase\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/metabase-server/dist/index.js\"],\n      \"env\": {\n        \"METABASE_URL\": \"https://your-metabase-instance.com\",\n        \"METABASE_API_KEY\": \"your_metabase_api_key\"\n      }\n    }\n  }\n}\n```\n\n**Username / password fallback:**\n\n```json\n{\n  \"mcpServers\": {\n    \"metabase\": {\n      \"command\": \"npx\",\n      \"args\": [\"@easecloudio/mcp-metabase-server\"],\n      \"env\": {\n        \"METABASE_URL\": \"https://your-metabase-instance.com\",\n        \"METABASE_USERNAME\": \"your_username\",\n        \"METABASE_PASSWORD\": \"your_password\"\n      }\n    }\n  }\n}\n```\n\n## Available Tools\n\n<details>\n<summary><strong>Dashboard Management (27 tools)</strong></summary>\n\n### Core CRUD\n| Tool | Description |\n|---|---|\n| `list_dashboards` | List all dashboards |\n| `get_dashboard` | Get a specific dashboard by ID |\n| `create_dashboard` | Create a new dashboard |\n| `update_dashboard` | Update an existing dashboard |\n| `delete_dashboard` | Delete / archive a dashboard |\n| `copy_dashboard` | Duplicate a dashboard (shallow or deep copy) |\n| `save_dashboard` | Save a complete dashboard object with nested data |\n| `save_dashboard_to_collection` | Move a dashboard into a specific collection |\n| `search_dashboards` | Search dashboards by name or description |\n| `favorite_dashboard` | Mark a dashboard as a favourite |\n| `unfavorite_dashboard` | Remove a dashboard from favourites |\n\n### Card Layout\n| Tool | Description |\n|---|---|\n| `get_dashboard_cards` | Get all cards in a dashboard |\n| `add_card_to_dashboard` | Add a card with positioning |\n| `add_text_block` | Add a text or heading block to a dashboard |\n| `remove_card_from_dashboard` | Remove a card |\n| `update_dashboard_card` | Update card position, size, and settings |\n| `update_dashboard_cards` | Bulk-replace all cards on a dashboard |\n| `update_dashcard` | Update a specific dashcard's properties |\n| `execute_dashboard_card` | Execute a specific dashcard and return results |\n\n### Public Sharing & Embedding\n| Tool | Description |\n|---|---|\n| `create_dashboard_public_link` | Create a public sharing link |\n| `delete_dashboard_public_link` | Remove the public link |\n| `list_public_dashboards` | List dashboards with public links |\n| `list_embeddable_dashboards` | List dashboards enabled for embedding |\n\n### Revision, Audit & Discovery\n| Tool | Description |\n|---|---|\n| `get_dashboard_revisions` | Get revision history (audit trail) |\n| `revert_dashboard` | Revert to a previous revision |\n| `get_dashboard_related` | Get related content suggestions |\n| `get_dashboard_queries` | Extract all card queries with resolved field IDs |\n\n</details>\n\n<details>\n<summary><strong>Card / Question Management (21 tools)</strong></summary>\n\n### Core CRUD\n| Tool | Description |\n|---|---|\n| `list_cards` | List all questions / cards |\n| `get_card` | Get a card by ID (includes full SQL / MBQL query) |\n| `create_card` | Create a new question |\n| `update_card` | Update an existing question |\n| `delete_card` | Delete / archive a question |\n| `copy_card` | Duplicate a card |\n| `move_cards` | Move one or more cards to a different collection |\n| `move_cards_to_collection` | Bulk-move cards from a source collection |\n\n### Execution & Export\n| Tool | Description |\n|---|---|\n| `execute_card` | Run a card and return results |\n| `execute_pivot_card_query` | Run a card formatted as a pivot table |\n| `export_card_result` | Export results as CSV or JSON |\n\n### Parameters\n| Tool | Description |\n|---|---|\n| `get_card_param_values` | Get available values for a card parameter |\n| `search_card_param_values` | Search / filter parameter values |\n| `get_card_param_remapping` | Get how parameter values are remapped for display |\n\n### Metadata & Discovery\n| Tool | Description |\n|---|---|\n| `get_card_query_metadata` | Get column types and display names |\n| `get_card_dashboards` | List dashboards containing this card |\n| `get_card_series` | Get series data or related card suggestions |\n\n### Public Sharing & Embedding\n| Tool | Description |\n|---|---|\n| `create_card_public_link` | Create a public sharing link |\n| `delete_card_public_link` | Remove the public link |\n| `list_public_cards` | List cards with public links |\n| `list_embeddable_cards` | List cards enabled for embedding |\n\n</details>\n\n<details>\n<summary><strong>Database Management (16 tools)</strong></summary>\n\n### Core CRUD\n| Tool | Description |\n|---|---|\n| `list_databases` | List all database connections |\n| `get_database` | Get a specific database by ID |\n| `create_database_connection` | Create a new database connection |\n| `update_database` | Update a database connection's config or credentials |\n| `delete_database` | Permanently remove a database connection |\n| `add_sample_database` | Add the built-in H2 sample database with demo data |\n\n### Querying\n| Tool | Description |\n|---|---|\n| `execute_query` | Execute a SQL query against a database |\n\n### Schema & Sync\n| Tool | Description |\n|---|---|\n| `get_database_schema` | Get schema information |\n| `get_database_tables` | Get all tables in a database |\n| `get_database_metadata` | Get full metadata including all tables and field IDs |\n| `list_database_schemas` | List all schemas within a database |\n| `sync_database_schema` | Trigger a schema metadata sync |\n| `get_database_sync_status` | Check sync status |\n\n### Diagnostics\n| Tool | Description |\n|---|---|\n| `check_database_health` | Check connection health |\n| `validate_database` | Validate connection settings before saving |\n| `test_database_connection` | Test an existing connection |\n\n</details>\n\n<details>\n<summary><strong>Table Management (17 tools)</strong></summary>\n\n### Metadata\n| Tool | Description |\n|---|---|\n| `list_tables` | List tables (optionally filtered by database) |\n| `get_table` | Get table metadata by ID |\n| `get_table_metadata` | Get full query metadata including field IDs and types |\n| `get_table_fks` | Get foreign key relationships |\n| `get_table_related` | Find related tables via FK relationships |\n| `get_table_data` | Get a sample data preview from a table |\n| `get_field_id` | Look up a field ID by table ID + column name (returns MBQL ref) |\n\n### Card Virtual Tables\n| Tool | Description |\n|---|---|\n| `get_card_table_fks` | Get FK relationships for a card's virtual table |\n| `get_card_table_query_metadata` | Get query metadata for a card's virtual table |\n\n### Management\n| Tool | Description |\n|---|---|\n| `update_table` | Update display name, description, or visibility |\n| `update_tables` | Bulk-update multiple tables with the same config |\n| `reorder_table_fields` | Change the display order of fields |\n| `sync_table_schema` | Trigger a schema sync for a specific table |\n| `rescan_table_field_values` | Rescan field values (updates filter dropdowns) |\n| `discard_table_field_values` | Discard cached field values |\n\n### CSV Upload (Metabase-managed tables)\n| Tool | Description |\n|---|---|\n| `append_csv_to_table` | Append new rows from CSV content |\n| `replace_table_csv` | Replace all table data with new CSV content |\n\n</details>\n\n<details>\n<summary><strong>Collections, Users & Search (13 tools)</strong></summary>\n\n### Collections\n| Tool | Description |\n|---|---|\n| `list_collections` | List all collections |\n| `create_collection` | Create a new collection |\n| `get_collection` | Get collection details |\n| `update_collection` | Update name, description, color, or parent |\n| `delete_collection` | Delete a collection and its contents |\n| `get_collection_items` | List cards, dashboards, and sub-collections |\n| `move_to_collection` | Move a card or dashboard to a different collection |\n\n### Users\n| Tool | Description |\n|---|---|\n| `list_users` | List all users |\n| `create_user` | Create a new user |\n\n### Permissions\n| Tool | Description |\n|---|---|\n| `list_permission_groups` | List all permission groups |\n| `create_permission_group` | Create a new permission group |\n\n### Search\n| Tool | Description |\n|---|---|\n| `search_content` | Search across all Metabase content |\n\n</details>\n\n<details>\n<summary><strong>Schema Cache — SQL to MBQL (2 tools)</strong></summary>\n\nThese tools enable an AI to convert native SQL questions into interactive MBQL questions. Metabase has no REST API for this conversion — it requires field IDs, which these tools cache locally.\n\n**How it works:**\n\n1. `get_card` — extract the SQL and `database_id`\n2. `get_schema_cache` — get tables + field IDs for MBQL references like `[\"field\", 42, null]`\n3. AI translates SQL → MBQL using the cached field IDs\n4. `create_card` — save the new interactive question\n\nCache is stored at `~/.easecloud/metabase-mcp/cache/{url-hash}/` with a 24-hour TTL and scoped per Metabase instance.\n\n| Tool | Description |\n|---|---|\n| `get_schema_cache` | Return cached schema (auto-fetches if missing or stale) |\n| `refresh_schema_cache` | Force-refresh cache for one or all databases |\n\n</details>\n\n## MCP Resources\n\nAccess Metabase entities directly via `metabase://` URIs:\n\n| URI | Description |\n|---|---|\n| `metabase://dashboard/{id}` | Dashboard details |\n| `metabase://card/{id}` | Card / question details |\n| `metabase://database/{id}` | Database information |\n| `metabase://collection/{id}` | Collection details |\n| `metabase://user/{id}` | User information |\n| `metabase://table/{id}` | Table metadata |\n| `metabase://field/{id}` | Field information |\n\n## Development\n\n```bash\nnpm install\nnpm run build       # compile TypeScript → dist/\nnpm run watch       # incremental rebuild\nnpm run dev         # build + start\nnpm run inspector   # launch MCP Inspector for debugging\n```\n\n## Debugging\n\nMCP servers communicate over stdio, which makes direct debugging awkward. Use the [MCP Inspector](https://github.com/modelcontextprotocol/inspector):\n\n```bash\nnpm run inspector\n```\n\nThe Inspector provides a browser UI for sending tool calls and inspecting responses.\n\n## About EaseCloud\n\nEaseCloud is a cloud consulting and solutions company specializing in:\n\n- Cloud-native application development\n- AI & automation integrations\n- DevOps and infrastructure management\n- Data analytics and BI platform consulting\n\nWe built this project to contribute to the open-source MCP ecosystem while demonstrating our expertise in integration, automation, and cloud solutions.\n\nIf your team is adopting Metabase at scale or looking to integrate AI with your BI stack, [get in touch](https://easecloud.io) — we provide consulting, customization, and managed support for enterprises.\n\n📧 [support@easecloud.io](mailto:support@easecloud.io)\n🌐 [easecloud.io](https://easecloud.io)\n\n## Bug Reports & Issues\n\nFound a bug or have a feature request?\n\n🐛 [Create a GitHub issue](https://github.com/easecloudio/mcp-metabase-server/issues)\n\nPlease include:\n- Metabase version\n- MCP server version\n- Steps to reproduce\n- Expected vs actual behavior\n- Any error messages or logs\n\n## Contributing\n\nContributions are welcome. Visit the [GitHub repository](https://github.com/easecloudio/mcp-metabase-server) to submit issues or pull requests.\n\n## License\n\nMIT — see [LICENSE](LICENSE) for details.\n","readmeFilename":"README.md"}