@mintmcp/private-network-reverse-proxy 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.
package/README.md
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# MintMCP Private Network Reverse Proxy Server
|
|
2
|
+
|
|
3
|
+
This package contains the customer-side reverse proxy server for MintMCP private
|
|
4
|
+
network tunnels. It runs inside a customer's network and opens an outbound
|
|
5
|
+
WebSocket connection to the MintMCP tunnel proxy URL. MintMCP then forwards HTTP
|
|
6
|
+
requests for private MCP server origins through that outbound connection.
|
|
7
|
+
|
|
8
|
+
The reverse proxy server does not require inbound firewall access and does not
|
|
9
|
+
expose a Kubernetes Service.
|
|
10
|
+
|
|
11
|
+
## NPM
|
|
12
|
+
|
|
13
|
+
Run the reverse proxy server with Node 22 or newer:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
MINTMCP_TUNNEL_PROXY_URL='https://<tunnel proxy host>' \
|
|
17
|
+
MINTMCP_TUNNEL_REVERSE_PROXY_SHARED_SECRET='<reverse proxy shared secret>' \
|
|
18
|
+
npx @mintmcp/private-network-reverse-proxy
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Helm Install
|
|
22
|
+
|
|
23
|
+
Create a namespace and store the shared secret from MintMCP in Kubernetes:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
kubectl create namespace mintmcp
|
|
27
|
+
kubectl -n mintmcp create secret generic mintmcp-private-network-reverse-proxy \
|
|
28
|
+
--from-literal=reverse-proxy-shared-secret='<reverse proxy shared secret>'
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Install the chart:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
helm install mintmcp-private-network-reverse-proxy \
|
|
35
|
+
oci://ghcr.io/mintmcp/charts/mintmcp-private-network-reverse-proxy \
|
|
36
|
+
--namespace mintmcp \
|
|
37
|
+
--set tunnel.proxyUrl='https://<tunnel proxy host>' \
|
|
38
|
+
--set tunnel.existingSecret.name='mintmcp-private-network-reverse-proxy'
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
For local testing, the chart can also create the Secret from values:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
helm install mintmcp-private-network-reverse-proxy ./helm \
|
|
45
|
+
--namespace mintmcp \
|
|
46
|
+
--create-namespace \
|
|
47
|
+
--set tunnel.proxyUrl='https://<tunnel proxy host>' \
|
|
48
|
+
--set tunnel.reverseProxySharedSecret='<reverse proxy shared secret>'
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Avoid the inline-secret form for production installs because Helm stores values
|
|
52
|
+
in release history.
|
|
53
|
+
|
|
54
|
+
## Values
|
|
55
|
+
|
|
56
|
+
Required values:
|
|
57
|
+
|
|
58
|
+
- `tunnel.proxyUrl`: MintMCP tunnel proxy URL shown in the Enterprise settings UI.
|
|
59
|
+
- One of:
|
|
60
|
+
- `tunnel.existingSecret.name`
|
|
61
|
+
- `tunnel.reverseProxySharedSecret`
|
|
62
|
+
|
|
63
|
+
Common optional values:
|
|
64
|
+
|
|
65
|
+
- `image.repository`: reverse proxy image repository.
|
|
66
|
+
- `image.tag`: reverse proxy image tag. Defaults to the chart app version.
|
|
67
|
+
- `imagePullSecrets`: pull secrets for custom private registries.
|
|
68
|
+
- `resources`: pod resource requests and limits.
|
|
69
|
+
- `extraEnv`: additional container environment variables.
|
|
70
|
+
- `envFrom`: additional `envFrom` sources.
|
|
71
|
+
- `nodeSelector`, `tolerations`, `affinity`: scheduling controls.
|
|
72
|
+
|
|
73
|
+
## Operations
|
|
74
|
+
|
|
75
|
+
Check rollout:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
kubectl -n mintmcp rollout status deployment/mintmcp-private-network-reverse-proxy
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Check logs:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
kubectl -n mintmcp logs deployment/mintmcp-private-network-reverse-proxy
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Expected startup log:
|
|
88
|
+
|
|
89
|
+
```text
|
|
90
|
+
reverse proxy server connected to MintMCP tunnel proxy
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
If the shared secret is wrong, the proxy reconnects and MintMCP will show the
|
|
94
|
+
tunnel as disconnected.
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mintmcp/private-network-reverse-proxy",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"bin": {
|
|
6
|
+
"mintmcp-private-network-reverse-proxy": "bin/mintmcp-private-network-reverse-proxy.js"
|
|
7
|
+
},
|
|
8
|
+
"files": [
|
|
9
|
+
"bin/",
|
|
10
|
+
"dist/",
|
|
11
|
+
"README.md"
|
|
12
|
+
],
|
|
13
|
+
"engines": {
|
|
14
|
+
"node": ">=22"
|
|
15
|
+
},
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "tsc -p tsconfig.build.json",
|
|
21
|
+
"prepack": "npm run build",
|
|
22
|
+
"start": "tsx src/index.ts",
|
|
23
|
+
"typecheck": "tsc --noEmit"
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"pino": "10.3.1",
|
|
27
|
+
"ws": "8.20.0",
|
|
28
|
+
"zod": "4.4.1"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@types/node": "20.19.39",
|
|
32
|
+
"@types/ws": "8.18.1",
|
|
33
|
+
"tsx": "4.21.0",
|
|
34
|
+
"typescript": "5.9.3"
|
|
35
|
+
}
|
|
36
|
+
}
|