{"_id":"@modelcontextprotocol/sdk","_rev":"50-d9d5ca20f8c200f0b9548488f1177a24","name":"@modelcontextprotocol/sdk","dist-tags":{"latest":"1.15.0"},"versions":{"0.4.0":{"name":"@modelcontextprotocol/sdk","version":"0.4.0","author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@0.4.0","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"}],"homepage":"https://modelcontextprotocol.github.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"22bb4a97d4d28aa1126401bbcc026fab4bee40d9","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-0.4.0.tgz","fileCount":71,"integrity":"sha512-79gx8xh4o9YzdbtqMukOe5WKzvEZpvBA1x8PAgJWL7J5k06+vJx8NK2kWzOazPgqnfDego7cNEO8tjai/nOPAA==","signatures":[{"sig":"MEUCIQCOSR4DsOiFwgIuBzHVn/7CRrWZvuV804T63Nr8tHohqAIgJ0GBXoQvC8QVUeCW0buo60VuOibUl+tnvqNY95zbNO0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1555032},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"./*":"./dist/*"},"gitHead":"373b6f1d717e340bc7dd800d433cc640cf9e6eb5","scripts":{"lint":"eslint src/","test":"jest","build":"tsc","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"tsc"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"_npmVersion":"10.7.0","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.4","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","content-type":"^1.0.5"},"typesVersions":{"*":{"*":["./dist/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","eventsource":"^2.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.4.0_1731340395796_0.8009038891122069","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"@modelcontextprotocol/sdk","version":"0.5.0","author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@0.5.0","maintainers":[{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"jspahrsummers","email":"justin@jspahrsummers.com"}],"homepage":"https://modelcontextprotocol.github.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"d657577f2ead2741cad064cbe87ed2244eed80e6","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-0.5.0.tgz","fileCount":87,"integrity":"sha512-RXgulUX6ewvxjAG0kOpLMEdXXWkzWgaoCGaA2CwNW7cQCIphjpJhjpHSiaPdVCnisjRF/0Cm9KWHUuIoeiAblQ==","signatures":[{"sig":"MEUCIQDstkXcOKZBBMN9ZJTufB6BEB9nLPbDxpaYAEADAUaK4gIgRVRg+oQlZohKNtjUucYzYqS7PvJmE0GSDOdBNPJn92o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1654071},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"./*":"./dist/*"},"gitHead":"106d1c26b09514b36f00681baf147fc051c2df0e","scripts":{"lint":"eslint src/","test":"jest","build":"tsc","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"tsc"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"_npmVersion":"10.7.0","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.4","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","content-type":"^1.0.5"},"typesVersions":{"*":{"*":["./dist/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","eventsource":"^2.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.5.0_1731678473656_0.2032203008736313","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"@modelcontextprotocol/sdk","version":"0.6.0","author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@0.6.0","maintainers":[{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"jspahrsummers","email":"justin@jspahrsummers.com"}],"homepage":"https://modelcontextprotocol.github.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"a691c0aa634a2ac4b61ee7cb4a24603120fc1f4f","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-0.6.0.tgz","fileCount":79,"integrity":"sha512-9rsDudGhDtMbvxohPoMMyAUOmEzQsOK+XFchh6gZGqo8sx9sBuZQs+CUttXqa8RZXKDaJRCN2tUtgGof7jRkkw==","signatures":[{"sig":"MEYCIQDsoKrbVKvHroxyMlWvsXh0yvwMshvuItjcnEYklQqPOgIhAL5oLIcE+IHhX4eX1lgIB08qR+2JOneL9lV0bb7/WZhr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1659551},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"./*":"./dist/*"},"gitHead":"1cb92b6246868666f160dc7cb66e789d02b2b182","scripts":{"lint":"eslint src/","test":"jest","build":"tsc","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"tsc"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"_npmVersion":"10.7.0","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.4","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","content-type":"^1.0.5"},"typesVersions":{"*":{"*":["./dist/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","eventsource":"^2.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.6.0_1731775385937_0.11203307324985978","host":"s3://npm-registry-packages"}},"0.6.1":{"name":"@modelcontextprotocol/sdk","version":"0.6.1","author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@0.6.1","maintainers":[{"name":"ashwin-ant","email":"ashwin@anthropic.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"jspahrsummers","email":"justin@jspahrsummers.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"4e144155992749faf191faa512ac0c7a23152522","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-0.6.1.tgz","fileCount":79,"integrity":"sha512-OkVXMix3EIbB5Z6yife2XTrSlOnVvCLR1Kg91I4pYFEsV9RbnoyQVScXCuVhGaZHOnTZgso8lMQN1Po2TadGKQ==","signatures":[{"sig":"MEQCIGCL7bNn5NzfoOufX0WAqwfz7XaXAkSCIHSr52nNtVDRAiBRnE4B+tXI//38z7A7Jl6j7M8DY89Gf0ibsu4xtzHJvQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1660405},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"./*":"./dist/*"},"gitHead":"96627096d9110c85aef8b3487fa626be7908a835","scripts":{"lint":"eslint src/","test":"jest","build":"tsc","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"tsc"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"_npmVersion":"10.7.0","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.4","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","content-type":"^1.0.5"},"typesVersions":{"*":{"*":["./dist/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","eventsource":"^2.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.6.1_1732126821950_0.5103503731816905","host":"s3://npm-registry-packages"}},"0.7.0":{"name":"@modelcontextprotocol/sdk","version":"0.7.0","author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@0.7.0","maintainers":[{"name":"ashwin-ant","email":"ashwin@anthropic.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"jspahrsummers","email":"justin@jspahrsummers.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"c9e21005429c2ff24348ea6c68a78aa5c0e3d20e","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-0.7.0.tgz","fileCount":79,"integrity":"sha512-YlnQf8//eDHClUM607vb/6+GHmCdMnIfOkN2pcpexN4go9sYHm2JfNnqc5ILS7M8enUlwe9dQO9886l3NO3rUw==","signatures":[{"sig":"MEYCIQCGaVpUmz/GyV+DdgyxmFez0mPoHib+TQI6uvUqOnK0UAIhANfD2pCX9GQhyQtlLF1htoL9uwXBSn0ftLv9UEOQBdpk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1661262},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"./*":"./dist/*"},"gitHead":"25d3123ac3381c5b76877cb18922b39e34fa123b","scripts":{"lint":"eslint src/","test":"jest","build":"tsc","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"tsc"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"_npmVersion":"10.7.0","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.4","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","content-type":"^1.0.5"},"typesVersions":{"*":{"*":["./dist/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","eventsource":"^2.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.7.0_1732138247797_0.03220034004441863","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@modelcontextprotocol/sdk","version":"1.0.0","author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.0.0","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"a910c3b7487c137dc3e999ed4a5223329ba7ab44","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.0.0.tgz","fileCount":79,"integrity":"sha512-mbe0otw8vTtZoL5pVucXAmx6oEC7YjdXBgVeFkJXASu4OAnLkrIeNw9zwzU5CwEp19M54bjOUGcna90Dl/H5Bw==","signatures":[{"sig":"MEYCIQCHdzTAYVqQ7x9HaYq4QnY6clPa6+vGwHu6SbHShUPtIgIhAN3QVKIuMHnCiuS6cFFKIAgHdRxM05i0hBD/jDFWlIfQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1661484},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"./*":"./dist/*"},"gitHead":"cab95e53a054dfa5a0743d26ec33f6baa4765e25","scripts":{"lint":"eslint src/","test":"jest","build":"tsc","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"tsc"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.5","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","content-type":"^1.0.5"},"typesVersions":{"*":{"*":["./dist/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","eventsource":"^2.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.0_1732547179051_0.29249999768382184","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@modelcontextprotocol/sdk","version":"1.0.1","author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.0.1","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"810684e7c11b7e056adab895edf3c4a1bc796205","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.0.1.tgz","fileCount":79,"integrity":"sha512-slLdFaxQJ9AlRg+hw28iiTtGvShAOgOKXcD0F91nUcRYiOMuS9ZBYjcdNZRXW9G5JQ511GRTdUy1zQVZDpJ+4w==","signatures":[{"sig":"MEQCIEVx8/s4MU+4DVpojRAZjhym+aJ23riP+Brrp1+u/s+jAiA82s7wyMqkVEZjm4blfyZeCQ6Vkrx1S3iFAGeXBhnjOA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1660757},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"./*":"./dist/*"},"gitHead":"105b310b184d8db2b736c13e6834b711e8f8555f","scripts":{"lint":"eslint src/","test":"jest","build":"tsc","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"tsc"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.5","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","content-type":"^1.0.5"},"typesVersions":{"*":{"*":["./dist/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","eventsource":"^2.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.1_1732632452022_0.6108397885787584","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@modelcontextprotocol/sdk","version":"1.0.2","author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.0.2","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"373a8d5181a28437ce1a0fe6a5cf87c8e8af8278","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.0.2.tgz","fileCount":79,"integrity":"sha512-QWjVDWkpQjCtbIYUD1t4KzcrYQVtKC9hGs5FHFjlH30oAjZJ/nSYqn8xTqT1ugtiI0txa+uHNrsEIFLew+CCSw==","signatures":[{"sig":"MEUCIQDF7yzLhkEB7iketV/K71u729IosJu942esGOV/57Rn+AIgMuXQU5SJYcBABeYaJdR8uiCuaE7K+Q0wmi1cUt+SaYs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1620858},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"./*":"./dist/*"},"gitHead":"45af3820fabeec456fafc3ac44a5980d0512e10a","scripts":{"lint":"eslint src/","test":"jest","build":"tsc","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"tsc"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"deprecated":"Deprecated due to accidental breaking change in point release","_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.5","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","content-type":"^1.0.5"},"typesVersions":{"*":{"*":["./dist/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","eventsource":"^2.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.2_1733322198420_0.9902568061513615","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@modelcontextprotocol/sdk","version":"1.0.3","author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.0.3","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"778e1764c2f4844ae44492aabd0d55a680db2a65","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.0.3.tgz","fileCount":79,"integrity":"sha512-2as3cX/VJ0YBHGmdv3GFyTpoM8q2gqE98zh3Vf1NwnsSY0h3mvoO07MUzfygCKkWsFjcZm4otIiqD6Xh7kiSBQ==","signatures":[{"sig":"MEUCIDC3k6gxdObQQM2kOuKlP+WouvG5+jGwHnuGGlYwEr/AAiEAgq+x8C7jclxoCCHLK4SJbGb2M0g3QI3h5r6S6HyHGD8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1660866},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"./*":"./dist/*"},"gitHead":"989550d5f890fe70f9c1cdaee1714fb408c780f0","scripts":{"lint":"eslint src/","test":"jest","build":"tsc","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"tsc"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.5","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","content-type":"^1.0.5"},"typesVersions":{"*":{"*":["./dist/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","eventsource":"^2.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.3_1733334036270_0.16522911947504348","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@modelcontextprotocol/sdk","version":"1.0.4","author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.0.4","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"34ad1edd3db7dd7154e782312dfb29d2d0c11d21","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.0.4.tgz","fileCount":79,"integrity":"sha512-C+jw1lF6HSGzs7EZpzHbXfzz9rj9him4BaoumlTciW/IDDgIpweF/qiCWKlP02QKg5PPcgY6xY2WCt5y2tpYow==","signatures":[{"sig":"MEYCIQCPOj2nAyp4M6rohFumsG42DzYqc0Oq/stnKUJF4q4IjgIhAOVCkSQk44Q66Itw3grofTHEoxzSfAffiWFjR1QkUj4z","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1661074},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"./*":"./dist/*"},"gitHead":"422a5359ee0bff943389eddf1d71ca23c32ab92f","scripts":{"lint":"eslint src/","test":"jest","build":"tsc","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"tsc"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.5","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","content-type":"^1.0.5"},"typesVersions":{"*":{"*":["./dist/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","eventsource":"^2.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.4_1734441024820_0.2598220965890621","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@modelcontextprotocol/sdk","version":"1.1.0","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.1.0","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"9343ee9c53ac4138608572c2eb34db78752d8664","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.1.0.tgz","fileCount":55,"integrity":"sha512-o5PIPz0vc1bJYXS0oLvRr8yUOzYtxEFL1rWP4aiO8qLslCksmbKhONy6CTpq0WPuIXUt2YuXoRtVA2EcLix3fw==","signatures":[{"sig":"MEQCID1wjudKubktRTzl2Kwc01tbgvgdE8RTUqN2dIkQBNvIAiBLIjYVfbD9/jiNAWwBWztc6llDeio4HAYQwBZ7axELBQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1596070},"type":"module","engines":{"node":">=18"},"exports":{"./*":"./dist/*"},"gitHead":"3f178b2b7e2c6710353c650409f9ec01d5822ad7","scripts":{"lint":"eslint src/","test":"jest","build":"tsc -p tsconfig.prod.json","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"tsc -p tsconfig.prod.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.5","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","content-type":"^1.0.5"},"typesVersions":{"*":{"*":["./dist/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","eventsource":"^2.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.1.0_1735895025663_0.6370785698562458","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@modelcontextprotocol/sdk","version":"1.1.1","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.1.1","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"9402e14c339da4420700d12288730a38fac777e3","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.1.1.tgz","fileCount":55,"integrity":"sha512-siCApQgBn3U8R93TdumLtezRyRIlrA/a63GrTRO1jP31fRyOohpu0iPLvXzsyptxmy7B8GDxr8+r+Phu6mHgzg==","signatures":[{"sig":"MEUCIQCnCuCRvZyiP85Gk1cuj53dlYeBmldviJGz/MfeUE+YdQIgSNXWSiiSDlvFMfCEXFYj7P9iYl2SsmYEk1T+eYXiC+g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1596883},"type":"module","engines":{"node":">=18"},"exports":{"./*":"./dist/*"},"gitHead":"00c7ab0f9da451ae236c05cc479c7ed8167c38b5","scripts":{"lint":"eslint src/","test":"jest","build":"tsc -p tsconfig.prod.json","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"tsc -p tsconfig.prod.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.5","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","content-type":"^1.0.5"},"typesVersions":{"*":{"*":["./dist/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","eventsource":"^2.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.1.1_1736504333089_0.6618765320800153","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@modelcontextprotocol/sdk","version":"1.2.0","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.2.0","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"b0a81459d3df0d864b93eb2e0faff1d1cb4ffdf3","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.2.0.tgz","fileCount":109,"integrity":"sha512-ymA0KtuF3wvJtKEtnA7XSrb2BsHzIdxW1UcNvvMowwbS6/b5MMQbngPoscO+Ftj7NmwwBq5WXW6qVKb8D1FJrA==","signatures":[{"sig":"MEYCIQCv8DY5XqXuw5TQ43ny6PImHkLBSzn8HSlp67iY+qCFRAIhAKxadnKNQx5pL99Kxm9rO3l6C+pE7gcuBNPbBzC+fQz4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3195202},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"405ee78d06bd609273e3601f08e11f0324fdb295","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.5","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","content-type":"^1.0.5"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","eventsource":"^2.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.2.0_1737386997491_0.15865074380247957","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@modelcontextprotocol/sdk","version":"1.3.0","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.3.0","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"eef2724dffb8bdb5c0acabe55a83cca2d56a3a1b","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.3.0.tgz","fileCount":133,"integrity":"sha512-no7j22gAE5dYZ65PppPfbnevO5GiX8b53LA7tb6KfUrmHMFac4ciESZctoivC97aoH4i0xQBtTzli1Q+wpMy5w==","signatures":[{"sig":"MEUCIBrc+XsRWDgcZtEEusSrTkzCmhGe/rrD7lSMmqZHQb6IAiEAzGHUi+x+OHiDrue6c9nKkqiYsUFmjT/IbLqzgK81eIg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3340208},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"438505b74ceaacfb7b28ab9e877c728ba5e19479","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.5","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","content-type":"^1.0.5","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","eventsource":"^2.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.3.0_1737387475165_0.9686708830057069","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@modelcontextprotocol/sdk","version":"1.3.1","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.3.1","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"a5d34a7a815a56a47d6de252a6f72707fc1d26b8","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.3.1.tgz","fileCount":133,"integrity":"sha512-Fu3HstNO03/S5nvwh3KjRfP5JOSMl6IbOBxRl6JBDXMFRHPSJ4kiiV7n5yJjY51GtrFw3Y+V/vdsweN5bxULWQ==","signatures":[{"sig":"MEQCICd+OcX8XIJ/vgMaqw09H8rnskutggxexWHK60hCtdEqAiBE2tNBTKlM0DCA3VD3nFGhKm5T7SyWtqsLqqXa5CXC6g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3342577},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"1fb33e8117c5ca98eb7dcb5747f975828d316a4a","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.5","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","content-type":"^1.0.5","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","eventsource":"^2.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.3.1_1737464292510_0.37714835556773996","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@modelcontextprotocol/sdk","version":"1.3.2","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.3.2","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"056b32f96a0b15bbfbb8dc555db5af35f6039aa2","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.3.2.tgz","fileCount":133,"integrity":"sha512-Go+Iv/QTilhOxZppH2IuX+RaR9a4mjg/+PX17imoKqbb7mvYMN2dgjASL6PhKj07tRR4F8VM3ScPPlBenZ+gIw==","signatures":[{"sig":"MEUCID/HqBLrJLx6Q4O4MKM4s6VLTxaISWporRTLNoyjiEGXAiEAu6SmAFyVa8ajoZGFdvb+RiImaycDJ09VbnVzYhsoSoo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3343335},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"cf4c592c8be4a52e3d9e159eb146bfe2f3f77aea","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.5","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","content-type":"^1.0.5","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","eventsource":"^2.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.3.2_1737546363278_0.6042475356895942","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@modelcontextprotocol/sdk","version":"1.4.0","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.4.0","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"79ef2bc449a8a1caff3f9f93000849faf901aba0","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.4.0.tgz","fileCount":133,"integrity":"sha512-50YTsT4H9PuqmgwXkr/BPl0ankfEfxqVtFG8I378XqUThasnYRdNwE2PqktiJNm5MncOf3s5q37juv6kMe6WZQ==","signatures":[{"sig":"MEUCIAs7R0G5b8xA7Ab/Zd0WnB9+PPoNsr+NTO+EPiqy3yfhAiEA4qv2hdRvy8wGEB1IHbkiR5KqFDyq6ie2b6xbcEv/SGc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3351429},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"8533f106bf2140a415a14bd982a4493a67439474","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.5","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","eventsource":"^3.0.2","content-type":"^1.0.5","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.4.0_1737640930936_0.043223038675402226","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@modelcontextprotocol/sdk","version":"1.4.1","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.4.1","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"27e7a182a998c2fc63da5cf7a00d1ac52e1f07b6","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.4.1.tgz","fileCount":133,"integrity":"sha512-wS6YC4lkUZ9QpP+/7NBTlVNiEvsnyl0xF7rRusLF+RsG0xDPc/zWR7fEEyhKnnNutGsDAZh59l/AeoWGwIb1+g==","signatures":[{"sig":"MEUCIBRwYCp0sU6AsMtxQJANFqSr8y5F93h7oRt9sFwmzlt1AiEA+M7otjKLcSqGdoa1Kf7ybEL0hqOSH50dodCK+wnnCtM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3353018},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"87197fb4a7676dcf4d0f6ac1b91fb22e13c1f439","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.5","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","eventsource":"^3.0.2","content-type":"^1.0.5","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.4.1_1737730446214_0.7968088486412932","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@modelcontextprotocol/sdk","version":"1.5.0","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.5.0","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"4071e768498a286194ec7686ee4c2f6e9647506d","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.5.0.tgz","fileCount":133,"integrity":"sha512-IJ+5iVVs8FCumIHxWqpwgkwOzyhtHVKy45s6Ug7Dv0MfRpaYisH8QQ87rIWeWdOzlk8sfhitZ7HCyQZk7d6b8w==","signatures":[{"sig":"MEQCIH7gcDabNww6VOkOpEh9L9+zxIVzuR+xqamNzOjmXCVPAiAzq84FFA82S0HOi3tjErY6KNzQN/jCWCkiznkhYYr2Gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3353663},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"423b62ba8a23aec53b6fb90213fc91285362e0ad","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.6","dependencies":{"zod":"^3.23.8","raw-body":"^3.0.0","eventsource":"^3.0.2","content-type":"^1.0.5","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","express":"^4.19.2","ts-jest":"^29.2.4","@types/ws":"^8.5.12","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^4.17.21","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.5.0_1739370815720_0.44769826456771034","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@modelcontextprotocol/sdk","version":"1.6.0","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.6.0","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"1d1849c9b36c0e494cf77398579dbd7d46c1ed34","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.6.0.tgz","fileCount":253,"integrity":"sha512-585s8g+jzuGBomzgzDeP5l8gEyiSs+KhoAHbA2ZZ24Zgm83IZsyCLl/fmWhPHbfYsuLG8NE6SWGZA5ZBql8jSw==","signatures":[{"sig":"MEQCIH8NgF6yMq+2Kolo3h0iXy1uLp9g1HLtVN+ECJq4C0nGAiBV7FasFYb5biOURm5Ug744Qzl+Yo9eKr5iGprcyXkl4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3624748},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"d5906b7cf206e2b66f4d8f843a24f213fe7a23dd","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.6","dependencies":{"zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^4.1.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.6.0_1740395969092_0.40687382788300863","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@modelcontextprotocol/sdk","version":"1.6.1","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.6.1","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"49a2fc8fb2470ba9a0513eb13b63ff4d4e21a600","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.6.1.tgz","fileCount":253,"integrity":"sha512-oxzMzYCkZHMntzuyerehK3fV6A2Kwh5BD6CGEJSVDU2QNEhfLOptf2X7esQgaHZXHZY0oHmMsOtIDLP71UJXgA==","signatures":[{"sig":"MEUCIEFJB1LLRkSOLdHDCFsOYFKZbjl5P6/evbAKj0mnRn18AiEAkHrydd/XopWUUHlsAYRO5XrQ7Hpto2jZjRqhuiCyEPU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3634500},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"66e1508162d37c0b83b0637ebcd7f07946e3d210","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.7","dependencies":{"zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^4.1.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.6.1_1740743868947_0.6694178749827262","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@modelcontextprotocol/sdk","version":"1.7.0","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.7.0","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"77da3978e2ecedba6d306c0f2178a7d5189c9224","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.7.0.tgz","fileCount":253,"integrity":"sha512-IYPe/FLpvF3IZrd/f5p5ffmWhMc3aEMuM2wGJASDqC2Ge7qatVCdbfPx3n/5xFeb19xN0j/911M2AaFuircsWA==","signatures":[{"sig":"MEQCIA5ivqzE0N27An0wL6BE8UIOdoK7HUQBsAwFuioHElvqAiAw3oUnqG1yBCIu2Vo0nhfsY9Mml1llrVDTAHpC1jVtTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3635812},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"0fa2397174eba309b54575294d56754c52b13a65","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.7","dependencies":{"zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^4.1.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.7.0_1741690557341_0.08723244115063267","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@modelcontextprotocol/sdk","version":"1.8.0","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.8.0","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"55cdd65054ec24e53800250c70e07429d669db67","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.8.0.tgz","fileCount":253,"integrity":"sha512-e06W7SwrontJDHwCawNO5SGxG+nU9AAx+jpHHZqGl/WrDBdWOpvirC+s58VpJTB5QemI4jTRcjWT4Pt3Q1NPQQ==","signatures":[{"sig":"MEQCIAG7JSmN0mGw5N+BLv1FlKOjE6D3+mbE4KeXhsF+605EAiBP/8gchQ5n3LTMd30Ir9SeWOJlwAIKSNGVeBjVZPhnrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3636203},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"784012946dbc28f69708061863da6733f91c6696","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.7","dependencies":{"zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.3","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^4.1.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.8.0_1742984410094_0.30401014050063835","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@modelcontextprotocol/sdk","version":"1.9.0","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.9.0","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"1bf7a4843870b81da26983b8e69bf398d87055f1","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.9.0.tgz","fileCount":261,"integrity":"sha512-Jq2EUCQpe0iyO5FGpzVYDNFR6oR53AIrwph9yWl7uSc7IWUMsrmpmSaTGra5hQNunXpM+9oit85p924jWuHzUA==","signatures":[{"sig":"MEUCIQCComkF9FoNftK4VNnYvfABNLUSWqK9eutPpT3eJ1QS+wIgLG9BoiIDEFN2X0Ck5zIpVc/JYJOIwocQQOwB7FSNBEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3842970},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"0d0af5402d04461b3464f415055988d17f29f7f6","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.7","dependencies":{"zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.3","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.9.0_1744022340854_0.0937889257061939","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@modelcontextprotocol/sdk","version":"1.10.0","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.10.0","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"b5f2c9701131d93a48210334e3a36e893ce879f2","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.10.0.tgz","fileCount":341,"integrity":"sha512-wijOavYZfSOADbVM0LA7mrQ17N4IKNdFcfezknCCsZ1Y1KstVWlkDZ5ebcxuQJmqTTxsNjBHLc7it1SV0TBiPg==","signatures":[{"sig":"MEUCICTa8lzQhWq3wHiV8JmaYPKssyiOtJFH7QxDmE4+38iDAiEA1hfwQfdrSeZyPKtXNrS8BCSiXOx/faHSu3CN8V0Ckb8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4275813},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"64653f54bd69ec2f6703f7c1e0745f84d220bea7","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.3","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.10.0_1744911833574_0.3298010785879244","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"@modelcontextprotocol/sdk","version":"1.10.1","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.10.1","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"b7b83cfd9a382f8b38970bccd8e97b1f7155edca","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.10.1.tgz","fileCount":349,"integrity":"sha512-xNYdFdkJqEfIaTVP1gPKoEvluACHZsHZegIoICX8DM1o6Qf3G5u2BQJHmgd0n4YgRPqqK/u1ujQvrgAxxSJT9w==","signatures":[{"sig":"MEUCIBrvzsS0TlxB0gHEJw88jTitv4REpbXgODjumsmgeeJRAiEAnFxLS5H762gC9S4C+rzDZvRyHIO6xKafSaBkn6vTLXk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4295189},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"5b6d35eb12bebfe48f8fd160b56575ec8eac7a21","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.3","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.10.1_1744974232562_0.5892874222971214","host":"s3://npm-registry-packages-npm-production"}},"1.10.2":{"name":"@modelcontextprotocol/sdk","version":"1.10.2","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.10.2","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"50cdfbf0b6fbea23420388a7b00e64c13adabac8","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.10.2.tgz","fileCount":365,"integrity":"sha512-rb6AMp2DR4SN+kc6L1ta2NCpApyA9WYNx3CrTSZvGxq9wH71bRur+zRqPfg0vQ9mjywR7qZdX2RGHOPq3ss+tA==","signatures":[{"sig":"MEYCIQDxljj5Lu0r95NmoRR3AKpPjuORjZ0AyNjuwHmX01oA7gIhAKuHPPMtuKGY5LDec50aV0T+4v2HRynqLHas1xYM69/m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4340013},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"4d6197ac07776ab95a2d63a781514a75740cf746","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.3","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.10.2_1745322841098_0.22155694525879044","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@modelcontextprotocol/sdk","version":"1.11.0","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.11.0","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"9f1762efe6f3365f0bf3b019cc9bd1629d19bc50","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.11.0.tgz","fileCount":365,"integrity":"sha512-k/1pb70eD638anoi0e8wUGAlbMJXyvdV4p62Ko+EZ7eBe1xMx8Uhak1R5DgfoofsK5IBBnRwsYGTaLZl+6/+RQ==","signatures":[{"sig":"MEQCIF1QanywAsbxhiNjX12LhUYoXxjEKIcQUkyPuEyB1tAbAiBRCzembMHmGg/eBEX35IRCoh4f6QVT1CqJg518If4Tww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4586362},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"621ccea997bf318ee99c7f64ce19609e838615fa","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.3","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.11.0_1746123079913_0.17912842552195096","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"@modelcontextprotocol/sdk","version":"1.11.1","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.11.1","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"c7f4a1432872ef10130f5d9b0072060c17a3946b","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.11.1.tgz","fileCount":365,"integrity":"sha512-9LfmxKTb1v+vUS1/emSk1f5ePmTLkb9Le9AxOB5T0XM59EUumwcS45z05h7aiZx3GI0Bl7mjb3FMEglYj+acuQ==","signatures":[{"sig":"MEYCIQCDbMy0jV9rSyZKKLzhttLbTBSNJn7ssvsHoTFN/qRupAIhAKmkydrdhbDqbm9LZHtedTb74jqbZ4dLSdH8boF99a7Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4586828},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"35fe98a0d63d697bcf5d8366c54e040e9f3a7461","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.3","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.11.1_1746724180125_0.6251326824871772","host":"s3://npm-registry-packages-npm-production"}},"1.11.2":{"name":"@modelcontextprotocol/sdk","version":"1.11.2","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.11.2","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"d81784c140d1a9cc937f61af9f071d8b78befe30","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.11.2.tgz","fileCount":365,"integrity":"sha512-H9vwztj5OAqHg9GockCQC06k1natgcxWQSRpQcPJf6i5+MWBzfKkRtxGbjQf0X2ihii0ffLZCRGbYV2f2bjNCQ==","signatures":[{"sig":"MEYCIQCjeMo+mLnq8gMNR3gpxVNgtLDNDoyHOw5urMHtIRg1iQIhANtRkvm6xondX3kUbCkJYzpHo6m1YRp2IMgH/De9xbn+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.11.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4588239},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"048bc4f75545545e91b082a43bfa4a595f4a6d4d","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.3","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.11.2_1747041708009_0.3033245350253633","host":"s3://npm-registry-packages-npm-production"}},"1.11.3":{"name":"@modelcontextprotocol/sdk","version":"1.11.3","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.11.3","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"0bcc7b2d74ac1f749d1a7632ec2d674fd7066543","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.11.3.tgz","fileCount":365,"integrity":"sha512-rmOWVRUbUJD7iSvJugjUbFZshTAuJ48MXoZ80Osx1GM0K/H1w7rSEvmw8m6vdWxNASgtaHIhAgre4H/E9GJiYQ==","signatures":[{"sig":"MEYCIQC7EzYuUBpjQRTeSgSb0j6v30l9ez5oCp7sRx3Gbrt8IwIhAK3zGITKZT8dvwSjyEiyySmxjxyFd46RqBB8bRPhMeQC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.11.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4591552},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"41c99960197e0b47b5d03aa3a1dc89842c0b906c","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.5","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.11.3_1747301806686_0.34842020822440345","host":"s3://npm-registry-packages-npm-production"}},"1.11.4":{"name":"@modelcontextprotocol/sdk","version":"1.11.4","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.11.4","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"2021c76e208874e1b8551ee24609d921c3372bde","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.11.4.tgz","fileCount":389,"integrity":"sha512-OTbhe5slIjiOtLxXhKalkKGhIQrwvhgCDs/C2r8kcBTy5HR/g43aDQU0l7r8O0VGbJPTNJvDc7ZdQMdQDJXmbw==","signatures":[{"sig":"MEUCIFTa7xWfs4HHdfsXLaJUgfYFpra25U1OfyHOlmz1hTa2AiEA2yxwOR774C6fehMqF+GtI6lj0D0o2GJyGjvAnpQcWuY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.11.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5224861},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"3f429895fb923717fe2b15934eeb6a11e2578e64","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.5","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.11.4_1747435987627_0.9884073556010868","host":"s3://npm-registry-packages-npm-production"}},"1.11.5":{"name":"@modelcontextprotocol/sdk","version":"1.11.5","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.11.5","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"5852149ab702ffc025699ce326426358335a73ee","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.11.5.tgz","fileCount":373,"integrity":"sha512-gS7Q7IHpKxjVaNLMUZyTtatZ63ca3h418zPPntAhu/MvG5yfz/8HMcDAOpvpQfx3V3dsw9QQxk8RuFNrQhLlgA==","signatures":[{"sig":"MEUCIQDaY7wJLvfSGdKm1BVr1CemYdjXAY5aA4Evz0vjZ30DHQIgaAflvj6FYLuqeQaGKCzGOBsvdzBo1nPDBK1zv096EPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.11.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4723695},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"0e34916041edd71da24db4b382ba07fdfdf66a28","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.5","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.11.5_1747855327613_0.27126637072531246","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@modelcontextprotocol/sdk","version":"1.12.0","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.12.0","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"c3ac98b7f31db068c218a4ce8c9013ac3f5713ce","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.12.0.tgz","fileCount":389,"integrity":"sha512-m//7RlINx1F3sz3KqwY1WWzVgTcYX52HYk4bJ1hkBXV3zccAEth+jRvG8DBRrdaQuRsPAJOx2MH3zaHNCKL7Zg==","signatures":[{"sig":"MEUCIQCHkGdRdrC0TCzkaiLb7pawy5I0Y/FGQPw8baO/A8x13wIgCy7c/5Rclt/OZi8feUgOUdDy9th131/X65ypv7+Qjxw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4867545},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"0c4b3082751e1ec387a2f8ddbfe6a8c882d2ce0f","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"ajv":"^6.12.6","zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.5","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.12.0_1747929027663_0.00015855145398169235","host":"s3://npm-registry-packages-npm-production"}},"1.12.1":{"name":"@modelcontextprotocol/sdk","version":"1.12.1","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.12.1","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"f77503f0263b33cb1e5b81a6ff0c322393cabd37","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.12.1.tgz","fileCount":389,"integrity":"sha512-KG1CZhZfWg+u8pxeM/mByJDScJSrjjxLc8fwQqbsS8xCjBmQfMNEBTotYdNanKekepnfRI85GtgQlctLFpcYPw==","signatures":[{"sig":"MEYCIQCRL2dM5c9H09g9G0gcM+t30KztmZE15y6sypcf5MvW1QIhAPEJfiRlnW0a+hhiK/DdarBrpZHZl6Jmz3Ec4L6SMCS2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4868264},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"590d4841373fc4eb86ecc9079834353a98cb84a3","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"ajv":"^6.12.6","zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.5","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.12.1_1748529997296_0.1477987588682934","host":"s3://npm-registry-packages-npm-production"}},"1.12.2":{"name":"@modelcontextprotocol/sdk","version":"1.12.2","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.12.2","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"8535772a27b7cf2e6a76615d8e6e30e1c718b238","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.12.2.tgz","fileCount":389,"integrity":"sha512-ShQesHTyTZfcpjnMCUOH1gbhK9CZXL30GLFw4hN8qOiIaRKbkOl91uw79WP4v3Mh4QUffjkUO60ZtBUEzaRaOg==","signatures":[{"sig":"MEYCIQCYMqaU4bRwmCZHQs7NtA/iUlp5i5dYEk0eWZErBaz3awIhAIh11/m+XfY5DbVbR9GpGfHtbWyCW8FH36tLc02tLu3b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.12.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4868820},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"b6f0273569713bffc5edd5cdc5030efc3e04e1f6","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"ajv":"^6.12.6","zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.5","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.12.2_1749806791948_0.09792700859541781","host":"s3://npm-registry-packages-npm-production"}},"1.12.3":{"name":"@modelcontextprotocol/sdk","version":"1.12.3","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.12.3","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"c1cba6434b2344d1626b5c12a5b15807e152bf6e","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.12.3.tgz","fileCount":389,"integrity":"sha512-DyVYSOafBvk3/j1Oka4z5BWT8o4AFmoNyZY9pALOm7Lh3GZglR71Co4r4dEUoqDWdDazIZQHBe7J2Nwkg6gHgQ==","signatures":[{"sig":"MEYCIQDWZEJyiCexlwCMsLBDfw5Mz6Wlb4+/4L28zQ5TZO4jxAIhAJjHlCjOtaaU04Jl0fTLoQyIPJNcuDpC8MyhLppdmi5/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.12.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4868820},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"dd69efa1de8646bb6b195ff8d5f52e13739f4550","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"ajv":"^6.12.6","zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.5","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.12.3_1749828968358_0.6052481505674521","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@modelcontextprotocol/sdk","version":"1.13.0","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.13.0","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"4ac5f4db34b78ce2da09915821869c618909e692","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.13.0.tgz","fileCount":405,"integrity":"sha512-P5FZsXU0kY881F6Hbk9GhsYx02/KgWK1DYf7/tyE/1lcFKhDYPQR9iYjhQXJn+Sg6hQleMo3DB7h7+p4wgp2Lw==","signatures":[{"sig":"MEYCIQDzlSzVulPo4wbv92XaoEXELBLqzw02da6T0u9ZZc+LjgIhALkS4bNy8UqHH6BPk2N3jx1y8gQhMySG6iOQscyO7JE4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7271831},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"a68dcdf4520fd17bc2cbe58939ca6ca385f0467b","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"jspahrsummers","actor":{"name":"jspahrsummers","type":"user","email":"justin@jspahrsummers.com"},"email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"ajv":"^6.12.6","zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.5","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.13.0_1750277590937_0.17938469040093108","host":"s3://npm-registry-packages-npm-production"}},"1.13.1":{"name":"@modelcontextprotocol/sdk","version":"1.13.1","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.13.1","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"d0e8666eb16c54488e0e83105604b9618d8d46aa","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.13.1.tgz","fileCount":405,"integrity":"sha512-8q6+9aF0yA39/qWT/uaIj6zTpC+Qu07DnN/lb9mjoquCJsAh6l3HyYqc9O3t2j7GilseOQOQimLg7W3By6jqvg==","signatures":[{"sig":"MEUCIHRzzVU2ErqubWMwQq2T+l/mCTos+LvyMCjBiigQAmwtAiEA7BqfWpZ9haamWXY8IOkrWJjHsmkDTs3fK/ELc0TNheo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7280046},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"cb4743d0ad7b7536514774e931d3f41b1ed83b60","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"mkdir -p dist/cjs && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && tsc -p tsconfig.cjs.json","build:esm":"mkdir -p dist/esm && echo '{\"type\": \"module\"}' > dist/esm/package.json && tsc -p tsconfig.prod.json","build:cjs:w":"npm run build:cjs -- -w","build:esm:w":"npm run build:esm -- -w","examples:simple-server:w":"tsx --watch src/examples/server/simpleStreamableHttp.ts --oauth"},"_npmUser":{"name":"jspahrsummers","actor":{"name":"jspahrsummers","type":"user","email":"justin@jspahrsummers.com"},"email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"ajv":"^6.12.6","zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.5","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.13.1_1750686128959_0.193002530707433","host":"s3://npm-registry-packages-npm-production"}},"1.13.2":{"name":"@modelcontextprotocol/sdk","version":"1.13.2","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.13.2","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"cb33fb668a03573cc4d3df9d194dc5c73239861f","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.13.2.tgz","fileCount":405,"integrity":"sha512-Vx7qOcmoKkR3qhaQ9qf3GxiVKCEu+zfJddHv6x3dY/9P6+uIwJnmuAur5aB+4FDXf41rRrDnOEGkviX5oYZ67w==","signatures":[{"sig":"MEUCIQCm7fylZrQ3sz4NqhwYKAEmOUpMSii9TNrBqYeU8sY1kAIgUlgKOQ816JJVxUc7xiMizoCbfzM1V9fQ/8EvufIAmwA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.13.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7291934},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"1e52f38f368d1db2a3ded4e14c6466366bc05439","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"mkdir -p dist/cjs && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && tsc -p tsconfig.cjs.json","build:esm":"mkdir -p dist/esm && echo '{\"type\": \"module\"}' > dist/esm/package.json && tsc -p tsconfig.prod.json","build:cjs:w":"npm run build:cjs -- -w","build:esm:w":"npm run build:esm -- -w","examples:simple-server:w":"tsx --watch src/examples/server/simpleStreamableHttp.ts --oauth"},"_npmUser":{"name":"jspahrsummers","actor":{"name":"jspahrsummers","type":"user","email":"justin@jspahrsummers.com"},"email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"ajv":"^6.12.6","zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.5","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.13.2_1750960740609_0.9798699423109076","host":"s3://npm-registry-packages-npm-production"}},"1.13.3":{"name":"@modelcontextprotocol/sdk","version":"1.13.3","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.13.3","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"c02a4da051bdc6077c55ca46a241ab4192ca1a6c","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.13.3.tgz","fileCount":413,"integrity":"sha512-bGwA78F/U5G2jrnsdRkPY3IwIwZeWUEfb5o764b79lb0rJmMT76TLwKhdNZOWakOQtedYefwIR4emisEMvInKA==","signatures":[{"sig":"MEUCIQDt/i6G1T28B5YUIs+mjr62aDv3y1/UHUm/vLYtfhChTQIgML9tunnBliH8lv5To59QXeCWtpF8UEJDCmRbBR+p2MA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.13.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7322399},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"1b14bd7fa4dcc436df0fcb2718f86dc376cdd904","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"mkdir -p dist/cjs && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && tsc -p tsconfig.cjs.json","build:esm":"mkdir -p dist/esm && echo '{\"type\": \"module\"}' > dist/esm/package.json && tsc -p tsconfig.prod.json","build:cjs:w":"npm run build:cjs -- -w","build:esm:w":"npm run build:esm -- -w","examples:simple-server:w":"tsx --watch src/examples/server/simpleStreamableHttp.ts --oauth"},"_npmUser":{"name":"jspahrsummers","actor":{"name":"jspahrsummers","type":"user","email":"justin@jspahrsummers.com"},"email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"ajv":"^6.12.6","zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.5","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","eventsource-parser":"^3.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.13.3_1751385065633_0.78301554566016","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@modelcontextprotocol/sdk","version":"1.14.0","keywords":["modelcontextprotocol","mcp"],"author":{"url":"https://anthropic.com","name":"Anthropic, PBC"},"license":"MIT","_id":"@modelcontextprotocol/sdk@1.14.0","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"dist":{"shasum":"377344ef4363cf1939000d74eb636ff480db0b2f","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.14.0.tgz","fileCount":413,"integrity":"sha512-f43SYQVRPGQcYDQMiL7T2qND4v9xCkBpunIVPhNT/K2vUe+R3kYw2FyOIlbPxZJIYnhBNjeaHFeKv/cOZZErNg==","signatures":[{"sig":"MEUCIQDDMJzInpIXrrqGxGba2YpKK2T+7m36xMW4VrPsSu1E7QIgVVBoeaRuG050UUAikSo+hVVw60qcrJlcnuLLGBr0Vyk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7322628},"type":"module","engines":{"node":">=18"},"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"gitHead":"bf4c5be38e2f0e5dc378654ffdaa607baf968aa0","scripts":{"lint":"eslint src/","test":"jest","build":"npm run build:esm && npm run build:cjs","start":"npm run server","client":"tsx src/cli.ts client","server":"tsx watch --clear-screen=false src/cli.ts server","prepack":"npm run build:esm && npm run build:cjs","build:cjs":"mkdir -p dist/cjs && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && tsc -p tsconfig.cjs.json","build:esm":"mkdir -p dist/esm && echo '{\"type\": \"module\"}' > dist/esm/package.json && tsc -p tsconfig.prod.json","build:cjs:w":"npm run build:cjs -- -w","build:esm:w":"npm run build:esm -- -w","examples:simple-server:w":"tsx --watch src/examples/server/simpleStreamableHttp.ts --oauth"},"_npmUser":{"name":"jspahrsummers","actor":{"name":"jspahrsummers","type":"user","email":"justin@jspahrsummers.com"},"email":"justin@jspahrsummers.com"},"repository":{"url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol implementation for TypeScript","directories":{},"resolutions":{"strip-ansi":"6.0.1"},"_nodeVersion":"18.20.8","dependencies":{"ajv":"^6.12.6","zod":"^3.23.8","cors":"^2.8.5","express":"^5.0.1","raw-body":"^3.0.0","cross-spawn":"^7.0.5","eventsource":"^3.0.2","content-type":"^1.0.5","pkce-challenge":"^5.0.0","eventsource-parser":"^3.0.0","express-rate-limit":"^7.5.0","zod-to-json-schema":"^3.24.1"},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsx":"^4.16.5","jest":"^29.7.0","eslint":"^9.8.0","ts-jest":"^29.2.4","@types/ws":"^8.5.12","supertest":"^7.0.0","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/express":"^5.0.0","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.0.0","@jest-mock/express":"^3.0.0","@types/cross-spawn":"^6.0.6","@types/eventsource":"^1.1.15","@types/content-type":"^1.1.8"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.14.0_1751557442534_0.8060307139843699","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@modelcontextprotocol/sdk","version":"1.15.0","description":"Model Context Protocol implementation for TypeScript","license":"MIT","author":{"name":"Anthropic, PBC","url":"https://anthropic.com"},"homepage":"https://modelcontextprotocol.io","bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"type":"module","repository":{"type":"git","url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git"},"engines":{"node":">=18"},"keywords":["modelcontextprotocol","mcp"],"exports":{"./*":{"import":"./dist/esm/*","require":"./dist/cjs/*"}},"typesVersions":{"*":{"*":["./dist/esm/*"]}},"scripts":{"build":"npm run build:esm && npm run build:cjs","build:esm":"mkdir -p dist/esm && echo '{\"type\": \"module\"}' > dist/esm/package.json && tsc -p tsconfig.prod.json","build:esm:w":"npm run build:esm -- -w","build:cjs":"mkdir -p dist/cjs && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && tsc -p tsconfig.cjs.json","build:cjs:w":"npm run build:cjs -- -w","examples:simple-server:w":"tsx --watch src/examples/server/simpleStreamableHttp.ts --oauth","prepack":"npm run build:esm && npm run build:cjs","lint":"eslint src/","test":"jest","start":"npm run server","server":"tsx watch --clear-screen=false src/cli.ts server","client":"tsx src/cli.ts client"},"dependencies":{"ajv":"^6.12.6","content-type":"^1.0.5","cors":"^2.8.5","cross-spawn":"^7.0.5","eventsource":"^3.0.2","eventsource-parser":"^3.0.0","express":"^5.0.1","express-rate-limit":"^7.5.0","pkce-challenge":"^5.0.0","raw-body":"^3.0.0","zod":"^3.23.8","zod-to-json-schema":"^3.24.1"},"devDependencies":{"@eslint/js":"^9.8.0","@jest-mock/express":"^3.0.0","@types/content-type":"^1.1.8","@types/cors":"^2.8.17","@types/cross-spawn":"^6.0.6","@types/eslint__js":"^8.42.3","@types/eventsource":"^1.1.15","@types/express":"^5.0.0","@types/jest":"^29.5.12","@types/node":"^22.0.2","@types/supertest":"^6.0.2","@types/ws":"^8.5.12","eslint":"^9.8.0","jest":"^29.7.0","supertest":"^7.0.0","ts-jest":"^29.2.4","tsx":"^4.16.5","typescript":"^5.5.4","typescript-eslint":"^8.0.0","ws":"^8.18.0"},"resolutions":{"strip-ansi":"6.0.1"},"_id":"@modelcontextprotocol/sdk@1.15.0","gitHead":"1ac2e5926c93a7f1122e50bbbd6be60de1ae2c87","_nodeVersion":"18.20.8","_npmVersion":"10.8.2","dist":{"integrity":"sha512-67hnl/ROKdb03Vuu0YOr+baKTvf1/5YBHBm9KnZdjdAh8hjt4FRCPD5ucwxGB237sBpzlqQsLy1PFu7z/ekZ9Q==","shasum":"094df005f72144b0f3c7609fe6efb9137f29238b","tarball":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.15.0.tgz","fileCount":413,"unpackedSize":7325364,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@modelcontextprotocol%2fsdk@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEmEdRY1AfBIYq/zKbVKCg4n0crkscwanBLe5g8oR+MaAiAt0oZTfz4glzllflEOxNf8rxMZuPGdsSXp6oecS9E8gA=="}]},"_npmUser":{"name":"jspahrsummers","email":"justin@jspahrsummers.com","actor":{"name":"jspahrsummers","email":"justin@jspahrsummers.com","type":"user"}},"directories":{},"maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_1.15.0_1751582097428_0.4714168008838131"},"_hasShrinkwrap":false}},"time":{"created":"2024-11-11T15:53:15.703Z","modified":"2025-07-03T22:34:58.060Z","0.4.0":"2024-11-11T15:53:16.047Z","0.5.0":"2024-11-15T13:47:53.983Z","0.6.0":"2024-11-16T16:43:06.119Z","0.6.1":"2024-11-20T18:20:22.217Z","0.7.0":"2024-11-20T21:30:47.952Z","1.0.0":"2024-11-25T15:06:19.231Z","1.0.1":"2024-11-26T14:47:32.250Z","1.0.2":"2024-12-04T14:23:18.628Z","1.0.3":"2024-12-04T17:40:36.511Z","1.0.4":"2024-12-17T13:10:24.992Z","1.1.0":"2025-01-03T09:03:45.881Z","1.1.1":"2025-01-10T10:18:53.259Z","1.2.0":"2025-01-20T15:29:57.707Z","1.3.0":"2025-01-20T15:37:55.476Z","1.3.1":"2025-01-21T12:58:12.754Z","1.3.2":"2025-01-22T11:46:03.487Z","1.4.0":"2025-01-23T14:02:11.182Z","1.4.1":"2025-01-24T14:54:06.432Z","1.5.0":"2025-02-12T14:33:35.967Z","1.6.0":"2025-02-24T11:19:29.382Z","1.6.1":"2025-02-28T11:57:49.193Z","1.7.0":"2025-03-11T10:55:57.591Z","1.8.0":"2025-03-26T10:20:10.349Z","1.9.0":"2025-04-07T10:39:01.105Z","1.10.0":"2025-04-17T17:43:53.818Z","1.10.1":"2025-04-18T11:03:52.817Z","1.10.2":"2025-04-22T11:54:01.309Z","1.11.0":"2025-05-01T18:11:20.140Z","1.11.1":"2025-05-08T17:09:40.387Z","1.11.2":"2025-05-12T09:21:48.290Z","1.11.3":"2025-05-15T09:36:46.913Z","1.11.4":"2025-05-16T22:53:07.878Z","1.11.5":"2025-05-21T19:22:07.831Z","1.12.0":"2025-05-22T15:50:27.866Z","1.12.1":"2025-05-29T14:46:37.477Z","1.12.2":"2025-06-13T09:26:32.180Z","1.12.3":"2025-06-13T15:36:08.623Z","1.13.0":"2025-06-18T20:13:11.176Z","1.13.1":"2025-06-23T13:42:09.212Z","1.13.2":"2025-06-26T17:59:00.844Z","1.13.3":"2025-07-01T15:51:05.840Z","1.14.0":"2025-07-03T15:44:02.765Z","1.15.0":"2025-07-03T22:34:57.659Z"},"bugs":{"url":"https://github.com/modelcontextprotocol/typescript-sdk/issues"},"author":{"name":"Anthropic, PBC","url":"https://anthropic.com"},"license":"MIT","homepage":"https://modelcontextprotocol.io","keywords":["modelcontextprotocol","mcp"],"repository":{"type":"git","url":"git+https://github.com/modelcontextprotocol/typescript-sdk.git"},"description":"Model Context Protocol implementation for TypeScript","maintainers":[{"name":"jspahrsummers","email":"justin@jspahrsummers.com"},{"name":"thedsp","email":"experimentalworks@gmail.com"},{"name":"ashwin-ant","email":"ashwin@anthropic.com"}],"readme":"# MCP TypeScript SDK ![NPM Version](https://img.shields.io/npm/v/%40modelcontextprotocol%2Fsdk) ![MIT licensed](https://img.shields.io/npm/l/%40modelcontextprotocol%2Fsdk)\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Installation](#installation)\n- [Quickstart](#quick-start)\n- [What is MCP?](#what-is-mcp)\n- [Core Concepts](#core-concepts)\n - [Server](#server)\n - [Resources](#resources)\n - [Tools](#tools)\n - [Prompts](#prompts)\n - [Completions](#completions)\n - [Sampling](#sampling)\n- [Running Your Server](#running-your-server)\n - [stdio](#stdio)\n - [Streamable HTTP](#streamable-http)\n - [Testing and Debugging](#testing-and-debugging)\n- [Examples](#examples)\n - [Echo Server](#echo-server)\n - [SQLite Explorer](#sqlite-explorer)\n- [Advanced Usage](#advanced-usage)\n - [Dynamic Servers](#dynamic-servers)\n - [Low-Level Server](#low-level-server)\n - [Writing MCP Clients](#writing-mcp-clients)\n - [Proxy Authorization Requests Upstream](#proxy-authorization-requests-upstream)\n - [Backwards Compatibility](#backwards-compatibility)\n- [Documentation](#documentation)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Overview\n\nThe Model Context Protocol allows applications to provide context for LLMs in a standardized way, separating the concerns of providing context from the actual LLM interaction. This TypeScript SDK implements the full MCP specification, making it easy to:\n\n- Build MCP clients that can connect to any MCP server\n- Create MCP servers that expose resources, prompts and tools\n- Use standard transports like stdio and Streamable HTTP\n- Handle all MCP protocol messages and lifecycle events\n\n## Installation\n\n```bash\nnpm install @modelcontextprotocol/sdk\n```\n\n> ⚠️ MCP requires Node v18.x up to work fine.\n\n## Quick Start\n\nLet's create a simple MCP server that exposes a calculator tool and some data:\n\n```typescript\nimport { McpServer, ResourceTemplate } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { z } from \"zod\";\n\n// Create an MCP server\nconst server = new McpServer({\n name: \"demo-server\",\n version: \"1.0.0\"\n});\n\n// Add an addition tool\nserver.registerTool(\"add\",\n {\n title: \"Addition Tool\",\n description: \"Add two numbers\",\n inputSchema: { a: z.number(), b: z.number() }\n },\n async ({ a, b }) => ({\n content: [{ type: \"text\", text: String(a + b) }]\n })\n);\n\n// Add a dynamic greeting resource\nserver.registerResource(\n \"greeting\",\n new ResourceTemplate(\"greeting://{name}\", { list: undefined }),\n { \n title: \"Greeting Resource\", // Display name for UI\n description: \"Dynamic greeting generator\"\n },\n async (uri, { name }) => ({\n contents: [{\n uri: uri.href,\n text: `Hello, ${name}!`\n }]\n })\n);\n\n// Start receiving messages on stdin and sending messages on stdout\nconst transport = new StdioServerTransport();\nawait server.connect(transport);\n```\n\n## What is MCP?\n\nThe [Model Context Protocol (MCP)](https://modelcontextprotocol.io) lets you build servers that expose data and functionality to LLM applications in a secure, standardized way. Think of it like a web API, but specifically designed for LLM interactions. MCP servers can:\n\n- Expose data through **Resources** (think of these sort of like GET endpoints; they are used to load information into the LLM's context)\n- Provide functionality through **Tools** (sort of like POST endpoints; they are used to execute code or otherwise produce a side effect)\n- Define interaction patterns through **Prompts** (reusable templates for LLM interactions)\n- And more!\n\n## Core Concepts\n\n### Server\n\nThe McpServer is your core interface to the MCP protocol. It handles connection management, protocol compliance, and message routing:\n\n```typescript\nconst server = new McpServer({\n name: \"my-app\",\n version: \"1.0.0\"\n});\n```\n\n### Resources\n\nResources are how you expose data to LLMs. They're similar to GET endpoints in a REST API - they provide data but shouldn't perform significant computation or have side effects:\n\n```typescript\n// Static resource\nserver.registerResource(\n \"config\",\n \"config://app\",\n {\n title: \"Application Config\",\n description: \"Application configuration data\",\n mimeType: \"text/plain\"\n },\n async (uri) => ({\n contents: [{\n uri: uri.href,\n text: \"App configuration here\"\n }]\n })\n);\n\n// Dynamic resource with parameters\nserver.registerResource(\n \"user-profile\",\n new ResourceTemplate(\"users://{userId}/profile\", { list: undefined }),\n {\n title: \"User Profile\",\n description: \"User profile information\"\n },\n async (uri, { userId }) => ({\n contents: [{\n uri: uri.href,\n text: `Profile data for user ${userId}`\n }]\n })\n);\n\n// Resource with context-aware completion\nserver.registerResource(\n \"repository\",\n new ResourceTemplate(\"github://repos/{owner}/{repo}\", {\n list: undefined,\n complete: {\n // Provide intelligent completions based on previously resolved parameters\n repo: (value, context) => {\n if (context?.arguments?.[\"owner\"] === \"org1\") {\n return [\"project1\", \"project2\", \"project3\"].filter(r => r.startsWith(value));\n }\n return [\"default-repo\"].filter(r => r.startsWith(value));\n }\n }\n }),\n {\n title: \"GitHub Repository\",\n description: \"Repository information\"\n },\n async (uri, { owner, repo }) => ({\n contents: [{\n uri: uri.href,\n text: `Repository: ${owner}/${repo}`\n }]\n })\n);\n```\n\n### Tools\n\nTools let LLMs take actions through your server. Unlike resources, tools are expected to perform computation and have side effects:\n\n```typescript\n// Simple tool with parameters\nserver.registerTool(\n \"calculate-bmi\",\n {\n title: \"BMI Calculator\",\n description: \"Calculate Body Mass Index\",\n inputSchema: {\n weightKg: z.number(),\n heightM: z.number()\n }\n },\n async ({ weightKg, heightM }) => ({\n content: [{\n type: \"text\",\n text: String(weightKg / (heightM * heightM))\n }]\n })\n);\n\n// Async tool with external API call\nserver.registerTool(\n \"fetch-weather\",\n {\n title: \"Weather Fetcher\",\n description: \"Get weather data for a city\",\n inputSchema: { city: z.string() }\n },\n async ({ city }) => {\n const response = await fetch(`https://api.weather.com/${city}`);\n const data = await response.text();\n return {\n content: [{ type: \"text\", text: data }]\n };\n }\n);\n\n// Tool that returns ResourceLinks\nserver.registerTool(\n \"list-files\",\n {\n title: \"List Files\",\n description: \"List project files\",\n inputSchema: { pattern: z.string() }\n },\n async ({ pattern }) => ({\n content: [\n { type: \"text\", text: `Found files matching \"${pattern}\":` },\n // ResourceLinks let tools return references without file content\n {\n type: \"resource_link\",\n uri: \"file:///project/README.md\",\n name: \"README.md\",\n mimeType: \"text/markdown\",\n description: 'A README file'\n },\n {\n type: \"resource_link\",\n uri: \"file:///project/src/index.ts\",\n name: \"index.ts\",\n mimeType: \"text/typescript\",\n description: 'An index file'\n }\n ]\n })\n);\n```\n\n#### ResourceLinks\n\nTools can return `ResourceLink` objects to reference resources without embedding their full content. This is essential for performance when dealing with large files or many resources - clients can then selectively read only the resources they need using the provided URIs.\n\n### Prompts\n\nPrompts are reusable templates that help LLMs interact with your server effectively:\n\n```typescript\nimport { completable } from \"@modelcontextprotocol/sdk/server/completable.js\";\n\nserver.registerPrompt(\n \"review-code\",\n {\n title: \"Code Review\",\n description: \"Review code for best practices and potential issues\",\n argsSchema: { code: z.string() }\n },\n ({ code }) => ({\n messages: [{\n role: \"user\",\n content: {\n type: \"text\",\n text: `Please review this code:\\n\\n${code}`\n }\n }]\n })\n);\n\n// Prompt with context-aware completion\nserver.registerPrompt(\n \"team-greeting\",\n {\n title: \"Team Greeting\",\n description: \"Generate a greeting for team members\",\n argsSchema: {\n department: completable(z.string(), (value) => {\n // Department suggestions\n return [\"engineering\", \"sales\", \"marketing\", \"support\"].filter(d => d.startsWith(value));\n }),\n name: completable(z.string(), (value, context) => {\n // Name suggestions based on selected department\n const department = context?.arguments?.[\"department\"];\n if (department === \"engineering\") {\n return [\"Alice\", \"Bob\", \"Charlie\"].filter(n => n.startsWith(value));\n } else if (department === \"sales\") {\n return [\"David\", \"Eve\", \"Frank\"].filter(n => n.startsWith(value));\n } else if (department === \"marketing\") {\n return [\"Grace\", \"Henry\", \"Iris\"].filter(n => n.startsWith(value));\n }\n return [\"Guest\"].filter(n => n.startsWith(value));\n })\n }\n },\n ({ department, name }) => ({\n messages: [{\n role: \"assistant\",\n content: {\n type: \"text\",\n text: `Hello ${name}, welcome to the ${department} team!`\n }\n }]\n })\n);\n```\n\n### Completions\n\nMCP supports argument completions to help users fill in prompt arguments and resource template parameters. See the examples above for [resource completions](#resources) and [prompt completions](#prompts).\n\n#### Client Usage\n\n```typescript\n// Request completions for any argument\nconst result = await client.complete({\n ref: {\n type: \"ref/prompt\", // or \"ref/resource\"\n name: \"example\" // or uri: \"template://...\"\n },\n argument: {\n name: \"argumentName\",\n value: \"partial\" // What the user has typed so far\n },\n context: { // Optional: Include previously resolved arguments\n arguments: {\n previousArg: \"value\"\n }\n }\n});\n\n```\n\n### Display Names and Metadata\n\nAll resources, tools, and prompts support an optional `title` field for better UI presentation. The `title` is used as a display name, while `name` remains the unique identifier.\n\n**Note:** The `register*` methods (`registerTool`, `registerPrompt`, `registerResource`) are the recommended approach for new code. The older methods (`tool`, `prompt`, `resource`) remain available for backwards compatibility.\n\n#### Title Precedence for Tools\n\nFor tools specifically, there are two ways to specify a title:\n- `title` field in the tool configuration\n- `annotations.title` field (when using the older `tool()` method with annotations)\n\nThe precedence order is: `title` → `annotations.title` → `name`\n\n```typescript\n// Using registerTool (recommended)\nserver.registerTool(\"my_tool\", {\n title: \"My Tool\", // This title takes precedence\n annotations: {\n title: \"Annotation Title\" // This is ignored if title is set\n }\n}, handler);\n\n// Using tool with annotations (older API)\nserver.tool(\"my_tool\", \"description\", {\n title: \"Annotation Title\" // This is used as title\n}, handler);\n```\n\nWhen building clients, use the provided utility to get the appropriate display name:\n\n```typescript\nimport { getDisplayName } from \"@modelcontextprotocol/sdk/shared/metadataUtils.js\";\n\n// Automatically handles the precedence: title → annotations.title → name\nconst displayName = getDisplayName(tool);\n```\n\n### Sampling\n\nMCP servers can request LLM completions from connected clients that support sampling.\n\n```typescript\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { z } from \"zod\";\n\nconst mcpServer = new McpServer({\n name: \"tools-with-sample-server\",\n version: \"1.0.0\",\n});\n\n// Tool that uses LLM sampling to summarize any text\nmcpServer.registerTool(\n \"summarize\",\n {\n description: \"Summarize any text using an LLM\",\n inputSchema: {\n text: z.string().describe(\"Text to summarize\"),\n },\n },\n async ({ text }) => {\n // Call the LLM through MCP sampling\n const response = await mcpServer.server.createMessage({\n messages: [\n {\n role: \"user\",\n content: {\n type: \"text\",\n text: `Please summarize the following text concisely:\\n\\n${text}`,\n },\n },\n ],\n maxTokens: 500,\n });\n\n return {\n content: [\n {\n type: \"text\",\n text: response.content.type === \"text\" ? response.content.text : \"Unable to generate summary\",\n },\n ],\n };\n }\n);\n\nasync function main() {\n const transport = new StdioServerTransport();\n await mcpServer.connect(transport);\n console.log(\"MCP server is running...\");\n}\n\nmain().catch((error) => {\n console.error(\"Server error:\", error);\n process.exit(1);\n});\n```\n\n\n## Running Your Server\n\nMCP servers in TypeScript need to be connected to a transport to communicate with clients. How you start the server depends on the choice of transport:\n\n### stdio\n\nFor command-line tools and direct integrations:\n\n```typescript\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\n\nconst server = new McpServer({\n name: \"example-server\",\n version: \"1.0.0\"\n});\n\n// ... set up server resources, tools, and prompts ...\n\nconst transport = new StdioServerTransport();\nawait server.connect(transport);\n```\n\n### Streamable HTTP\n\nFor remote servers, set up a Streamable HTTP transport that handles both client requests and server-to-client notifications.\n\n#### With Session Management\n\nIn some cases, servers need to be stateful. This is achieved by [session management](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#session-management).\n\n```typescript\nimport express from \"express\";\nimport { randomUUID } from \"node:crypto\";\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StreamableHTTPServerTransport } from \"@modelcontextprotocol/sdk/server/streamableHttp.js\";\nimport { isInitializeRequest } from \"@modelcontextprotocol/sdk/types.js\"\n\n\n\nconst app = express();\napp.use(express.json());\n\n// Map to store transports by session ID\nconst transports: { [sessionId: string]: StreamableHTTPServerTransport } = {};\n\n// Handle POST requests for client-to-server communication\napp.post('/mcp', async (req, res) => {\n // Check for existing session ID\n const sessionId = req.headers['mcp-session-id'] as string | undefined;\n let transport: StreamableHTTPServerTransport;\n\n if (sessionId && transports[sessionId]) {\n // Reuse existing transport\n transport = transports[sessionId];\n } else if (!sessionId && isInitializeRequest(req.body)) {\n // New initialization request\n transport = new StreamableHTTPServerTransport({\n sessionIdGenerator: () => randomUUID(),\n onsessioninitialized: (sessionId) => {\n // Store the transport by session ID\n transports[sessionId] = transport;\n },\n // DNS rebinding protection is disabled by default for backwards compatibility. If you are running this server\n // locally, make sure to set:\n // enableDnsRebindingProtection: true,\n // allowedHosts: ['127.0.0.1'],\n });\n\n // Clean up transport when closed\n transport.onclose = () => {\n if (transport.sessionId) {\n delete transports[transport.sessionId];\n }\n };\n const server = new McpServer({\n name: \"example-server\",\n version: \"1.0.0\"\n });\n\n // ... set up server resources, tools, and prompts ...\n\n // Connect to the MCP server\n await server.connect(transport);\n } else {\n // Invalid request\n res.status(400).json({\n jsonrpc: '2.0',\n error: {\n code: -32000,\n message: 'Bad Request: No valid session ID provided',\n },\n id: null,\n });\n return;\n }\n\n // Handle the request\n await transport.handleRequest(req, res, req.body);\n});\n\n// Reusable handler for GET and DELETE requests\nconst handleSessionRequest = async (req: express.Request, res: express.Response) => {\n const sessionId = req.headers['mcp-session-id'] as string | undefined;\n if (!sessionId || !transports[sessionId]) {\n res.status(400).send('Invalid or missing session ID');\n return;\n }\n \n const transport = transports[sessionId];\n await transport.handleRequest(req, res);\n};\n\n// Handle GET requests for server-to-client notifications via SSE\napp.get('/mcp', handleSessionRequest);\n\n// Handle DELETE requests for session termination\napp.delete('/mcp', handleSessionRequest);\n\napp.listen(3000);\n```\n\n> [!TIP]\n> When using this in a remote environment, make sure to allow the header parameter `mcp-session-id` in CORS. Otherwise, it may result in a `Bad Request: No valid session ID provided` error. \n> \n> For example, in Node.js you can configure it like this:\n> \n> ```ts\n> app.use(\n> cors({\n> origin: ['https://your-remote-domain.com, https://your-other-remote-domain.com'],\n> exposedHeaders: ['mcp-session-id'],\n> allowedHeaders: ['Content-Type', 'mcp-session-id'],\n> })\n> );\n> ```\n\n#### Without Session Management (Stateless)\n\nFor simpler use cases where session management isn't needed:\n\n```typescript\nconst app = express();\napp.use(express.json());\n\napp.post('/mcp', async (req: Request, res: Response) => {\n // In stateless mode, create a new instance of transport and server for each request\n // to ensure complete isolation. A single instance would cause request ID collisions\n // when multiple clients connect concurrently.\n \n try {\n const server = getServer(); \n const transport: StreamableHTTPServerTransport = new StreamableHTTPServerTransport({\n sessionIdGenerator: undefined,\n });\n res.on('close', () => {\n console.log('Request closed');\n transport.close();\n server.close();\n });\n await server.connect(transport);\n await transport.handleRequest(req, res, req.body);\n } catch (error) {\n console.error('Error handling MCP request:', error);\n if (!res.headersSent) {\n res.status(500).json({\n jsonrpc: '2.0',\n error: {\n code: -32603,\n message: 'Internal server error',\n },\n id: null,\n });\n }\n }\n});\n\n// SSE notifications not supported in stateless mode\napp.get('/mcp', async (req: Request, res: Response) => {\n console.log('Received GET MCP request');\n res.writeHead(405).end(JSON.stringify({\n jsonrpc: \"2.0\",\n error: {\n code: -32000,\n message: \"Method not allowed.\"\n },\n id: null\n }));\n});\n\n// Session termination not needed in stateless mode\napp.delete('/mcp', async (req: Request, res: Response) => {\n console.log('Received DELETE MCP request');\n res.writeHead(405).end(JSON.stringify({\n jsonrpc: \"2.0\",\n error: {\n code: -32000,\n message: \"Method not allowed.\"\n },\n id: null\n }));\n});\n\n\n// Start the server\nconst PORT = 3000;\nsetupServer().then(() => {\n app.listen(PORT, (error) => {\n if (error) {\n console.error('Failed to start server:', error);\n process.exit(1);\n }\n console.log(`MCP Stateless Streamable HTTP Server listening on port ${PORT}`);\n });\n}).catch(error => {\n console.error('Failed to set up the server:', error);\n process.exit(1);\n});\n\n```\n\nThis stateless approach is useful for:\n\n- Simple API wrappers\n- RESTful scenarios where each request is independent\n- Horizontally scaled deployments without shared session state\n\n#### DNS Rebinding Protection\n\nThe Streamable HTTP transport includes DNS rebinding protection to prevent security vulnerabilities. By default, this protection is **disabled** for backwards compatibility.\n\n**Important**: If you are running this server locally, enable DNS rebinding protection:\n\n```typescript\nconst transport = new StreamableHTTPServerTransport({\n sessionIdGenerator: () => randomUUID(),\n enableDnsRebindingProtection: true,\n\n allowedHosts: ['127.0.0.1', ...],\n allowedOrigins: ['https://yourdomain.com', 'https://www.yourdomain.com']\n});\n```\n\n### Testing and Debugging\n\nTo test your server, you can use the [MCP Inspector](https://github.com/modelcontextprotocol/inspector). See its README for more information.\n\n## Examples\n\n### Echo Server\n\nA simple server demonstrating resources, tools, and prompts:\n\n```typescript\nimport { McpServer, ResourceTemplate } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod\";\n\nconst server = new McpServer({\n name: \"echo-server\",\n version: \"1.0.0\"\n});\n\nserver.registerResource(\n \"echo\",\n new ResourceTemplate(\"echo://{message}\", { list: undefined }),\n {\n title: \"Echo Resource\",\n description: \"Echoes back messages as resources\"\n },\n async (uri, { message }) => ({\n contents: [{\n uri: uri.href,\n text: `Resource echo: ${message}`\n }]\n })\n);\n\nserver.registerTool(\n \"echo\",\n {\n title: \"Echo Tool\",\n description: \"Echoes back the provided message\",\n inputSchema: { message: z.string() }\n },\n async ({ message }) => ({\n content: [{ type: \"text\", text: `Tool echo: ${message}` }]\n })\n);\n\nserver.registerPrompt(\n \"echo\",\n {\n title: \"Echo Prompt\",\n description: \"Creates a prompt to process a message\",\n argsSchema: { message: z.string() }\n },\n ({ message }) => ({\n messages: [{\n role: \"user\",\n content: {\n type: \"text\",\n text: `Please process this message: ${message}`\n }\n }]\n })\n);\n```\n\n### SQLite Explorer\n\nA more complex example showing database integration:\n\n```typescript\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport sqlite3 from \"sqlite3\";\nimport { promisify } from \"util\";\nimport { z } from \"zod\";\n\nconst server = new McpServer({\n name: \"sqlite-explorer\",\n version: \"1.0.0\"\n});\n\n// Helper to create DB connection\nconst getDb = () => {\n const db = new sqlite3.Database(\"database.db\");\n return {\n all: promisify(db.all.bind(db)),\n close: promisify(db.close.bind(db))\n };\n};\n\nserver.registerResource(\n \"schema\",\n \"schema://main\",\n {\n title: \"Database Schema\",\n description: \"SQLite database schema\",\n mimeType: \"text/plain\"\n },\n async (uri) => {\n const db = getDb();\n try {\n const tables = await db.all(\n \"SELECT sql FROM sqlite_master WHERE type='table'\"\n );\n return {\n contents: [{\n uri: uri.href,\n text: tables.map((t: {sql: string}) => t.sql).join(\"\\n\")\n }]\n };\n } finally {\n await db.close();\n }\n }\n);\n\nserver.registerTool(\n \"query\",\n {\n title: \"SQL Query\",\n description: \"Execute SQL queries on the database\",\n inputSchema: { sql: z.string() }\n },\n async ({ sql }) => {\n const db = getDb();\n try {\n const results = await db.all(sql);\n return {\n content: [{\n type: \"text\",\n text: JSON.stringify(results, null, 2)\n }]\n };\n } catch (err: unknown) {\n const error = err as Error;\n return {\n content: [{\n type: \"text\",\n text: `Error: ${error.message}`\n }],\n isError: true\n };\n } finally {\n await db.close();\n }\n }\n);\n```\n\n## Advanced Usage\n\n### Dynamic Servers\n\nIf you want to offer an initial set of tools/prompts/resources, but later add additional ones based on user action or external state change, you can add/update/remove them _after_ the Server is connected. This will automatically emit the corresponding `listChanged` notifications:\n\n```ts\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod\";\n\nconst server = new McpServer({\n name: \"Dynamic Example\",\n version: \"1.0.0\"\n});\n\nconst listMessageTool = server.tool(\n \"listMessages\",\n { channel: z.string() },\n async ({ channel }) => ({\n content: [{ type: \"text\", text: await listMessages(channel) }]\n })\n);\n\nconst putMessageTool = server.tool(\n \"putMessage\",\n { channel: z.string(), message: z.string() },\n async ({ channel, message }) => ({\n content: [{ type: \"text\", text: await putMessage(channel, string) }]\n })\n);\n// Until we upgrade auth, `putMessage` is disabled (won't show up in listTools)\nputMessageTool.disable()\n\nconst upgradeAuthTool = server.tool(\n \"upgradeAuth\",\n { permission: z.enum([\"write', admin\"])},\n // Any mutations here will automatically emit `listChanged` notifications\n async ({ permission }) => {\n const { ok, err, previous } = await upgradeAuthAndStoreToken(permission)\n if (!ok) return {content: [{ type: \"text\", text: `Error: ${err}` }]}\n\n // If we previously had read-only access, 'putMessage' is now available\n if (previous === \"read\") {\n putMessageTool.enable()\n }\n\n if (permission === 'write') {\n // If we've just upgraded to 'write' permissions, we can still call 'upgradeAuth' \n // but can only upgrade to 'admin'. \n upgradeAuthTool.update({\n paramSchema: { permission: z.enum([\"admin\"]) }, // change validation rules\n })\n } else {\n // If we're now an admin, we no longer have anywhere to upgrade to, so fully remove that tool\n upgradeAuthTool.remove()\n }\n }\n)\n\n// Connect as normal\nconst transport = new StdioServerTransport();\nawait server.connect(transport);\n```\n\n### Low-Level Server\n\nFor more control, you can use the low-level Server class directly:\n\n```typescript\nimport { Server } from \"@modelcontextprotocol/sdk/server/index.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport {\n ListPromptsRequestSchema,\n GetPromptRequestSchema\n} from \"@modelcontextprotocol/sdk/types.js\";\n\nconst server = new Server(\n {\n name: \"example-server\",\n version: \"1.0.0\"\n },\n {\n capabilities: {\n prompts: {}\n }\n }\n);\n\nserver.setRequestHandler(ListPromptsRequestSchema, async () => {\n return {\n prompts: [{\n name: \"example-prompt\",\n description: \"An example prompt template\",\n arguments: [{\n name: \"arg1\",\n description: \"Example argument\",\n required: true\n }]\n }]\n };\n});\n\nserver.setRequestHandler(GetPromptRequestSchema, async (request) => {\n if (request.params.name !== \"example-prompt\") {\n throw new Error(\"Unknown prompt\");\n }\n return {\n description: \"Example prompt\",\n messages: [{\n role: \"user\",\n content: {\n type: \"text\",\n text: \"Example prompt text\"\n }\n }]\n };\n});\n\nconst transport = new StdioServerTransport();\nawait server.connect(transport);\n```\n\n### Eliciting User Input\n\nMCP servers can request additional information from users through the elicitation feature. This is useful for interactive workflows where the server needs user input or confirmation:\n\n```typescript\n// Server-side: Restaurant booking tool that asks for alternatives\nserver.tool(\n \"book-restaurant\",\n { \n restaurant: z.string(),\n date: z.string(),\n partySize: z.number()\n },\n async ({ restaurant, date, partySize }) => {\n // Check availability\n const available = await checkAvailability(restaurant, date, partySize);\n \n if (!available) {\n // Ask user if they want to try alternative dates\n const result = await server.server.elicitInput({\n message: `No tables available at ${restaurant} on ${date}. Would you like to check alternative dates?`,\n requestedSchema: {\n type: \"object\",\n properties: {\n checkAlternatives: {\n type: \"boolean\",\n title: \"Check alternative dates\",\n description: \"Would you like me to check other dates?\"\n },\n flexibleDates: {\n type: \"string\",\n title: \"Date flexibility\",\n description: \"How flexible are your dates?\",\n enum: [\"next_day\", \"same_week\", \"next_week\"],\n enumNames: [\"Next day\", \"Same week\", \"Next week\"]\n }\n },\n required: [\"checkAlternatives\"]\n }\n });\n\n if (result.action === \"accept\" && result.content?.checkAlternatives) {\n const alternatives = await findAlternatives(\n restaurant, \n date, \n partySize, \n result.content.flexibleDates as string\n );\n return {\n content: [{\n type: \"text\",\n text: `Found these alternatives: ${alternatives.join(\", \")}`\n }]\n };\n }\n \n return {\n content: [{\n type: \"text\",\n text: \"No booking made. Original date not available.\"\n }]\n };\n }\n \n // Book the table\n await makeBooking(restaurant, date, partySize);\n return {\n content: [{\n type: \"text\",\n text: `Booked table for ${partySize} at ${restaurant} on ${date}`\n }]\n };\n }\n);\n```\n\nClient-side: Handle elicitation requests\n\n```typescript\n// This is a placeholder - implement based on your UI framework\nasync function getInputFromUser(message: string, schema: any): Promise<{\n action: \"accept\" | \"decline\" | \"cancel\";\n data?: Record;\n}> {\n // This should be implemented depending on the app\n throw new Error(\"getInputFromUser must be implemented for your platform\");\n}\n\nclient.setRequestHandler(ElicitRequestSchema, async (request) => {\n const userResponse = await getInputFromUser(\n request.params.message, \n request.params.requestedSchema\n );\n \n return {\n action: userResponse.action,\n content: userResponse.action === \"accept\" ? userResponse.data : undefined\n };\n});\n```\n\n**Note**: Elicitation requires client support. Clients must declare the `elicitation` capability during initialization.\n\n### Writing MCP Clients\n\nThe SDK provides a high-level client interface:\n\n```typescript\nimport { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { StdioClientTransport } from \"@modelcontextprotocol/sdk/client/stdio.js\";\n\nconst transport = new StdioClientTransport({\n command: \"node\",\n args: [\"server.js\"]\n});\n\nconst client = new Client(\n {\n name: \"example-client\",\n version: \"1.0.0\"\n }\n);\n\nawait client.connect(transport);\n\n// List prompts\nconst prompts = await client.listPrompts();\n\n// Get a prompt\nconst prompt = await client.getPrompt({\n name: \"example-prompt\",\n arguments: {\n arg1: \"value\"\n }\n});\n\n// List resources\nconst resources = await client.listResources();\n\n// Read a resource\nconst resource = await client.readResource({\n uri: \"file:///example.txt\"\n});\n\n// Call a tool\nconst result = await client.callTool({\n name: \"example-tool\",\n arguments: {\n arg1: \"value\"\n }\n});\n\n```\n\n### Proxy Authorization Requests Upstream\n\nYou can proxy OAuth requests to an external authorization provider:\n\n```typescript\nimport express from 'express';\nimport { ProxyOAuthServerProvider } from '@modelcontextprotocol/sdk/server/auth/providers/proxyProvider.js';\nimport { mcpAuthRouter } from '@modelcontextprotocol/sdk/server/auth/router.js';\n\nconst app = express();\n\nconst proxyProvider = new ProxyOAuthServerProvider({\n endpoints: {\n authorizationUrl: \"https://auth.external.com/oauth2/v1/authorize\",\n tokenUrl: \"https://auth.external.com/oauth2/v1/token\",\n revocationUrl: \"https://auth.external.com/oauth2/v1/revoke\",\n },\n verifyAccessToken: async (token) => {\n return {\n token,\n clientId: \"123\",\n scopes: [\"openid\", \"email\", \"profile\"],\n }\n },\n getClient: async (client_id) => {\n return {\n client_id,\n redirect_uris: [\"http://localhost:3000/callback\"],\n }\n }\n})\n\napp.use(mcpAuthRouter({\n provider: proxyProvider,\n issuerUrl: new URL(\"http://auth.external.com\"),\n baseUrl: new URL(\"http://mcp.example.com\"),\n serviceDocumentationUrl: new URL(\"https://docs.example.com/\"),\n}))\n```\n\nThis setup allows you to:\n\n- Forward OAuth requests to an external provider\n- Add custom token validation logic\n- Manage client registrations\n- Provide custom documentation URLs\n- Maintain control over the OAuth flow while delegating to an external provider\n\n### Backwards Compatibility\n\nClients and servers with StreamableHttp tranport can maintain [backwards compatibility](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#backwards-compatibility) with the deprecated HTTP+SSE transport (from protocol version 2024-11-05) as follows\n\n#### Client-Side Compatibility\n\nFor clients that need to work with both Streamable HTTP and older SSE servers:\n\n```typescript\nimport { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { StreamableHTTPClientTransport } from \"@modelcontextprotocol/sdk/client/streamableHttp.js\";\nimport { SSEClientTransport } from \"@modelcontextprotocol/sdk/client/sse.js\";\nlet client: Client|undefined = undefined\nconst baseUrl = new URL(url);\ntry {\n client = new Client({\n name: 'streamable-http-client',\n version: '1.0.0'\n });\n const transport = new StreamableHTTPClientTransport(\n new URL(baseUrl)\n );\n await client.connect(transport);\n console.log(\"Connected using Streamable HTTP transport\");\n} catch (error) {\n // If that fails with a 4xx error, try the older SSE transport\n console.log(\"Streamable HTTP connection failed, falling back to SSE transport\");\n client = new Client({\n name: 'sse-client',\n version: '1.0.0'\n });\n const sseTransport = new SSEClientTransport(baseUrl);\n await client.connect(sseTransport);\n console.log(\"Connected using SSE transport\");\n}\n```\n\n#### Server-Side Compatibility\n\nFor servers that need to support both Streamable HTTP and older clients:\n\n```typescript\nimport express from \"express\";\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StreamableHTTPServerTransport } from \"@modelcontextprotocol/sdk/server/streamableHttp.js\";\nimport { SSEServerTransport } from \"@modelcontextprotocol/sdk/server/sse.js\";\n\nconst server = new McpServer({\n name: \"backwards-compatible-server\",\n version: \"1.0.0\"\n});\n\n// ... set up server resources, tools, and prompts ...\n\nconst app = express();\napp.use(express.json());\n\n// Store transports for each session type\nconst transports = {\n streamable: {} as Record,\n sse: {} as Record\n};\n\n// Modern Streamable HTTP endpoint\napp.all('/mcp', async (req, res) => {\n // Handle Streamable HTTP transport for modern clients\n // Implementation as shown in the \"With Session Management\" example\n // ...\n});\n\n// Legacy SSE endpoint for older clients\napp.get('/sse', async (req, res) => {\n // Create SSE transport for legacy clients\n const transport = new SSEServerTransport('/messages', res);\n transports.sse[transport.sessionId] = transport;\n \n res.on(\"close\", () => {\n delete transports.sse[transport.sessionId];\n });\n \n await server.connect(transport);\n});\n\n// Legacy message endpoint for older clients\napp.post('/messages', async (req, res) => {\n const sessionId = req.query.sessionId as string;\n const transport = transports.sse[sessionId];\n if (transport) {\n await transport.handlePostMessage(req, res, req.body);\n } else {\n res.status(400).send('No transport found for sessionId');\n }\n});\n\napp.listen(3000);\n```\n\n**Note**: The SSE transport is now deprecated in favor of Streamable HTTP. New implementations should use Streamable HTTP, and existing SSE implementations should plan to migrate.\n\n## Documentation\n\n- [Model Context Protocol documentation](https://modelcontextprotocol.io)\n- [MCP Specification](https://spec.modelcontextprotocol.io)\n- [Example Servers](https://github.com/modelcontextprotocol/servers)\n\n## Contributing\n\nIssues and pull requests are welcome on GitHub at .\n\n## License\n\nThis project is licensed under the MIT License—see the [LICENSE](LICENSE) file for details.\n","readmeFilename":"README.md","users":{"mrliu1299":true}}