{
  "name": "guildcontrol",
  "version": "0.1.2",
  "description": "Safety-first MCP server for Discord with privacy-safe reads, audits, and reviewed administration",
  "license": "AGPL-3.0-only",
  "author": "j-256",
  "homepage": "https://guildcontrol.lasers.app",
  "bugs": {
    "url": "https://github.com/j-256/guildcontrol/issues"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/j-256/guildcontrol.git"
  },
  "keywords": [
    "discord",
    "mcp",
    "model-context-protocol",
    "ai-agent",
    "moderation",
    "least-privilege"
  ],
  "mcpName": "io.github.j-256/guildcontrol",
  "type": "module",
  "main": "./dist/index.js",
  "types": "./dist/index.d.ts",
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "import": "./dist/index.js"
    }
  },
  "bin": {
    "guildcontrol": "dist/bin.js"
  },
  "files": [
    "dist",
    "guildcontrol.config.schema.json",
    "docs/comparison.md",
    "docs/getting-started.md",
    "docs/limitations.md",
    "docs/migration.md",
    "docs/reference.md",
    "docs/releasing.md",
    "LICENSE",
    "PRIVACY.md",
    "README.md",
    "SECURITY.md",
    "SUPPORT.md",
    "server.json"
  ],
  "publishConfig": {
    "provenance": true
  },
  "engines": {
    "node": ">=22"
  },
  "scripts": {
    "build": "tsc -p tsconfig.build.json",
    "container:index:verify": "node scripts/verify-oci-layout.mjs",
    "container:verify": "npm run build && node scripts/verify-container.mjs",
    "config:schema": "node --import tsx scripts/generate-config-schema.mjs",
    "config:schema:check": "node --import tsx scripts/generate-config-schema.mjs --check",
    "deps:locked": "npm ci --ignore-scripts && npm rebuild esbuild@0.28.2 --ignore-scripts=false",
    "mcp": "node dist/bin.js serve",
    "metadata:check": "node scripts/check-release-metadata.mjs",
    "mcpb:verify": "node scripts/build-mcpb.mjs",
    "pack:verify": "node scripts/pack-and-verify.mjs",
    "prepack": "npm run config:schema:check && npm run metadata:check && npm run build",
    "probe:live": "node dist/bin.js doctor --online --json",
    "sbom": "node scripts/generate-sbom.mjs",
    "security:check": "npm audit --audit-level=moderate && npm audit signatures",
    "test": "tsx --test test/*.test.ts",
    "test:coverage": "tsx --test --experimental-test-coverage --test-coverage-lines=85 --test-coverage-branches=75 --test-coverage-functions=80 test/*.test.ts",
    "typecheck": "tsc --noEmit"
  },
  "dependencies": {
    "@modelcontextprotocol/client": "2.0.0",
    "@modelcontextprotocol/server": "2.0.0",
    "@opentelemetry/api": "1.9.1",
    "@opentelemetry/context-async-hooks": "2.10.0",
    "@opentelemetry/exporter-metrics-otlp-proto": "0.221.0",
    "@opentelemetry/exporter-trace-otlp-proto": "0.221.0",
    "@opentelemetry/otlp-exporter-base": "0.221.0",
    "@opentelemetry/resources": "2.10.0",
    "@opentelemetry/sdk-metrics": "2.10.0",
    "@opentelemetry/sdk-trace": "2.10.0",
    "zod": "4.4.3"
  },
  "devDependencies": {
    "@types/node": "26.2.0",
    "ajv": "8.20.0",
    "ajv-formats": "3.0.1",
    "esbuild": "0.28.2",
    "fflate": "0.8.3",
    "tsx": "4.23.12",
    "typescript": "7.0.2"
  },
  "allowScripts": {
    "esbuild@0.28.2": true,
    "fsevents": false
  }
}
