{"_id":"@dav3/mcp-dynamics365-server","_rev":"12-c58705aea289d82fab6ded2a733a7b1f","name":"@dav3/mcp-dynamics365-server","dist-tags":{"latest":"2.1.0"},"versions":{"1.0.0":{"name":"@dav3/mcp-dynamics365-server","version":"1.0.0","keywords":["mcp","dynamics365","crm","microsoft","model-context-protocol","ai","assistant"],"author":{"name":"Dav3","email":"mcp-dynamics-365@dav3.cc"},"license":"MIT","_id":"@dav3/mcp-dynamics365-server@1.0.0","maintainers":[{"name":"dav3","email":"npmjs@dav3.cc"}],"homepage":"https://github.com/dave-palt/mcp-dynamics-365#readme","bugs":{"url":"https://github.com/dave-palt/mcp-dynamics-365/issues"},"bin":{"mcp-dynamics365-server":"dist/index.js"},"dist":{"shasum":"04e885b214d2495ac3cf7d9480b05ba78e62cb78","tarball":"https://registry.npmjs.org/@dav3/mcp-dynamics365-server/-/mcp-dynamics365-server-1.0.0.tgz","fileCount":13,"integrity":"sha512-uPQoMQldKHZGhy/hqL+jdhDlF46PtoP+YmAV+chzGeGAot7Tottk+wsmElAOQvDpGam0PmKwkXB4MhsE80qXpw==","signatures":[{"sig":"MEQCIDIJb1409UKV5bk2DULkoJmjLUs2C+ML1NTlS3A5s1PYAiA6blKpSC2i0qcmbpYcYdz06uWHiNl9PJPYYl+XvlC1oA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61474},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f82c3da0b8c78c80510b17375d9e787d5102d819","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"node test-server.js","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","watch":"tsc --watch","typecheck":"tsc --noEmit","watch:dev":"tsx watch src/index.ts","publish:npm":"npm publish","prepublishOnly":"npm run clean && npm run build","publish:vscode":"cd vscode-extension && npm install && npm run compile && npx vsce package && npx vsce publish"},"_npmUser":{"name":"dav3","email":"npmjs@dav3.cc"},"repository":{"url":"git+https://github.com/dave-palt/mcp-dynamics-365.git","type":"git"},"_npmVersion":"8.19.4","description":"Generic MCP server for Dynamics 365 CRM operations (AI-generated side project with limited maintenance)","directories":{},"_nodeVersion":"20.19.4","dependencies":{"axios":"^1.6.0","dotenv":"^16.3.0","@modelcontextprotocol/sdk":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"tsx":"^4.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-dynamics365-server_1.0.0_1753948794180_0.26691618287381313","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@dav3/mcp-dynamics365-server","version":"1.1.0","keywords":["mcp","dynamics365","crm","microsoft","model-context-protocol","ai","assistant"],"author":{"name":"Dav3","email":"mcp-dynamics-365@dav3.cc"},"license":"MIT","_id":"@dav3/mcp-dynamics365-server@1.1.0","maintainers":[{"name":"dav3","email":"npmjs@dav3.cc"}],"homepage":"https://github.com/dave-palt/mcp-dynamics-365#readme","bugs":{"url":"https://github.com/dave-palt/mcp-dynamics-365/issues"},"bin":{"mcp-dynamics365-server":"dist/index.js"},"dist":{"shasum":"f0a4021b8461ec60889565eb554e8b850d4d3f32","tarball":"https://registry.npmjs.org/@dav3/mcp-dynamics365-server/-/mcp-dynamics365-server-1.1.0.tgz","fileCount":13,"integrity":"sha512-Z/RzsrUmwcixa0O5grfri10gv12WyGW+mVY6icgNcarEnoH/6w10RepKpTh1Pki+RR+1KTT0dnE+jm8zBcyuYA==","signatures":[{"sig":"MEQCIB9gXmGDEdTHIG0rR4fQn9YCkCAESjp36OdzNo6l6GBXAiBhBTfGZyFqsKmH8lZbtzU1p+UHRTLLjsbNwBxqdeRWkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63042},"main":"dist/index.js","type":"module","_from":"file:dav3-mcp-dynamics365-server-1.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"node test-server.js","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","watch":"tsc --watch","typecheck":"tsc --noEmit","watch:dev":"tsx watch src/index.ts","publish:npm":"npm publish","publish:vscode":"cd vscode-extension && npm install && npm run compile && npx vsce package && npx vsce publish"},"_npmUser":{"name":"dav3","email":"npmjs@dav3.cc"},"_resolved":"/tmp/3f3029c781a5ddf420b55c33b51c561d/dav3-mcp-dynamics365-server-1.1.0.tgz","_integrity":"sha512-Z/RzsrUmwcixa0O5grfri10gv12WyGW+mVY6icgNcarEnoH/6w10RepKpTh1Pki+RR+1KTT0dnE+jm8zBcyuYA==","repository":{"url":"git+https://github.com/dave-palt/mcp-dynamics-365.git","type":"git"},"_npmVersion":"10.8.2","description":"Generic MCP server for Dynamics 365 CRM operations (AI-generated side project with limited maintenance)","directories":{},"_nodeVersion":"18.20.8","dependencies":{"axios":"^1.6.0","dotenv":"^16.3.0","@modelcontextprotocol/sdk":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-dynamics365-server_1.1.0_1753961797960_0.8901204728193897","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@dav3/mcp-dynamics365-server","version":"1.2.0","keywords":["mcp","dynamics365","crm","microsoft","model-context-protocol","ai","assistant"],"author":{"name":"Dav3","email":"mcp-dynamics-365@dav3.cc"},"license":"MIT","_id":"@dav3/mcp-dynamics365-server@1.2.0","maintainers":[{"name":"dav3","email":"npmjs@dav3.cc"}],"homepage":"https://github.com/dave-palt/mcp-dynamics-365#readme","bugs":{"url":"https://github.com/dave-palt/mcp-dynamics-365/issues"},"bin":{"mcp-dynamics365-server":"dist/index.js"},"dist":{"shasum":"f4b2c0e0a7ee5b9b853e7a51774e458cac09cf28","tarball":"https://registry.npmjs.org/@dav3/mcp-dynamics365-server/-/mcp-dynamics365-server-1.2.0.tgz","fileCount":13,"integrity":"sha512-Zr5ROGXILyBdqQxTk3XwM0VB3yRGBPO/9vngPgEcdsEHNqpwvz6Ceifjrln2U69bHpGixybmKzlk7MhT22uxYQ==","signatures":[{"sig":"MEUCIBf/AzNA7OnDkWvCYgN/Jh3YuK3TSeJ9ylHVwDfUx7HZAiEA+gczDkpUFyz5kYh3eN5jfttK/571ys7mpEZXlwQxl9E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63058},"main":"dist/index.js","type":"module","_from":"file:dav3-mcp-dynamics365-server-1.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"node test-server.js","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","watch":"tsc --watch","typecheck":"tsc --noEmit","watch:dev":"tsx watch src/index.ts","publish:npm":"npm publish","publish:vscode":"cd vscode-extension && npm install && npm run compile && npx @vscode/vsce package && npx @vscode/vsce publish"},"_npmUser":{"name":"dav3","email":"npmjs@dav3.cc"},"_resolved":"/tmp/8e3bbd2b16856946db53b889d7adf286/dav3-mcp-dynamics365-server-1.2.0.tgz","_integrity":"sha512-Zr5ROGXILyBdqQxTk3XwM0VB3yRGBPO/9vngPgEcdsEHNqpwvz6Ceifjrln2U69bHpGixybmKzlk7MhT22uxYQ==","repository":{"url":"git+https://github.com/dave-palt/mcp-dynamics-365.git","type":"git"},"_npmVersion":"10.8.2","description":"Generic MCP server for Dynamics 365 CRM operations (AI-generated side project with limited maintenance)","directories":{},"_nodeVersion":"20.19.4","dependencies":{"axios":"^1.6.0","dotenv":"^16.3.0","@modelcontextprotocol/sdk":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-dynamics365-server_1.2.0_1753962083807_0.34564399702403215","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@dav3/mcp-dynamics365-server","version":"1.3.0","keywords":["mcp","dynamics365","crm","microsoft","model-context-protocol","ai","assistant"],"author":{"name":"Dav3","email":"mcp-dynamics-365@dav3.cc"},"license":"MIT","_id":"@dav3/mcp-dynamics365-server@1.3.0","maintainers":[{"name":"dav3","email":"npmjs@dav3.cc"}],"homepage":"https://github.com/dave-palt/mcp-dynamics-365#readme","bugs":{"url":"https://github.com/dave-palt/mcp-dynamics-365/issues"},"bin":{"mcp-dynamics365-server":"dist/index.js"},"dist":{"shasum":"aad0a561f79500c84773cc4b1e54a1e564a1c32e","tarball":"https://registry.npmjs.org/@dav3/mcp-dynamics365-server/-/mcp-dynamics365-server-1.3.0.tgz","fileCount":13,"integrity":"sha512-47z3cl/S5ub7w1p1gwFzKNfXrH5Di3kujEFzfmkg4jGjnoExkuY9diJSuKi3/qhCTnGgpm7x8vN8OFutbbpD+A==","signatures":[{"sig":"MEUCIFkmk/xKAnuXVkKoJRZUiTIKWb+g4A5kDyzZnyYVsWs7AiEA3utDUAEBYXbY7217q32QabVrpHhKoRgZbTRQVTLGfTg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63271},"main":"dist/index.js","type":"module","_from":"file:dav3-mcp-dynamics365-server-1.3.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"node test-server.js","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","watch":"tsc --watch","typecheck":"tsc --noEmit","watch:dev":"tsx watch src/index.ts","publish:npm":"npm publish","version:minor":"cd vscode-extension && pnpm version minor --no-git-tag-version && git add package.json && git commit -m 'chore: bump version minor' && cd .. && pnpm version minor && git push --follow-tags","publish:vscode":"cd vscode-extension && npm install && npm run compile && npx @vscode/vsce package && npx @vscode/vsce publish"},"_npmUser":{"name":"dav3","email":"npmjs@dav3.cc"},"_resolved":"/tmp/a201b23beb5a9bc6c91ec023a9a5cc87/dav3-mcp-dynamics365-server-1.3.0.tgz","_integrity":"sha512-47z3cl/S5ub7w1p1gwFzKNfXrH5Di3kujEFzfmkg4jGjnoExkuY9diJSuKi3/qhCTnGgpm7x8vN8OFutbbpD+A==","repository":{"url":"git+https://github.com/dave-palt/mcp-dynamics-365.git","type":"git"},"_npmVersion":"10.8.2","description":"Generic MCP server for Dynamics 365 CRM operations (AI-generated side project with limited maintenance)","directories":{},"_nodeVersion":"20.19.4","dependencies":{"axios":"^1.6.0","dotenv":"^16.3.0","@modelcontextprotocol/sdk":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-dynamics365-server_1.3.0_1753962690406_0.27959389705150617","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@dav3/mcp-dynamics365-server","version":"1.4.0","keywords":["mcp","dynamics365","crm","microsoft","model-context-protocol","ai","assistant"],"author":{"name":"Dav3","email":"mcp-dynamics-365@dav3.cc"},"license":"MIT","_id":"@dav3/mcp-dynamics365-server@1.4.0","maintainers":[{"name":"dav3","email":"npmjs@dav3.cc"}],"homepage":"https://github.com/dave-palt/mcp-dynamics-365#readme","bugs":{"url":"https://github.com/dave-palt/mcp-dynamics-365/issues"},"bin":{"mcp-dynamics365-server":"dist/index.js"},"dist":{"shasum":"57eb7ccdef7600bc2288a0def56c59c2477370d8","tarball":"https://registry.npmjs.org/@dav3/mcp-dynamics365-server/-/mcp-dynamics365-server-1.4.0.tgz","fileCount":13,"integrity":"sha512-u+nrlHWC96Z9BBjKXDnglPKdI6ErW6XpV31z9ScaHODvjiIhZE6baPqf2W6/C5tkzrmbjymJKbrAglkMDbkDKQ==","signatures":[{"sig":"MEUCIAkRqgRPmlfCY/jsE/YYB6Vogn9bMvXgWunaJ3fdse8wAiEAyzHg0OQQpE9sxyznQM9M/cDA69/rL7lKCK4u3fWl3z0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63271},"main":"dist/index.js","type":"module","_from":"file:dav3-mcp-dynamics365-server-1.4.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"node test-server.js","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","watch":"tsc --watch","typecheck":"tsc --noEmit","watch:dev":"tsx watch src/index.ts","publish:npm":"npm publish","version:minor":"cd vscode-extension && pnpm version minor --no-git-tag-version && git add package.json && git commit -m 'chore: bump version minor' && cd .. && pnpm version minor && git push --follow-tags","publish:vscode":"cd vscode-extension && npm install && npm run compile && npx @vscode/vsce package && npx @vscode/vsce publish"},"_npmUser":{"name":"dav3","email":"npmjs@dav3.cc"},"_resolved":"/tmp/48d91dc7f24b3f0c0b344bfb8b28f8c3/dav3-mcp-dynamics365-server-1.4.0.tgz","_integrity":"sha512-u+nrlHWC96Z9BBjKXDnglPKdI6ErW6XpV31z9ScaHODvjiIhZE6baPqf2W6/C5tkzrmbjymJKbrAglkMDbkDKQ==","repository":{"url":"git+https://github.com/dave-palt/mcp-dynamics-365.git","type":"git"},"_npmVersion":"10.8.2","description":"Generic MCP server for Dynamics 365 CRM operations (AI-generated side project with limited maintenance)","directories":{},"_nodeVersion":"20.19.4","dependencies":{"axios":"^1.6.0","dotenv":"^16.3.0","@modelcontextprotocol/sdk":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-dynamics365-server_1.4.0_1753963654062_0.10720757134822101","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@dav3/mcp-dynamics365-server","version":"1.5.1","keywords":["mcp","dynamics365","crm","microsoft","model-context-protocol","ai","assistant"],"author":{"name":"Dav3","email":"mcp-dynamics-365@dav3.cc"},"license":"MIT","_id":"@dav3/mcp-dynamics365-server@1.5.1","maintainers":[{"name":"dav3","email":"npmjs@dav3.cc"}],"homepage":"https://github.com/dave-palt/mcp-dynamics-365#readme","bugs":{"url":"https://github.com/dave-palt/mcp-dynamics-365/issues"},"bin":{"mcp-dynamics365-server":"dist/index.js"},"dist":{"shasum":"f6e74e91868ca1aacbc831dbc61924e55675f4c9","tarball":"https://registry.npmjs.org/@dav3/mcp-dynamics365-server/-/mcp-dynamics365-server-1.5.1.tgz","fileCount":13,"integrity":"sha512-1k4f+ddLDSsrEQl9qmMZTVNs53JjpUXgBbsJzThGYkeW9VwWKiCVN6+k7MlOgCa1LQfIDx+jBWCSBvqp6tbw4w==","signatures":[{"sig":"MEYCIQCx7z47J03+tksvjRcIeRN4MyXqt95mwae0cp9Nj1NsQQIhAMdQZYs3aJAC/E6qktS192FMQAnVJqPbv/jstoJkkUjB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65594},"main":"dist/index.js","type":"module","_from":"file:dav3-mcp-dynamics365-server-1.5.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"node test-server.js","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","watch":"tsc --watch","typecheck":"tsc --noEmit","watch:dev":"tsx watch src/index.ts","publish:npm":"npm publish","version:minor":"cd vscode-extension && pnpm version minor --no-git-tag-version && git add package.json && git commit -m 'chore: bump version minor' && cd .. && pnpm version minor && git push --follow-tags","version:patch":"cd vscode-extension && pnpm version patch --no-git-tag-version && git add package.json && git commit -m 'chore: bump version patch' && cd .. && pnpm version patch && git push --follow-tags","publish:vscode":"cd vscode-extension && npm install && npm run compile && npx @vscode/vsce package && npx @vscode/vsce publish","test:read-tools":"npm run build && node test-read-tools.js"},"_npmUser":{"name":"dav3","email":"npmjs@dav3.cc"},"_resolved":"/tmp/a0685449e0b7b54a9c4668dcbfd255cc/dav3-mcp-dynamics365-server-1.5.1.tgz","_integrity":"sha512-1k4f+ddLDSsrEQl9qmMZTVNs53JjpUXgBbsJzThGYkeW9VwWKiCVN6+k7MlOgCa1LQfIDx+jBWCSBvqp6tbw4w==","repository":{"url":"git+https://github.com/dave-palt/mcp-dynamics-365.git","type":"git"},"_npmVersion":"10.8.2","description":"Generic MCP server for Dynamics 365 CRM operations (AI-generated side project with limited maintenance)","directories":{},"_nodeVersion":"20.19.4","dependencies":{"axios":"^1.6.0","dotenv":"^16.3.0","@modelcontextprotocol/sdk":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-dynamics365-server_1.5.1_1753970351215_0.9089012868426063","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@dav3/mcp-dynamics365-server","version":"1.5.2","keywords":["mcp","dynamics365","crm","microsoft","model-context-protocol","ai","assistant"],"author":{"name":"Dav3","email":"mcp-dynamics-365@dav3.cc"},"license":"MIT","_id":"@dav3/mcp-dynamics365-server@1.5.2","maintainers":[{"name":"dav3","email":"npmjs@dav3.cc"}],"homepage":"https://github.com/dave-palt/mcp-dynamics-365#readme","bugs":{"url":"https://github.com/dave-palt/mcp-dynamics-365/issues"},"bin":{"mcp-dynamics365-server":"dist/index.js"},"dist":{"shasum":"a57ee00f6e5a9307f5e94ad4b885227147f67186","tarball":"https://registry.npmjs.org/@dav3/mcp-dynamics365-server/-/mcp-dynamics365-server-1.5.2.tgz","fileCount":13,"integrity":"sha512-R6enb+g1NjVQFonydVo0izALkJ93ujd8ZDN3cI7jHS9xznRGfOLi/+vJjldMAM81hzEsd2AUrplhCcbTsR1/Gg==","signatures":[{"sig":"MEUCIQCGF+MtnYJgXuWkSLDarktlcDY3vZsGe9I/JbnxDHMw7AIgPzbaLwVjC4LnM5mbIic1xVW9M1FJoPCNsXD1uQZXPzA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65594},"main":"dist/index.js","type":"module","_from":"file:dav3-mcp-dynamics365-server-1.5.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"node test-server.js","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","watch":"tsc --watch","typecheck":"tsc --noEmit","watch:dev":"tsx watch src/index.ts","publish:npm":"npm publish","version:minor":"cd vscode-extension && pnpm version minor --no-git-tag-version && git add package.json && git commit -m 'chore: bump version minor' && cd .. && pnpm version minor && git push --follow-tags","version:patch":"cd vscode-extension && pnpm version patch --no-git-tag-version && git add package.json && git commit -m 'chore: bump version patch' && cd .. && pnpm version patch && git push --follow-tags","publish:vscode":"cd vscode-extension && npm install && npm run compile && npx @vscode/vsce package && npx @vscode/vsce publish","test:read-tools":"npm run build && node test-read-tools.js"},"_npmUser":{"name":"dav3","email":"npmjs@dav3.cc"},"_resolved":"/tmp/ef1621002bf591b8a9284238cf853fea/dav3-mcp-dynamics365-server-1.5.2.tgz","_integrity":"sha512-R6enb+g1NjVQFonydVo0izALkJ93ujd8ZDN3cI7jHS9xznRGfOLi/+vJjldMAM81hzEsd2AUrplhCcbTsR1/Gg==","repository":{"url":"git+https://github.com/dave-palt/mcp-dynamics-365.git","type":"git"},"_npmVersion":"10.8.2","description":"Generic MCP server for Dynamics 365 CRM operations (AI-generated side project with limited maintenance)","directories":{},"_nodeVersion":"20.19.4","dependencies":{"axios":"^1.6.0","dotenv":"^16.3.0","@modelcontextprotocol/sdk":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-dynamics365-server_1.5.2_1753970873160_0.6628967833957915","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@dav3/mcp-dynamics365-server","version":"1.6.0","keywords":["mcp","dynamics365","crm","microsoft","model-context-protocol","ai","assistant"],"author":{"name":"Dav3","email":"mcp-dynamics-365@dav3.cc"},"license":"MIT","_id":"@dav3/mcp-dynamics365-server@1.6.0","maintainers":[{"name":"dav3","email":"npmjs@dav3.cc"}],"homepage":"https://github.com/dave-palt/mcp-dynamics-365#readme","bugs":{"url":"https://github.com/dave-palt/mcp-dynamics-365/issues"},"bin":{"mcp-dynamics365-server":"dist/index.js"},"dist":{"shasum":"607a96593bf1ab8acba71f2d7934332de507c6dc","tarball":"https://registry.npmjs.org/@dav3/mcp-dynamics365-server/-/mcp-dynamics365-server-1.6.0.tgz","fileCount":13,"integrity":"sha512-OJ7zzxFKMtX2fePWYlMn8biNC9NZtQEjiNVRIXXDDP/rICl0RkmdOFlBQeGt7SAU0uPdH6BOg08PQSFX9BSnwg==","signatures":[{"sig":"MEUCIQCXExRRpHr3wvj98cSWV/8HlSXevARzgTdilp5OMYcZXwIgZWCBO39LuZdaXdmX38G2bkaLbTLXYUq5dzFtX9AArQo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65718},"main":"dist/index.js","type":"module","_from":"file:dav3-mcp-dynamics365-server-1.6.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"node test-server.js","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","watch":"tsc --watch","typecheck":"tsc --noEmit","watch:dev":"tsx watch src/index.ts","publish:npm":"npm publish","convert-icon":"npx sharp-cli -i vscode-extension/images/icon.svg -o vscode-extension/images/icon.png resize 128 128","version:minor":"cd vscode-extension && pnpm version minor --no-git-tag-version && git add package.json && git commit -m 'chore: bump version minor' && cd .. && pnpm version minor && git push --follow-tags","version:patch":"cd vscode-extension && pnpm version patch --no-git-tag-version && git add package.json && git commit -m 'chore: bump version patch' && cd .. && pnpm version patch && git push --follow-tags","publish:vscode":"cd vscode-extension && npm install && npm run compile && npx @vscode/vsce package && npx @vscode/vsce publish","test:read-tools":"npm run build && node test-read-tools.js"},"_npmUser":{"name":"dav3","email":"npmjs@dav3.cc"},"_resolved":"/tmp/2be1bb611046ce2f080e9900ed4d6d21/dav3-mcp-dynamics365-server-1.6.0.tgz","_integrity":"sha512-OJ7zzxFKMtX2fePWYlMn8biNC9NZtQEjiNVRIXXDDP/rICl0RkmdOFlBQeGt7SAU0uPdH6BOg08PQSFX9BSnwg==","repository":{"url":"git+https://github.com/dave-palt/mcp-dynamics-365.git","type":"git"},"_npmVersion":"10.8.2","description":"Generic MCP server for Dynamics 365 CRM operations (AI-generated side project with limited maintenance)","directories":{},"_nodeVersion":"20.19.4","dependencies":{"axios":"^1.6.0","dotenv":"^16.3.0","@modelcontextprotocol/sdk":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-dynamics365-server_1.6.0_1753971449793_0.46511104558396554","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@dav3/mcp-dynamics365-server","version":"2.0.0","keywords":["mcp","dynamics365","crm","microsoft","model-context-protocol","ai","assistant"],"author":{"name":"Dav3","email":"mcp-dynamics-365@dav3.cc"},"license":"MIT","_id":"@dav3/mcp-dynamics365-server@2.0.0","maintainers":[{"name":"dav3","email":"npmjs@dav3.cc"}],"homepage":"https://github.com/dave-palt/mcp-dynamics-365#readme","bugs":{"url":"https://github.com/dave-palt/mcp-dynamics-365/issues"},"bin":{"mcp-dynamics365-server":"dist/index.js"},"dist":{"shasum":"f5a6b1fb5df1293db5fc06e4ac2c0c5d8a8f4dd6","tarball":"https://registry.npmjs.org/@dav3/mcp-dynamics365-server/-/mcp-dynamics365-server-2.0.0.tgz","fileCount":27,"integrity":"sha512-SwQB0OmFFb45/WLg8CIbBV1iGF+0f1w/6ueB7zSozUArdX+D9HziWwGHyajtAL9rvnXtQmCS7Y1aqLxtnAnVdQ==","signatures":[{"sig":"MEQCIDTyRwX8g4ovcfs/uK3H0lRMBle9Vu8QC7wncjlTBzBGAiBYDXYlXmZrzYX5O3HMrYdgNxuOAOAJitWBX5fMiJYxCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72384},"main":"dist/index.js","type":"module","_from":"file:dav3-mcp-dynamics365-server-2.0.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"node tests/unit/test-server.js","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","watch":"tsc --watch","dev:http":"tsx src/index.ts --transport=http","test:http":"npm run build && node tests/integration/test-streamable-http.js","typecheck":"tsc --noEmit","watch:dev":"tsx watch src/index.ts","start:http":"node dist/index.js --transport=http","publish:npm":"npm publish","convert-icon":"npx sharp-cli -i vscode-extension/images/icon.svg -o vscode-extension/images/icon.png resize 128 128","version:major":"cd vscode-extension && pnpm version major --no-git-tag-version && git add package.json && git commit -m 'chore: bump version major' && cd .. && pnpm version major && git push --follow-tags","version:minor":"cd vscode-extension && pnpm version minor --no-git-tag-version && git add package.json && git commit -m 'chore: bump version minor' && cd .. && pnpm version minor && git push --follow-tags","version:patch":"cd vscode-extension && pnpm version patch --no-git-tag-version && git add package.json && git commit -m 'chore: bump version patch' && cd .. && pnpm version patch && git push --follow-tags","publish:vscode":"cd vscode-extension && npm install && npm run compile && npx @vscode/vsce package && npx @vscode/vsce publish","dev:http-remote":"tsx src/index.ts --transport=http --host=0.0.0.0","test:read-tools":"npm run build && node tests/integration/test-read-tools.js","start:http-remote":"node dist/index.js --transport=http --host=0.0.0.0"},"_npmUser":{"name":"dav3","email":"npmjs@dav3.cc"},"_resolved":"/tmp/7c16eae7ce3d37e962f1feed0c4b1eaa/dav3-mcp-dynamics365-server-2.0.0.tgz","_integrity":"sha512-SwQB0OmFFb45/WLg8CIbBV1iGF+0f1w/6ueB7zSozUArdX+D9HziWwGHyajtAL9rvnXtQmCS7Y1aqLxtnAnVdQ==","repository":{"url":"git+https://github.com/dave-palt/mcp-dynamics-365.git","type":"git"},"_npmVersion":"10.8.2","description":"Generic MCP server for Dynamics 365 CRM operations (AI-generated side project with limited maintenance)","directories":{},"_nodeVersion":"20.19.4","dependencies":{"cors":"^2.8.5","axios":"^1.6.0","dotenv":"^16.3.0","express":"^5.1.0","@modelcontextprotocol/sdk":"^1.17.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/node":"^20.0.0","@types/express":"^5.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-dynamics365-server_2.0.0_1754134733235_0.09103474162972014","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@dav3/mcp-dynamics365-server","version":"2.0.1","keywords":["mcp","dynamics365","crm","microsoft","model-context-protocol","ai","assistant"],"author":{"name":"Dav3","email":"mcp-dynamics-365@dav3.cc"},"license":"MIT","_id":"@dav3/mcp-dynamics365-server@2.0.1","maintainers":[{"name":"dav3","email":"npmjs@dav3.cc"}],"homepage":"https://github.com/dave-palt/mcp-dynamics-365#readme","bugs":{"url":"https://github.com/dave-palt/mcp-dynamics-365/issues"},"bin":{"mcp-dynamics365-server":"dist/index.js"},"dist":{"shasum":"d19b9562d9d9d604d6c8f84628f1067a815a7bbe","tarball":"https://registry.npmjs.org/@dav3/mcp-dynamics365-server/-/mcp-dynamics365-server-2.0.1.tgz","fileCount":27,"integrity":"sha512-Lao5nJUrQ54sVe/oHAQ5vzd4LRuGStS+3hYyQhk9R35BDcNqMro1j7OoiqqwbsQlo5rsqqK10LIYNjquXmqJ3Q==","signatures":[{"sig":"MEUCIGU4IkGqG2/U5ZjNM/er+gJ/e5h+CbCRjK614Ib1vFpiAiEAtUsWx3bJOy8SNhxLCQJ2onxnqPtpF4VVi2JDwp6tHMI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72384},"main":"dist/index.js","type":"module","_from":"file:dav3-mcp-dynamics365-server-2.0.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"node tests/unit/test-server.js","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","watch":"tsc --watch","dev:http":"tsx src/index.ts --transport=http","test:http":"npm run build && node tests/integration/test-streamable-http.js","typecheck":"tsc --noEmit","watch:dev":"tsx watch src/index.ts","start:http":"node dist/index.js --transport=http","publish:npm":"npm publish","convert-icon":"npx sharp-cli -i vscode-extension/images/icon.svg -o vscode-extension/images/icon.png resize 128 128","version:major":"cd vscode-extension && pnpm version major --no-git-tag-version && git add package.json && git commit -m 'chore: bump version major' && cd .. && pnpm version major && git push --follow-tags","version:minor":"cd vscode-extension && pnpm version minor --no-git-tag-version && git add package.json && git commit -m 'chore: bump version minor' && cd .. && pnpm version minor && git push --follow-tags","version:patch":"cd vscode-extension && pnpm version patch --no-git-tag-version && git add package.json && git commit -m 'chore: bump version patch' && cd .. && pnpm version patch && git push --follow-tags","publish:vscode":"cd vscode-extension && npm install && npm run compile && npx @vscode/vsce package && npx @vscode/vsce publish","dev:http-remote":"tsx src/index.ts --transport=http --host=0.0.0.0","test:read-tools":"npm run build && node tests/integration/test-read-tools.js","start:http-remote":"node dist/index.js --transport=http --host=0.0.0.0"},"_npmUser":{"name":"dav3","email":"npmjs@dav3.cc"},"_resolved":"/tmp/699ca9fa904c3a4c72150bd78178bc78/dav3-mcp-dynamics365-server-2.0.1.tgz","_integrity":"sha512-Lao5nJUrQ54sVe/oHAQ5vzd4LRuGStS+3hYyQhk9R35BDcNqMro1j7OoiqqwbsQlo5rsqqK10LIYNjquXmqJ3Q==","repository":{"url":"git+https://github.com/dave-palt/mcp-dynamics-365.git","type":"git"},"_npmVersion":"10.8.2","description":"Generic MCP server for Dynamics 365 CRM operations (AI-generated side project with limited maintenance)","directories":{},"_nodeVersion":"20.19.4","dependencies":{"cors":"^2.8.5","axios":"^1.6.0","dotenv":"^16.3.0","express":"^5.1.0","@modelcontextprotocol/sdk":"^1.17.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/node":"^20.0.0","@types/express":"^5.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-dynamics365-server_2.0.1_1754137253683_0.6037337415733046","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@dav3/mcp-dynamics365-server","version":"2.0.2","keywords":["mcp","dynamics365","crm","microsoft","model-context-protocol","ai","assistant"],"author":{"name":"Dav3","email":"mcp-dynamics-365@dav3.cc"},"license":"MIT","_id":"@dav3/mcp-dynamics365-server@2.0.2","maintainers":[{"name":"dav3","email":"npmjs@dav3.cc"}],"homepage":"https://github.com/dave-palt/mcp-dynamics-365#readme","bugs":{"url":"https://github.com/dave-palt/mcp-dynamics-365/issues"},"bin":{"mcp-dynamics365-server":"dist/index.js"},"dist":{"shasum":"8341e9f48c1070fa239752ae5d64bff005054acb","tarball":"https://registry.npmjs.org/@dav3/mcp-dynamics365-server/-/mcp-dynamics365-server-2.0.2.tgz","fileCount":27,"integrity":"sha512-+QB+r2yqJOlhNUr48UlEjT6xrhTshC6ITE7fwx/j4ul6N191EP4+x81a3P92y/xb+m+94qjGacefAQ9d+d70Lg==","signatures":[{"sig":"MEUCIQDY9Dq2c7YbeIHxpUu+DD16Ec+yiUm3sY0q8mLIKWscAQIgJmGte9V0t0WtdoQYMGNSyPEhUXV6ozT/9WnWU08xk4Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72371},"main":"dist/index.js","type":"module","_from":"file:dav3-mcp-dynamics365-server-2.0.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"node tests/unit/test-server.js","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","watch":"tsc --watch","dev:http":"tsx src/index.ts --transport=http","test:http":"npm run build && node tests/integration/test-streamable-http.js","typecheck":"tsc --noEmit","watch:dev":"tsx watch src/index.ts","start:http":"node dist/index.js --transport=http","publish:npm":"npm publish","convert-icon":"npx sharp-cli -i vscode-extension/images/icon.svg -o vscode-extension/images/icon.png resize 128 128","version:major":"cd vscode-extension && pnpm version major --no-git-tag-version && git add package.json && git commit -m 'chore: bump version major' && cd .. && pnpm version major && git push --follow-tags","version:minor":"cd vscode-extension && pnpm version minor --no-git-tag-version && git add package.json && git commit -m 'chore: bump version minor' && cd .. && pnpm version minor && git push --follow-tags","version:patch":"cd vscode-extension && pnpm version patch --no-git-tag-version && git add package.json && git commit -m 'chore: bump version patch' && cd .. && pnpm version patch && git push --follow-tags","publish:vscode":"cd vscode-extension && npm install && npm run compile && npx @vscode/vsce package && npx @vscode/vsce publish","dev:http-remote":"tsx src/index.ts --transport=http --host=0.0.0.0","test:read-tools":"npm run build && node tests/integration/test-read-tools.js","start:http-remote":"node dist/index.js --transport=http --host=0.0.0.0"},"_npmUser":{"name":"dav3","email":"npmjs@dav3.cc"},"_resolved":"/tmp/f9c8537dbc62b8ba8142043b39619e96/dav3-mcp-dynamics365-server-2.0.2.tgz","_integrity":"sha512-+QB+r2yqJOlhNUr48UlEjT6xrhTshC6ITE7fwx/j4ul6N191EP4+x81a3P92y/xb+m+94qjGacefAQ9d+d70Lg==","repository":{"url":"git+https://github.com/dave-palt/mcp-dynamics-365.git","type":"git"},"_npmVersion":"10.8.2","description":"Generic MCP server for Dynamics 365 CRM operations (AI-generated side project with limited maintenance)","directories":{},"_nodeVersion":"20.19.4","dependencies":{"cors":"^2.8.5","axios":"^1.6.0","dotenv":"^16.3.0","express":"^5.1.0","@modelcontextprotocol/sdk":"^1.17.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/node":"^20.0.0","@types/express":"^5.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-dynamics365-server_2.0.2_1754140847267_0.7986566538752573","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@dav3/mcp-dynamics365-server","version":"2.1.0","description":"Generic MCP server for Dynamics 365 CRM operations (AI-generated side project with limited maintenance)","main":"dist/index.js","type":"module","bin":{"mcp-dynamics365-server":"dist/index.js"},"packageManager":"pnpm@9.15.9","scripts":{"build":"tsc","dev":"tsx src/index.ts","dev:http":"tsx src/index.ts --transport=http","dev:http-remote":"tsx src/index.ts --transport=http --host=0.0.0.0","start":"node dist/index.js","start:http":"node dist/index.js --transport=http","start:http-remote":"node dist/index.js --transport=http --host=0.0.0.0","watch":"tsc --watch","watch:dev":"tsx watch src/index.ts","clean":"rm -rf dist","lint":"tsc --noEmit","typecheck":"tsc --noEmit","test":"node tests/unit/test-server.js","test:read-tools":"pnpm run build && node tests/integration/test-read-tools.js","test:http":"pnpm run build && node tests/integration/test-streamable-http.js","convert-icon":"npx sharp-cli -i vscode-extension/images/icon.svg -o vscode-extension/images/icon.png resize 128 128","prepublishOnly":"pnpm run clean && pnpm run build","publish:npm":"npm publish","publish:vscode":"cd vscode-extension && pnpm install && pnpm run compile && npx @vscode/vsce package && npx @vscode/vsce publish","version:major":"cd vscode-extension && pnpm version major --no-git-tag-version && git add package.json && git commit -m 'chore: bump version major' && cd .. && pnpm version major && git push --follow-tags","version:minor":"cd vscode-extension && pnpm version minor --no-git-tag-version && git add package.json && git commit -m 'chore: bump version minor' && cd .. && pnpm version minor && git push --follow-tags","version:patch":"cd vscode-extension && pnpm version patch --no-git-tag-version && git add package.json && git commit -m 'chore: bump version patch' && cd .. && pnpm version patch && git push --follow-tags"},"keywords":["mcp","dynamics365","crm","microsoft","model-context-protocol","ai","assistant"],"author":{"name":"Dav3","email":"mcp-dynamics-365@dav3.cc"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dave-palt/mcp-dynamics-365.git"},"bugs":{"url":"https://github.com/dave-palt/mcp-dynamics-365/issues"},"homepage":"https://github.com/dave-palt/mcp-dynamics-365#readme","engines":{"node":">=20.0.0"},"publishConfig":{"access":"public"},"dependencies":{"@modelcontextprotocol/sdk":"^1.17.1","axios":"^1.6.0","cors":"^2.8.5","dotenv":"^16.3.0","express":"^5.1.0","jsonwebtoken":"^9.0.2","jwk-to-pem":"^2.0.7"},"devDependencies":{"@types/cors":"^2.8.19","@types/express":"^5.0.3","@types/jsonwebtoken":"^9.0.10","@types/jwk-to-pem":"^2.0.3","@types/node":"^20.0.0","tsx":"^4.0.0","typescript":"^5.0.0"},"_id":"@dav3/mcp-dynamics365-server@2.1.0","gitHead":"0d910df68b9a2681b6da427d19d4947c58087cb9","types":"./dist/index.d.ts","_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-fbrgJLezg8WGOVe9F7NX3mlEQpEPC7B9AbnJ5RxTJr3A3JKeMBKciuRNNdJJHHe1MddY5Q6kTpP5DJvv0hEl2g==","shasum":"e3b381f127068740ac8462dd931cd0e214255233","tarball":"https://registry.npmjs.org/@dav3/mcp-dynamics365-server/-/mcp-dynamics365-server-2.1.0.tgz","fileCount":29,"unpackedSize":83490,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDjiTVLGFOQlPiQfePtjL0TWQVkg7Ey4n4+Oa2J0gzVuAiEA7PR90cn+56a0NwRiaKvfTEz1G62D1FMh9mTMsFMqICU="}]},"_npmUser":{"name":"dav3","email":"npmjs@dav3.cc"},"directories":{},"maintainers":[{"name":"dav3","email":"npmjs@dav3.cc"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-dynamics365-server_2.1.0_1754350294642_0.7073848108896306"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-31T07:59:54.059Z","modified":"2025-08-04T23:31:35.138Z","1.0.0":"2025-07-31T07:59:54.372Z","1.1.0":"2025-07-31T11:36:38.234Z","1.2.0":"2025-07-31T11:41:24.021Z","1.3.0":"2025-07-31T11:51:30.579Z","1.4.0":"2025-07-31T12:07:34.238Z","1.5.1":"2025-07-31T13:59:11.435Z","1.5.2":"2025-07-31T14:07:53.353Z","1.6.0":"2025-07-31T14:17:29.989Z","2.0.0":"2025-08-02T11:38:53.413Z","2.0.1":"2025-08-02T12:20:53.897Z","2.0.2":"2025-08-02T13:20:47.455Z","2.1.0":"2025-08-04T23:31:34.895Z"},"bugs":{"url":"https://github.com/dave-palt/mcp-dynamics-365/issues"},"author":{"name":"Dav3","email":"mcp-dynamics-365@dav3.cc"},"license":"MIT","homepage":"https://github.com/dave-palt/mcp-dynamics-365#readme","keywords":["mcp","dynamics365","crm","microsoft","model-context-protocol","ai","assistant"],"repository":{"type":"git","url":"git+https://github.com/dave-palt/mcp-dynamics-365.git"},"description":"Generic MCP server for Dynamics 365 CRM operations (AI-generated side project with limited maintenance)","maintainers":[{"name":"dav3","email":"npmjs@dav3.cc"}],"readme":"# Dynamics 365 CRM MCP Server\n\nA comprehensive Model Context Protocol (MCP) server for interacting with Microsoft Dynamics 365 CRM. This server provides AI agents with the ability to perform CRUD operations, query data, fetch schemas, and execute custom operations on Dynamics 365 entities.\n\n### Remote Server (HTTP Transport)\n\nThis connects to a running HTTP server instance. First, start the server:\n\n```bash\n# Start server on default port (3300) for local access\npnpm run dev:http\n\n# Or start server for remote access (binds to all interfaces)\npnpm run start:http-remote\n```\n\n#### For VS Code\n\nAdd to your `mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"dynamics365-crm-http\": {\n      \"url\": \"http://localhost:3300/mcp\"\n    }\n  },\n  \"inputs\": []\n}\n```\n\nOr, if you need to use OAuth authentication (for protected servers):\n\n```json\n{\n  \"servers\": {\n    \"dynamics365-crm-http\": {\n      \"url\": \"http://localhost:3300/mcp\",\n      \"oauth\": {\n        \"client_id\": \"your_github_client_id\",\n        \"client_secret\": \"your_github_client_secret\"\n      }\n    }\n  },\n  \"inputs\": []\n}\n```\n\nFor remote servers, replace `localhost` with the server's IP address or hostname:\n\n```json\n{\n  \"servers\": {\n    \"dynamics365-crm-http\": {\n      \"url\": \"http://your-server-ip:3300/mcp\"\n    }\n  },\n  \"inputs\": []\n}\n```\n\n#### For Claude Desktop\n\nAdd to your `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"dynamics365-crm-http\": {\n      \"url\": \"http://localhost:3300/mcp\"\n    }\n  }\n}\n```\n\nOr, if you need to use OAuth authentication (for protected servers):\n\n```json\n{\n  \"mcpServers\": {\n    \"dynamics365-crm-http\": {\n      \"url\": \"http://localhost:3300/mcp\",\n      \"oauth\": {\n        \"client_id\": \"your_github_client_id\",\n        \"client_secret\": \"your_github_client_secret\"\n      }\n    }\n  }\n}\n```\n\n**Note:** When using HTTP transport, the server must be running separately and environment variables must be configured on the server side (not in the client configuration).\n\n**Note:** Environment variables must be explicitly specified in the MCP configuration. The server does not automatically load `.env` files when run via MCP clients.\n\n> **⚠️ Disclaimer**: This project was generated with the assistance of AI as a side project. While functional, it may not receive regular maintenance or updates. Use at your own discretion and consider forking if you need ongoing support.\n\n## Features\n\n- **Generic Entity Operations**: Query, create, update, and delete any Dynamics 365 entity\n- **Schema Discovery**: Fetch entity metadata and available entity sets\n- **Flexible Querying**: Support for OData query parameters (select, filter, orderby, top, skip, expand)\n- **Custom OData Queries**: Execute direct OData queries for complex scenarios\n- **Function Execution**: Call Dynamics 365 functions and actions\n- **Authentication**: Secure OAuth 2.0 client credentials flow\n- **Error Handling**: Comprehensive error handling and logging\n\n## Prerequisites\n\n- Node.js 18+\n- pnpm (recommended package manager)\n- Dynamics 365 CRM instance\n- Azure AD app registration with appropriate permissions\n\n### Package Manager Usage\n\nThis project uses **pnpm** for local development and **npm** for registry operations:\n\n- **Use pnpm**: `pnpm install`, `pnpm run build`, `pnpm run dev`, `pnpm run test`\n- **Use npm**: `npm publish`, `npm install -g @dav3/mcp-dynamics365-server`\n\n## Azure AD App Registration\n\n1. Go to Azure Portal > Azure Active Directory > App registrations\n2. Create a new registration or use existing one\n3. Note down:\n   - Application (client) ID\n   - Directory (tenant) ID\n4. Create a client secret and note it down\n5. Grant the following API permissions:\n   - Dynamics CRM > user_impersonation\n   - Or create custom permissions based on your needs\n\n## Installation\n\n1. Install dependencies:\n\n```bash\npnpm install\n```\n\n2. Copy the environment template:\n\n```bash\ncp .env.example .env\n```\n\n3. Configure your environment variables in `.env` (see consolidated snippet below):\n\n```env\n# Dynamics 365 CRM (Backend API)\nD365_BASE_URL=https://your-org.crm.dynamics.com         # Your Dynamics 365 organization URL\nD365_CLIENT_ID=your-client-id                          # Azure AD application client ID\nD365_CLIENT_SECRET=your-client-secret                  # Azure AD application client secret\nD365_TENANT_ID=your-tenant-id                         # Azure AD tenant ID\nD365_RESOURCE=https://your-org.crm.dynamics.com        # Resource URL for Dynamics 365 API\n\n# MCP OAuth Resource & Provider (Authentication)\n# Only required for HTTP transport (not needed for stdio transport)\nOAUTH_MCP_RESOURCE=http://localhost:3300\nOAUTH_AUTH_URL=https://github.com/login/oauth/authorize\nOAUTH_TOKEN_URL=https://github.com/login/oauth/access_token\nOAUTH_JWKS_URL=https://api.github.com/meta  # GitHub does not provide JWKS, so use a placeholder\nOAUTH_BASE_URL=https://github.com\nOAUTH_FLOW=opaque  # Supported values: 'jwt' (for JWT validation), 'opaque' (for API token validation)\nOAUTH_OPAQUE_USER_API=https://api.github.com/user  # Optional: endpoint for opaque token validation\nOAUTH_TOKEN_CACHE_DURATION_MS=86400000  # Optional: token validation cache duration in milliseconds (default: 24 hours)\n\n# HTTP Transport Configuration (Optional)\nMCP_HTTP_PORT=3300        # Port for HTTP transport (default: 3300)\nMCP_HTTP_HOST=localhost   # Host for HTTP transport (default: localhost)\n```\n\n### Variable Explanations\n\n**Dynamics 365 CRM (Backend API):**\n\n- `D365_BASE_URL`: Your Dynamics 365 organization URL\n- `D365_CLIENT_ID`: Azure AD application client ID\n- `D365_CLIENT_SECRET`: Azure AD application client secret\n- `D365_TENANT_ID`: Azure AD tenant ID\n- `D365_RESOURCE`: Resource URL for Dynamics 365 API\n\n**MCP OAuth Resource & Provider (Authentication):**\n\n- `OAUTH_MCP_RESOURCE`: The resource identifier exposed to MCP clients (used for OAuth audience)\n- `OAUTH_AUTH_URL`: OAuth 2.0 authorization endpoint\n- `OAUTH_TOKEN_URL`: OAuth 2.0 token endpoint\n- `OAUTH_JWKS_URL`: JWKS endpoint for public key discovery (required for JWT flow)\n- `OAUTH_BASE_URL`: OAuth provider base URL\n- `OAUTH_FLOW`: Selects the token validation flow. Use `'jwt'` for JWT validation (with JWKS), `'opaque'` for API token validation (e.g., GitHub, generic OAuth providers)\n  - `opaque` was tested with github\n  - `jwt` was NOT untested yet\n- `OAUTH_OPAQUE_USER_API`: (Optional) API endpoint for validating opaque tokens (default: GitHub user API)\n\n**HTTP Transport Configuration (Optional):**\n\n- `MCP_HTTP_PORT`: Port for HTTP transport (default: 3300)\n- `MCP_HTTP_HOST`: Host for HTTP transport (default: localhost)\n\n## Authentication Modes\n\n- If all OAuth MCP variables are set, the server enforces OAuth authentication for HTTP transport.\n- If any are missing, the server runs in unauthenticated mode (no token required).\n- The protected resource metadata endpoint (`/mcp/.well-known/oauth-protected-resource`) is only available in authenticated mode.\n\n## Usage\n\n### Development\n\n```bash\npnpm dev\n```\n\n### Production\n\n```bash\npnpm build\npnpm start\n```\n\n### Transport Options\n\nThe server supports two transport methods:\n\n#### 1. Stdio Transport (Default)\n\nFor direct integration with MCP clients:\n\n```bash\n# Default transport\nnode dist/index.js\n\n# Explicitly specify stdio\nnode dist/index.js --transport=stdio\n```\n\n#### 2. HTTP Transport\n\nFor remote access and web-based integrations:\n\n```bash\n# Default HTTP port (3300)\nnode dist/index.js --transport=http\n\n# Custom port\nnode dist/index.js --transport=http --port=8080\n```\n\nHTTP transport features:\n\n- **Streamable HTTP** protocol compatible with MCP SDK\n- **CORS support** for browser-based clients\n- **Session management** with UUID-based session IDs\n- **Default port**: 3300\n- **Endpoint**: `/mcp`\n\n#### Command Line Options\n\n```bash\n# Show help\nnode dist/index.js --help\n\n# Available options:\n--transport=<stdio|http>  Transport type (default: stdio)\n--port=<number>          Port for HTTP transport (default: 3300, or MCP_HTTP_PORT env var)\n--host=<ip-address>      Host for HTTP transport (default: localhost, or MCP_HTTP_HOST env var)\n--help, -h               Show help message\n```\n\n**Environment Variables**: Default values for `--port` and `--host` can be configured using `MCP_HTTP_PORT` and `MCP_HTTP_HOST` environment variables in your `.env` file.\n\n### Testing HTTP Transport\n\nTest the HTTP transport using the included test script:\n\n```bash\n# Start server with HTTP transport\nnode dist/index.js --transport=http\n\n# In another terminal, run the test\nnode tests/integration/test-streamable-http.js\n```\n\n## MCP Integration\n\n### Prerequisites\n\n1. **Install the MCP server globally**: `npm install -g @dav3/mcp-dynamics365-server`\n\n### Option 1: Manual Configuration (Recommended)\n\nThe standard approach is to add the server to your MCP client configuration:\n\n1. **Add to your MCP client configuration** (see examples below)\n\n### Option 2: VS Code Extension (Recommended for VS Code Users)\n\n**🚀 For the best VS Code experience, use the dedicated extension:**\n\n1. **Install the VS Code extension**: `dav3.mcp-dynamics365-extension`\n2. **Configure credentials**: Use the \"Configure MCP Dynamics 365 Server\" command\n3. **Start HTTP server**: Use \"Start HTTP Server\" command (automatic for production, local dev mode for developers)\n\n**📖 Full extension documentation**: See [`vscode-extension/README.md`](./vscode-extension/README.md) for:\n\n- Development vs Production command modes\n- Auto-detection features\n- Advanced configuration options\n- Troubleshooting guides\n\n**Note**: The extension uses HTTP transport by default and provides intelligent command visibility based on your environment (development vs production).\n\n## Configuration Examples\n\nYou can connect to the MCP server in two ways:\n\n### Local Server (Stdio Transport)\n\nThis runs the server locally and connects via stdio (standard input/output):\n\n#### For VS Code\n\nAdd to your `mcp.json` or `settings.json`:\n\n**mcp.json** (personally tested)\n\n```json\n{\n  \"servers\": {\n    \"dynamics365-crm\": {\n      \"command\": \"npx\",\n      \"args\": [\"@dav3/mcp-dynamics365-server\"],\n      \"env\": {\n        \"D365_CLIENT_ID\": \"your_client_id\",\n        \"D365_CLIENT_SECRET\": \"your_client_secret\",\n        \"D365_TENANT_ID\": \"your_tenant_id\",\n        \"D365_BASE_URL\": \"https://your-org.crm.dynamics.com\",\n        \"D365_RESOURCE\": \"https://your-org.crm.dynamics.com\"\n      }\n    }\n  },\n  \"inputs\": []\n}\n```\n\n**settings.json** (untested)\n\n```json\n{\n  \"mcp.servers\": {\n    \"dynamics365\": {\n      \"command\": \"npx\",\n      \"args\": [\"@dav3/mcp-dynamics365-server\"],\n      \"env\": {\n        \"D365_CLIENT_ID\": \"your_client_id\",\n        \"D365_CLIENT_SECRET\": \"your_client_secret\",\n        \"D365_TENANT_ID\": \"your_tenant_id\",\n        \"D365_BASE_URL\": \"https://your-org.crm.dynamics.com\",\n        \"D365_RESOURCE\": \"https://your-org.crm.dynamics.com\"\n      }\n    }\n  }\n}\n```\n\n#### For Claude Desktop\n\nAdd to your `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"dynamics365-crm\": {\n      \"command\": \"npx\",\n      \"args\": [\"@dav3/mcp-dynamics365-server\"],\n      \"env\": {\n        \"D365_BASE_URL\": \"https://your-org.crm.dynamics.com\",\n        \"D365_CLIENT_ID\": \"your-client-id\",\n        \"D365_CLIENT_SECRET\": \"your-client-secret\",\n        \"D365_TENANT_ID\": \"your-tenant-id\",\n        \"D365_RESOURCE\": \"https://your-org.crm.dynamics.com\"\n      }\n    }\n  }\n}\n```\n\n**Note:** Environment variables must be explicitly specified in the MCP configuration. The server does not automatically load `.env` files when run via MCP clients.\n\n## Available Tools\n\n> **📋 Naming Convention**:\n>\n> - **Metadata operations** (`get_entity_schema`, `get_attribute_schema`): Use **singular** entity logical names (e.g., `\"contact\"`, `\"account\"`)\n> - **Data operations** (`query_entities`, `get_entity`, `create_entity`, etc.): Use **plural** entity set names (e.g., `\"contacts\"`, `\"accounts\"`)\n\n### 1. `get_entity_schema`\n\nGet the schema/metadata for a specific Dynamics 365 entity.\n\n**Parameters:**\n\n- `entityName` (string): The entity logical name in singular form (e.g., \"contact\", \"account\")\n\n**Example:**\n\n```json\n{\n  \"entityName\": \"contact\"\n}\n```\n\n### 2. `list_entities`\n\nList all available entity sets in Dynamics 365.\n\n**Parameters:**\n\n- `includeSystem` (boolean, optional): Whether to include system entities\n\n**Example:**\n\n```json\n{\n  \"includeSystem\": false\n}\n```\n\n### 3. `query_entities`\n\nQuery entities with flexible filtering, sorting, and selection options.\n\n**Parameters:**\n\n- `entitySet` (string): The entity set name\n- `select` (array, optional): Fields to select\n- `filter` (string, optional): OData filter expression\n- `orderby` (string, optional): OData orderby expression\n- `top` (number, optional): Maximum number of records\n- `skip` (number, optional): Number of records to skip\n- `expand` (string, optional): Related entities to expand\n\n**Example:**\n\n```json\n{\n  \"entitySet\": \"contacts\",\n  \"select\": [\"firstname\", \"lastname\", \"emailaddress1\"],\n  \"filter\": \"firstname eq 'John'\",\n  \"orderby\": \"createdon desc\",\n  \"top\": 10\n}\n```\n\n### 4. `get_entity`\n\nGet a specific entity record by ID.\n\n**Parameters:**\n\n- `entitySet` (string): The entity set name\n- `id` (string): The entity ID (GUID)\n- `select` (array, optional): Specific fields to retrieve\n\n**Example:**\n\n```json\n{\n  \"entitySet\": \"contacts\",\n  \"id\": \"12345678-1234-1234-1234-123456789abc\",\n  \"select\": [\"firstname\", \"lastname\"]\n}\n```\n\n### 5. `create_entity`\n\nCreate a new entity record.\n\n**Parameters:**\n\n- `entitySet` (string): The entity set name\n- `data` (object): The entity data to create\n\n**Example:**\n\n```json\n{\n  \"entitySet\": \"contacts\",\n  \"data\": {\n    \"firstname\": \"John\",\n    \"lastname\": \"Doe\",\n    \"emailaddress1\": \"john.doe@example.com\"\n  }\n}\n```\n\n### 6. `update_entity`\n\nUpdate an existing entity record.\n\n**Parameters:**\n\n- `entitySet` (string): The entity set name\n- `id` (string): The entity ID (GUID)\n- `data` (object): The entity data to update\n\n**Example:**\n\n```json\n{\n  \"entitySet\": \"contacts\",\n  \"id\": \"12345678-1234-1234-1234-123456789abc\",\n  \"data\": {\n    \"emailaddress1\": \"john.doe.updated@example.com\"\n  }\n}\n```\n\n### 7. `delete_entity`\n\nDelete an entity record.\n\n**Parameters:**\n\n- `entitySet` (string): The entity set name\n- `id` (string): The entity ID (GUID)\n\n**Example:**\n\n```json\n{\n  \"entitySet\": \"contacts\",\n  \"id\": \"12345678-1234-1234-1234-123456789abc\"\n}\n```\n\n### 8. `execute_odata_query`\n\nExecute a custom OData query directly.\n\n**Parameters:**\n\n- `query` (string): The OData query string\n\n**Example:**\n\n```json\n{\n  \"query\": \"contacts?$filter=firstname eq 'John' and lastname eq 'Doe'&$select=contactid,fullname\"\n}\n```\n\n### 9. `execute_function`\n\nExecute a Dynamics 365 function or action.\n\n**Parameters:**\n\n- `functionName` (string): The function or action name\n- `parameters` (object, optional): Function parameters\n- `method` (string, optional): HTTP method (GET, POST, PATCH, DELETE)\n\n**Example:**\n\n```json\n{\n  \"functionName\": \"WhoAmI\",\n  \"method\": \"GET\"\n}\n```\n\n## Common Entity Sets\n\n- `accounts` - Account records\n- `contacts` - Contact records\n- `leads` - Lead records\n- `opportunities` - Opportunity records\n- `cases` - Case records\n- `tasks` - Task records\n- `appointments` - Appointment records\n- `emails` - Email records\n- `phonecalls` - Phone call records\n\n## OData Query Examples\n\n### Basic Filtering\n\n```\ncontacts?$filter=firstname eq 'John'\n```\n\n### Multiple Conditions\n\n```\ncontacts?$filter=firstname eq 'John' and lastname eq 'Doe'\n```\n\n### Selecting Specific Fields\n\n```\ncontacts?$select=firstname,lastname,emailaddress1\n```\n\n### Ordering Results\n\n```\ncontacts?$orderby=createdon desc\n```\n\n### Limiting Results\n\n```\ncontacts?$top=10&$skip=20\n```\n\n### Expanding Related Records\n\n```\ncontacts?$expand=parentcustomerid\n```\n\n## Error Handling\n\nThe server provides comprehensive error handling:\n\n- Authentication errors are logged and returned with appropriate messages\n- API errors include status codes and detailed error descriptions\n- Validation errors for missing required parameters\n- Network and timeout errors are handled gracefully\n\n## Security Considerations\n\n- Store sensitive credentials in environment variables\n- Use least-privilege principle for Azure AD app permissions\n- Implement IP restrictions if needed\n- Monitor and log access patterns\n- Rotate client secrets regularly\n\n## Contributing\n\nFor detailed development guidelines and conventions, see [`copilot-instructions.md`](.github/copilot-instructions.md).\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests if applicable\n5. Submit a pull request\n\n### Development Setup\n\n```bash\n# Install dependencies\npnpm install\n\n# Build the project\npnpm run build\n\n# Run tests\npnpm run test:read-tools\n\n# Type checking\npnpm run typecheck\n```\n\n## Support\n\nFor issues and questions:\n\n1. Check the troubleshooting section below\n2. Review Dynamics 365 Web API documentation\n3. Create an issue in the repository\n\n## Troubleshooting\n\n### Authentication Issues\n\n- Verify client ID, secret, and tenant ID\n- Check Azure AD app permissions\n- Ensure the app has been granted admin consent\n- Verify the resource URL matches your Dynamics 365 instance\n\n### Connection Issues\n\n- Check the base URL format\n- Verify network connectivity\n- Check firewall and proxy settings\n- Validate SSL certificates\n\n### Query Issues\n\n- Review OData syntax\n- Check entity and field names (case sensitive)\n- Verify entity permissions\n\n## Contributing & Support\n\nThis project was generated with AI assistance as a side project. While contributions are welcome, please note:\n\n- **Limited Maintenance**: This project may not receive regular updates or active maintenance\n- **Community Driven**: The community is encouraged to fork and maintain their own versions\n- **Best Effort Support**: Issues will be addressed on a best-effort basis when time permits\n- **Pull Requests**: Well-documented PRs are welcome, but review times may vary\n\nIf you need reliable, maintained software for production use, consider:\n\n- Forking this repository and maintaining your own version\n- Contributing to make this project more robust\n- Looking for alternative commercial solutions\n\n### AI Generation Notice\n\nThis project was created with the assistance of AI tools. While the code has been reviewed and tested, users should:\n\n- Thoroughly test in their own environments\n- Review code for security implications\n- Understand the functionality before production use\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n","readmeFilename":"README.md"}