mcp-auth-server 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. package/README.md +207 -2
  2. package/bin/keygen.mjs +26 -0
  3. package/lib/adapters/express/express.middleware.d.ts +4 -0
  4. package/lib/adapters/express/express.middleware.js +23 -0
  5. package/lib/adapters/express/express.middleware.js.map +1 -0
  6. package/lib/adapters/fastify/fastify.plugin.d.ts +4 -0
  7. package/lib/adapters/fastify/fastify.plugin.js +32 -0
  8. package/lib/adapters/fastify/fastify.plugin.js.map +1 -0
  9. package/lib/adapters/fetch/create.fetch.handler.d.ts +3 -0
  10. package/lib/adapters/fetch/create.fetch.handler.js +13 -0
  11. package/lib/adapters/fetch/create.fetch.handler.js.map +1 -0
  12. package/lib/adapters/fetch/to.http.request.d.ts +3 -0
  13. package/lib/adapters/fetch/to.http.request.js +22 -0
  14. package/lib/adapters/fetch/to.http.request.js.map +1 -0
  15. package/lib/adapters/fetch/to.response.d.ts +3 -0
  16. package/lib/adapters/fetch/to.response.js +10 -0
  17. package/lib/adapters/fetch/to.response.js.map +1 -0
  18. package/lib/adapters/koa/koa.middleware.d.ts +4 -0
  19. package/lib/adapters/koa/koa.middleware.js +19 -0
  20. package/lib/adapters/koa/koa.middleware.js.map +1 -0
  21. package/lib/adapters/node/create.node.handler.d.ts +4 -0
  22. package/lib/adapters/node/create.node.handler.js +16 -0
  23. package/lib/adapters/node/create.node.handler.js.map +1 -0
  24. package/lib/adapters/node/node.ssrf.guard.d.ts +2 -0
  25. package/lib/adapters/node/node.ssrf.guard.js +16 -0
  26. package/lib/adapters/node/node.ssrf.guard.js.map +1 -0
  27. package/lib/adapters/node/parse.node.body.d.ts +3 -0
  28. package/lib/adapters/node/parse.node.body.js +16 -0
  29. package/lib/adapters/node/parse.node.body.js.map +1 -0
  30. package/lib/adapters/node/read.node.body.d.ts +3 -0
  31. package/lib/adapters/node/read.node.body.js +10 -0
  32. package/lib/adapters/node/read.node.body.js.map +1 -0
  33. package/lib/adapters/node/to.node.http.request.d.ts +4 -0
  34. package/lib/adapters/node/to.node.http.request.js +20 -0
  35. package/lib/adapters/node/to.node.http.request.js.map +1 -0
  36. package/lib/adapters/node/write.node.response.d.ts +4 -0
  37. package/lib/adapters/node/write.node.response.js +10 -0
  38. package/lib/adapters/node/write.node.response.js.map +1 -0
  39. package/lib/cache/lru.metadata.cache.d.ts +10 -0
  40. package/lib/cache/lru.metadata.cache.js +31 -0
  41. package/lib/cache/lru.metadata.cache.js.map +1 -0
  42. package/lib/functions/body/parse.body.d.ts +2 -0
  43. package/lib/functions/body/parse.body.js +20 -0
  44. package/lib/functions/body/parse.body.js.map +1 -0
  45. package/lib/functions/body/parse.query.d.ts +2 -0
  46. package/lib/functions/body/parse.query.js +16 -0
  47. package/lib/functions/body/parse.query.js.map +1 -0
  48. package/lib/functions/cimd/assert.public.host.d.ts +2 -0
  49. package/lib/functions/cimd/assert.public.host.js +15 -0
  50. package/lib/functions/cimd/assert.public.host.js.map +1 -0
  51. package/lib/functions/cimd/cache.seconds.d.ts +2 -0
  52. package/lib/functions/cimd/cache.seconds.js +16 -0
  53. package/lib/functions/cimd/cache.seconds.js.map +1 -0
  54. package/lib/functions/cimd/create.metadata.resolver.d.ts +5 -0
  55. package/lib/functions/cimd/create.metadata.resolver.js +53 -0
  56. package/lib/functions/cimd/create.metadata.resolver.js.map +1 -0
  57. package/lib/functions/cimd/host.matches.d.ts +2 -0
  58. package/lib/functions/cimd/host.matches.js +5 -0
  59. package/lib/functions/cimd/host.matches.js.map +1 -0
  60. package/lib/functions/cimd/is.metadata.client.id.d.ts +2 -0
  61. package/lib/functions/cimd/is.metadata.client.id.js +14 -0
  62. package/lib/functions/cimd/is.metadata.client.id.js.map +1 -0
  63. package/lib/functions/cimd/is.private.ipv4.d.ts +2 -0
  64. package/lib/functions/cimd/is.private.ipv4.js +18 -0
  65. package/lib/functions/cimd/is.private.ipv4.js.map +1 -0
  66. package/lib/functions/cimd/is.private.ipv6.d.ts +2 -0
  67. package/lib/functions/cimd/is.private.ipv6.js +17 -0
  68. package/lib/functions/cimd/is.private.ipv6.js.map +1 -0
  69. package/lib/functions/cimd/read.limited.d.ts +2 -0
  70. package/lib/functions/cimd/read.limited.js +32 -0
  71. package/lib/functions/cimd/read.limited.js.map +1 -0
  72. package/lib/functions/cimd/validate.metadata.document.d.ts +3 -0
  73. package/lib/functions/cimd/validate.metadata.document.js +25 -0
  74. package/lib/functions/cimd/validate.metadata.document.js.map +1 -0
  75. package/lib/functions/consent/consent.styles.d.ts +2 -0
  76. package/lib/functions/consent/consent.styles.js +20 -0
  77. package/lib/functions/consent/consent.styles.js.map +1 -0
  78. package/lib/functions/consent/escape.html.d.ts +2 -0
  79. package/lib/functions/consent/escape.html.js +5 -0
  80. package/lib/functions/consent/escape.html.js.map +1 -0
  81. package/lib/functions/consent/render.default.consent.d.ts +3 -0
  82. package/lib/functions/consent/render.default.consent.js +50 -0
  83. package/lib/functions/consent/render.default.consent.js.map +1 -0
  84. package/lib/functions/crypto/random.id.d.ts +2 -0
  85. package/lib/functions/crypto/random.id.js +5 -0
  86. package/lib/functions/crypto/random.id.js.map +1 -0
  87. package/lib/functions/crypto/random.token.d.ts +2 -0
  88. package/lib/functions/crypto/random.token.js +9 -0
  89. package/lib/functions/crypto/random.token.js.map +1 -0
  90. package/lib/functions/crypto/sha256.base64.url.d.ts +2 -0
  91. package/lib/functions/crypto/sha256.base64.url.js +10 -0
  92. package/lib/functions/crypto/sha256.base64.url.js.map +1 -0
  93. package/lib/functions/crypto/sha256.digest.d.ts +2 -0
  94. package/lib/functions/crypto/sha256.digest.js +5 -0
  95. package/lib/functions/crypto/sha256.digest.js.map +1 -0
  96. package/lib/functions/crypto/sha256.hex.d.ts +2 -0
  97. package/lib/functions/crypto/sha256.hex.js +9 -0
  98. package/lib/functions/crypto/sha256.hex.js.map +1 -0
  99. package/lib/functions/crypto/to.base64.url.d.ts +2 -0
  100. package/lib/functions/crypto/to.base64.url.js +10 -0
  101. package/lib/functions/crypto/to.base64.url.js.map +1 -0
  102. package/lib/functions/http/form.params.d.ts +2 -0
  103. package/lib/functions/http/form.params.js +5 -0
  104. package/lib/functions/http/form.params.js.map +1 -0
  105. package/lib/functions/http/header.value.d.ts +3 -0
  106. package/lib/functions/http/header.value.js +8 -0
  107. package/lib/functions/http/header.value.js.map +1 -0
  108. package/lib/functions/http/json.response.d.ts +3 -0
  109. package/lib/functions/http/json.response.js +9 -0
  110. package/lib/functions/http/json.response.js.map +1 -0
  111. package/lib/functions/http/oauth.error.response.d.ts +3 -0
  112. package/lib/functions/http/oauth.error.response.js +9 -0
  113. package/lib/functions/http/oauth.error.response.js.map +1 -0
  114. package/lib/functions/http/plain.error.response.d.ts +3 -0
  115. package/lib/functions/http/plain.error.response.js +5 -0
  116. package/lib/functions/http/plain.error.response.js.map +1 -0
  117. package/lib/functions/http/query.param.d.ts +3 -0
  118. package/lib/functions/http/query.param.js +8 -0
  119. package/lib/functions/http/query.param.js.map +1 -0
  120. package/lib/functions/http/redirect.response.d.ts +3 -0
  121. package/lib/functions/http/redirect.response.js +5 -0
  122. package/lib/functions/http/redirect.response.js.map +1 -0
  123. package/lib/functions/http/text.value.d.ts +2 -0
  124. package/lib/functions/http/text.value.js +5 -0
  125. package/lib/functions/http/text.value.js.map +1 -0
  126. package/lib/functions/http/trim.trailing.slashes.d.ts +2 -0
  127. package/lib/functions/http/trim.trailing.slashes.js +10 -0
  128. package/lib/functions/http/trim.trailing.slashes.js.map +1 -0
  129. package/lib/functions/jwt/sign.access.token.d.ts +4 -0
  130. package/lib/functions/jwt/sign.access.token.js +21 -0
  131. package/lib/functions/jwt/sign.access.token.js.map +1 -0
  132. package/lib/functions/jwt/verify.access.token.d.ts +4 -0
  133. package/lib/functions/jwt/verify.access.token.js +16 -0
  134. package/lib/functions/jwt/verify.access.token.js.map +1 -0
  135. package/lib/functions/keys/der.length.d.ts +2 -0
  136. package/lib/functions/keys/der.length.js +12 -0
  137. package/lib/functions/keys/der.length.js.map +1 -0
  138. package/lib/functions/keys/is.rsa.key.d.ts +2 -0
  139. package/lib/functions/keys/is.rsa.key.js +8 -0
  140. package/lib/functions/keys/is.rsa.key.js.map +1 -0
  141. package/lib/functions/keys/normalize.pem.d.ts +2 -0
  142. package/lib/functions/keys/normalize.pem.js +16 -0
  143. package/lib/functions/keys/normalize.pem.js.map +1 -0
  144. package/lib/functions/keys/pkcs1.to.pkcs8.d.ts +2 -0
  145. package/lib/functions/keys/pkcs1.to.pkcs8.js +14 -0
  146. package/lib/functions/keys/pkcs1.to.pkcs8.js.map +1 -0
  147. package/lib/functions/keys/resolve.key.pair.d.ts +3 -0
  148. package/lib/functions/keys/resolve.key.pair.js +27 -0
  149. package/lib/functions/keys/resolve.key.pair.js.map +1 -0
  150. package/lib/functions/keys/signing.key.from.env.d.ts +2 -0
  151. package/lib/functions/keys/signing.key.from.env.js +14 -0
  152. package/lib/functions/keys/signing.key.from.env.js.map +1 -0
  153. package/lib/functions/keys/wrap.pem.d.ts +2 -0
  154. package/lib/functions/keys/wrap.pem.js +11 -0
  155. package/lib/functions/keys/wrap.pem.js.map +1 -0
  156. package/lib/functions/redirect/build.error.redirect.d.ts +2 -0
  157. package/lib/functions/redirect/build.error.redirect.js +9 -0
  158. package/lib/functions/redirect/build.error.redirect.js.map +1 -0
  159. package/lib/functions/redirect/build.redirect.d.ts +2 -0
  160. package/lib/functions/redirect/build.redirect.js +12 -0
  161. package/lib/functions/redirect/build.redirect.js.map +1 -0
  162. package/lib/functions/redirect/describe.redirect.target.d.ts +2 -0
  163. package/lib/functions/redirect/describe.redirect.target.js +8 -0
  164. package/lib/functions/redirect/describe.redirect.target.js.map +1 -0
  165. package/lib/functions/redirect/is.allowed.redirect.uri.d.ts +3 -0
  166. package/lib/functions/redirect/is.allowed.redirect.uri.js +19 -0
  167. package/lib/functions/redirect/is.allowed.redirect.uri.js.map +1 -0
  168. package/lib/functions/redirect/is.loopback.redirect.d.ts +2 -0
  169. package/lib/functions/redirect/is.loopback.redirect.js +13 -0
  170. package/lib/functions/redirect/is.loopback.redirect.js.map +1 -0
  171. package/lib/functions/redirect/is.safe.metadata.redirect.uri.d.ts +2 -0
  172. package/lib/functions/redirect/is.safe.metadata.redirect.uri.js +20 -0
  173. package/lib/functions/redirect/is.safe.metadata.redirect.uri.js.map +1 -0
  174. package/lib/functions/redirect/parse.url.d.ts +2 -0
  175. package/lib/functions/redirect/parse.url.js +14 -0
  176. package/lib/functions/redirect/parse.url.js.map +1 -0
  177. package/lib/functions/server/attach.and.continue.d.ts +6 -0
  178. package/lib/functions/server/attach.and.continue.js +15 -0
  179. package/lib/functions/server/attach.and.continue.js.map +1 -0
  180. package/lib/functions/server/authenticate.request.d.ts +5 -0
  181. package/lib/functions/server/authenticate.request.js +24 -0
  182. package/lib/functions/server/authenticate.request.js.map +1 -0
  183. package/lib/functions/server/awaiting.consent.d.ts +5 -0
  184. package/lib/functions/server/awaiting.consent.js +18 -0
  185. package/lib/functions/server/awaiting.consent.js.map +1 -0
  186. package/lib/functions/server/build.routes.d.ts +4 -0
  187. package/lib/functions/server/build.routes.js +40 -0
  188. package/lib/functions/server/build.routes.js.map +1 -0
  189. package/lib/functions/server/build.upstream.context.d.ts +6 -0
  190. package/lib/functions/server/build.upstream.context.js +11 -0
  191. package/lib/functions/server/build.upstream.context.js.map +1 -0
  192. package/lib/functions/server/challenge.response.d.ts +4 -0
  193. package/lib/functions/server/challenge.response.js +14 -0
  194. package/lib/functions/server/challenge.response.js.map +1 -0
  195. package/lib/functions/server/continue.with.user.d.ts +5 -0
  196. package/lib/functions/server/continue.with.user.js +18 -0
  197. package/lib/functions/server/continue.with.user.js.map +1 -0
  198. package/lib/functions/server/create.client.resolver.d.ts +6 -0
  199. package/lib/functions/server/create.client.resolver.js +26 -0
  200. package/lib/functions/server/create.client.resolver.js.map +1 -0
  201. package/lib/functions/server/create.mcp.auth.context.d.ts +4 -0
  202. package/lib/functions/server/create.mcp.auth.context.js +38 -0
  203. package/lib/functions/server/create.mcp.auth.context.js.map +1 -0
  204. package/lib/functions/server/create.mcp.auth.d.ts +4 -0
  205. package/lib/functions/server/create.mcp.auth.js +25 -0
  206. package/lib/functions/server/create.mcp.auth.js.map +1 -0
  207. package/lib/functions/server/deny.authorization.d.ts +5 -0
  208. package/lib/functions/server/deny.authorization.js +13 -0
  209. package/lib/functions/server/deny.authorization.js.map +1 -0
  210. package/lib/functions/server/exchange.authorization.code.d.ts +4 -0
  211. package/lib/functions/server/exchange.authorization.code.js +32 -0
  212. package/lib/functions/server/exchange.authorization.code.js.map +1 -0
  213. package/lib/functions/server/find.route.d.ts +4 -0
  214. package/lib/functions/server/find.route.js +5 -0
  215. package/lib/functions/server/find.route.js.map +1 -0
  216. package/lib/functions/server/handle.request.d.ts +6 -0
  217. package/lib/functions/server/handle.request.js +21 -0
  218. package/lib/functions/server/handle.request.js.map +1 -0
  219. package/lib/functions/server/has.credentials.d.ts +3 -0
  220. package/lib/functions/server/has.credentials.js +9 -0
  221. package/lib/functions/server/has.credentials.js.map +1 -0
  222. package/lib/functions/server/issue.authorization.code.d.ts +5 -0
  223. package/lib/functions/server/issue.authorization.code.js +24 -0
  224. package/lib/functions/server/issue.authorization.code.js.map +1 -0
  225. package/lib/functions/server/issue.tokens.d.ts +4 -0
  226. package/lib/functions/server/issue.tokens.js +30 -0
  227. package/lib/functions/server/issue.tokens.js.map +1 -0
  228. package/lib/functions/server/load.pending.d.ts +5 -0
  229. package/lib/functions/server/load.pending.js +13 -0
  230. package/lib/functions/server/load.pending.js.map +1 -0
  231. package/lib/functions/server/rotate.refresh.token.d.ts +4 -0
  232. package/lib/functions/server/rotate.refresh.token.js +33 -0
  233. package/lib/functions/server/rotate.refresh.token.js.map +1 -0
  234. package/lib/functions/server/token.failure.d.ts +3 -0
  235. package/lib/functions/server/token.failure.js +9 -0
  236. package/lib/functions/server/token.failure.js.map +1 -0
  237. package/lib/functions/sql/from.better.sqlite3.d.ts +10 -0
  238. package/lib/functions/sql/from.better.sqlite3.js +11 -0
  239. package/lib/functions/sql/from.better.sqlite3.js.map +1 -0
  240. package/lib/functions/sql/from.bun.sqlite.d.ts +7 -0
  241. package/lib/functions/sql/from.bun.sqlite.js +5 -0
  242. package/lib/functions/sql/from.bun.sqlite.js.map +1 -0
  243. package/lib/functions/sql/from.d1.d.ts +11 -0
  244. package/lib/functions/sql/from.d1.js +8 -0
  245. package/lib/functions/sql/from.d1.js.map +1 -0
  246. package/lib/functions/sql/from.node.sqlite.d.ts +7 -0
  247. package/lib/functions/sql/from.node.sqlite.js +5 -0
  248. package/lib/functions/sql/from.node.sqlite.js.map +1 -0
  249. package/lib/functions/sql/from.pg.d.ts +7 -0
  250. package/lib/functions/sql/from.pg.js +5 -0
  251. package/lib/functions/sql/from.pg.js.map +1 -0
  252. package/lib/functions/sql/from.postgres.js.d.ts +5 -0
  253. package/lib/functions/sql/from.postgres.js.js +5 -0
  254. package/lib/functions/sql/from.postgres.js.js.map +1 -0
  255. package/lib/functions/sql/optional.date.d.ts +2 -0
  256. package/lib/functions/sql/optional.date.js +5 -0
  257. package/lib/functions/sql/optional.date.js.map +1 -0
  258. package/lib/functions/sql/optional.number.d.ts +2 -0
  259. package/lib/functions/sql/optional.number.js +5 -0
  260. package/lib/functions/sql/optional.number.js.map +1 -0
  261. package/lib/functions/sql/optional.text.d.ts +2 -0
  262. package/lib/functions/sql/optional.text.js +5 -0
  263. package/lib/functions/sql/optional.text.js.map +1 -0
  264. package/lib/functions/sql/row.to.client.d.ts +4 -0
  265. package/lib/functions/sql/row.to.client.js +18 -0
  266. package/lib/functions/sql/row.to.client.js.map +1 -0
  267. package/lib/functions/sql/row.to.code.d.ts +4 -0
  268. package/lib/functions/sql/row.to.code.js +21 -0
  269. package/lib/functions/sql/row.to.code.js.map +1 -0
  270. package/lib/functions/sql/row.to.pending.d.ts +4 -0
  271. package/lib/functions/sql/row.to.pending.js +21 -0
  272. package/lib/functions/sql/row.to.pending.js.map +1 -0
  273. package/lib/functions/sql/row.to.refresh.token.d.ts +4 -0
  274. package/lib/functions/sql/row.to.refresh.token.js +22 -0
  275. package/lib/functions/sql/row.to.refresh.token.js.map +1 -0
  276. package/lib/functions/sql/sql.schema.d.ts +3 -0
  277. package/lib/functions/sql/sql.schema.js +62 -0
  278. package/lib/functions/sql/sql.schema.js.map +1 -0
  279. package/lib/functions/sql/to.dialect.sql.d.ts +3 -0
  280. package/lib/functions/sql/to.dialect.sql.js +13 -0
  281. package/lib/functions/sql/to.dialect.sql.js.map +1 -0
  282. package/lib/functions/upstream/app.session.upstream.d.ts +4 -0
  283. package/lib/functions/upstream/app.session.upstream.js +18 -0
  284. package/lib/functions/upstream/app.session.upstream.js.map +1 -0
  285. package/lib/functions/upstream/entra.upstream.d.ts +11 -0
  286. package/lib/functions/upstream/entra.upstream.js +16 -0
  287. package/lib/functions/upstream/entra.upstream.js.map +1 -0
  288. package/lib/functions/upstream/oidc.upstream.d.ts +4 -0
  289. package/lib/functions/upstream/oidc.upstream.js +82 -0
  290. package/lib/functions/upstream/oidc.upstream.js.map +1 -0
  291. package/lib/functions/upstream/verify.id.token.d.ts +3 -0
  292. package/lib/functions/upstream/verify.id.token.js +16 -0
  293. package/lib/functions/upstream/verify.id.token.js.map +1 -0
  294. package/lib/handlers/authorization.server.metadata.handler.d.ts +4 -0
  295. package/lib/handlers/authorization.server.metadata.handler.js +24 -0
  296. package/lib/handlers/authorization.server.metadata.handler.js.map +1 -0
  297. package/lib/handlers/authorize.handler.d.ts +5 -0
  298. package/lib/handlers/authorize.handler.js +58 -0
  299. package/lib/handlers/authorize.handler.js.map +1 -0
  300. package/lib/handlers/callback.handler.d.ts +5 -0
  301. package/lib/handlers/callback.handler.js +32 -0
  302. package/lib/handlers/callback.handler.js.map +1 -0
  303. package/lib/handlers/consent.decision.handler.d.ts +5 -0
  304. package/lib/handlers/consent.decision.handler.js +30 -0
  305. package/lib/handlers/consent.decision.handler.js.map +1 -0
  306. package/lib/handlers/consent.page.handler.d.ts +5 -0
  307. package/lib/handlers/consent.page.handler.js +43 -0
  308. package/lib/handlers/consent.page.handler.js.map +1 -0
  309. package/lib/handlers/protected.resource.metadata.handler.d.ts +4 -0
  310. package/lib/handlers/protected.resource.metadata.handler.js +9 -0
  311. package/lib/handlers/protected.resource.metadata.handler.js.map +1 -0
  312. package/lib/handlers/register.handler.d.ts +5 -0
  313. package/lib/handlers/register.handler.js +44 -0
  314. package/lib/handlers/register.handler.js.map +1 -0
  315. package/lib/handlers/resume.handler.d.ts +5 -0
  316. package/lib/handlers/resume.handler.js +25 -0
  317. package/lib/handlers/resume.handler.js.map +1 -0
  318. package/lib/handlers/revoke.handler.d.ts +5 -0
  319. package/lib/handlers/revoke.handler.js +27 -0
  320. package/lib/handlers/revoke.handler.js.map +1 -0
  321. package/lib/handlers/token.handler.d.ts +5 -0
  322. package/lib/handlers/token.handler.js +22 -0
  323. package/lib/handlers/token.handler.js.map +1 -0
  324. package/lib/mcp.auth.entra.d.ts +4 -0
  325. package/lib/mcp.auth.entra.js +11 -0
  326. package/lib/mcp.auth.entra.js.map +1 -0
  327. package/lib/mcp.auth.express.d.ts +4 -0
  328. package/lib/mcp.auth.express.js +11 -0
  329. package/lib/mcp.auth.express.js.map +1 -0
  330. package/lib/mcp.auth.fastify.d.ts +4 -0
  331. package/lib/mcp.auth.fastify.js +11 -0
  332. package/lib/mcp.auth.fastify.js.map +1 -0
  333. package/lib/mcp.auth.fetch.d.ts +6 -0
  334. package/lib/mcp.auth.fetch.js +15 -0
  335. package/lib/mcp.auth.fetch.js.map +1 -0
  336. package/lib/mcp.auth.koa.d.ts +4 -0
  337. package/lib/mcp.auth.koa.js +11 -0
  338. package/lib/mcp.auth.koa.js.map +1 -0
  339. package/lib/mcp.auth.memory.d.ts +4 -0
  340. package/lib/mcp.auth.memory.js +11 -0
  341. package/lib/mcp.auth.memory.js.map +1 -0
  342. package/lib/mcp.auth.mongodb.d.ts +6 -0
  343. package/lib/mcp.auth.mongodb.js +11 -0
  344. package/lib/mcp.auth.mongodb.js.map +1 -0
  345. package/lib/mcp.auth.node.d.ts +9 -0
  346. package/lib/mcp.auth.node.js +21 -0
  347. package/lib/mcp.auth.node.js.map +1 -0
  348. package/lib/mcp.auth.postgres.d.ts +11 -0
  349. package/lib/mcp.auth.postgres.js +20 -0
  350. package/lib/mcp.auth.postgres.js.map +1 -0
  351. package/lib/mcp.auth.server.d.ts +42 -0
  352. package/lib/mcp.auth.server.js +35 -0
  353. package/lib/mcp.auth.server.js.map +1 -0
  354. package/lib/mcp.auth.sqlite.d.ts +13 -0
  355. package/lib/mcp.auth.sqlite.js +24 -0
  356. package/lib/mcp.auth.sqlite.js.map +1 -0
  357. package/lib/storage/memory.storage.d.ts +30 -0
  358. package/lib/storage/memory.storage.js +91 -0
  359. package/lib/storage/memory.storage.js.map +1 -0
  360. package/lib/storage/mongodb.storage.d.ts +41 -0
  361. package/lib/storage/mongodb.storage.js +172 -0
  362. package/lib/storage/mongodb.storage.js.map +1 -0
  363. package/lib/storage/sql.storage.d.ts +35 -0
  364. package/lib/storage/sql.storage.js +128 -0
  365. package/lib/storage/sql.storage.js.map +1 -0
  366. package/lib/types/access.token.input.type.d.ts +9 -0
  367. package/lib/types/access.token.input.type.js +3 -0
  368. package/lib/types/access.token.input.type.js.map +1 -0
  369. package/lib/types/app.session.upstream.options.type.d.ts +7 -0
  370. package/lib/types/app.session.upstream.options.type.js +3 -0
  371. package/lib/types/app.session.upstream.options.type.js.map +1 -0
  372. package/lib/types/authenticate.result.type.d.ts +10 -0
  373. package/lib/types/authenticate.result.type.js +3 -0
  374. package/lib/types/authenticate.result.type.js.map +1 -0
  375. package/lib/types/authenticated.user.type.d.ts +5 -0
  376. package/lib/types/authenticated.user.type.js +3 -0
  377. package/lib/types/authenticated.user.type.js.map +1 -0
  378. package/lib/types/authorization.code.record.type.d.ts +11 -0
  379. package/lib/types/authorization.code.record.type.js +3 -0
  380. package/lib/types/authorization.code.record.type.js.map +1 -0
  381. package/lib/types/cimd.options.type.d.ts +16 -0
  382. package/lib/types/cimd.options.type.js +3 -0
  383. package/lib/types/cimd.options.type.js.map +1 -0
  384. package/lib/types/client.metadata.type.d.ts +7 -0
  385. package/lib/types/client.metadata.type.js +3 -0
  386. package/lib/types/client.metadata.type.js.map +1 -0
  387. package/lib/types/client.record.type.d.ts +11 -0
  388. package/lib/types/client.record.type.js +3 -0
  389. package/lib/types/client.record.type.js.map +1 -0
  390. package/lib/types/consent.model.type.d.ts +15 -0
  391. package/lib/types/consent.model.type.js +3 -0
  392. package/lib/types/consent.model.type.js.map +1 -0
  393. package/lib/types/consent.record.type.d.ts +5 -0
  394. package/lib/types/consent.record.type.js +3 -0
  395. package/lib/types/consent.record.type.js.map +1 -0
  396. package/lib/types/http.request.type.d.ts +9 -0
  397. package/lib/types/http.request.type.js +3 -0
  398. package/lib/types/http.request.type.js.map +1 -0
  399. package/lib/types/http.response.type.d.ts +6 -0
  400. package/lib/types/http.response.type.js +3 -0
  401. package/lib/types/http.response.type.js.map +1 -0
  402. package/lib/types/i.metadata.cache.d.ts +6 -0
  403. package/lib/types/i.metadata.cache.js +3 -0
  404. package/lib/types/i.metadata.cache.js.map +1 -0
  405. package/lib/types/i.storage.d.ts +25 -0
  406. package/lib/types/i.storage.js +3 -0
  407. package/lib/types/i.storage.js.map +1 -0
  408. package/lib/types/i.upstream.d.ts +11 -0
  409. package/lib/types/i.upstream.js +3 -0
  410. package/lib/types/i.upstream.js.map +1 -0
  411. package/lib/types/key.pair.type.d.ts +5 -0
  412. package/lib/types/key.pair.type.js +3 -0
  413. package/lib/types/key.pair.type.js.map +1 -0
  414. package/lib/types/logger.type.d.ts +6 -0
  415. package/lib/types/logger.type.js +3 -0
  416. package/lib/types/logger.type.js.map +1 -0
  417. package/lib/types/mcp.auth.context.type.d.ts +29 -0
  418. package/lib/types/mcp.auth.context.type.js +3 -0
  419. package/lib/types/mcp.auth.context.type.js.map +1 -0
  420. package/lib/types/mcp.auth.options.type.d.ts +39 -0
  421. package/lib/types/mcp.auth.options.type.js +3 -0
  422. package/lib/types/mcp.auth.options.type.js.map +1 -0
  423. package/lib/types/mcp.auth.type.d.ts +14 -0
  424. package/lib/types/mcp.auth.type.js +3 -0
  425. package/lib/types/mcp.auth.type.js.map +1 -0
  426. package/lib/types/metadata.resolution.type.d.ts +9 -0
  427. package/lib/types/metadata.resolution.type.js +3 -0
  428. package/lib/types/metadata.resolution.type.js.map +1 -0
  429. package/lib/types/mongo.storage.options.type.d.ts +13 -0
  430. package/lib/types/mongo.storage.options.type.js +3 -0
  431. package/lib/types/mongo.storage.options.type.js.map +1 -0
  432. package/lib/types/oidc.upstream.options.type.d.ts +9 -0
  433. package/lib/types/oidc.upstream.options.type.js +3 -0
  434. package/lib/types/oidc.upstream.options.type.js.map +1 -0
  435. package/lib/types/pending.authorization.type.d.ts +14 -0
  436. package/lib/types/pending.authorization.type.js +3 -0
  437. package/lib/types/pending.authorization.type.js.map +1 -0
  438. package/lib/types/pending.filter.type.d.ts +5 -0
  439. package/lib/types/pending.filter.type.js +3 -0
  440. package/lib/types/pending.filter.type.js.map +1 -0
  441. package/lib/types/redirect.policy.type.d.ts +5 -0
  442. package/lib/types/redirect.policy.type.js +3 -0
  443. package/lib/types/redirect.policy.type.js.map +1 -0
  444. package/lib/types/refresh.token.record.type.d.ts +11 -0
  445. package/lib/types/refresh.token.record.type.js +3 -0
  446. package/lib/types/refresh.token.record.type.js.map +1 -0
  447. package/lib/types/resolved.client.type.d.ts +7 -0
  448. package/lib/types/resolved.client.type.js +3 -0
  449. package/lib/types/resolved.client.type.js.map +1 -0
  450. package/lib/types/route.name.type.d.ts +2 -0
  451. package/lib/types/route.name.type.js +3 -0
  452. package/lib/types/route.name.type.js.map +1 -0
  453. package/lib/types/route.type.d.ts +10 -0
  454. package/lib/types/route.type.js +3 -0
  455. package/lib/types/route.type.js.map +1 -0
  456. package/lib/types/sql.dialect.type.d.ts +2 -0
  457. package/lib/types/sql.dialect.type.js +3 -0
  458. package/lib/types/sql.dialect.type.js.map +1 -0
  459. package/lib/types/sql.executor.type.d.ts +4 -0
  460. package/lib/types/sql.executor.type.js +3 -0
  461. package/lib/types/sql.executor.type.js.map +1 -0
  462. package/lib/types/sql.storage.options.type.d.ts +4 -0
  463. package/lib/types/sql.storage.options.type.js +3 -0
  464. package/lib/types/sql.storage.options.type.js.map +1 -0
  465. package/lib/types/upstream.begin.type.d.ts +9 -0
  466. package/lib/types/upstream.begin.type.js +3 -0
  467. package/lib/types/upstream.begin.type.js.map +1 -0
  468. package/lib/types/upstream.context.type.d.ts +10 -0
  469. package/lib/types/upstream.context.type.js +3 -0
  470. package/lib/types/upstream.context.type.js.map +1 -0
  471. package/lib/types/verify.result.type.d.ts +6 -0
  472. package/lib/types/verify.result.type.js +3 -0
  473. package/lib/types/verify.result.type.js.map +1 -0
  474. package/package.json +107 -5
  475. package/sql/postgres.sql +61 -0
  476. package/sql/sqlite.sql +61 -0
@@ -0,0 +1,14 @@
1
+ import type AuthenticateResultType from './authenticate.result.type';
2
+ import type HttpRequestType from './http.request.type';
3
+ import type HttpResponseType from './http.response.type';
4
+ import type RouteType from './route.type';
5
+ type McpAuthType<TUser = unknown> = {
6
+ issuer: string;
7
+ resource: string;
8
+ routes: RouteType[];
9
+ hasRoute: (request: HttpRequestType) => boolean;
10
+ handle: (request: HttpRequestType) => Promise<HttpResponseType>;
11
+ authenticate: (headers: HttpRequestType['headers'], rpcBody?: unknown) => Promise<AuthenticateResultType<TUser>>;
12
+ deleteExpired: () => Promise<void>;
13
+ };
14
+ export default McpAuthType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=mcp.auth.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.auth.type.js","sourceRoot":"","sources":["../../src/types/mcp.auth.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type ClientMetadataType from './client.metadata.type';
2
+ type MetadataResolutionType = {
3
+ ok: true;
4
+ metadata: ClientMetadataType;
5
+ } | {
6
+ ok: false;
7
+ reason: string;
8
+ };
9
+ export default MetadataResolutionType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=metadata.resolution.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.resolution.type.js","sourceRoot":"","sources":["../../src/types/metadata.resolution.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,13 @@
1
+ type MongoStorageOptionsType = {
2
+ collections?: {
3
+ clients?: string;
4
+ pendingAuthorizations?: string;
5
+ authorizationCodes?: string;
6
+ refreshTokens?: string;
7
+ consents?: string;
8
+ };
9
+ userIdField?: string;
10
+ userIdToDb?: (userId: string) => unknown;
11
+ userIdFromDb?: (value: unknown) => string;
12
+ };
13
+ export default MongoStorageOptionsType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=mongo.storage.options.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongo.storage.options.type.js","sourceRoot":"","sources":["../../src/types/mongo.storage.options.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ type OidcUpstreamOptionsType = {
2
+ discoveryUrl: string;
3
+ clientId: string;
4
+ clientSecret: string;
5
+ scope?: string;
6
+ fetch?: typeof fetch;
7
+ now?: () => Date;
8
+ };
9
+ export default OidcUpstreamOptionsType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=oidc.upstream.options.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc.upstream.options.type.js","sourceRoot":"","sources":["../../src/types/oidc.upstream.options.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,14 @@
1
+ type PendingAuthorizationType = {
2
+ stateId: string;
3
+ clientId: string;
4
+ clientName?: string;
5
+ redirectUri: string;
6
+ codeChallenge: string;
7
+ resource: string;
8
+ clientState?: string;
9
+ upstreamCodeVerifier?: string;
10
+ userId?: string;
11
+ userDisplayName?: string;
12
+ expiresAt: Date;
13
+ };
14
+ export default PendingAuthorizationType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=pending.authorization.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending.authorization.type.js","sourceRoot":"","sources":["../../src/types/pending.authorization.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ type PendingFilterType = {
2
+ now: Date;
3
+ hasUser?: boolean;
4
+ };
5
+ export default PendingFilterType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=pending.filter.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending.filter.type.js","sourceRoot":"","sources":["../../src/types/pending.filter.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ type RedirectPolicyType = {
2
+ httpsHosts: string[];
3
+ customSchemes: string[];
4
+ };
5
+ export default RedirectPolicyType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=redirect.policy.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redirect.policy.type.js","sourceRoot":"","sources":["../../src/types/redirect.policy.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ type RefreshTokenRecordType = {
2
+ tokenHash: string;
3
+ familyId: string;
4
+ clientId: string;
5
+ userId: string;
6
+ resource: string;
7
+ usedAt?: Date;
8
+ revokedAt?: Date;
9
+ expiresAt: Date;
10
+ };
11
+ export default RefreshTokenRecordType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=refresh.token.record.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh.token.record.type.js","sourceRoot":"","sources":["../../src/types/refresh.token.record.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ type ResolvedClientType = {
2
+ clientId: string;
3
+ clientName?: string;
4
+ redirectUris: string[];
5
+ metadataDocument: boolean;
6
+ };
7
+ export default ResolvedClientType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=resolved.client.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolved.client.type.js","sourceRoot":"","sources":["../../src/types/resolved.client.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ type RouteNameType = 'register' | 'token' | 'revoke' | 'authorize' | 'callback' | 'resume' | 'consent' | 'metadata';
2
+ export default RouteNameType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=route.name.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.name.type.js","sourceRoot":"","sources":["../../src/types/route.name.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type HttpRequestType from './http.request.type';
2
+ import type HttpResponseType from './http.response.type';
3
+ import type RouteNameType from './route.name.type';
4
+ type RouteType = {
5
+ method: 'GET' | 'POST';
6
+ path: string;
7
+ name: RouteNameType;
8
+ handler: (request: HttpRequestType) => Promise<HttpResponseType>;
9
+ };
10
+ export default RouteType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=route.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.type.js","sourceRoot":"","sources":["../../src/types/route.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ type SqlDialectType = 'postgres' | 'sqlite';
2
+ export default SqlDialectType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=sql.dialect.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.dialect.type.js","sourceRoot":"","sources":["../../src/types/sql.dialect.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ type SqlRowType = Record<string, unknown>;
2
+ type SqlExecutorType = (sql: string, params: unknown[]) => Promise<SqlRowType[]> | SqlRowType[];
3
+ export type { SqlRowType };
4
+ export default SqlExecutorType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=sql.executor.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.executor.type.js","sourceRoot":"","sources":["../../src/types/sql.executor.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ type SqlStorageOptionsType = {
2
+ tablePrefix?: string;
3
+ };
4
+ export default SqlStorageOptionsType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=sql.storage.options.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.storage.options.type.js","sourceRoot":"","sources":["../../src/types/sql.storage.options.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type AuthenticatedUserType from './authenticated.user.type';
2
+ type UpstreamBeginType = {
3
+ type: 'redirect';
4
+ url: string;
5
+ } | {
6
+ type: 'user';
7
+ user: AuthenticatedUserType;
8
+ };
9
+ export default UpstreamBeginType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=upstream.begin.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upstream.begin.type.js","sourceRoot":"","sources":["../../src/types/upstream.begin.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type HttpRequestType from './http.request.type';
2
+ import type PendingAuthorizationType from './pending.authorization.type';
3
+ type UpstreamContextType = {
4
+ request: HttpRequestType;
5
+ pending: PendingAuthorizationType;
6
+ issuer: string;
7
+ callbackUrl: string;
8
+ resumeUrl: string;
9
+ };
10
+ export default UpstreamContextType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=upstream.context.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upstream.context.type.js","sourceRoot":"","sources":["../../src/types/upstream.context.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ type VerifyResultType = {
2
+ claims: Record<string, unknown>;
3
+ } | {
4
+ reason: 'expired' | 'invalid_token';
5
+ };
6
+ export default VerifyResultType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=verify.result.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.result.type.js","sourceRoot":"","sources":["../../src/types/verify.result.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,108 @@
1
1
  {
2
- "name": "mcp-auth-server",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
2
+ "name": "mcp-auth-server",
3
+ "version": "0.1.1",
4
+ "description": "OAuth 2.1 authorization server for MCP servers, runtime-agnostic",
5
+ "license": "MIT",
6
+ "files": [
7
+ "lib/**/*",
8
+ "sql/**/*"
9
+ ],
10
+ "bin": {
11
+ "mcp-auth-keygen": "./bin/keygen.mjs"
12
+ },
13
+ "main": "./lib/mcp.auth.server.js",
14
+ "types": "./lib/mcp.auth.server.d.ts",
15
+ "scripts": {
16
+ "all": "pnpm i && pnpm dedupe && (pnpm audit --fix=update || echo audit: unresolved vulnerabilities remain) && pnpm clean && pnpm format && pnpm build && skeletest -f && strictr -f && pnpm test && pnpm integration && pnpm run docs mcp-auth-server",
17
+ "clear:lib": "node -e \"require('node:fs').rmSync('lib',{recursive:true,force:true})\"",
18
+ "build": "pnpm clear:lib && tsc",
19
+ "build:watch": "tsc --watch",
20
+ "lint": "eslint .",
21
+ "clean": "eslint --fix .",
22
+ "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
23
+ "docs": "typedoc --readme none --out docs ./src/mcp.auth.server.ts",
24
+ "sync": "git pull && git fetch origin && git merge origin/main && pnpm i && git branch",
25
+ "test": "node --experimental-vm-modules ./node_modules/jest/bin/jest.js --coverage --config jest.config.js",
26
+ "integration": "ts-node test/integration/storage.integration.ts",
27
+ "quick": "node --experimental-vm-modules ./node_modules/jest/bin/jest.js --config jest.config.js",
28
+ "test:watch": "node --experimental-vm-modules ./node_modules/jest/bin/jest.js --watch --config jest.config.js",
29
+ "coveralls": "coveralls < coverage/lcov.info",
30
+ "test_qube": "node --experimental-vm-modules ./node_modules/jest/bin/jest.js --coverage --config jest.config.js --testResultsProcessor=jest-sonar-reporter",
31
+ "up": "pnpm up -i",
32
+ "latest": "pnpm up -i -L",
33
+ "l": "pnpm i && pnpm latest",
34
+ "srctree": "node -e \"const fs=require('node:fs'),path=require('node:path');fs.readdirSync('src',{recursive:true}).forEach(f=>console.log(path.resolve('src',f)))\" > srctree.txt",
35
+ "keygen": "node bin/keygen.mjs",
36
+ "preinstall": "npx only-allow pnpm"
37
+ },
38
+ "engines": {
39
+ "node": ">=24.12.0"
40
+ },
41
+ "packageManager": "pnpm@12.15.0",
42
+ "author": "Predrag Stojadinovic <predrag@stojadinovic.net>",
43
+ "repository": {
44
+ "type": "git",
45
+ "url": "git+https://github.com/cope/mcp-auth-server.git"
46
+ },
47
+ "publishConfig": {
48
+ "access": "public"
49
+ },
50
+ "minimumReleaseAge": 2880,
51
+ "dependencies": {
52
+ "jose": "^5.10.0"
53
+ },
54
+ "devDependencies": {
55
+ "@electric-sql/pglite": "^0.5.12",
56
+ "@eslint/js": "^10.0.1",
57
+ "@types/better-sqlite3": "^9.6.0",
58
+ "@types/express": "^5.0.6",
59
+ "@types/jest": "^30.0.0",
60
+ "@types/koa": "^3.0.3",
61
+ "@types/node": "^26.6.5",
62
+ "@types/pg": "^8.23.1",
63
+ "@types/rewire": "^2.5.30",
64
+ "better-sqlite3": "^13.0.3",
65
+ "coveralls": "^3.1.1",
66
+ "eslint": "^10.13.0",
67
+ "eslint-config-prettier": "^10.1.8",
68
+ "eslint-plugin-sonarjs": "^4.2.2",
69
+ "express": "^5.3.0",
70
+ "fastify": "^5.12.7",
71
+ "jest": "^30.5.2",
72
+ "jest-sonar-reporter": "^2.0.0",
73
+ "koa": "^3.2.1",
74
+ "mongodb": "^7.7.0",
75
+ "mongodb-memory-server": "^11.3.0",
76
+ "pg": "^8.23.1",
77
+ "prettier": "^3.9.10",
78
+ "rewire": "^9.0.1",
79
+ "skeletest": "^0.7.5",
80
+ "source-map-support": "^0.5.21",
81
+ "strictr": "^0.5.7",
82
+ "ts-jest": "^29.4.15",
83
+ "ts-node": "^10.9.2",
84
+ "typedoc": "^0.28.20",
85
+ "typescript": "^6.0.3",
86
+ "typescript-eslint": "^8.72.1"
87
+ },
88
+ "peerDependencies": {
89
+ "express": ">=4",
90
+ "fastify": ">=4",
91
+ "koa": ">=2",
92
+ "mongodb": ">=6"
93
+ },
94
+ "peerDependenciesMeta": {
95
+ "express": {
96
+ "optional": true
97
+ },
98
+ "fastify": {
99
+ "optional": true
100
+ },
101
+ "koa": {
102
+ "optional": true
103
+ },
104
+ "mongodb": {
105
+ "optional": true
106
+ }
107
+ }
108
+ }
@@ -0,0 +1,61 @@
1
+ CREATE TABLE IF NOT EXISTS mcp_oauth_clients (
2
+ client_id TEXT PRIMARY KEY,
3
+ client_name TEXT,
4
+ redirect_uris TEXT NOT NULL,
5
+ application_type TEXT,
6
+ token_endpoint_auth_method TEXT NOT NULL,
7
+ grant_types TEXT NOT NULL,
8
+ response_types TEXT NOT NULL,
9
+ created_at BIGINT NOT NULL
10
+ );
11
+
12
+ CREATE TABLE IF NOT EXISTS mcp_oauth_pending_authorizations (
13
+ state_id TEXT PRIMARY KEY,
14
+ client_id TEXT NOT NULL,
15
+ client_name TEXT,
16
+ redirect_uri TEXT NOT NULL,
17
+ code_challenge TEXT NOT NULL,
18
+ resource TEXT NOT NULL,
19
+ client_state TEXT,
20
+ upstream_code_verifier TEXT,
21
+ user_id TEXT,
22
+ user_display_name TEXT,
23
+ expires_at BIGINT NOT NULL
24
+ );
25
+
26
+ CREATE INDEX IF NOT EXISTS mcp_oauth_pending_expires_idx ON mcp_oauth_pending_authorizations (expires_at);
27
+
28
+ CREATE TABLE IF NOT EXISTS mcp_oauth_authorization_codes (
29
+ code_hash TEXT PRIMARY KEY,
30
+ client_id TEXT NOT NULL,
31
+ redirect_uri TEXT NOT NULL,
32
+ code_challenge TEXT NOT NULL,
33
+ resource TEXT NOT NULL,
34
+ user_id TEXT NOT NULL,
35
+ used_at BIGINT,
36
+ expires_at BIGINT NOT NULL
37
+ );
38
+
39
+ CREATE INDEX IF NOT EXISTS mcp_oauth_codes_expires_idx ON mcp_oauth_authorization_codes (expires_at);
40
+
41
+ CREATE TABLE IF NOT EXISTS mcp_oauth_refresh_tokens (
42
+ token_hash TEXT PRIMARY KEY,
43
+ family_id TEXT NOT NULL,
44
+ client_id TEXT NOT NULL,
45
+ user_id TEXT NOT NULL,
46
+ resource TEXT NOT NULL,
47
+ used_at BIGINT,
48
+ revoked_at BIGINT,
49
+ expires_at BIGINT NOT NULL
50
+ );
51
+
52
+ CREATE INDEX IF NOT EXISTS mcp_oauth_refresh_family_idx ON mcp_oauth_refresh_tokens (family_id);
53
+
54
+ CREATE INDEX IF NOT EXISTS mcp_oauth_refresh_expires_idx ON mcp_oauth_refresh_tokens (expires_at);
55
+
56
+ CREATE TABLE IF NOT EXISTS mcp_oauth_consents (
57
+ client_id TEXT NOT NULL,
58
+ user_id TEXT NOT NULL,
59
+ created_at BIGINT NOT NULL,
60
+ PRIMARY KEY (client_id, user_id)
61
+ );
package/sql/sqlite.sql ADDED
@@ -0,0 +1,61 @@
1
+ CREATE TABLE IF NOT EXISTS mcp_oauth_clients (
2
+ client_id TEXT PRIMARY KEY,
3
+ client_name TEXT,
4
+ redirect_uris TEXT NOT NULL,
5
+ application_type TEXT,
6
+ token_endpoint_auth_method TEXT NOT NULL,
7
+ grant_types TEXT NOT NULL,
8
+ response_types TEXT NOT NULL,
9
+ created_at INTEGER NOT NULL
10
+ );
11
+
12
+ CREATE TABLE IF NOT EXISTS mcp_oauth_pending_authorizations (
13
+ state_id TEXT PRIMARY KEY,
14
+ client_id TEXT NOT NULL,
15
+ client_name TEXT,
16
+ redirect_uri TEXT NOT NULL,
17
+ code_challenge TEXT NOT NULL,
18
+ resource TEXT NOT NULL,
19
+ client_state TEXT,
20
+ upstream_code_verifier TEXT,
21
+ user_id TEXT,
22
+ user_display_name TEXT,
23
+ expires_at INTEGER NOT NULL
24
+ );
25
+
26
+ CREATE INDEX IF NOT EXISTS mcp_oauth_pending_expires_idx ON mcp_oauth_pending_authorizations (expires_at);
27
+
28
+ CREATE TABLE IF NOT EXISTS mcp_oauth_authorization_codes (
29
+ code_hash TEXT PRIMARY KEY,
30
+ client_id TEXT NOT NULL,
31
+ redirect_uri TEXT NOT NULL,
32
+ code_challenge TEXT NOT NULL,
33
+ resource TEXT NOT NULL,
34
+ user_id TEXT NOT NULL,
35
+ used_at INTEGER,
36
+ expires_at INTEGER NOT NULL
37
+ );
38
+
39
+ CREATE INDEX IF NOT EXISTS mcp_oauth_codes_expires_idx ON mcp_oauth_authorization_codes (expires_at);
40
+
41
+ CREATE TABLE IF NOT EXISTS mcp_oauth_refresh_tokens (
42
+ token_hash TEXT PRIMARY KEY,
43
+ family_id TEXT NOT NULL,
44
+ client_id TEXT NOT NULL,
45
+ user_id TEXT NOT NULL,
46
+ resource TEXT NOT NULL,
47
+ used_at INTEGER,
48
+ revoked_at INTEGER,
49
+ expires_at INTEGER NOT NULL
50
+ );
51
+
52
+ CREATE INDEX IF NOT EXISTS mcp_oauth_refresh_family_idx ON mcp_oauth_refresh_tokens (family_id);
53
+
54
+ CREATE INDEX IF NOT EXISTS mcp_oauth_refresh_expires_idx ON mcp_oauth_refresh_tokens (expires_at);
55
+
56
+ CREATE TABLE IF NOT EXISTS mcp_oauth_consents (
57
+ client_id TEXT NOT NULL,
58
+ user_id TEXT NOT NULL,
59
+ created_at INTEGER NOT NULL,
60
+ PRIMARY KEY (client_id, user_id)
61
+ );