{"_id":"@bonniernews/mcp-server","_rev":"44-23545d58bb7075aebb0335a3723daca1","name":"@bonniernews/mcp-server","dist-tags":{"latest":"0.2.7"},"versions":{"0.0.1":{"name":"@bonniernews/mcp-server","version":"0.0.1","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.0.1","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-server/issues"},"dist":{"shasum":"6722f72d76745c39abf83cbc0a271761f2c62d1a","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.0.1.tgz","fileCount":9,"integrity":"sha512-0G8FDn8MnvrhPUn7fvHvFDjJYHrgNIrg2nsuXmh3DIJo5wq6YgXYDyaj5w5sb4jWvd+dMdZTiIVmk4ICwHDXLQ==","signatures":[{"sig":"MEYCIQDT93pZKTVNLB3+G74N5YgF8ZDtbBbiJkYlNJ3dykz5GQIhALihxdEL83utqkN/XEpvLWWVFUuwNfLjy55TSrIbtqgV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87310},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"31d39c90fae1172afb9a64e093cd259aa1df8193","scripts":{"lint":"eslint . --cache && npm run typecheck","test":"mocha --exit --reporter ${REPORTER:-spec}","build":"tsup","format":"prettier --write . && eslint --fix .","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","local-coverage":"c8 --reporter html npm test && c8 check-coverage || open ./coverage/index.html","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.18.0","dependencies":{"express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.3","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.1_1762425146956_0.5565962883174107","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@bonniernews/mcp-server","version":"0.0.2","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.0.2","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-server/issues"},"dist":{"shasum":"aa83ca606ba3614ba201a623f24ea7c3e85d7c00","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.0.2.tgz","fileCount":9,"integrity":"sha512-rAP4v+CzqbP/wIB7M5ALQdf13aUQnpyxpcPqEFKpOkV7zXc7WRVEaiuR5td6N3ImQXNNo7z60uu5eOccn8eGFw==","signatures":[{"sig":"MEQCIFPCMziIwqzaz2Rdcr4ai3Jtltz7hMibGjfbzyN0A8ONAiAMYfqiy/bn6LKR9Qr6Ehk9X7bNtS6XftYQdelPomK6DA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92647},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"0e58aeb73456aaddbfc357336ac4af78249350cd","scripts":{"lint":"eslint . --cache && npm run typecheck","test":"mocha --exit --reporter ${REPORTER:-spec}","build":"tsup","format":"prettier --write . && eslint --fix .","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","local-coverage":"c8 --reporter html npm test && c8 check-coverage || open ./coverage/index.html","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.3","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.2_1762429253927_0.6865362682431773","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@bonniernews/mcp-server","version":"0.0.3","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.0.3","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-server/issues"},"dist":{"shasum":"550b411c6bd1c768570bbc732d86f48417fd4270","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.0.3.tgz","fileCount":9,"integrity":"sha512-u3QX8nPjJq43hAAcOSUt+RHz1HPFk+vpmncnjjHIf0O6H9ZZbz59PQXQJfPQkGQ2YQSoLGCGWApda+paZGSXOA==","signatures":[{"sig":"MEUCICT5mpkCgnwwCwrYns/36AoQb8l7eMEs2VuxNEgfoiCAAiEA2t13sYQgjEUzFFyn5ruJRs1+qkZ2H2h9FoSpBgKJd28=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93336},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"15dc6e16c003baca326846ca7954ee8df0b82a46","scripts":{"lint":"eslint . --cache && npm run typecheck","test":"mocha --exit --reporter ${REPORTER:-spec}","build":"tsup","format":"prettier --write . && eslint --fix .","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","local-coverage":"c8 --reporter html npm test && c8 check-coverage || open ./coverage/index.html","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.18.0","dependencies":{"express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.3","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.3_1762429652694_0.7697040039749377","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@bonniernews/mcp-server","version":"0.0.4","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.0.4","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-server/issues"},"dist":{"shasum":"47f9de919a73dc2ecb29e81b6b1514206df28ecb","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.0.4.tgz","fileCount":9,"integrity":"sha512-2da4LI06Oygp/NWkMYVLZ6oRwxSWEgoM8UCNPKm6veMCeO/kztVJspqPk+G7cy8aVTn38XxzSlHBAx8mkIGH2Q==","signatures":[{"sig":"MEQCIEIECvVDnX/v1GlIGjaBwjORyeRQOvRT9fJh+L4O6qj8AiAbX7UlozRItzKgDq/u4zDHO3jK24kwEsk+zEp5hxVSAQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93759},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"f709580cb4fa55d85712596aac286756e11acee2","scripts":{"lint":"eslint . --cache && npm run typecheck","test":"mocha --exit --reporter ${REPORTER:-spec}","build":"tsup","format":"prettier --write . && eslint --fix .","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","local-coverage":"c8 --reporter html npm test && c8 check-coverage || open ./coverage/index.html","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.3","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.4_1762429952539_0.3580520081528977","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@bonniernews/mcp-server","version":"0.0.5","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.0.5","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-server/issues"},"dist":{"shasum":"b1c64b43da16d677979d234a34a987f31a4eb227","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.0.5.tgz","fileCount":9,"integrity":"sha512-krdY+UNYKu4DhBUYVG83wcLnG5i8ydmtJaX0paPirMt6Bki5M5zxV4Vh0rkxNutBq73tIyctWh1kIACFpVsoYQ==","signatures":[{"sig":"MEQCIAk3Jb1agzGezx9ayINpJrhnRDJ4bHz4yHkeRvXU4T86AiA/B+gTovCIgMYt8i3uXetoWVBaaqoQUmgrXy4mqMMajg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94660},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"cd2f184c1ee92a6280e26b74a5e668d4c8daf671","scripts":{"lint":"eslint . --cache && npm run typecheck","test":"mocha --exit --reporter ${REPORTER:-spec}","build":"tsup","format":"prettier --write . && eslint --fix .","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","local-coverage":"c8 --reporter html npm test && c8 check-coverage || open ./coverage/index.html","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.3","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.5_1762512491896_0.5393920856003998","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@bonniernews/mcp-server","version":"0.0.6","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.0.6","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-server/issues"},"dist":{"shasum":"0939b84d46f4bb11cd05f974b3d1102599fc34b0","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.0.6.tgz","fileCount":9,"integrity":"sha512-heZUIDuA9rlyxulEvqlIzh8kGD5ZzqSycn9mDUNG7fM2zFFe4i5bwqjBeXa1vl5fw+wXHK306zExCRLbxQDaPA==","signatures":[{"sig":"MEUCIQCtrp9b33UrJgSI9aLxYQ17qCPih2//ntdJSAvMN/9pngIgPLwfFPB4t4DKcdHj0rwJ9V1UMSzsyam+gAq/muvJAaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95482},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"9ac8004a384e48006cb55630cea168b0f06ab3e8","scripts":{"lint":"eslint . --cache && npm run typecheck","test":"mocha --exit --reporter ${REPORTER:-spec}","build":"tsup","format":"prettier --write . && eslint --fix .","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","local-coverage":"c8 --reporter html npm test && c8 check-coverage || open ./coverage/index.html","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.3","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.6_1762783352057_0.5893265520331714","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@bonniernews/mcp-server","version":"0.0.7","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.0.7","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-server/issues"},"dist":{"shasum":"2c4b02b1fe25d37f544eb3acc9bbb52442c19db2","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.0.7.tgz","fileCount":9,"integrity":"sha512-gaQ3vnUgmGoNlt5iqZOZ664lg8Y7ZrQgudLodAW/VUekJSHTuTTUek7KhoaS5+jGGDrc+2R+y8dRPtQVRckSsw==","signatures":[{"sig":"MEQCID2y+qWysn/XMc3O14PtsapkZBIWsGJEQi0ha3dLeMdhAiBRQ/A0vJPAf4DYXBSXWE7o7DcEvaRkW6f+tbppcQpG3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106331},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"912c045987ae397f2c97f5e26e20c878fec8f64f","scripts":{"lint":"eslint . --cache && npm run typecheck","test":"mocha","build":"tsup","format":"prettier --write . && eslint --fix .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","local-coverage":"c8 --reporter html npm test && c8 check-coverage || open ./coverage/index.html","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.17.1","express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.3","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.7_1762855466354_0.5800043080155208","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@bonniernews/mcp-server","version":"0.0.8","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.0.8","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-server/issues"},"dist":{"shasum":"8906a87202f4b52478438e19623f580efeeb5c87","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.0.8.tgz","fileCount":9,"integrity":"sha512-uPGoIYQDLcpGdHunRkLqYVVozgnrMaUoIPs8GwBLkH1271rd/y8MpQfc5+j8Uucs4eWWllseSYVMmXJy3mvcpg==","signatures":[{"sig":"MEYCIQDY4zwfWDhDZVdkHcFPqNZHWJdqhNAGs6tXTjgL8dsU3AIhAJ6+IOBWGs1GR2W9qC0M2My78rpqCPV47alfEllyu3F4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106089},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"b81e082b0c2a71391334198115378ae16dcf51e4","scripts":{"bump":"npm version patch -m 'Bump version to %s' && git push && git push --tags","lint":"eslint . --cache && npm run typecheck","test":"mocha","build":"tsup","format":"prettier --write . && eslint --fix .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","local-coverage":"c8 --reporter html npm test && c8 check-coverage || open ./coverage/index.html","prepublishOnly":"npm run build","bump-and-publish":"npm run bump && npm publish --access public"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.17.1","express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.3","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.8_1762870335987_0.8736257739013973","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@bonniernews/mcp-server","version":"0.0.9","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.0.9","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-server/issues"},"dist":{"shasum":"59a0735b8d6316aaac4cc55f582aee722ce483f4","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.0.9.tgz","fileCount":9,"integrity":"sha512-GcHsztzBxGDSiQdPB7GPIPITZicnX51hVT4XfV3Vn9lTCrhVfXe9RtuQcth7Dj5rKSDOUdgaUksrzUR3/4hqHg==","signatures":[{"sig":"MEYCIQCrY/aGPe9/L7XFtWmE9xBB1JSkAbffOwFR0m7KcEaAuwIhANOr0vlR2NHVKDt9Eo65eO+p7dD+2jafDOieqDv0HDHI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105937},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"e11f32392fcc43609e18cf029aef80c346899b9e","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"eslint . --cache && npm run typecheck","test":"mocha","build":"tsup","format":"prettier --write . && eslint --fix .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.17.1","express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.3","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.9_1762886606718_0.12961784337851556","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@bonniernews/mcp-server","version":"0.0.10","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.0.10","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/mcp-server/issues"},"dist":{"shasum":"f86f2c4a91d0f74e7ca807eb2f6ee75506827180","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.0.10.tgz","fileCount":9,"integrity":"sha512-Pq41EAUcj6aKLesScAloeXgmLWS/6hg9hqtJUyIZq1KmvW6YHULAreH768y4ntoNGVkKZcJYJvf7+STICeg74g==","signatures":[{"sig":"MEUCIBAIJvjyUV0tc3RZ5QNc/q6U4FZ8JoAVRefFlorgTWdKAiEA1QNyOd8pKHv7ghy4URs04QOsidFOZDVeS5qVSktmNBU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105977},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"201233a2c0aadac7eb44ca8b5d5d9b9c6a68cecf","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"eslint . --cache && npm run typecheck","test":"mocha","build":"tsup","format":"prettier --write . && eslint --fix .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.17.1","express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.3","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.10_1762886707770_0.539917163892043","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@bonniernews/mcp-server","version":"0.0.12","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.0.12","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/mcp-server/issues"},"dist":{"shasum":"3abb0fa6e34f38d2e4bdd06aaf9095b8c65d835f","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.0.12.tgz","fileCount":9,"integrity":"sha512-+S76vgezGI8Vsx8MB70kQjcrwQv5pooEkjDYKklWToGYhvCFmPtUMFtCSZpJFE3gAEGFP2fV/VVcL1ebp70y2g==","signatures":[{"sig":"MEYCIQDKcbsGHU+SdCF7xx93uU+zeP3tcjJWJtFMdMLx20MGzQIhALNxD8unPdv8o2b3jVO4Nz+s1g/WHVgo12y6Kq7/migE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119987},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"a61f65a49b21710c5ee94352b3bf21a018406d5c","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"eslint . --cache && npm run typecheck","test":"mocha","build":"tsup","format":"prettier --write . && eslint --fix .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.17.1","express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","sinon":"^21.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.12_1763454839388_0.3783353120152566","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@bonniernews/mcp-server","version":"0.0.13","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.0.13","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/mcp-server/issues"},"dist":{"shasum":"979e689bbf33e8aa05f5b449c622eb07f28b63e4","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.0.13.tgz","fileCount":9,"integrity":"sha512-ZT0soHn3nOX4u6DF2EjtC90Q5d6eX3gUP+QhrrKjGrPxzA56SntvZbewEz3W1ggyRkCbV2y7oEXbk1irqSVOog==","signatures":[{"sig":"MEUCIERsEsLMqXRX4Q/995BgYa4+RmQfJazHzdCkUF2L+tI5AiEAlU9SY+hNWr7QRsV7ID3IWcJWFyZZ9wngwWsPZXf21Js=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105881},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"ec1e608e554220d6748d2d13208eeb3790440d01","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"eslint . --cache && npm run typecheck","test":"mocha","build":"tsup","format":"prettier --write . && eslint --fix .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.17.1","express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.3","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.13_1763455203974_0.6001355016209728","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@bonniernews/mcp-server","version":"0.0.15","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.0.15","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/mcp-server/issues"},"dist":{"shasum":"0fa2a1784a6698f5d4a8659a3f25d79f5a51bb3c","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.0.15.tgz","fileCount":9,"integrity":"sha512-e96EXu1FLd+up4ABr/BAnpEzlwFR4wqrw1Dka1nJJIvSTUUF62O11XzekrOSxHc/UP/H+XLbFrwqNiDTIROwTA==","signatures":[{"sig":"MEYCIQDRkYiK+GdDWVEq/tyXj42kibOTpJ06cWyAiZmwTviIMgIhAMxJ/7Ni0revG/sUmdQfOr4qJ3tD+QAujJ5kLydu8Ppf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119987},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"523d7f40b8d47d86a4889191b683dd94f19dbddc","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"eslint . --cache && npm run typecheck","test":"mocha","build":"tsup","format":"prettier --write . && eslint --fix .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.17.1","express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","sinon":"^21.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.15_1763476452003_0.9019752375764587","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@bonniernews/mcp-server","version":"0.0.16","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.0.16","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"dist":{"shasum":"ed3ca0da8f2bdf3b3d81ca75366ea8ae9f16b90f","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.0.16.tgz","fileCount":9,"integrity":"sha512-P0xExKXIHqNfVcQXaLJmT7bAoyhOgEbOWUS01cy2zlSDCbMD0owOjtr2bSpJ2w35h5UUSfFGp2Ds0zGxw6BvQg==","signatures":[{"sig":"MEQCIHC8G4rDA9sXQJWOaZcL3uokJwySlo6Vz4ucVSDTTEW9AiAxkQKT3oEDsN92jrkheBsq0Y1co+yS+ChBQEUbo3zC5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120512},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"346e76ba7051489ff89fdbc56b30f329d138c8b4","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"eslint . --cache && npm run typecheck","test":"mocha","build":"tsup","format":"prettier --write . && eslint --fix .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.17.1","express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","sinon":"^21.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.16_1763998672352_0.17362005959366633","host":"s3://npm-registry-packages-npm-production"}},"0.0.17":{"name":"@bonniernews/mcp-server","version":"0.0.17","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.0.17","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"dist":{"shasum":"929d3f940afa22da7c971e56bd48b5a8b2b465f2","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.0.17.tgz","fileCount":9,"integrity":"sha512-BLK5VA4TRyB01LWUHhtRVacYE29KyQ0DH48h1aC1G6KwmhYAOIovSVaZCEMC3NQJpTCqjYaWrzmKwxKSObPyaQ==","signatures":[{"sig":"MEUCIQDP0yKy0ItFR7vD37q3UdjVHpHLAsiOiM+d/+vI57EdrQIgHEYpO7DIm5I2Dpe+tmB3ZPFhTNkmYNA3FmTZIf4CHC4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142409},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"28f074163da7f2e0bfb2b044c004989b7a5cc416","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"eslint . --cache && npm run typecheck","test":"mocha","build":"tsup","format":"prettier --write . && eslint --fix .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.17.1","express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","sinon":"^21.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.17_1765181303093_0.1203249163975808","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"@bonniernews/mcp-server","version":"0.0.18","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.0.18","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"dist":{"shasum":"800497684e12f70736af446421c91da763d734e0","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.0.18.tgz","fileCount":9,"integrity":"sha512-t/shoq8TB766RWeoPdFIbeH3dMY5kYqRC0HiINS6debac2LuJgY9Hjg5se409gCy+e2sZVApjYQk78lnkmGOYA==","signatures":[{"sig":"MEUCIDQXwmEF5Zcff+jRfzYZtO4Y45uy+7SiAGKtYW4TUxSIAiEA6hZqTsdIVnZAzTi1CMznoF2FAI+9bTzA8lW8EbDXrts=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144401},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"ed73db428342132a582026b1d50b0a981a9b8088","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"eslint . --cache && npm run typecheck","test":"mocha","build":"tsup","format":"prettier --write . && eslint --fix .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.17.1","express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","sinon":"^21.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.18_1765270481754_0.4220569850243736","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"@bonniernews/mcp-server","version":"0.0.19","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.0.19","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"dist":{"shasum":"7cf91cb5538320283fc0343bf36e265b205fbb86","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.0.19.tgz","fileCount":9,"integrity":"sha512-zqI3KAp1/I0zrbfVNgV3pna9dvR+yQOGuqbiTMMRvGP7j8TvmA9GRIuiqDpsBz0uo6D+26uQafLav1ELp/CRUQ==","signatures":[{"sig":"MEUCID7ZNodWh0XAEmaw7HZtf2u6ONHJXKo0MGc8MV/ulPCpAiEA2oiF8bt0ZZ99OtQ99aKQw7Qwc1XsYpuqcF3bSWMldrI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144873},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"422a452d179c8d73fea8928bc7e25227c114158f","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"eslint . --cache && npm run typecheck","test":"mocha","build":"tsup","format":"prettier --write . && eslint --fix .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.17.1","express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","sinon":"^21.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.19_1765271236531_0.12264583348807445","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@bonniernews/mcp-server","version":"0.1.0","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.1.0","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"dist":{"shasum":"9763e97e8a23ced8492472c2fff9fe5757dcbbd1","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.1.0.tgz","fileCount":9,"integrity":"sha512-3HuYw4tVq1ven35ZbtQcJNfX+XMN9ajpgOf9x3rXjLXwmpoJTkfRVE8Ln8TqD3uIDdcKGUkyfcu39BVvGRZtrQ==","signatures":[{"sig":"MEUCIQCwrd9Qu27Y7N6bqiSql8uptMsUn96PmeXVpXuCRXSKqwIgT2T96+tHYeKcKMqqfVHN4I8wfEOt4ReGFlWouax02XY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157410},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"7e34d0950c1270706dc63c0c477f212110d558c3","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"eslint . --cache && npm run typecheck","test":"mocha","build":"tsup","format":"prettier --write . && eslint --fix .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.17.1","express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","sinon":"^21.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.0_1765532081330_0.025718469644878006","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bonniernews/mcp-server","version":"0.1.1","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.1.1","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"dist":{"shasum":"400a67bb4b85c2f65325c45e1982240823ef3bd4","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.1.1.tgz","fileCount":9,"integrity":"sha512-ncZDFTnwoTtuJhp/817cRssaTC4nng+9d2f5a2MxC3HzaWapbW/F0QIY1VpY/uD2L/sSszYYX/3YOQJFTXJ96A==","signatures":[{"sig":"MEUCIQD3b8oLDuZTIwU9OffM52QR2x+vdD4cn01HPJIVG005cAIgO02iFiMM7lqvV86tWA0PdknJuvqyuxoNxtJlz0jtGpE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157292},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"cd3a9d4747e8fa7b3c15d2b363e8b602b1861cab","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"eslint . --cache && npm run typecheck","test":"mocha","build":"tsup","format":"prettier --write . && eslint --fix .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.17.1","express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","sinon":"^21.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.1_1765532496636_0.8250355272487269","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bonniernews/mcp-server","version":"0.1.2","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.1.2","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"dist":{"shasum":"0d928e69a71c628205d3b55d8c4b34ef8e90a055","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.1.2.tgz","fileCount":9,"integrity":"sha512-YqmxSmOMPnRROxQiaIIMRwhuUs/h2LR3YvP/y/BMMsQSEAMEDPkiE6tNVjk6O8eCH9y6t7XR6EHsclR4ZYJVVg==","signatures":[{"sig":"MEUCIDnqK0c2fGQPdQe+oVTo1FKeCtEOWB+WCh4OUhDJUV86AiEA7aY0HvD4InEhbuJrH4cE+5diIvWVyLUTIaEP70B0Cuc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158600},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"cd3a9d4747e8fa7b3c15d2b363e8b602b1861cab","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"eslint . --cache && npm run typecheck","test":"mocha","build":"tsup","format":"prettier --write . && eslint --fix .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.17.1","express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","sinon":"^21.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.2_1765532991431_0.809033596088576","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bonniernews/mcp-server","version":"0.1.3","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.1.3","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},{"name":"nblom","email":"niklas.blom@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"emilbjorklund","email":"emil@thatemil.com"},{"name":"lilianj","email":"japlilian@gmail.com"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"dist":{"shasum":"3f0045b180a40ad0e7f678e20e93922873b763a1","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.1.3.tgz","fileCount":9,"integrity":"sha512-M8Yk7X/hj757K5RkIuXzL4KVEnThSL+YmqVNv1P9l7BRjvpJIT3K91giVyZgpJYkiC/VcEfBseKkm2nzr4LwUA==","signatures":[{"sig":"MEYCIQCXoOZdoGy0j6MkkM7+lbmchIHBWedO43alplKGXujmlwIhAN3JFEwEZC85lBSriSyRWa9TRLF4k+DpD/9puGyLDENs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":159672},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"7a17886d4f9ba039bba004d4214a4ce0d3d6fb49","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"npm run format && eslint . --fix && npm run typecheck","test":"mocha && npm run lint ","build":"tsup","format":"prettier --write .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","test-debug":"mocha -n inspect-brk","prepublishOnly":"npm run build"},"_npmUser":{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"_npmVersion":"10.9.2","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ajv":"^8.17.1","express":"^5.1.0","supertest":"^7.1.4","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","sinon":"^21.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.3_1769672164946_0.3180642455471907","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bonniernews/mcp-server","version":"0.1.4","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.1.4","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},{"name":"nblom","email":"niklas.blom@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"emilbjorklund","email":"emil@thatemil.com"},{"name":"lilianj","email":"japlilian@gmail.com"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"dist":{"shasum":"f174217f2e47b748b0c651626c2887b2e744e4fe","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.1.4.tgz","fileCount":9,"integrity":"sha512-/ZjAQMsiNB7s1ersyeGq9KwbFhlIfY03MKo8LJ1Igky/r3Nsb6YhDTcOXt/Q9dcBhjJK4sh5Fa4DQqoGJj5mRQ==","signatures":[{"sig":"MEUCIQDdyMYbwCH74XeEoJO8AmNLRwgSyhmBwAyHDMEioAsekAIgfb6oy/Nl3U3NYbRapLHKTvXkhhOw2ShgtEJYzwBR/JA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160058},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"4f7c6c3e2bdad0d5082dbe4618fb6a0f599b520a","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"npm run format && eslint . --fix && npm run typecheck","test":"mocha && npm run lint ","build":"tsup","format":"prettier --write .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","test-debug":"mocha -n inspect-brk","prepublishOnly":"npm run build"},"_npmUser":{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"_npmVersion":"10.9.2","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ajv":"^8.17.1","express":"^5.1.0","supertest":"^7.1.4","ajv-formats":"^3.0.1","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","sinon":"^21.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.4_1770035065887_0.7989093609047184","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@bonniernews/mcp-server","version":"0.1.5","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.1.5","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},{"name":"nblom","email":"niklas.blom@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"emilbjorklund","email":"emil@thatemil.com"},{"name":"lilianj","email":"japlilian@gmail.com"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"dist":{"shasum":"4514af9cedab93e983d9c936ed6fa9509da1ef80","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.1.5.tgz","fileCount":9,"integrity":"sha512-ViwcCHsQuObicHUXyK4wzcLa9MHMuzOsJfnvQuzHiihE/wFrfjMlGUPE2ERqGP4wHH3JtHX5jSKYB7uwizV9LA==","signatures":[{"sig":"MEYCIQCs43rqweh8KTAQnbKKNxmpIFyvsdcMfxJfgspcEs5JtQIhALA/X+c+92h50D+R3brrV6167Yy+bJotxWaEnldJdgbc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160058},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"b1316421d6bab10d1a7e4e7503945e68a68c3448","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"npm run format && eslint . --fix && npm run typecheck","test":"mocha && npm run lint ","build":"tsup","format":"prettier --write .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","test-debug":"mocha -n inspect-brk","prepublishOnly":"npm run build"},"_npmUser":{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"_npmVersion":"10.9.2","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ajv":"^8.18.0","express":"^5.1.0","supertest":"^7.1.4","ajv-formats":"^3.0.1","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","sinon":"^21.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.5_1772194053466_0.06620003594979584","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bonniernews/mcp-server","version":"0.2.0","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.2.0","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"liroliro","email":"basistoscar@gmail.com"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},{"name":"nblom","email":"niklas.blom@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"emilbjorklund","email":"emil@thatemil.com"},{"name":"lilianj","email":"japlilian@gmail.com"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"dist":{"shasum":"aa89755586b5aaf03453ced8a18fa46681bf8c04","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.2.0.tgz","fileCount":9,"integrity":"sha512-UerLrBh/Znm4ssEXyG/SLGaXCSe5uUi5NqEmzaTMBBw3t0wQjvwOxYYMcIKJ7TWbkDPLx/ymx63hCCOa0emc7g==","signatures":[{"sig":"MEUCIDgZ1jm2FauJXusRR2tVz1MUfadCU/U9/GANA1VMSvf7AiEAtfsb3UAaIBEb6dlXRB6MqbDY7uUd/So70l8sDgzmH4o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202426},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"24b90109ed7ac4e3c3da4d7e1c72c401707c93ea","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"npm run format && eslint . --fix && npm run typecheck","test":"mocha && npm run lint ","build":"tsup","format":"prettier --write .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","test-debug":"mocha -n inspect-brk","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.18.0","express":"^5.1.0","supertest":"^7.1.4","ajv-formats":"^3.0.1","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","sinon":"^21.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.0_1773897339169_0.05089177432196279","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@bonniernews/mcp-server","version":"0.2.1","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.2.1","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"liroliro","email":"basistoscar@gmail.com"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},{"name":"nblom","email":"niklas.blom@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"emilbjorklund","email":"emil@thatemil.com"},{"name":"lilianj","email":"japlilian@gmail.com"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"dist":{"shasum":"7a5207f85d69589ca15dca4f0ac2ac574ceff9e7","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.2.1.tgz","fileCount":9,"integrity":"sha512-yYWoxm4i1M8w8N2NuY1I70owNUW7qR0EHiLmGvMbJjDXnQDNJK/DjpDQg+e3h7UeH9HbWXb5C3jhgMCPrWjJ5A==","signatures":[{"sig":"MEUCIQDHi7TJxypfdIvHDFxhAnlpkbuFIxeq1nPxD+5UxTL6MwIgNHTHadizP/pQzaFWx7FxtpyZCsD5o2q6jwWhMaKjZj0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211896},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"1ea9d8b989dab07ff2fc04e0e4c1a898dbf93f04","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"npm run format && eslint . --fix && npm run typecheck","test":"mocha && npm run lint ","build":"tsup","format":"prettier --write .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","test-debug":"mocha -n inspect-brk","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.18.0","express":"^5.1.0","supertest":"^7.1.4","ajv-formats":"^3.0.1","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","sinon":"^21.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.1_1773910022782_0.8446178566730245","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@bonniernews/mcp-server","version":"0.2.2","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.2.2","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"liroliro","email":"basistoscar@gmail.com"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},{"name":"nblom","email":"niklas.blom@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"emilbjorklund","email":"emil@thatemil.com"},{"name":"lilianj","email":"japlilian@gmail.com"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"dist":{"shasum":"896b611dac9dc4f9cbc3c9c5ad444972d6f71bd4","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.2.2.tgz","fileCount":9,"integrity":"sha512-Rk+9XhZ7lKxh12cdjqs8myqU64YH3L2Wr9JwiYiUbxwsghTHXPWYUKKJ0oEhKSAallSkGxGVcyKHO+ROqXTCzA==","signatures":[{"sig":"MEUCIQC4hU6PXPnjQseoHfGQo/+VYqzVcVZP4wC4IIdq6X9VMwIgY4f4jPeoWnCxYhWjpANSXoNSwsoXsNiuiS1iZzbWrXw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":224524},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"10b68c77c67e78c7406b3b7266206ee4af34014c","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"npm run format && eslint . --fix && npm run typecheck","test":"mocha && npm run lint ","build":"tsup","format":"prettier --write .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","test-debug":"mocha -n inspect-brk","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.18.0","express":"^5.1.0","supertest":"^7.1.4","ajv-formats":"^3.0.1","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","sinon":"^21.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.2_1773911553912_0.16155164210439832","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@bonniernews/mcp-server","version":"0.2.3","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.2.3","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.arola@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"liroliro","email":"basistoscar@gmail.com"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},{"name":"nblom","email":"niklas.blom@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"emilbjorklund","email":"emil@thatemil.com"},{"name":"lilianj","email":"japlilian@gmail.com"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"dist":{"shasum":"c49c05dcf712b17a57597d378fc45ae02ec8b82e","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.2.3.tgz","fileCount":9,"integrity":"sha512-vxNPfX944kskgD9jHiOZqcf8Pl//xvdmAhOXDdlW5ZLG4KZOFexst+/8b9WOKZf+6kKT6DFN7dtv8jVTCvYpuQ==","signatures":[{"sig":"MEQCIDcjFLr5iE/BDmIrMkNKo5VK92/pblgbk5T5VQvs89NVAiAxD0X8d8HN6V1/CDF/gdVCSl32EMpoS1E5BZssIV3Z0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":231051},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"777beb424c15631937a9bb4d5d4487cecf1105a5","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"npm run format && eslint . --fix && npm run typecheck","test":"mocha && npm run lint ","build":"tsup","format":"prettier --write .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","test-debug":"mocha -n inspect-brk","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.18.0","express":"^5.1.0","supertest":"^7.1.4","ajv-formats":"^3.0.1","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","sinon":"^21.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.3_1777291855880_0.7143111746152426","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@bonniernews/mcp-server","version":"0.2.4","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.2.4","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.arola@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"liroliro","email":"basistoscar@gmail.com"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},{"name":"nblom","email":"niklas.blom@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"emilbjorklund","email":"emil@thatemil.com"},{"name":"lilianj","email":"japlilian@gmail.com"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"dist":{"shasum":"e5f9669c0f1c713e6bbf8a9a627db55e2e7744d3","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.2.4.tgz","fileCount":9,"integrity":"sha512-CE4/WTbia6rFwo4XjunBN50Da2tBn7JjdInfSeAZSRkwLk6NVsN2b2C5Axoq70NkbUup1FkYZR6Lfc1Z0xLwgg==","signatures":[{"sig":"MEQCIF1/scowfEoLk48m1b3PXsylYWdZ/0gtq34+jI0+rymLAiBDclZ1ncjXmHCGZbPAcytCYz8+DMu3BtcD+l0+pyyLsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":231601},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"ea7bfc882eff20420d16ed1443454a562d963878","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && NEW_VERSION=$(npm version patch -m \"Bumping $PKG_NAME to %s\") && git add . && git commit -m \"Bumping $PKG_NAME to $NEW_VERSION\" || echo 'Commit already created' && git push && git push --tags","lint":"npm run format && eslint . --fix && npm run typecheck","test":"mocha && npm run lint ","build":"tsup","format":"prettier --write .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","test-debug":"mocha -n inspect-brk","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.18.0","express":"^5.1.0","supertest":"^7.1.4","ajv-formats":"^3.0.1","@types/express":"^5.0.5","@types/supertest":"^6.0.3","@bonniernews/logger":"^0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","sinon":"^21.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.4","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.4_1777292588385_0.10268605525908625","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@bonniernews/mcp-server","version":"0.2.6","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.2.6","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.arola@bonniernews.se"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"liroliro","email":"basistoscar@gmail.com"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},{"name":"johankasperi","email":"johan@kasperi.se"},{"name":"nblom","email":"niklas.blom@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"emilbjorklund","email":"emil@thatemil.com"},{"name":"lilianj","email":"japlilian@gmail.com"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"dist":{"shasum":"d949265de014beaa286346e6a49b329f6bb0bb68","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.2.6.tgz","fileCount":9,"integrity":"sha512-gEQpsNWldQRCcsUKFzNG2Q7mCiIuwcWIxrF57G6v4EFxPiOWB8lRmzsYUeik5UDEcFYInt8UkZ9AzNhgnbsqjA==","signatures":[{"sig":"MEYCIQDoQgvMGfpJ9KV1wmFDUCQOuIUfMPApdQz+trnY/CnI9wIhAMssZfSIXekLgc+kVhOQX0aCBasi7dgz4dXsp5NT2ytX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":233037},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"a90b48410eb83c188f684a58a802371910b003e4","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && npm version patch -m \"Bumping $PKG_NAME to %s\" && git push && git push --tags","lint":"npm run format && eslint . --fix && npm run typecheck","test":"mocha && npm run lint ","build":"tsup","format":"prettier --write .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","test-debug":"mocha -n inspect-brk","prepublishOnly":"npm run build"},"_npmUser":{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"_npmVersion":"11.9.0","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ajv":"8.20.0","express":"5.2.1","ajv-formats":"3.0.1","@types/express":"5.0.6","@bonniernews/logger":"0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.4","chai":"5.3.3","tsup":"8.5.1","mocha":"11.0.1","sinon":"21.0.1","eslint":"8.57.1","prettier":"3.8.3","supertest":"7.1.4","typescript":"5.7.2","@types/chai":"5.2.3","@types/node":"22.19.19","@types/mocha":"10.0.10","@types/sinon":"17.0.4","mocha-cakes-2":"3.3.0","@types/supertest":"6.0.3","typescript-eslint":"8.18.0","@bonniernews/tsconfig":"0.0.2","@bonniernews/eslint-config":"1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.6_1780999396031_0.8138804763678913","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@bonniernews/mcp-server","version":"0.2.7","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/mcp-server@0.2.7","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.arola@bonniernews.se"},{"name":"adil.aboulkacim","email":"adil.aboulkacim@bonniernews.se"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"liroliro","email":"basistoscar@gmail.com"},{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},{"name":"johankasperi","email":"johan@kasperi.se"},{"name":"nblom","email":"niklas.blom@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"emilbjorklund","email":"emil@thatemil.com"},{"name":"lilianj","email":"japlilian@gmail.com"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"dist":{"shasum":"ba9a34a109326f6e14b2c4ada41f59f8c4422c37","tarball":"https://registry.npmjs.org/@bonniernews/mcp-server/-/mcp-server-0.2.7.tgz","fileCount":9,"integrity":"sha512-mJ1A5hJG9zyi46s4/sPKs6CCtYPFqgHf2NHdl4DVCUB9CSxYMgUUSUuhtawpgT792fONckp1DTKWJLvzxw4PkQ==","signatures":[{"sig":"MEUCIQDBS64KIB/Yq8W2LLfuj9IVWe6mWstZ1p4qCgfcr9GQyQIgV6rxj9gXsU+57RChJyEtwSpRcZ5t5XFqxZDkq+mQfnA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":233133},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"f4076a3d7b5cc1e154f9385967b517f8e7b21fd5","scripts":{"bump":"PKG_NAME=$(node -p \"require('./package.json').name\") && npm version patch -m \"Bumping $PKG_NAME to %s\" && git push && git push --tags","lint":"npm run format && eslint . --fix && npm run typecheck","test":"mocha && npm run lint ","build":"tsup","format":"prettier --write .","pretest":":> logs/test.log","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","test-debug":"mocha -n inspect-brk","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:169e3dea-9ac0-4876-b4f3-ca538d1241c6"}},"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"_npmVersion":"11.17.0","description":"Wrapper for creating MCP servers","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ajv":"8.20.0","express":"5.2.1","ajv-formats":"3.0.1","@types/express":"5.0.6","@bonniernews/logger":"0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.4","chai":"5.3.3","tsup":"8.5.1","mocha":"11.7.6","sinon":"21.0.1","eslint":"8.57.1","prettier":"3.8.3","supertest":"7.1.4","typescript":"5.7.2","@types/chai":"5.2.3","@types/node":"22.19.19","@types/mocha":"10.0.10","@types/sinon":"17.0.4","mocha-cakes-2":"3.3.0","@types/supertest":"6.0.3","typescript-eslint":"8.18.0","@bonniernews/tsconfig":"0.0.2","@bonniernews/eslint-config":"1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.7_1787213398996_0.47063043680188166","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-11-06T10:32:26.882Z","modified":"2026-08-26T12:06:52.746Z","0.0.1":"2025-11-06T10:32:27.151Z","0.0.2":"2025-11-06T11:40:54.135Z","0.0.3":"2025-11-06T11:47:32.878Z","0.0.4":"2025-11-06T11:52:32.718Z","0.0.5":"2025-11-07T10:48:12.085Z","0.0.6":"2025-11-10T14:02:32.265Z","0.0.7":"2025-11-11T10:04:26.532Z","0.0.8":"2025-11-11T14:12:16.178Z","0.0.9":"2025-11-11T18:43:26.943Z","0.0.10":"2025-11-11T18:45:07.986Z","0.0.12":"2025-11-18T08:33:59.564Z","0.0.13":"2025-11-18T08:40:04.134Z","0.0.15":"2025-11-18T14:34:12.187Z","0.0.16":"2025-11-24T15:37:52.535Z","0.0.17":"2025-12-08T08:08:23.253Z","0.0.18":"2025-12-09T08:54:41.921Z","0.0.19":"2025-12-09T09:07:16.688Z","0.1.0":"2025-12-12T09:34:41.491Z","0.1.1":"2025-12-12T09:41:36.787Z","0.1.2":"2025-12-12T09:49:51.573Z","0.1.3":"2026-01-29T07:36:05.123Z","0.1.4":"2026-02-02T12:24:26.075Z","0.1.5":"2026-02-27T12:07:33.632Z","0.2.0":"2026-03-19T05:15:39.349Z","0.2.1":"2026-03-19T08:47:02.915Z","0.2.2":"2026-03-19T09:12:34.061Z","0.2.3":"2026-04-27T12:10:56.033Z","0.2.4":"2026-04-27T12:23:08.525Z","0.2.6":"2026-06-09T10:03:16.173Z","0.2.7":"2026-08-20T08:09:59.176Z"},"bugs":{"url":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server/issues"},"author":{"name":"Bonnier News"},"license":"MIT","homepage":"https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server#readme","keywords":["MCP","MCP server","Model Context Protocol","API server","HTTP API","Express","Node.js","dynamic tools","static tools","middleware","TypeScript","Atom API","JSON Schema","server wrapper","tool registry","API tools","dynamic API","request validation","server framework","Bonnier News"],"repository":{"url":"git+https://github.com/BonnierNews/mcp-monorepo/libs/mcp-server.git","type":"git"},"description":"Wrapper for creating MCP servers","maintainers":[{"email":"markus@botten.org","name":"markusn"},{"email":"max.olofsson@bonniernews.se","name":"mxtr"},{"email":"mats@rorbecker.com","name":"matsrorbecker"},{"email":"dan.arola@bonniernews.se","name":"dan.karlsson"},{"email":"adil.aboulkacim@bonniernews.se","name":"adil.aboulkacim"},{"email":"marie.winther@bonniernews.se","name":"marie-winther"},{"email":"marcus.gronblad@bonniernews.se","name":"marcusgronblad"},{"email":"axel.johansson@bonniernews.se","name":"axeljohanssonbonniernews"},{"email":"christoffer.karlberg@bonniernews.se","name":"karlbergc"},{"email":"chavah.forler@bonniernews.se","name":"chavah"},{"email":"joel.ekman@bonniernews.se","name":"joelekman"},{"email":"adam.hakansson@bonniernews.se","name":"adam.hakansson"},{"email":"marcus.hilleso@expressen.se","name":"hilleso"},{"email":"gusliden@gmail.com","name":"gusliden"},{"email":"andreas.samuelsson@bonniernews.se","name":"andreas.samuelsson"},{"email":"jesper.zachrisson@bonniernews.se","name":"jzachrisson"},{"email":"mattias.norlander@gmail.com","name":"norla"},{"email":"simon.varney@bonniernews.se","name":"varneynz"},{"email":"alice.boberg@bonniernews.se","name":"aliceboberg"},{"email":"johan.arkad@bonniernews.se","name":"johark"},{"email":"niklas.forsstrom@bonniernews.se","name":"nifo"},{"email":"herman.jansson@bonniernews.se","name":"herbola"},{"email":"andre.nordlund@bonniernews.se","name":"vitryssen"},{"email":"william.takolander@bonniernews.se","name":"takolander"},{"email":"marten.persson@hdsydsvenskan.se","name":"morre"},{"email":"mikael.mattsson@bonniernews.se","name":"mikael.mattsson"},{"email":"seb.christiansson@bonniernews.se","name":"schristianssonbn"},{"email":"mattias.olla@bonniernews.se","name":"mattiasobn"},{"email":"markus@daghall.se","name":"daghall"},{"email":"ericandersson1@gmail.com","name":"erandersson"},{"email":"jonathan.ek@bonniernews.se","name":"jonaek"},{"email":"amundsentb@gmail.com","name":"amundsentb"},{"email":"daniel.rasmussen@bonniernews.se","name":"drgeobn"},{"email":"oscar@tholander.nu","name":"oscartholander"},{"email":"peter.pettersson@bonniernews.se","name":"peterpettersson"},{"email":"basistoscar@gmail.com","name":"liroliro"},{"email":"andreas.egneblad@bonniernews.se","name":"torkelberget"},{"email":"johan@kasperi.se","name":"johankasperi"},{"email":"jon.eldeklint@bonniernews.se","name":"jon.eldeklint"},{"email":"niklas.blom@bonniernews.se","name":"nblom"},{"email":"jakob.pedersen@bonniernews.se","name":"jackesa"},{"email":"olle.nordin@bonniernews.se","name":"ollenolle"},{"email":"emil@thatemil.com","name":"emilbjorklund"},{"email":"japlilian@gmail.com","name":"lilianj"},{"email":"kristoffer.jansson@bonniernews.se","name":"kristofferjansson"},{"email":"kit.gustavsson@bonniernews.se","name":"kitgus"},{"email":"alexi.rahman@r76.se","name":"odynvolk"}],"readme":"# @bonniernews/mcp-server\n\nA custom wrapper for an MCP (Model Context Protocol) server using Express. This library facilitates the creation and management of tools that can be exposed via an HTTP API, with special support for Atom API schemas.\n\n## Installation\n\n```bash\nnpm install @bonniernews/mcp-server\n```\n\n## Publishing\n\nThis package is published to npm automatically via CI/CD when changes are merged to the main branch.\n\nTo publish a new version:\n\n```bash\nnpm run bump\n```\n\n**[NOT WORKING!]** The CI/CD pipeline will automatically publish the new version to npm.\n\nThen run `npm publish --access public`\n\n## `MCPServer` Configuration Properties\n\n| Property   | Type                                     | Description                                                                                                                                                                                                                                        | Default Value |\n| :--------- | :--------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ |\n| `app`      | `Express.Application`                    | An optional existing Express application instance. If provided, `MCPServer` will mount its routes on this app and will _not_ add its own body parsing, correlation ID middleware, or healthcheck route. You are responsible for starting your app. | `undefined`   |\n| `path`     | `string`                                 | The base path where the MCP routes will be mounted. Only applicable when `app` is provided.                                                                                                                                                        | `\"/mcp/\"`     |\n| `tools`    | `Array<Tool \\| DynamicTool>`             | An array of tool definitions to be exposed by the server. Tools can be static or dynamic.                                                                                                                                                          | `[]`          |\n| `port`     | `number`                                 | The port on which the server will listen. Only applicable when `app` is _not_ provided.                                                                                                                                                            | `3000`        |\n| `logLevel` | `\"debug\" \\| \"info\" \\| \"warn\" \\| \"error\"` | The minimum logging level for the server.                                                                                                                                                                                                          | `\"info\"`      |\n| `strict`   | `boolean`                                | Enables or disables strict input validation against the tool's `inputSchema`. When `true`, requests with invalid input will receive validation errors.                                                                                             | `true`        |\n\n## Tool Definition Properties\n\nWhen defining a tool, whether static or dynamic, the following properties are available:\n\n| Property         | Type                                                                                                | Description                                                                                                                                                                                                                                                                                                                                                       |\n| :--------------- | :-------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `name`           | `string`                                                                                            | A unique identifier for the tool.                                                                                                                                                                                                                                                                                                                                 |\n| `description`    | `string`                                                                                            | A brief explanation of what the tool does.                                                                                                                                                                                                                                                                                                                        |\n| `inputSchema`    | `object` (JSON Schema)                                                                              | A JSON Schema defining the expected input arguments for the tool's `implementation`.                                                                                                                                                                                                                                                                              |\n| `outputSchema`   | `object` (JSON Schema)                                                                              | An optional JSON Schema defining the expected output structure of the tool's `implementation`. This is primarily for documentation and validation purposes.                                                                                                                                                                                                       |\n| `implementation` | `(args: object, context: { traceId?: string, traceparent?: string, req: Request }) => Promise<any>` | The asynchronous function that contains the core logic of the tool. It receives validated `args` and a `context` object containing tracing information and the original Express request object.                                                                                                                                                                   |\n| `middlewares`    | `Array<Middleware>`                                                                                 | An optional array of Express-style middleware functions that will be executed in order _before_ the `implementation` of the tool. Each middleware receives `(req, res, next)` and can modify the request, short-circuit the response, or pass control to the next middleware or the `implementation`. See [Middleware Usage](#middleware-usage) for more details. |\n| `resolver`       | `({ req: Request }) => Promise<Omit<Tool, 'name' \\| 'resolver'>>`                                   | **(For Dynamic Tools Only)** An asynchronous function that resolves the `description`, `inputSchema`, `outputSchema`, `implementation`, and `middlewares` of the tool dynamically based on the incoming Express `Request` object. The `name` of a dynamic tool must be static.                                                                                    |\n\n## Usage\n\n### Basic Example\n\n```typescript\nimport { MCPServer } from \"@bonniernews/mcp-server\";\nimport { fatalErrorCounter } from \"../metrics.js\";\n\n// When no 'app' is provided, MCPServer creates its own Express app and\n// handles body parsing, correlation IDs, and a healthcheck route.\nconst mcpServer = new MCPServer({\n  tools: [\n    {\n      name: \"echo\",\n      description: \"Echoes the input back\",\n      inputSchema: {\n        type: \"object\",\n        properties: {\n          message: {\n            type: \"string\",\n            description: \"The message to echo\",\n          },\n        },\n        required: [\"message\"],\n      },\n      onError: ({ error, req }) => {\n        fatalErrorCounter.inc();\n      },\n      implementation: async (\n        args: { message: string },\n        context: { traceId?: string; traceparent?: string; req: Request }\n      ) => {\n        return { echoedMessage: args.message };\n      },\n    },\n  ],\n  port: 3000,\n  logLevel: \"debug\",\n});\n\nmcpServer\n  .start()\n  .then(() => {\n    console.log(\"MCP Server started on port 3000\");\n  })\n  .catch((error) => {\n    console.error(\"Failed to start MCP Server:\", error);\n  });\n```\n\n### Co-located tools with Express routes\n\nYou can define MCP tools directly on your Express routes using the `definition` middleware. This allows the same handler to serve both standard HTTP requests and MCP tool calls.\n\n```typescript\nimport express from \"express\";\nimport { MCPServer, definition } from \"@bonniernews/mcp-server\";\n\nconst app = express();\napp.use(express.json());\n\n// Initialize MCPServer with the express app\ninitinitMcpServer({ app, strict: true });\n\n// Math calculator tool co-located with an Express route\napp.post(\n  \"/calculate\",\n  definition({\n    name: \"calculate\",\n    description: \"Performs arithmetic calculations\",\n    inputSchema: {\n      type: \"object\",\n      properties: {\n        operation: { type: \"string\", enum: [\"add\", \"subtract\"] },\n        a: { type: \"number\" },\n        b: { type: \"number\" },\n      },\n      required: [\"operation\", \"a\", \"b\"],\n    },\n  }),\n  (req, res) => {\n    const { operation, a, b } = req.body;\n    let result;\n    if (operation === \"add\") result = a + b;\n    if (operation === \"subtract\") result = a - b;\n    res.json({ result });\n  }\n);\n\napp.listen(3000, () => {\n  console.log(\"Server running on http://localhost:3000\");\n  console.log(\"MCP endpoint: http://localhost:3000/mcp/\");\n});\n```\n\n#### Route Params and Query Params\n\nWhen using `definition` with Express routes that have route params (e.g., `/projects/:projectId`) or query params, the MCP server automatically merges these into the request body with the following priority:\n\n**Priority (highest to lowest):**\n\n1. **Body** - Arguments passed via MCP tool call\n2. **Params** - Route parameters from the URL path\n3. **Query** - Query string parameters\n\nThis allows you to write routes that work seamlessly both as HTTP endpoints and MCP tools:\n\n```typescript\napp.get(\n  \"/projects/:projectId\",\n  definition({\n    name: \"get_project\",\n    description: \"Get a project by ID\",\n    inputSchema: {\n      type: \"object\",\n      properties: {\n        projectId: { type: \"string\" },\n      },\n      required: [\"projectId\"],\n    },\n  }),\n  (req, res) => {\n    // When called via MCP: req.params.projectId is populated from args.projectId\n    // When called via HTTP: req.params.projectId comes from the URL\n    const { projectId } = req.params;\n    res.json({ projectId });\n  }\n);\n\n// MCP call example:\n// tools/call { name: \"get_project\", arguments: { projectId: \"123\" } }\n// → req.params.projectId = \"123\", req.body.projectId = \"123\"\n\n// HTTP call example:\n// GET /projects/456\n// → req.params.projectId = \"456\"\n```\n\n### Dynamic tools resolved from routes\n\nYou can also use a resolver function if you need to dynamically define the tool's schema or description (e.g., based on request context).\n\n```typescript\napp.post(\n  \"/dynamic-tool\",\n  definition({\n    name: \"dynamic-tool-name\",\n    resolver: async (context) => {\n      // Perform some async logic to get tool metadata\n      return {\n        description: \"A dynamically resolved tool\",\n        inputSchema: {\n          /* ... */\n        },\n      };\n    },\n  }),\n  (req, res) => {\n    res.json({ echoed: req.body.echo });\n  }\n);\n```\n\n### Example with Custom Express App and Path\n\nYou can provide your own Express application instance and specify a custom path for the MCP routes. When `app` is provided, `MCPServer` will **not** add its own body parsing, correlation ID middleware, or healthcheck route, giving you full control over your Express app's configuration. In this scenario, you are responsible for starting your Express app.\n\n```typescript\nimport { MCPServer } from \"@bonniernews/mcp-server\";\nimport express from \"express\";\nimport { middleware as correlatorMiddleware } from \"@bonniernews/logger\";\n\nconst app = express();\napp.use(express.json()); // Ensure JSON body parsing is handled by your app\napp.use(correlatorMiddleware()); // Add other middleware as needed\n\napp.get(\"/health\", (req, res) => {\n  res.status(200).send(\"Application is healthy!\");\n});\n\nconst mcpServer = new MCPServer({\n  app: app, // Provide your existing Express app\n  path: \"/api/mcp\", // Custom path for MCP routes\n  tools: [\n    {\n      name: \"greet\",\n      description: \"Greets the user\",\n      inputSchema: {\n        type: \"object\",\n        properties: {\n          name: {\n            type: \"string\",\n            description: \"The name to greet\",\n          },\n        },\n        required: [\"name\"],\n      },\n      implementation: async (args: { name: string }) => {\n        return { greeting: `Hello, ${args.name}!` };\n      },\n    },\n  ],\n  logLevel: \"info\",\n});\n\nconst port = 3000;\napp\n  .listen(port, () => {\n    console.log(`Express app with MCP routes mounted on /api/mcp listening on port ${port}`);\n  })\n  .on(\"error\", (err) => {\n    console.error(\"Failed to start Express app:\", err);\n  });\n```\n\n### Example with Atom Schema\n\nThis example demonstrates how to use the `_options` custom parameter, which will be transformed into an `enum` when the `x-atom-schema: true` header is sent, otherwise all custom properties will be filtered.\n\n```typescript\nimport { MCPServer } from \"@bonniernews/mcp-server\";\n\nconst mcpServer = new MCPServer({\n  tools: [\n    {\n      name: \"orderCoffee\",\n      description: \"Orders a specific type of coffee\",\n      inputSchema: {\n        type: \"object\",\n        properties: {\n          coffeeType: {\n            type: \"string\",\n            description: \"The type of coffee to order\",\n            _options: [\n              { value: \"latte\", label: \"Latte\" },\n              { value: \"cappuccino\", label: \"Cappuccino\" },\n              { value: \"espresso\", label: \"Espresso\" },\n            ],\n          },\n          size: {\n            type: \"string\",\n            description: \"The size of the coffee\",\n            enum: [\"small\", \"medium\", \"large\"],\n          },\n        },\n        required: [\"coffeeType\", \"size\"],\n      },\n      implementation: async (args: { coffeeType: string; size: string }) => {\n        return `Ordering a ${args.size} ${args.coffeeType}.`;\n      },\n    },\n  ],\n  port: 3000,\n  logLevel: \"debug\",\n});\n\nmcpServer\n  .start()\n  .then(() => {\n    console.log(\"MCP Server started on port 3000\");\n  })\n  .catch((error) => {\n    console.error(\"Failed to start MCP Server:\", error);\n  });\n```\n\n### Example with FunctionResponse\n\nThis example shows how to wrap the tool's response using `FunctionResponse` for additional metadata like caching and usage supported in Atom.\n\n```typescript\nimport { MCPServer, ar } from \"@bonniernews/mcp-server\";\n\nconst mcpServer = new MCPServer({\n  tools: [\n    {\n      name: \"fetchUserData\",\n      description: \"Fetches user data, indicating if the result is cachable\",\n      inputSchema: {\n        type: \"object\",\n        properties: {\n          userId: {\n            type: \"string\",\n            description: \"The ID of the user to fetch\",\n          },\n        },\n        required: [\"userId\"],\n      },\n      implementation: async (args: { userId: string }) => {\n        try {\n          // do some api call\n          const response = await fetch(\"väder.com\");\n          return ar.wrap({\n            response: await response.json(),\n            cachable: true,\n            usage: {\n              total_tokens: 10,\n              prompt_tokens: 5,\n              completion_tokens: 5,\n            },\n            meta: {\n              source: \"database\",\n              queryTime: Date.now(),\n            },\n          });\n        } catch (error) {\n          // never throw error in function, and dont cache error responses\n          return ar.uncachable({\n            status: error.message,\n          });\n        }\n      },\n    },\n  ],\n  port: 3000,\n  logLevel: \"debug\",\n});\n\nmcpServer\n  .start()\n  .then(() => {\n    console.log(\"MCP Server started on port 3000\");\n  })\n  .catch((error) => {\n    console.error(\"Failed to start MCP Server:\", error);\n  });\n```\n\n### Example with Dynamic Tools\n\nThis example demonstrates how to define individual tools whose `description`, `inputSchema`, `outputSchema`, and `implementation` are resolved dynamically based on the incoming request. The `name` of the dynamic tool must be static. This allows for context-aware tool behavior without needing to fetch all tool definitions for every single tool call.\n\n```typescript\nimport { MCPServer } from \"@bonniernews/mcp-server\";\nimport type { Request } from \"express\";\n\nconst mcpServer = new MCPServer({\n  tools: [\n    {\n      // Define a dynamic tool with a static name\n      name: \"userActions\",\n      resolver: async ({ req: Request }) => {\n        const userRole = req.headers[\"x-user-role\"] || \"guest\"; // Example: get role from header\n\n        if (userRole === \"admin\") {\n          return {\n            description: \"Performs administrative actions\",\n            inputSchema: {\n              type: \"object\",\n              properties: {\n                action: {\n                  type: \"string\",\n                  enum: [\"audit\", \"manageUsers\"],\n                  description: \"Admin action to perform\",\n                },\n              },\n              required: [\"action\"],\n            },\n            implementation: async (args: { action: string }) => {\n              return { status: `Admin action '${args.action}' executed.` };\n            },\n          };\n        } else {\n          return {\n            description: \"Performs regular user actions\",\n            inputSchema: {\n              type: \"object\",\n              properties: {\n                query: {\n                  type: \"string\",\n                  description: \"A general query for user functions\",\n                },\n              },\n              required: [\"query\"],\n            },\n            implementation: async (args: { query: string }) => {\n              return { result: `User action for query '${args.query}' processed.` };\n            },\n          };\n        }\n      },\n    },\n  ],\n  port: 3000,\n  logLevel: \"debug\",\n});\n\nmcpServer\n  .start()\n  .then(() => {\n    console.log(\"MCP Server started on port 3000\");\n  })\n  .catch((error) => {\n    console.error(\"Failed to start MCP Server:\", error);\n  });\n```\n\n### Example with `addTool` function\n\nYou can add tools to the `MCPServer` instance after its initialization using the `addTool` method. This allows for dynamic registration of tools at runtime.\n\n```typescript\nimport { initMcpServer } from \"@bonniernews/mcp-server\";\n\nconst mcpServer = new initMcpServer({\n  port: 3000,\n  logLevel: \"debug\",\n});\n\n// Add a static tool after server initialization\nmcpServer.addTool({\n  name: \"weather\",\n  description: \"Gets the current weather for a location\",\n  inputSchema: {\n    type: \"object\",\n    properties: {\n      location: {\n        type: \"string\",\n        description: \"The city or region to get weather for\",\n      },\n    },\n    required: [\"location\"],\n  },\n  implementation: async (args: { location: string }) => {\n    // Simulate fetching weather data\n    return { temperature: \"25°C\", conditions: \"Sunny\", location: args.location };\n  },\n});\n\n// Add a dynamic tool after server initialization\nmcpServer.addTool({\n  name: \"personalAssistant\",\n  resolver: async ({ req }) => {\n    const userId = req.headers[\"x-user-id\"]; // Example: get user ID from header\n    if (userId === \"admin123\") {\n      return {\n        description: \"Admin personal assistant actions\",\n        inputSchema: {\n          type: \"object\",\n          properties: {\n            task: {\n              type: \"string\",\n              enum: [\"scheduleMeeting\", \"reviewReports\"],\n              description: \"Admin task to perform\",\n            },\n          },\n          required: [\"task\"],\n        },\n        implementation: async (args: { task: string }) => {\n          return { status: `Admin assistant executing: ${args.task}` };\n        },\n      };\n    } else {\n      return {\n        description: \"General user personal assistant actions\",\n        inputSchema: {\n          type: \"object\",\n          properties: {\n            query: {\n              type: \"string\",\n              description: \"A general personal assistant query\",\n            },\n          },\n          required: [\"query\"],\n        },\n        implementation: async (args: { query: string }) => {\n          return { result: `Assistant processing user query: ${args.query}` };\n        },\n      };\n    }\n  },\n});\n\nmcpServer\n  .start()\n  .then(() => {\n    console.log(\"MCP Server started on port 3000 with dynamically added tools\");\n  })\n  .catch((error) => {\n    console.error(\"Failed to start MCP Server:\", error);\n  });\n```\n\n### Middleware Usage\n\nMiddlewares provide a powerful way to intercept and process requests before they reach the tool's `implementation`. They are similar to Express middlewares and can modify `req.body.params.arguments`, short-circuit the response, or handle errors.\n\n#### Middleware that modifies arguments\n\nThis example shows a middleware modifying the incoming arguments before they reach the tool's `implementation`.\n\n```typescript\nimport { MCPServer } from \"@bonniernews/mcp-server\";\n\nconst mcpServer = new MCPServer({\n  tools: [\n    {\n      name: \"middleware-tool\",\n      description: \"A tool with middleware that modifies arguments\",\n      middlewares: [\n        (req, _, next) => {\n          // Add a new argument\n          req.body.params.arguments.modifiedByMiddleware = true;\n          next(); // Pass control to the next middleware or the implementation\n        },\n      ],\n      implementation: async (args: { modifiedByMiddleware: boolean }) => {},\n    },\n  ],\n  port: 3000,\n});\n\nmcpServer.start();\n```\n","readmeFilename":"README.md"}