package.json•2.99 kB
{
"name": "grafana-mcp",
"version": "1.0.0",
"description": "Grafana MCP Server - AI-powered Grafana integration",
"type": "module",
"main": "build/main.js",
"engines": {
"node": ">=18.0.0",
"npm": ">=8.0.0"
},
"repository": {
"type": "git",
"url": "https://github.com/quanticsoul4772/grafana-mcp.git"
},
"scripts": {
"build": "tsc",
"build:prod": "tsc -p tsconfig.prod.json",
"build:analyze": "npm run build:prod && node -e \"console.log('Bundle Size Analysis:'); const fs=require('fs'); const path=require('path'); function getSize(dir){let size=0; const files=fs.readdirSync(dir); files.forEach(file=>{const filePath=path.join(dir,file); const stats=fs.statSync(filePath); if(stats.isDirectory()){size+=getSize(filePath)}else{size+=stats.size}}); return size} const distSize=getSize('./dist'); console.log('Total dist size:', Math.round(distSize/1024) + 'KB'); console.log('Per file:'); fs.readdirSync('./dist').forEach(file=>{const stats=fs.statSync('./dist/'+file); console.log('-', file+':', Math.round(stats.size/1024)+'KB')})\"",
"dev": "tsx src/main.ts",
"dev:optimized": "NODE_OPTIONS='--max-old-space-size=512 --optimize-for-size' tsx src/main.ts",
"start": "node build/main.js",
"start:optimized": "NODE_OPTIONS='--max-old-space-size=512 --optimize-for-size --gc-interval=100' node build/main.js",
"clean": "rm -rf build dist",
"prepare": "npm run build",
"test": "vitest",
"test:coverage": "vitest --coverage",
"test:watch": "vitest --watch",
"test:run": "vitest run",
"lint": "eslint src --ext .ts --max-warnings 200",
"lint:fix": "eslint src --ext .ts --fix",
"format": "prettier --write \"src/**/*.{ts,json,md}\"",
"format:check": "prettier --check \"src/**/*.{ts,json,md}\"",
"type-check": "tsc --noEmit",
"optimize": "npm run build:prod && npm run build:analyze",
"perf:monitor": "NODE_OPTIONS='--expose-gc' node build/main.js",
"bundle:deps": "npm ls --depth=0 --json > bundle-analysis.json && node -e \"const data=require('./bundle-analysis.json'); console.log('Dependencies Analysis:'); Object.entries(data.dependencies||{}).forEach(([name,info])=>console.log('-',name+':', info.version))\""
},
"keywords": [
"mcp",
"grafana",
"monitoring",
"observability",
"model-context-protocol",
"prometheus",
"loki",
"alerting"
],
"author": "quanticsoul4772",
"license": "MIT",
"dependencies": {
"@modelcontextprotocol/sdk": "^1.0.2",
"axios": "^1.7.7",
"dotenv": "^16.4.5",
"zod": "^3.23.8",
"zod-to-json-schema": "^3.24.6"
},
"devDependencies": {
"@eslint/js": "^9.34.0",
"@types/node": "^22.9.0",
"@typescript-eslint/eslint-plugin": "^8.42.0",
"@typescript-eslint/parser": "^8.17.0",
"@vitest/coverage-v8": "^2.1.9",
"eslint": "^9.17.0",
"jiti": "^2.5.1",
"prettier": "^3.4.2",
"tsx": "^4.20.5",
"typescript": "^5.7.2",
"vitest": "^2.1.8"
}
}