{"_id":"@ainetwork/mssql-mcp-core","_rev":"7-9401f597be9f32eb8d0109325ee12c0d","name":"@ainetwork/mssql-mcp-core","dist-tags":{"latest":"0.6.7"},"versions":{"0.6.1":{"name":"@ainetwork/mssql-mcp-core","version":"0.6.1","keywords":["mcp","sql-server","mssql","database","ai","claude","windsurf","model-context-protocol"],"author":{"name":"Connor England","email":"connor.r.england@gmail.com"},"license":"MIT","_id":"@ainetwork/mssql-mcp-core@0.6.1","maintainers":[{"name":"dev_ainetwork","email":"dev@ainetwork.ai"}],"homepage":"https://github.com/ainetwork-ai/mssql-mcp-core","bugs":{"url":"https://github.com/ainetwork-ai/mssql-mcp-core/issues"},"dist":{"shasum":"eff5967455f017821318811d9bce19f12e0d274c","tarball":"https://registry.npmjs.org/@ainetwork/mssql-mcp-core/-/mssql-mcp-core-0.6.1.tgz","fileCount":190,"integrity":"sha512-kCrzhw4kVUdtVo0A+yOVZwJ+W6otrmSbvhJpQxa4KxgJN57ottJl6pMjneY0Mcy1ASpI77Jbc+EwGXJwqiMxqQ==","signatures":[{"sig":"MEQCIGxBQkom4XWVphdBEEFRjroWdXfLiaesNMQMOfPmK0UoAiA31kwIyDsSKnW8IMFLKAoeKzEf+glT5Iytmjui3fRPmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":590659},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0b6a557ebea6a406a68993d39449766366b128a1","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build","test:smoke":"tsx test/smoke-sinks.ts","test:watch":"vitest"},"_npmUser":{"name":"dev_ainetwork","email":"dev@ainetwork.ai"},"repository":{"url":"git+https://github.com/ainetwork-ai/mssql-mcp-core.git","type":"git"},"_npmVersion":"11.12.1","description":"Shared core library for MSSQL MCP servers - tools, config, routing, and server harness","directories":{},"_nodeVersion":"25.9.0","dependencies":{"mssql":"^10.0.1","dotenv":"^16.4.5","@azure/identity":"^4.4.0","@azure/keyvault-secrets":"^4.9.0","@modelcontextprotocol/sdk":"^1.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.4.5","@types/node":"^20.14.2","@types/mssql":"^9.1.7"},"optionalDependencies":{"@aws-sdk/client-cloudwatch-logs":"^3.992.0","@aws-sdk/client-secrets-manager":"^3.700.0"},"_npmOperationalInternal":{"tmp":"tmp/mssql-mcp-core_0.6.1_1785207409650_0.4500106625873219","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@ainetwork/mssql-mcp-core","version":"0.6.2","keywords":["mcp","sql-server","mssql","database","ai","claude","windsurf","model-context-protocol"],"author":{"name":"Connor England","email":"connor.r.england@gmail.com"},"license":"MIT","_id":"@ainetwork/mssql-mcp-core@0.6.2","maintainers":[{"name":"dev_ainetwork","email":"dev@ainetwork.ai"}],"homepage":"https://github.com/ainetwork-ai/mssql-mcp-core","bugs":{"url":"https://github.com/ainetwork-ai/mssql-mcp-core/issues"},"dist":{"shasum":"9f2ea203969c7c33f06617d1787499a7ff613330","tarball":"https://registry.npmjs.org/@ainetwork/mssql-mcp-core/-/mssql-mcp-core-0.6.2.tgz","fileCount":190,"integrity":"sha512-n6kLxPjNYgRQA8kALh0GpFIU8vrrXpWO3iDqHBRLA3f2s/aZSQd/HoVAuuzKCkw8lPx0ho3gNrK1Xd3/rg2x5A==","signatures":[{"sig":"MEUCIQDpiDjvuUDUMlE+apQDKoOf9XDtjIOWkgw7fxrf3pPn6QIgdgC6/s7cxk/TnasSWT1vlYl4cUSGnEHjO24t/ifQi14=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":598411},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"4a1a6a11827c5aef6fce707d1edd5679f5e7df45","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build","test:smoke":"tsx test/smoke-sinks.ts","test:watch":"vitest"},"_npmUser":{"name":"dev_ainetwork","email":"dev@ainetwork.ai"},"repository":{"url":"git+https://github.com/ainetwork-ai/mssql-mcp-core.git","type":"git"},"_npmVersion":"11.12.1","description":"Shared core library for MSSQL MCP servers - tools, config, routing, and server harness","directories":{},"_nodeVersion":"25.9.0","dependencies":{"mssql":"^10.0.1","dotenv":"^16.4.5","@azure/identity":"^4.4.0","@azure/keyvault-secrets":"^4.9.0","@modelcontextprotocol/sdk":"^1.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.4.5","@types/node":"^20.14.2","@types/mssql":"^9.1.7"},"optionalDependencies":{"@aws-sdk/client-cloudwatch-logs":"^3.992.0","@aws-sdk/client-secrets-manager":"^3.700.0"},"_npmOperationalInternal":{"tmp":"tmp/mssql-mcp-core_0.6.2_1785211988233_0.23323208563174425","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@ainetwork/mssql-mcp-core","version":"0.6.3","keywords":["mcp","sql-server","mssql","database","ai","claude","windsurf","model-context-protocol"],"author":{"name":"Connor England","email":"connor.r.england@gmail.com"},"license":"MIT","_id":"@ainetwork/mssql-mcp-core@0.6.3","maintainers":[{"name":"dev_ainetwork","email":"dev@ainetwork.ai"}],"homepage":"https://github.com/ainetwork-ai/mssql-mcp-core","bugs":{"url":"https://github.com/ainetwork-ai/mssql-mcp-core/issues"},"dist":{"shasum":"cf084eb4dfe1b78dc85b85e0ff6bd427400d5c06","tarball":"https://registry.npmjs.org/@ainetwork/mssql-mcp-core/-/mssql-mcp-core-0.6.3.tgz","fileCount":190,"integrity":"sha512-48CXfqI9Yi53yuimzxAnxVl15d4aTpIZgXg8SvzOb3Iyma3zQicGBwtXFs+UZVz7oYVKEf1ttJDG0Cn3x0J3JQ==","signatures":[{"sig":"MEUCIQCl/724Js0bvlpjTTJlZBX+bat6ztHrs5nYK6RYoaBTFQIgNQr/o/x0L1UH4myZE0pRB6rcLL9R+oYcgyd09dtaz7g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":599718},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a17869692518f00d5fa33008323a5cdf48024880","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build","test:smoke":"tsx test/smoke-sinks.ts","test:watch":"vitest"},"_npmUser":{"name":"dev_ainetwork","email":"dev@ainetwork.ai"},"repository":{"url":"git+https://github.com/ainetwork-ai/mssql-mcp-core.git","type":"git"},"_npmVersion":"11.12.1","description":"Shared core library for MSSQL MCP servers - tools, config, routing, and server harness","directories":{},"_nodeVersion":"25.9.0","dependencies":{"mssql":"^10.0.1","dotenv":"^16.4.5","@azure/identity":"^4.4.0","@azure/keyvault-secrets":"^4.9.0","@modelcontextprotocol/sdk":"^1.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.4.5","@types/node":"^20.14.2","@types/mssql":"^9.1.7"},"optionalDependencies":{"@aws-sdk/client-cloudwatch-logs":"^3.992.0","@aws-sdk/client-secrets-manager":"^3.700.0"},"_npmOperationalInternal":{"tmp":"tmp/mssql-mcp-core_0.6.3_1785213240654_0.8907519657476195","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"@ainetwork/mssql-mcp-core","version":"0.6.4","keywords":["mcp","sql-server","mssql","database","ai","claude","windsurf","model-context-protocol"],"author":{"name":"Connor England","email":"connor.r.england@gmail.com"},"license":"MIT","_id":"@ainetwork/mssql-mcp-core@0.6.4","maintainers":[{"name":"dev_ainetwork","email":"dev@ainetwork.ai"}],"homepage":"https://github.com/ainetwork-ai/mssql-mcp-core","bugs":{"url":"https://github.com/ainetwork-ai/mssql-mcp-core/issues"},"dist":{"shasum":"db136566703a12bb830b1a930b10f9b857b446e5","tarball":"https://registry.npmjs.org/@ainetwork/mssql-mcp-core/-/mssql-mcp-core-0.6.4.tgz","fileCount":190,"integrity":"sha512-sMn2rCK/wZfAqriqpIAgtWOSr2gHdTLY9pd6Hb4MpJFBSxsXCORWQNNB7NdGOO00VumvxUK6CNNhmbiPhaC25Q==","signatures":[{"sig":"MEUCIQCIF5qrcWxAm3GGZfc+v0Fqf7tfsp7F/2Z56NPeDGw1lQIgNeu/9zPDQ74AUK/GKSSZQQihMteB3UvJG4eQmR5mewk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":602059},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0c528fb5d096e050bd01ee40d38d573b27fefe46","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build","test:smoke":"tsx test/smoke-sinks.ts","test:watch":"vitest"},"_npmUser":{"name":"dev_ainetwork","email":"dev@ainetwork.ai"},"repository":{"url":"git+https://github.com/ainetwork-ai/mssql-mcp-core.git","type":"git"},"_npmVersion":"11.12.1","description":"Shared core library for MSSQL MCP servers - tools, config, routing, and server harness","directories":{},"_nodeVersion":"25.9.0","dependencies":{"mssql":"^10.0.1","dotenv":"^16.4.5","@azure/identity":"^4.4.0","@azure/keyvault-secrets":"^4.9.0","@modelcontextprotocol/sdk":"^1.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.4.5","@types/node":"^20.14.2","@types/mssql":"^9.1.7"},"optionalDependencies":{"@aws-sdk/client-cloudwatch-logs":"^3.992.0","@aws-sdk/client-secrets-manager":"^3.700.0"},"_npmOperationalInternal":{"tmp":"tmp/mssql-mcp-core_0.6.4_1785214401328_0.2035604255972947","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"@ainetwork/mssql-mcp-core","version":"0.6.5","keywords":["mcp","sql-server","mssql","database","ai","claude","windsurf","model-context-protocol"],"author":{"name":"Connor England","email":"connor.r.england@gmail.com"},"license":"MIT","_id":"@ainetwork/mssql-mcp-core@0.6.5","maintainers":[{"name":"dev_ainetwork","email":"dev@ainetwork.ai"}],"homepage":"https://github.com/ainetwork-ai/mssql-mcp-core","bugs":{"url":"https://github.com/ainetwork-ai/mssql-mcp-core/issues"},"dist":{"shasum":"c11fae450db64cd601fcb8c964107f6439d881b0","tarball":"https://registry.npmjs.org/@ainetwork/mssql-mcp-core/-/mssql-mcp-core-0.6.5.tgz","fileCount":190,"integrity":"sha512-MrWeIUfsDeaMOkmcGco4xuQz7Vg1P7dOCIijdwcP2YQ0x2QRJ0hDOPgjd6u1XFQCJVTaAECo8WSNB4VfuV6qLg==","signatures":[{"sig":"MEUCIEzZnms52wBqIAI3IT9Xz1VVK3FH0oXB5fbYg0c0NSCmAiEAmDtTek8cTzutSyqqpDv5WqGRmq6rfqjB7To1ddTb7NI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":602178},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"74fce71a11a9adf9a3fcb93b39199184f7f20fe8","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build","test:smoke":"tsx test/smoke-sinks.ts","test:watch":"vitest"},"_npmUser":{"name":"dev_ainetwork","email":"dev@ainetwork.ai"},"repository":{"url":"git+https://github.com/ainetwork-ai/mssql-mcp-core.git","type":"git"},"_npmVersion":"11.12.1","description":"Shared core library for MSSQL MCP servers - tools, config, routing, and server harness","directories":{},"_nodeVersion":"25.9.0","dependencies":{"mssql":"^10.0.1","dotenv":"^16.4.5","@azure/identity":"^4.4.0","@azure/keyvault-secrets":"^4.9.0","@modelcontextprotocol/sdk":"^1.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.4.5","@types/node":"^20.14.2","@types/mssql":"^9.1.7"},"optionalDependencies":{"@aws-sdk/client-cloudwatch-logs":"^3.992.0","@aws-sdk/client-secrets-manager":"^3.700.0"},"_npmOperationalInternal":{"tmp":"tmp/mssql-mcp-core_0.6.5_1785217381503_0.8001559166669541","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"@ainetwork/mssql-mcp-core","version":"0.6.6","keywords":["mcp","sql-server","mssql","database","ai","claude","windsurf","model-context-protocol"],"author":{"name":"Connor England","email":"connor.r.england@gmail.com"},"license":"MIT","_id":"@ainetwork/mssql-mcp-core@0.6.6","maintainers":[{"name":"dev_ainetwork","email":"dev@ainetwork.ai"}],"homepage":"https://github.com/ainetwork-ai/mssql-mcp-core","bugs":{"url":"https://github.com/ainetwork-ai/mssql-mcp-core/issues"},"dist":{"shasum":"295642cb396263105184aa670e0c687e27e61f95","tarball":"https://registry.npmjs.org/@ainetwork/mssql-mcp-core/-/mssql-mcp-core-0.6.6.tgz","fileCount":190,"integrity":"sha512-40Uk2YmyxsITaiNyAofu63aIb4P/8g6pnWaE/eVrghhspEPxswBAiTCE4ERKiLyBtZ6bjURVL929719kDnnMWA==","signatures":[{"sig":"MEUCIQCKcRFZoUdSSdUhNrpklaWTCqbqNAEf3sjfYf4ifTRGeQIgMCDD4usk6sNaWKvzHMCLRMZfmvh5vHZ1ARkcgbAmnk8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":603519},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"92607ec38a9aa1002fbd8b182884650092998f28","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build","test:smoke":"tsx test/smoke-sinks.ts","test:watch":"vitest"},"_npmUser":{"name":"dev_ainetwork","email":"dev@ainetwork.ai"},"repository":{"url":"git+https://github.com/ainetwork-ai/mssql-mcp-core.git","type":"git"},"_npmVersion":"11.12.1","description":"Shared core library for MSSQL MCP servers - tools, config, routing, and server harness","directories":{},"_nodeVersion":"25.9.0","dependencies":{"mssql":"^10.0.1","dotenv":"^16.4.5","@azure/identity":"^4.4.0","@azure/keyvault-secrets":"^4.9.0","@modelcontextprotocol/sdk":"^1.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.0.0","typescript":"^5.4.5","@types/node":"^20.14.2","@types/mssql":"^9.1.7"},"optionalDependencies":{"@aws-sdk/client-cloudwatch-logs":"^3.992.0","@aws-sdk/client-secrets-manager":"^3.700.0"},"_npmOperationalInternal":{"tmp":"tmp/mssql-mcp-core_0.6.6_1786097976906_0.3826444643487956","host":"s3://npm-registry-packages-npm-production"}},"0.6.7":{"name":"@ainetwork/mssql-mcp-core","version":"0.6.7","description":"Shared core library for MSSQL MCP servers - tools, config, routing, and server harness","keywords":["mcp","sql-server","mssql","database","ai","claude","windsurf","model-context-protocol"],"author":{"name":"Connor England","email":"connor.r.england@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/ainetwork-ai/mssql-mcp-core.git"},"homepage":"https://github.com/ainetwork-ai/mssql-mcp-core","bugs":{"url":"https://github.com/ainetwork-ai/mssql-mcp-core/issues"},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"scripts":{"build":"tsc","prepare":"npm run build","watch":"tsc --watch","test":"vitest run","test:watch":"vitest","test:smoke":"tsx test/smoke-sinks.ts"},"devDependencies":{"@types/mssql":"^9.1.7","@types/node":"^20.14.2","tsx":"^4.19.0","typescript":"^5.4.5","vitest":"^3.0.0"},"dependencies":{"@azure/identity":"^4.4.0","@azure/keyvault-secrets":"^4.9.0","@modelcontextprotocol/sdk":"^1.23.0","dotenv":"^16.4.5","mssql":"^10.0.1"},"optionalDependencies":{"@aws-sdk/client-cloudwatch-logs":"^3.992.0","@aws-sdk/client-secrets-manager":"^3.700.0"},"type":"module","gitHead":"4c56e23f721bbe614324561caa44a75e84caecff","_id":"@ainetwork/mssql-mcp-core@0.6.7","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-zwcB1wGOccPo+lSF/BwvrduuhxykB9BzIcyy4+RtmZaZQUEa5CBbdXnTy39Chon6ln+0hMZz882L43VYaVJcmA==","shasum":"1a6e2724aa63e2949c92958fabb82c5da1993946","tarball":"https://registry.npmjs.org/@ainetwork/mssql-mcp-core/-/mssql-mcp-core-0.6.7.tgz","fileCount":198,"unpackedSize":620515,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFO/U00XCE9uPSWjmvjVN2Aeh+RV0nDJ620vBOFM0tD9AiAK8C507kgX7uOb9K/jB+2CH3eVDxPjjbKEGPqmiL3gBw=="}]},"_npmUser":{"name":"dev_ainetwork","email":"dev@ainetwork.ai"},"directories":{},"maintainers":[{"name":"dev_ainetwork","email":"dev@ainetwork.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mssql-mcp-core_0.6.7_1786337745406_0.8059703900208766"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-28T02:56:49.438Z","modified":"2026-08-10T04:55:45.756Z","0.6.1":"2026-07-28T02:56:49.829Z","0.6.2":"2026-07-28T04:13:08.387Z","0.6.3":"2026-07-28T04:34:00.802Z","0.6.4":"2026-07-28T04:53:21.478Z","0.6.5":"2026-07-28T05:43:01.650Z","0.6.6":"2026-08-07T10:19:37.140Z","0.6.7":"2026-08-10T04:55:45.534Z"},"bugs":{"url":"https://github.com/ainetwork-ai/mssql-mcp-core/issues"},"author":{"name":"Connor England","email":"connor.r.england@gmail.com"},"license":"MIT","homepage":"https://github.com/ainetwork-ai/mssql-mcp-core","keywords":["mcp","sql-server","mssql","database","ai","claude","windsurf","model-context-protocol"],"repository":{"type":"git","url":"git+https://github.com/ainetwork-ai/mssql-mcp-core.git"},"description":"Shared core library for MSSQL MCP servers - tools, config, routing, and server harness","maintainers":[{"name":"dev_ainetwork","email":"dev@ainetwork.ai"}],"readme":"# @connorbritain/mssql-mcp-core\n\nShared core library for the MSSQL MCP tiered package family. This package provides every tool class, the MCP server harness, environment management, audit logging, secret resolution, intent routing, and policy enforcement middleware. Consumer packages (reader, writer, server) depend on this library and call `startMcpServer()` with a tier to get a fully configured MCP server.\n\n## Architecture\n\n```\n@connorbritain/mssql-mcp-core\n        |\n        |-- @connorbritain/mssql-mcp-reader  (14 read-only tools)\n        |-- @connorbritain/mssql-mcp-writer  (17 tools: reader + INSERT/UPDATE/DELETE)\n        |-- @connorbritain/mssql-mcp-server  (20 tools: writer + CREATE TABLE/INDEX, DROP TABLE)\n```\n\nEach consumer package is a thin wrapper that passes its tier to `startMcpServer()`. All business logic, tool implementations, and governance infrastructure live here.\n\n## How Consumer Packages Use This Library\n\n```ts\nimport { startMcpServer } from \"@connorbritain/mssql-mcp-core\";\n\nstartMcpServer({ tier: \"reader\" });\n```\n\nThe `tier` parameter controls which tools are registered with the MCP server:\n\n| Tier | Tools | What it adds |\n|------|-------|-------------|\n| `reader` | 14 | All read-only and schema discovery tools |\n| `writer` | 17 | Reader tools + `insert_data`, `update_data`, `delete_data` |\n| `admin` | 20 | Writer tools + `create_table`, `create_index`, `drop_table` |\n\n**[Config Builder](https://connorbritain.github.io/mssql-mcp-config-builder/)** — Visual wizard to generate configuration files for consumer packages.\n\n## Exports\n\n### Server Entry Point\n\n```ts\nimport { startMcpServer } from \"@connorbritain/mssql-mcp-core\";\n```\n\n- **`startMcpServer(config: McpServerConfig)`** — Initializes the MCP server over stdio for the given tier. Registers tools, applies `wrapToolRun` policy middleware to each, and starts listening.\n\n### Tool Classes\n\nAll 20 tool classes are exported individually:\n\n```ts\nimport {\n  // Read-only (Reader tier)\n  ReadDataTool,\n  ListTableTool,\n  ListDatabasesTool,\n  ListEnvironmentsTool,\n  ValidateEnvironmentConfigTool,\n  ListScriptsTool,\n  RunScriptTool,\n  DescribeTableTool,\n  SearchSchemaTool,\n  ProfileTableTool,\n  RelationshipInspectorTool,\n  InspectDependenciesTool,\n  TestConnectionTool,\n  ExplainQueryTool,\n\n  // Write (Writer tier adds these)\n  InsertDataTool,\n  DeleteDataTool,\n  UpdateDataTool,\n\n  // Admin/DDL (Server tier adds these)\n  CreateTableTool,\n  CreateIndexTool,\n  DropTableTool,\n} from \"@connorbritain/mssql-mcp-core\";\n```\n\nEach tool class implements the `RunnableTool` interface with `name`, `description`, `inputSchema`, and `run(params)`.\n\n### Environment Management\n\n```ts\nimport { EnvironmentManager, getEnvironmentManager } from \"@connorbritain/mssql-mcp-core\";\n```\n\n- **`EnvironmentManager`** — Manages multi-environment configurations, connection pools, per-environment policies (readonly, allowedTools, deniedTools, maxRowsDefault, requireApproval, auditLevel, allowedSchemas, deniedSchemas), and secret resolution.\n- **`getEnvironmentManager()`** — Returns the singleton instance.\n\n### Audit Logging\n\n```ts\nimport { AuditLogger, auditLogger } from \"@connorbritain/mssql-mcp-core\";\n```\n\n- **`AuditLogger`** — Writes JSON Lines audit log entries with timestamps, tool names, arguments (sensitive fields auto-redacted), results, session ID, and environment name.\n- **`auditLogger`** — Singleton instance. Configured via `AUDIT_LOG_PATH` and `AUDIT_LOGGING` environment variables.\n\n### Secret Resolution\n\n```ts\nimport {\n  SecretResolver,\n  createSecretResolver,\n  validateDotenvPath,\n  validateFileDirectory,\n} from \"@connorbritain/mssql-mcp-core\";\n```\n\n- **`SecretResolver`** — Resolves `${secret:NAME}` placeholders in environment config values from environment variables, `.env` files, or external secret providers.\n- **`createSecretResolver(config)`** — Factory for `SecretResolver` instances.\n\n### Intent Routing\n\n```ts\nimport { IntentRouter } from \"@connorbritain/mssql-mcp-core\";\n```\n\n- **`IntentRouter`** — Routes natural language intents to the appropriate MCP tool using keyword matching and scoring. Used internally by `startMcpServer`.\n\n### Policy Middleware\n\n```ts\nimport { wrapToolRun } from \"@connorbritain/mssql-mcp-core\";\n```\n\n- **`wrapToolRun(tool, options)`** — Monkey-patches a tool's `run()` method to enforce per-environment policies (readonly, allowedTools, deniedTools, requireApproval), obtain a connection pool, inject environment context into tool arguments, and log all invocations to the audit logger.\n\n### Toolset Helpers\n\n```ts\nimport {\n  createAllToolInstances,\n  getReaderTools,\n  getWriterTools,\n  getAdminTools,\n  buildToolRegistry,\n  READER_MUTATING_TOOLS,\n  WRITER_MUTATING_TOOLS,\n  ADMIN_MUTATING_TOOLS,\n  READER_APPROVAL_EXEMPT,\n  WRITER_APPROVAL_EXEMPT,\n  ADMIN_APPROVAL_EXEMPT,\n} from \"@connorbritain/mssql-mcp-core\";\n```\n\n- **`createAllToolInstances()`** — Instantiates all 20 tool classes and returns them as a named object.\n- **`getReaderTools(t)`** — Returns the 14-tool array for the reader tier.\n- **`getWriterTools(t)`** — Returns the 17-tool array for the writer tier.\n- **`getAdminTools(t)`** — Returns the 20-tool array for the admin/server tier.\n- **`buildToolRegistry(t)`** — Returns the full routing config array used by `IntentRouter`.\n- **`READER_MUTATING_TOOLS`** — Empty `Set<string>` (reader has no mutating tools).\n- **`WRITER_MUTATING_TOOLS`** — `Set` of `insert_data`, `delete_data`, `update_data`.\n- **`ADMIN_MUTATING_TOOLS`** — `Set` of all write + DDL tool names.\n- **`READER_APPROVAL_EXEMPT`** — `Set` of tools that bypass `requireApproval` in the reader tier.\n- **`WRITER_APPROVAL_EXEMPT`** — `Set` of tools that bypass `requireApproval` in the writer tier.\n- **`ADMIN_APPROVAL_EXEMPT`** — `Set` of tools that bypass `requireApproval` in the admin tier.\n\n### Types\n\n```ts\nimport type {\n  TierLevel,\n  McpServerConfig,\n  IntentCategory,\n  RunnableTool,\n  ToolRoutingConfig,\n  IntentRouterOptions,\n  RoutingCandidate,\n  RouteParams,\n  RouteResult,\n  WrapToolRunOptions,\n  EnvironmentConfig,\n  EnvironmentsConfig,\n  AccessLevel,\n  AuditLogEntry,\n  AuditLevel,\n  SecretsConfig,\n  SecretProviderConfig,\n} from \"@connorbritain/mssql-mcp-core\";\n```\n\n## Build\n\n```bash\nnpm install\nnpm run build   # Compiles TypeScript to dist/\nnpm run watch   # Watch mode for development\n```\n\n## Related Packages\n\n| Package | npm | Tier |\n|---------|-----|------|\n| Reader | `@connorbritain/mssql-mcp-reader` | Read-only |\n| Writer | `@connorbritain/mssql-mcp-writer` | Read + write |\n| Server | `@connorbritain/mssql-mcp-server` | Full admin |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}