package.json•5.41 kB
{
"name": "@jackjackstudios/ambiance-mcp",
"version": "0.2.5",
"description": "MCP server for code context with semantic search, AI analysis and summary",
"main": "dist/src/index.js",
"types": "dist/src/index.d.ts",
"bin": {
"ambiance-mcp": "./dist/src/cli.js"
},
"keywords": [
"mcp",
"mcp-server",
"rag",
"cli",
"code-analysis",
"context",
"semantic-search",
"ast",
"embeddings",
"ai",
"offline",
"token-compression",
"typescript"
],
"author": "Ambiance",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/sbarron/AmbianceMCP"
},
"bugs": {
"url": "https://github.com/sbarron/AmbianceMCP/issues"
},
"homepage": "https://github.com/sbarron/AmbianceMCP#readme",
"engines": {
"node": ">=18.0.0",
"npm": ">=8.0.0"
},
"scripts": {
"start": "node dist/src/index.js",
"dev": "ts-node src/index.ts",
"build": "npm run create-build-lock && tsc --project tsconfig.json && npm run copy-facets-config && npm run copy-schemas && npm run remove-build-lock",
"clean": "rimraf dist",
"create-build-lock": "node -e \"require('fs').writeFileSync('.build-lock', 'BUILD_IN_PROGRESS')\"",
"remove-build-lock": "node -e \"try { require('fs').unlinkSync('.build-lock'); } catch (e) { /* ignore */ }\"",
"prebuild": "npm run create-build-lock && npm run clean",
"copy-facets-config": "node -e \"require('fs').copyFileSync('src/shared/retrieval/facets.config.json', 'dist/src/shared/retrieval/facets.config.json')\"",
"copy-schemas": "node -e \"const fs = require('fs'); const path = require('path'); const src = 'src/tools/localTools/schemas'; const dest = 'dist/src/tools/localTools/schemas'; fs.mkdirSync(dest, {recursive: true}); fs.readdirSync(src).forEach(file => { if (file.endsWith('.json')) fs.copyFileSync(path.join(src, file), path.join(dest, file)); });\"",
"lint": "eslint src/ scripts/ --ext .ts,.js",
"lint:fix": "eslint src/ scripts/ --ext .ts,.js --fix",
"format": "prettier --write \"src/**/*.{ts,js,json}\" \"tools/**/*.{ts,js,json}\" \"scripts/**/*.{ts,js,json}\" \"*.{json,md}\"",
"format:check": "prettier --check \"src/**/*.{ts,js,json}\" \"tools/**/*.{ts,js,json}\" \"scripts/**/*.{ts,js,json}\" \"*.{json,md}\"",
"check": "npm run lint && npm run format:check && npm run test",
"test": "jest",
"test:enhanced": "node tests/runTests.js",
"test:verbose": "jest --verbose",
"test:watch": "jest --watch",
"test:indexing": "jest src/local/__tests__/ src/tools/__tests__/indexingTools.test.ts",
"test:unit": "jest src/local/__tests__/automaticIndexer.test.ts",
"test:integration": "jest src/tools/__tests__/indexingTools.test.ts",
"test:patterns": "jest src/local/__tests__/ignorePatterns.test.ts",
"test:watching": "jest src/local/__tests__/fileWatcher.test.ts",
"test:database": "jest src/local/__tests__/databaseFunctions.test.ts",
"test:coverage": "jest --coverage --collectCoverageFrom='src/local/**/*.ts' --collectCoverageFrom='src/tools/ambianceTools/**/*.ts'",
"test:indexing:all": "node tests/test-automatic-indexing.js",
"test:embeddings": "node tests/test-embeddings.js",
"test:embeddings:simple": "node tests/test-embeddings-simple.js",
"test:embeddings:provider": "node tests/test-embeddings.js provider",
"test:embeddings:generator": "node tests/test-embeddings.js generator",
"test:embeddings:storage": "node tests/test-embeddings.js storage",
"test:embeddings:env": "node tests/test-embeddings.js env",
"test:embeddings:integration": "node tests/test-embeddings.js integration",
"test:embeddings:direct": "jest --config jest.embedding.config.js src/local/__tests__/**/*.test.ts --verbose",
"benchmark": "ts-node --esm scripts/benchmark-compactor.ts",
"benchmark:current": "ts-node --esm scripts/benchmark-compactor.ts .",
"test:compactor": "jest src/compactor/",
"publish:latest": "npm run build && npm publish",
"publish:beta": "npm run build && npm publish --tag beta",
"publish:alpha": "npm run build && npm publish --tag alpha"
},
"dependencies": {
"@ast-grep/cli": "^0.39.5",
"@babel/parser": "^7.28.0",
"@babel/traverse": "^7.28.0",
"@babel/types": "^7.28.2",
"@modelcontextprotocol/sdk": "^1.17.3",
"@types/babel__traverse": "^7.28.0",
"@types/uuid": "^10.0.0",
"@xenova/transformers": "^2.17.2",
"axios": "^1.6.0",
"better-sqlite3": "^12.4.1",
"dotenv": "^16.4.1",
"globby": "^14.1.0",
"minimatch": "^9.0.3",
"openai": "^5.12.2",
"tree-sitter": "^0.21.1",
"tree-sitter-javascript": "^0.21.2",
"tree-sitter-python": "^0.21.0",
"tree-sitter-typescript": "^0.21.2",
"uuid": "^11.1.0",
"voyageai": "^0.0.8",
"zod": "^3.25.76"
},
"devDependencies": {
"@eslint/js": "^9.33.0",
"@types/better-sqlite3": "^7.6.13",
"@types/express": "^5.0.3",
"@types/jest": "^30.0.0",
"@types/node": "^18.19.0",
"@types/sqlite3": "^3.1.8",
"@typescript-eslint/eslint-plugin": "^8.40.0",
"@typescript-eslint/parser": "^8.40.0",
"eslint": "^9.33.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.5.4",
"jest": "^30.2.0",
"prettier": "^3.6.2",
"rimraf": "^6.0.1",
"ts-jest": "^29.4.4",
"ts-node": "^10.9.2",
"typescript": "^5.1.3"
}
}