@cyanmycelium/mcp-broker 0.4.0 → 1.2.0

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 (151) hide show
  1. package/.mcp-broker.example/CONFIGURATION-EN.md +861 -0
  2. package/.mcp-broker.example/CONFIGURATION-FR.md +871 -0
  3. package/.mcp-broker.example/README.md +8 -3
  4. package/.mcp-broker.example/config.json +86 -0
  5. package/README.md +122 -3
  6. package/dist/bin.d.ts +0 -1
  7. package/dist/bin.js +180 -208
  8. package/dist/bin.js.map +1 -1
  9. package/dist/chunk-FTDKH2C4.js +3670 -0
  10. package/dist/chunk-FTDKH2C4.js.map +1 -0
  11. package/dist/{broker/grammars → grammars}/claude/en.json +1 -1
  12. package/dist/{broker/grammars → grammars}/claude/fr.json +1 -1
  13. package/dist/index.d.ts +1790 -18
  14. package/dist/index.js +2 -14
  15. package/dist/index.js.map +1 -1
  16. package/package.json +14 -8
  17. package/scripts/copy-assets.mjs +16 -10
  18. package/scripts/gen-cert.mjs +5 -5
  19. package/scripts/pack-mcpb.mjs +5 -5
  20. package/scripts/sign-bundle.mjs +6 -6
  21. package/src/auth/auth.config.ts +98 -0
  22. package/src/auth/auth.types.ts +120 -0
  23. package/src/auth/http.auth.ts +128 -0
  24. package/src/auth/index.ts +34 -0
  25. package/src/auth/jwt.validator.ts +63 -0
  26. package/src/auth/provider.auth.ts +114 -0
  27. package/src/auth/resource.metadata.ts +34 -0
  28. package/src/authorization/audit.ts +35 -0
  29. package/src/authorization/capability.classifier.ts +114 -0
  30. package/src/authorization/index.ts +37 -0
  31. package/src/authorization/policy.engine.ts +212 -0
  32. package/src/authorization/policy.types.ts +105 -0
  33. package/src/authorization/resource.path.ts +126 -0
  34. package/src/authorization/runtime.ts +56 -0
  35. package/src/authorization/slot.resource.ts +50 -0
  36. package/src/authorization/subject.mapper.ts +81 -0
  37. package/src/bin.ts +90 -7
  38. package/src/broker/adapters/broker.adapter.info.ts +3 -3
  39. package/src/broker/adapters/broker.adapter.providers.ts +3 -3
  40. package/src/broker/aggregate/aggregate.catalog.ts +49 -21
  41. package/src/broker/aggregate/aggregate.server.ts +149 -19
  42. package/src/broker/aggregate/provider.client.session.ts +22 -22
  43. package/src/broker/behaviors/broker.behavior.info.ts +4 -4
  44. package/src/broker/behaviors/broker.behavior.providers.ts +6 -6
  45. package/src/broker/broker.context.ts +10 -4
  46. package/src/broker/broker.grammars.ts +16 -13
  47. package/src/broker/broker.server.ts +12 -9
  48. package/src/broker/grammars/claude/en.json +1 -1
  49. package/src/broker/grammars/claude/fr.json +1 -1
  50. package/src/broker/index.ts +9 -9
  51. package/src/config.ts +81 -8
  52. package/src/index.ts +121 -20
  53. package/src/{mcpb.loader.ts → mcpb/mcpb.loader.ts} +24 -21
  54. package/src/{mcpb.unzip.ts → mcpb/mcpb.unzip.ts} +2 -2
  55. package/src/remote.transports.ts +11 -8
  56. package/src/remote.upstream.ts +11 -8
  57. package/src/stdio.upstream.ts +9 -6
  58. package/src/upstream.ts +6 -3
  59. package/src/ws/ws.interfaces.ts +357 -0
  60. package/src/{ws.tunnel.builder.ts → ws/ws.tunnel.builder.ts} +112 -9
  61. package/src/{ws.tunnel.ts → ws/ws.tunnel.ts} +646 -457
  62. package/web/README.md +94 -0
  63. package/web/assets/logo.png +0 -0
  64. package/web/broker-self-mcp.html +338 -0
  65. package/web/css/styles.css +580 -0
  66. package/web/demos/DemoPlaceholder.html +258 -0
  67. package/web/demos/broker-explorer/css/app.css +393 -0
  68. package/web/demos/broker-explorer/index.html +94 -0
  69. package/web/demos/broker-explorer/js/app.js +271 -0
  70. package/web/demos/broker-explorer/js/mcp-ws-client.js +132 -0
  71. package/web/demos/oauth-lab/README.md +94 -0
  72. package/web/demos/oauth-lab/config.json +117 -0
  73. package/web/demos/oauth-lab/css/app.css +1097 -0
  74. package/web/demos/oauth-lab/index.html +323 -0
  75. package/web/demos/oauth-lab/js/app.js +654 -0
  76. package/web/demos/oauth-lab/server/auth-server.mjs +426 -0
  77. package/web/demos/oauth-lab/server/factory-provider.mjs +269 -0
  78. package/web/demos/oauth-lab/server/smoke-test.mjs +308 -0
  79. package/web/demos/oauth-lab/server/start.mjs +106 -0
  80. package/web/demos/provider-tunnel/css/app.css +384 -0
  81. package/web/demos/provider-tunnel/index.html +99 -0
  82. package/web/demos/provider-tunnel/js/app.js +226 -0
  83. package/web/demos/provider-tunnel/js/toolbox-server.js +186 -0
  84. package/web/index.html +558 -0
  85. package/web/js/lib/broker-tunnel.js +173 -0
  86. package/dist/broker/adapters/broker.adapter.info.d.ts +0 -16
  87. package/dist/broker/adapters/broker.adapter.info.js +0 -43
  88. package/dist/broker/adapters/broker.adapter.info.js.map +0 -1
  89. package/dist/broker/adapters/broker.adapter.providers.d.ts +0 -18
  90. package/dist/broker/adapters/broker.adapter.providers.js +0 -61
  91. package/dist/broker/adapters/broker.adapter.providers.js.map +0 -1
  92. package/dist/broker/aggregate/aggregate.catalog.d.ts +0 -54
  93. package/dist/broker/aggregate/aggregate.catalog.js +0 -105
  94. package/dist/broker/aggregate/aggregate.catalog.js.map +0 -1
  95. package/dist/broker/aggregate/aggregate.server.d.ts +0 -47
  96. package/dist/broker/aggregate/aggregate.server.js +0 -151
  97. package/dist/broker/aggregate/aggregate.server.js.map +0 -1
  98. package/dist/broker/aggregate/provider.client.session.d.ts +0 -52
  99. package/dist/broker/aggregate/provider.client.session.js +0 -140
  100. package/dist/broker/aggregate/provider.client.session.js.map +0 -1
  101. package/dist/broker/behaviors/broker.behavior.info.d.ts +0 -15
  102. package/dist/broker/behaviors/broker.behavior.info.js +0 -41
  103. package/dist/broker/behaviors/broker.behavior.info.js.map +0 -1
  104. package/dist/broker/behaviors/broker.behavior.providers.d.ts +0 -19
  105. package/dist/broker/behaviors/broker.behavior.providers.js +0 -69
  106. package/dist/broker/behaviors/broker.behavior.providers.js.map +0 -1
  107. package/dist/broker/broker.context.d.ts +0 -59
  108. package/dist/broker/broker.context.js +0 -2
  109. package/dist/broker/broker.context.js.map +0 -1
  110. package/dist/broker/broker.grammars.d.ts +0 -130
  111. package/dist/broker/broker.grammars.js +0 -229
  112. package/dist/broker/broker.grammars.js.map +0 -1
  113. package/dist/broker/broker.server.d.ts +0 -66
  114. package/dist/broker/broker.server.js +0 -73
  115. package/dist/broker/broker.server.js.map +0 -1
  116. package/dist/broker/index.d.ts +0 -9
  117. package/dist/broker/index.js +0 -7
  118. package/dist/broker/index.js.map +0 -1
  119. package/dist/config.d.ts +0 -136
  120. package/dist/config.js +0 -61
  121. package/dist/config.js.map +0 -1
  122. package/dist/mcpb.loader.d.ts +0 -24
  123. package/dist/mcpb.loader.js +0 -161
  124. package/dist/mcpb.loader.js.map +0 -1
  125. package/dist/mcpb.unzip.d.ts +0 -6
  126. package/dist/mcpb.unzip.js +0 -95
  127. package/dist/mcpb.unzip.js.map +0 -1
  128. package/dist/remote.transports.d.ts +0 -16
  129. package/dist/remote.transports.js +0 -297
  130. package/dist/remote.transports.js.map +0 -1
  131. package/dist/remote.upstream.d.ts +0 -36
  132. package/dist/remote.upstream.js +0 -52
  133. package/dist/remote.upstream.js.map +0 -1
  134. package/dist/stdio.upstream.d.ts +0 -45
  135. package/dist/stdio.upstream.js +0 -85
  136. package/dist/stdio.upstream.js.map +0 -1
  137. package/dist/upstream.d.ts +0 -33
  138. package/dist/upstream.js +0 -2
  139. package/dist/upstream.js.map +0 -1
  140. package/dist/version.d.ts +0 -2
  141. package/dist/version.js +0 -9
  142. package/dist/version.js.map +0 -1
  143. package/dist/ws.tunnel.builder.d.ts +0 -139
  144. package/dist/ws.tunnel.builder.js +0 -205
  145. package/dist/ws.tunnel.builder.js.map +0 -1
  146. package/dist/ws.tunnel.d.ts +0 -373
  147. package/dist/ws.tunnel.js +0 -1090
  148. package/dist/ws.tunnel.js.map +0 -1
  149. /package/dist/{broker/grammars → grammars}/default/en.json +0 -0
  150. /package/dist/{broker/grammars → grammars}/default/fr.json +0 -0
  151. /package/dist/{broker/grammars → grammars}/default/zh.json +0 -0
@@ -0,0 +1,117 @@
1
+ {
2
+ "port": 3001,
3
+ "host": "127.0.0.1",
4
+ "brokerName": "oauth-policy-lab",
5
+ "allowedOrigins": ["http://127.0.0.1:3001"],
6
+ "www": {
7
+ "open": false,
8
+ "mounts": [
9
+ {
10
+ "urlPrefix": "/",
11
+ "dir": "../.."
12
+ }
13
+ ]
14
+ },
15
+ "auth": {
16
+ "enabled": true,
17
+ "publicBaseUrl": "http://127.0.0.1:3001",
18
+ "authorizationServers": ["http://127.0.0.1:4100"],
19
+ "jwks": "http://127.0.0.1:4100/jwks.json",
20
+ "issuer": "http://127.0.0.1:4100",
21
+ "scopesSupported": ["mcp:call", "broker:admin"],
22
+ "requiredScopes": ["mcp:call"],
23
+ "perSlotScopes": {
24
+ "_broker": ["broker:admin"]
25
+ },
26
+ "subjectMapping": {
27
+ "userClaim": "sub",
28
+ "groupClaims": ["groups"],
29
+ "clientClaim": "client_id"
30
+ },
31
+ "roles": {
32
+ "viewer": {
33
+ "capabilities": ["mcp.resources.read", "mcp.tools.list", "mcp.prompts.read"]
34
+ },
35
+ "maintenance": {
36
+ "inherits": ["viewer"],
37
+ "capabilities": ["mcp.tools.diagnose", "mcp.tools.configure-analysis"]
38
+ },
39
+ "operator": {
40
+ "inherits": ["viewer"],
41
+ "capabilities": ["mcp.tools.operate"]
42
+ },
43
+ "administrator": {
44
+ "capabilities": ["*"]
45
+ }
46
+ },
47
+ "assignments": [
48
+ {
49
+ "id": "starfleet-engineering",
50
+ "subject": "group:starfleet-engineering",
51
+ "role": "maintenance",
52
+ "resource": "/enterprise-a/site-paris/area-a/**"
53
+ },
54
+ {
55
+ "id": "starfleet-security",
56
+ "subject": "group:starfleet-security",
57
+ "role": "operator",
58
+ "resource": "/enterprise-a/site-paris/area-a/**"
59
+ },
60
+ {
61
+ "id": "astrometrics-analysis",
62
+ "subject": "group:astrometrics",
63
+ "role": "viewer",
64
+ "resource": "/enterprise-a/site-paris/**"
65
+ },
66
+ {
67
+ "id": "starfleet-command",
68
+ "subject": "group:starfleet-command",
69
+ "role": "administrator",
70
+ "resource": "/**"
71
+ }
72
+ ],
73
+ "denies": [
74
+ {
75
+ "id": "critical-furnace-safety-lock",
76
+ "subject": "group:starfleet-engineering",
77
+ "effect": "deny",
78
+ "capabilities": ["mcp.tools.configure-analysis", "mcp.tools.operate"],
79
+ "resource": "/enterprise-a/site-paris/area-a/line-2/cell-4/critical-furnace"
80
+ }
81
+ ],
82
+ "slotResources": {
83
+ "motor-7": "/enterprise-a/site-paris/area-a/line-3/cell-2/motor-7",
84
+ "critical-furnace": "/enterprise-a/site-paris/area-a/line-2/cell-4/critical-furnace",
85
+ "site-energy": "/enterprise-a/site-paris"
86
+ },
87
+ "toolCapabilities": {
88
+ "get_electrical_state": "mcp.resources.read",
89
+ "diagnose_machine": "mcp.tools.diagnose",
90
+ "reset_baseline": "mcp.tools.configure-analysis",
91
+ "start_machine": "mcp.tools.operate"
92
+ },
93
+ "audit": {
94
+ "logAllowed": true
95
+ }
96
+ },
97
+ "stdioUpstreams": [
98
+ {
99
+ "name": "motor-7",
100
+ "command": "node",
101
+ "args": ["web/demos/oauth-lab/server/factory-provider.mjs", "--slot", "motor-7", "--label", "Motor 7"],
102
+ "aggregate": true
103
+ },
104
+ {
105
+ "name": "critical-furnace",
106
+ "command": "node",
107
+ "args": ["web/demos/oauth-lab/server/factory-provider.mjs", "--slot", "critical-furnace", "--label", "Critical furnace"],
108
+ "aggregate": true
109
+ },
110
+ {
111
+ "name": "site-energy",
112
+ "command": "node",
113
+ "args": ["web/demos/oauth-lab/server/factory-provider.mjs", "--slot", "site-energy", "--label", "Paris site energy"],
114
+ "aggregate": true
115
+ }
116
+ ]
117
+ }