@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.
- package/.mcp-broker.example/CONFIGURATION-EN.md +861 -0
- package/.mcp-broker.example/CONFIGURATION-FR.md +871 -0
- package/.mcp-broker.example/README.md +8 -3
- package/.mcp-broker.example/config.json +86 -0
- package/README.md +122 -3
- package/dist/bin.d.ts +0 -1
- package/dist/bin.js +180 -208
- package/dist/bin.js.map +1 -1
- package/dist/chunk-FTDKH2C4.js +3670 -0
- package/dist/chunk-FTDKH2C4.js.map +1 -0
- package/dist/{broker/grammars → grammars}/claude/en.json +1 -1
- package/dist/{broker/grammars → grammars}/claude/fr.json +1 -1
- package/dist/index.d.ts +1790 -18
- package/dist/index.js +2 -14
- package/dist/index.js.map +1 -1
- package/package.json +14 -8
- package/scripts/copy-assets.mjs +16 -10
- package/scripts/gen-cert.mjs +5 -5
- package/scripts/pack-mcpb.mjs +5 -5
- package/scripts/sign-bundle.mjs +6 -6
- package/src/auth/auth.config.ts +98 -0
- package/src/auth/auth.types.ts +120 -0
- package/src/auth/http.auth.ts +128 -0
- package/src/auth/index.ts +34 -0
- package/src/auth/jwt.validator.ts +63 -0
- package/src/auth/provider.auth.ts +114 -0
- package/src/auth/resource.metadata.ts +34 -0
- package/src/authorization/audit.ts +35 -0
- package/src/authorization/capability.classifier.ts +114 -0
- package/src/authorization/index.ts +37 -0
- package/src/authorization/policy.engine.ts +212 -0
- package/src/authorization/policy.types.ts +105 -0
- package/src/authorization/resource.path.ts +126 -0
- package/src/authorization/runtime.ts +56 -0
- package/src/authorization/slot.resource.ts +50 -0
- package/src/authorization/subject.mapper.ts +81 -0
- package/src/bin.ts +90 -7
- package/src/broker/adapters/broker.adapter.info.ts +3 -3
- package/src/broker/adapters/broker.adapter.providers.ts +3 -3
- package/src/broker/aggregate/aggregate.catalog.ts +49 -21
- package/src/broker/aggregate/aggregate.server.ts +149 -19
- package/src/broker/aggregate/provider.client.session.ts +22 -22
- package/src/broker/behaviors/broker.behavior.info.ts +4 -4
- package/src/broker/behaviors/broker.behavior.providers.ts +6 -6
- package/src/broker/broker.context.ts +10 -4
- package/src/broker/broker.grammars.ts +16 -13
- package/src/broker/broker.server.ts +12 -9
- package/src/broker/grammars/claude/en.json +1 -1
- package/src/broker/grammars/claude/fr.json +1 -1
- package/src/broker/index.ts +9 -9
- package/src/config.ts +81 -8
- package/src/index.ts +121 -20
- package/src/{mcpb.loader.ts → mcpb/mcpb.loader.ts} +24 -21
- package/src/{mcpb.unzip.ts → mcpb/mcpb.unzip.ts} +2 -2
- package/src/remote.transports.ts +11 -8
- package/src/remote.upstream.ts +11 -8
- package/src/stdio.upstream.ts +9 -6
- package/src/upstream.ts +6 -3
- package/src/ws/ws.interfaces.ts +357 -0
- package/src/{ws.tunnel.builder.ts → ws/ws.tunnel.builder.ts} +112 -9
- package/src/{ws.tunnel.ts → ws/ws.tunnel.ts} +646 -457
- package/web/README.md +94 -0
- package/web/assets/logo.png +0 -0
- package/web/broker-self-mcp.html +338 -0
- package/web/css/styles.css +580 -0
- package/web/demos/DemoPlaceholder.html +258 -0
- package/web/demos/broker-explorer/css/app.css +393 -0
- package/web/demos/broker-explorer/index.html +94 -0
- package/web/demos/broker-explorer/js/app.js +271 -0
- package/web/demos/broker-explorer/js/mcp-ws-client.js +132 -0
- package/web/demos/oauth-lab/README.md +94 -0
- package/web/demos/oauth-lab/config.json +117 -0
- package/web/demos/oauth-lab/css/app.css +1097 -0
- package/web/demos/oauth-lab/index.html +323 -0
- package/web/demos/oauth-lab/js/app.js +654 -0
- package/web/demos/oauth-lab/server/auth-server.mjs +426 -0
- package/web/demos/oauth-lab/server/factory-provider.mjs +269 -0
- package/web/demos/oauth-lab/server/smoke-test.mjs +308 -0
- package/web/demos/oauth-lab/server/start.mjs +106 -0
- package/web/demos/provider-tunnel/css/app.css +384 -0
- package/web/demos/provider-tunnel/index.html +99 -0
- package/web/demos/provider-tunnel/js/app.js +226 -0
- package/web/demos/provider-tunnel/js/toolbox-server.js +186 -0
- package/web/index.html +558 -0
- package/web/js/lib/broker-tunnel.js +173 -0
- package/dist/broker/adapters/broker.adapter.info.d.ts +0 -16
- package/dist/broker/adapters/broker.adapter.info.js +0 -43
- package/dist/broker/adapters/broker.adapter.info.js.map +0 -1
- package/dist/broker/adapters/broker.adapter.providers.d.ts +0 -18
- package/dist/broker/adapters/broker.adapter.providers.js +0 -61
- package/dist/broker/adapters/broker.adapter.providers.js.map +0 -1
- package/dist/broker/aggregate/aggregate.catalog.d.ts +0 -54
- package/dist/broker/aggregate/aggregate.catalog.js +0 -105
- package/dist/broker/aggregate/aggregate.catalog.js.map +0 -1
- package/dist/broker/aggregate/aggregate.server.d.ts +0 -47
- package/dist/broker/aggregate/aggregate.server.js +0 -151
- package/dist/broker/aggregate/aggregate.server.js.map +0 -1
- package/dist/broker/aggregate/provider.client.session.d.ts +0 -52
- package/dist/broker/aggregate/provider.client.session.js +0 -140
- package/dist/broker/aggregate/provider.client.session.js.map +0 -1
- package/dist/broker/behaviors/broker.behavior.info.d.ts +0 -15
- package/dist/broker/behaviors/broker.behavior.info.js +0 -41
- package/dist/broker/behaviors/broker.behavior.info.js.map +0 -1
- package/dist/broker/behaviors/broker.behavior.providers.d.ts +0 -19
- package/dist/broker/behaviors/broker.behavior.providers.js +0 -69
- package/dist/broker/behaviors/broker.behavior.providers.js.map +0 -1
- package/dist/broker/broker.context.d.ts +0 -59
- package/dist/broker/broker.context.js +0 -2
- package/dist/broker/broker.context.js.map +0 -1
- package/dist/broker/broker.grammars.d.ts +0 -130
- package/dist/broker/broker.grammars.js +0 -229
- package/dist/broker/broker.grammars.js.map +0 -1
- package/dist/broker/broker.server.d.ts +0 -66
- package/dist/broker/broker.server.js +0 -73
- package/dist/broker/broker.server.js.map +0 -1
- package/dist/broker/index.d.ts +0 -9
- package/dist/broker/index.js +0 -7
- package/dist/broker/index.js.map +0 -1
- package/dist/config.d.ts +0 -136
- package/dist/config.js +0 -61
- package/dist/config.js.map +0 -1
- package/dist/mcpb.loader.d.ts +0 -24
- package/dist/mcpb.loader.js +0 -161
- package/dist/mcpb.loader.js.map +0 -1
- package/dist/mcpb.unzip.d.ts +0 -6
- package/dist/mcpb.unzip.js +0 -95
- package/dist/mcpb.unzip.js.map +0 -1
- package/dist/remote.transports.d.ts +0 -16
- package/dist/remote.transports.js +0 -297
- package/dist/remote.transports.js.map +0 -1
- package/dist/remote.upstream.d.ts +0 -36
- package/dist/remote.upstream.js +0 -52
- package/dist/remote.upstream.js.map +0 -1
- package/dist/stdio.upstream.d.ts +0 -45
- package/dist/stdio.upstream.js +0 -85
- package/dist/stdio.upstream.js.map +0 -1
- package/dist/upstream.d.ts +0 -33
- package/dist/upstream.js +0 -2
- package/dist/upstream.js.map +0 -1
- package/dist/version.d.ts +0 -2
- package/dist/version.js +0 -9
- package/dist/version.js.map +0 -1
- package/dist/ws.tunnel.builder.d.ts +0 -139
- package/dist/ws.tunnel.builder.js +0 -205
- package/dist/ws.tunnel.builder.js.map +0 -1
- package/dist/ws.tunnel.d.ts +0 -373
- package/dist/ws.tunnel.js +0 -1090
- package/dist/ws.tunnel.js.map +0 -1
- /package/dist/{broker/grammars → grammars}/default/en.json +0 -0
- /package/dist/{broker/grammars → grammars}/default/fr.json +0 -0
- /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
|
+
}
|