- Add RATE_LIMIT_MAX_AUTH_REQUESTS to .env.example for improved rate limiting - Update bun.lock and package.json to include new dependencies: @anthropic-ai/sdk, express-rate-limit, and their type definitions - Modify bunfig.toml for build settings and output configuration - Refactor src/config.ts to incorporate rate limiting settings - Implement security middleware for enhanced request validation and sanitization - Introduce rate limiting middleware for API and authentication endpoints - Add tests for configuration validation and rate limiting functionality
100 lines
3.1 KiB
JSON
100 lines
3.1 KiB
JSON
{
|
|
"name": "homeassistant-mcp",
|
|
"version": "1.0.0",
|
|
"description": "Home Assistant Model Context Protocol",
|
|
"main": "dist/index.js",
|
|
"type": "module",
|
|
"bin": {
|
|
"homeassistant-mcp": "./bin/npx-entry.cjs",
|
|
"mcp-stdio": "./bin/npx-entry.cjs"
|
|
},
|
|
"scripts": {
|
|
"start": "bun run dist/index.js",
|
|
"start:stdio": "bun run dist/stdio-server.js",
|
|
"dev": "bun --hot --watch src/index.ts",
|
|
"build": "bun build ./src/index.ts --outdir ./dist --target bun --minify",
|
|
"build:all": "bun build ./src/index.ts ./src/stdio-server.ts --outdir ./dist --target bun --minify",
|
|
"build:node": "bun build ./src/index.ts --outdir ./dist --target node --minify",
|
|
"build:stdio": "bun build ./src/stdio-server.ts --outdir ./dist --target node --minify",
|
|
"prepare": "husky install && bun run build:all",
|
|
"stdio": "node ./bin/mcp-stdio.js",
|
|
"test": "bun test",
|
|
"test:watch": "bun test --watch",
|
|
"test:coverage": "bun test --coverage",
|
|
"test:ci": "bun test --coverage --bail",
|
|
"test:update": "bun test --update-snapshots",
|
|
"test:clear": "bun test --clear-cache",
|
|
"test:staged": "bun test --findRelatedTests",
|
|
"lint": "eslint . --ext .ts",
|
|
"format": "prettier --write \"src/**/*.ts\"",
|
|
"profile": "bun --inspect src/index.ts",
|
|
"clean": "rm -rf dist .bun coverage",
|
|
"typecheck": "bun x tsc --noEmit",
|
|
"example:speech": "bun run extra/speech-to-text-example.ts"
|
|
},
|
|
"dependencies": {
|
|
"@anthropic-ai/sdk": "^0.39.0",
|
|
"@elysiajs/cors": "^1.2.0",
|
|
"@elysiajs/swagger": "^1.2.0",
|
|
"@types/express-rate-limit": "^5.1.3",
|
|
"@types/jsonwebtoken": "^9.0.5",
|
|
"@types/node": "^20.11.24",
|
|
"@types/sanitize-html": "^2.13.0",
|
|
"@types/swagger-ui-express": "^4.1.8",
|
|
"@types/ws": "^8.5.10",
|
|
"@xmldom/xmldom": "^0.9.7",
|
|
"chalk": "^5.4.1",
|
|
"cors": "^2.8.5",
|
|
"dotenv": "^16.4.7",
|
|
"elysia": "^1.2.11",
|
|
"express": "^4.21.2",
|
|
"express-rate-limit": "^7.5.0",
|
|
"helmet": "^7.1.0",
|
|
"jsonwebtoken": "^9.0.2",
|
|
"node-fetch": "^3.3.2",
|
|
"node-record-lpcm16": "^1.0.1",
|
|
"openai": "^4.83.0",
|
|
"openapi-types": "^12.1.3",
|
|
"sanitize-html": "^2.15.0",
|
|
"swagger-ui-express": "^5.0.1",
|
|
"typescript": "^5.3.3",
|
|
"winston": "^3.11.0",
|
|
"winston-daily-rotate-file": "^5.0.0",
|
|
"ws": "^8.16.0",
|
|
"zod": "^3.22.4"
|
|
},
|
|
"devDependencies": {
|
|
"@jest/globals": "^29.7.0",
|
|
"@types/bun": "latest",
|
|
"@types/cors": "^2.8.17",
|
|
"@types/express": "^5.0.0",
|
|
"@types/jest": "^29.5.14",
|
|
"@types/supertest": "^6.0.2",
|
|
"@types/uuid": "^10.0.0",
|
|
"@typescript-eslint/eslint-plugin": "^7.1.0",
|
|
"@typescript-eslint/parser": "^7.1.0",
|
|
"ajv": "^8.17.1",
|
|
"bun-types": "^1.2.2",
|
|
"eslint": "^8.57.0",
|
|
"eslint-config-prettier": "^9.1.0",
|
|
"eslint-plugin-prettier": "^5.1.3",
|
|
"husky": "^9.0.11",
|
|
"prettier": "^3.2.5",
|
|
"supertest": "^7.1.0",
|
|
"uuid": "^11.1.0"
|
|
},
|
|
"engines": {
|
|
"bun": ">=1.0.0",
|
|
"node": ">=18.0.0"
|
|
},
|
|
"publishConfig": {
|
|
"access": "public"
|
|
},
|
|
"files": [
|
|
"dist",
|
|
"bin",
|
|
"README.md",
|
|
"LICENSE"
|
|
]
|
|
}
|