{
	"name": "@aashari/boilerplate-mcp-server",
	"version": "3.2.0",
	"description": "TypeScript MCP server boilerplate with STDIO and HTTP transport support, CLI tools, and extensible architecture",
	"main": "dist/index.js",
	"types": "dist/index.d.ts",
	"type": "commonjs",
	"repository": {
		"type": "git",
		"url": "https://github.com/aashari/boilerplate-mcp-server.git"
	},
	"bin": {
		"mcp-server": "./dist/index.js"
	},
	"scripts": {
		"build": "tsc",
		"clean": "rm -rf dist coverage",
		"prepare": "npm run build && node scripts/ensure-executable.js",
		"postinstall": "node scripts/ensure-executable.js",
		"lint": "eslint src --ext .ts --config eslint.config.mjs",
		"format": "prettier --write 'src/**/*.ts' 'scripts/**/*.js'",
		"test": "jest",
		"test:coverage": "jest --coverage",
		"test:cli": "jest src/cli/.*\\.cli\\.test\\.ts --runInBand --testTimeout=60000",
		"cli": "npm run build && node dist/index.js",
		"mcp:stdio": "TRANSPORT_MODE=stdio npm run build && node dist/index.js",
		"mcp:http": "TRANSPORT_MODE=http npm run build && node dist/index.js",
		"mcp:inspect": "TRANSPORT_MODE=http npm run build && (node dist/index.js &) && sleep 2 && npx @modelcontextprotocol/inspector http://localhost:3000/mcp"
	},
	"keywords": [
		"mcp",
		"model-context-protocol",
		"typescript",
		"claude",
		"anthropic",
		"ai",
		"llm",
		"boilerplate",
		"server",
		"stdio",
		"http",
		"streamable",
		"cli",
		"mcp-server"
	],
	"author": "Andi Ashari",
	"license": "ISC",
	"engines": {
		"node": ">=20.0.0"
	},
	"devDependencies": {
		"@eslint/js": "^10.0.1",
		"@semantic-release/changelog": "^6.0.3",
		"@semantic-release/exec": "^7.1.0",
		"@semantic-release/git": "^10.0.1",
		"@semantic-release/github": "^12.0.6",
		"@semantic-release/npm": "^13.1.4",
		"@types/cors": "^2.8.19",
		"@types/express": "^5.0.6",
		"@types/jest": "^30.0.0",
		"@types/jmespath": "^0.15.2",
		"@types/node": "^25.2.3",
		"@typescript-eslint/eslint-plugin": "^8.56.0",
		"@typescript-eslint/parser": "^8.56.0",
		"eslint": "^10.0.0",
		"eslint-config-prettier": "^10.1.8",
		"eslint-plugin-filenames": "^1.3.2",
		"eslint-plugin-prettier": "^5.5.5",
		"jest": "^30.2.0",
		"nodemon": "^3.1.11",
		"npm-check-updates": "^19.3.2",
		"prettier": "^3.8.1",
		"semantic-release": "^25.0.3",
		"ts-jest": "^29.4.6",
		"ts-node": "^10.9.2",
		"typescript": "^5.9.3",
		"typescript-eslint": "^8.56.0"
	},
	"dependencies": {
		"@modelcontextprotocol/sdk": "^1.26.0",
		"@toon-format/toon": "^2.1.0",
		"commander": "^14.0.3",
		"cors": "^2.8.6",
		"dotenv": "^17.3.1",
		"express": "^5.2.1",
		"jmespath": "^0.16.0",
		"zod": "^4.3.6"
	},
	"publishConfig": {
		"registry": "https://registry.npmjs.org/",
		"access": "public"
	},
	"jest": {
		"preset": "ts-jest",
		"testEnvironment": "node",
		"setupFilesAfterEnv": [
			"<rootDir>/src/utils/jest.setup.ts"
		],
		"testMatch": [
			"**/src/**/*.test.ts"
		],
		"collectCoverageFrom": [
			"src/**/*.ts",
			"!src/**/*.test.ts",
			"!src/**/*.spec.ts"
		],
		"coveragePathIgnorePatterns": [
			"/node_modules/",
			"/dist/",
			"/coverage/"
		],
		"coverageReporters": [
			"text",
			"lcov",
			"json-summary"
		],
		"transform": {
			"^.+\\.tsx?$": [
				"ts-jest",
				{
					"useESM": true
				}
			]
		},
		"moduleNameMapper": {
			"(.*)\\.(js|jsx)$": "$1"
		},
		"extensionsToTreatAsEsm": [
			".ts"
		],
		"moduleFileExtensions": [
			"ts",
			"tsx",
			"js",
			"jsx",
			"json",
			"node"
		]
	}
}
