Skip to content

Commit 585f805

Browse files
committed
feat(metamcp/provision): attach servers to namespaces by UUID and support namespace description; doc update; bump 0.1.7
1 parent e45e1fa commit 585f805

File tree

5 files changed

+29
-6
lines changed

5 files changed

+29
-6
lines changed

charts/metamcp/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v2
22
name: metamcp
33
description: MetaMCP aggregator Helm chart for Kubernetes
44
type: application
5-
version: 0.1.6
5+
version: 0.1.7
66
appVersion: "latest"
77
icon: https://icoretech.github.io/helm/charts/metamcp/logo.png
88
keywords:

charts/metamcp/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ provision:
8484

8585
namespaces:
8686
- name: lab
87+
description: "Sandbox tools"
8788
servers: ["stdio-everything","http-everything","sse-everything"]
8889

8990
endpoints:

charts/metamcp/README.md.gotmpl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ provision:
8484

8585
namespaces:
8686
- name: lab
87+
description: "Sandbox tools"
8788
servers: ["stdio-everything","http-everything","sse-everything"]
8889

8990
endpoints:

charts/metamcp/scripts/provision.py

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -168,29 +168,49 @@ def trpc_get(path):
168168
else:
169169
log(f"WARN server create {name} -> {r.status_code}: {r.text[:160]}")
170170

171-
def ensure_namespace(name):
171+
def ensure_namespace(name, description=None):
172172
ns_uuid = None
173173
lr = trpc_get('/trpc/frontend/frontend.namespaces.list?input=%7B%7D')
174174
if lr.ok:
175175
for ns in lr.json().get('result',{}).get('data',{}).get('data',[]):
176176
if ns.get('name') == name:
177177
ns_uuid = ns.get('uuid'); break
178178
if not ns_uuid:
179-
r = trpc_post('/trpc/frontend/frontend.namespaces.create', {'name': name})
179+
payload = {'name': name}
180+
if description:
181+
payload['description'] = description
182+
r = trpc_post('/trpc/frontend/frontend.namespaces.create', payload)
180183
if r.ok:
181184
try:
182185
ns_uuid = r.json()['result']['data']['data']['uuid']
183186
log(f"namespace created: {name}")
184187
except Exception:
185188
pass
189+
else:
190+
# Update description if provided
191+
if description:
192+
try:
193+
trpc_post('/trpc/frontend/frontend.namespaces.update', {'uuid': ns_uuid,'name': name,'description': description})
194+
except Exception:
195+
pass
186196
return ns_uuid
187197

188198
for ns in namespaces:
189199
name = ns.get('name'); nssrvs = ns.get('servers') or []
190200
if not name: continue
191-
nid = ensure_namespace(name)
192-
if nid and nssrvs:
193-
trpc_post('/trpc/frontend/frontend.namespaces.update', {'uuid': nid,'name': name,'servers': nssrvs})
201+
desc = ns.get('description')
202+
nid = ensure_namespace(name, desc)
203+
# Map server names to UUIDs if available
204+
srv_ids = []
205+
for nm in nssrvs:
206+
sid = srv_map.get(nm)
207+
if sid:
208+
srv_ids.append(sid)
209+
if nid and srv_ids:
210+
try:
211+
trpc_post('/trpc/frontend/frontend.namespaces.update', {'uuid': nid,'name': name,'servers': srv_ids, **({'description': desc} if desc else {})})
212+
except Exception:
213+
pass
194214

195215
def create_endpoint(name, nsref, transport='SSE', extra=None):
196216
lr = trpc_get('/trpc/frontend/frontend.namespaces.list?input=%7B%7D')

charts/metamcp/values.schema.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@
168168
"required": ["name"],
169169
"properties": {
170170
"name": { "type": "string" },
171+
"description": { "type": "string" },
171172
"servers": { "type": "array", "items": { "type": "string" } }
172173
}
173174
}

0 commit comments

Comments
 (0)