SpecMgr
mcpkey · packageio.github.dfch/biz-dfch-specmgr · v0.36.0
An artifact manager for system specifications.
run it
on your own machines, one way per deploy methodgenerated from the record, not tested yet
#!/usr/bin/env bash # biz-dfch-specmgr (io.github.dfch/biz-dfch-specmgr), recipe baremetal (generated). # Generated by Hub for toolset "my-agent"; started by mcp-my-agent-biz-dfch-specmgr.service. set -euo pipefail export HOST=127.0.0.1 PORT=8101 exec uvx mcp-proxy --host 127.0.0.1 --port 8101 --pass-environment -- uvx biz-dfch-specmgr==0.36.0 [Unit] Description=MCP server biz-dfch-specmgr (toolset my-agent), generated by Hub After=network-online.target Wants=network-online.target [Service] Type=simple User=mcp Group=mcp EnvironmentFile=/etc/mcp/my-agent.env Environment=HOME=/var/lib/mcp/biz-dfch-specmgr WorkingDirectory=/var/lib/mcp/biz-dfch-specmgr ExecStart=/opt/mcp/my-agent/bin/biz-dfch-specmgr.sh Restart=on-failure RestartSec=5 NoNewPrivileges=true ProtectSystem=strict ProtectHome=true PrivateTmp=true ReadWritePaths=/var/lib/mcp/biz-dfch-specmgr [Install] WantedBy=multi-user.target
generated from the record, not tested yet
docker run --rm -p 127.0.0.1:8101:8000 -e SPECMGR_MCP_TRANSPORT -e SPECMGR_MCP_HOST -e SPECMGR_MCP_PORT -e SPECMGR_ADR_DIR -e SPECMGR_DOCS_DIR -e SPECMGR_FEAT_DIR -e SPECMGR_SIMILARITY_DISABLED -e SPECMGR_FEAT_WARMUP_DISABLED -e SPECMGR_PLANTUML_JAR -e SPECMGR_PLANTUML_BIN -e SPECMGR_PLANTUML_URL -e SPECMGR_DIAGRAM_MAX_TITLE -e SPECMGR_TESTS_NO_DOTENV -e FASTEMBED_CACHE_PATH ghcr.io/astral-sh/uv:python3.12-bookworm-slim sh -c 'uvx mcp-proxy --host 0.0.0.0 --port 8000 --pass-environment -- uvx biz-dfch-specmgr==0.36.0'
generated from the record, not tested yet
# Generated by Hub for toolset "my-agent" (2026-10-18T16:34:25+00:00).
# Each package server runs behind a stdio->HTTP bridge and listens on localhost only.
# cp .env.example .env # fill the ${VAR}s
# docker compose up -d && bash smoke.sh
# Remote servers are not here: clients reach them directly (see clients/).
name: mcp-my-agent
services:
biz-dfch-specmgr:
image: ghcr.io/astral-sh/uv:python3.12-bookworm-slim
command:
- sh
- -c
- uvx mcp-proxy --host 0.0.0.0 --port 8000 --pass-environment -- uvx biz-dfch-specmgr==0.36.0
ports:
- 127.0.0.1:8101:8000
volumes:
- uv-cache:/root/.cache/uv
healthcheck:
test:
- CMD
- python3
- -c
- import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/status')
interval: 30s
timeout: 5s
retries: 5
start_period: 2m
restart: unless-stopped
environment:
SPECMGR_MCP_TRANSPORT: ${SPECMGR_MCP_TRANSPORT}
SPECMGR_MCP_HOST: ${SPECMGR_MCP_HOST}
SPECMGR_MCP_PORT: ${SPECMGR_MCP_PORT}
SPECMGR_ADR_DIR: ${SPECMGR_ADR_DIR}
SPECMGR_DOCS_DIR: ${SPECMGR_DOCS_DIR}
SPECMGR_FEAT_DIR: ${SPECMGR_FEAT_DIR}
SPECMGR_SIMILARITY_DISABLED: ${SPECMGR_SIMILARITY_DISABLED}
SPECMGR_FEAT_WARMUP_DISABLED: ${SPECMGR_FEAT_WARMUP_DISABLED}
SPECMGR_PLANTUML_JAR: ${SPECMGR_PLANTUML_JAR}
SPECMGR_PLANTUML_BIN: ${SPECMGR_PLANTUML_BIN}
SPECMGR_PLANTUML_URL: ${SPECMGR_PLANTUML_URL}
SPECMGR_DIAGRAM_MAX_TITLE: ${SPECMGR_DIAGRAM_MAX_TITLE}
SPECMGR_TESTS_NO_DOTENV: ${SPECMGR_TESTS_NO_DOTENV}
FASTEMBED_CACHE_PATH: ${FASTEMBED_CACHE_PATH}
volumes:
npm-cache: {}
uv-cache: {}
generated from the record, not tested yet
# Generated by Hub for toolset "my-agent" (2026-10-18T16:34:25+00:00).
# kubectl create namespace mcp
# kubectl -n mcp create secret generic mcp-credentials --from-env-file=.env
# kubectl apply -f kubernetes.yaml
# Services are cluster-internal: <name>.mcp.svc.cluster.local:8000/mcp. Put an ingress
# with auth in front before exposing any of them.
apiVersion: v1
kind: Namespace
metadata:
name: mcp
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: biz-dfch-specmgr
namespace: mcp
labels: &id001
app: biz-dfch-specmgr
spec:
replicas: 1
selector:
matchLabels: *id001
template:
metadata:
labels: *id001
spec:
containers:
- name: biz-dfch-specmgr
image: ghcr.io/astral-sh/uv:python3.12-bookworm-slim
ports:
- containerPort: 8000
name: http
env:
- name: SPECMGR_MCP_TRANSPORT
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_MCP_TRANSPORT
- name: SPECMGR_MCP_HOST
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_MCP_HOST
- name: SPECMGR_MCP_PORT
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_MCP_PORT
- name: SPECMGR_ADR_DIR
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_ADR_DIR
- name: SPECMGR_DOCS_DIR
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_DOCS_DIR
- name: SPECMGR_FEAT_DIR
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_FEAT_DIR
- name: SPECMGR_SIMILARITY_DISABLED
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_SIMILARITY_DISABLED
- name: SPECMGR_FEAT_WARMUP_DISABLED
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_FEAT_WARMUP_DISABLED
- name: SPECMGR_PLANTUML_JAR
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_PLANTUML_JAR
- name: SPECMGR_PLANTUML_BIN
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_PLANTUML_BIN
- name: SPECMGR_PLANTUML_URL
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_PLANTUML_URL
- name: SPECMGR_DIAGRAM_MAX_TITLE
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_DIAGRAM_MAX_TITLE
- name: SPECMGR_TESTS_NO_DOTENV
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_TESTS_NO_DOTENV
- name: FASTEMBED_CACHE_PATH
valueFrom:
secretKeyRef:
name: mcp-credentials
key: FASTEMBED_CACHE_PATH
command:
- sh
- -c
- uvx mcp-proxy --host 0.0.0.0 --port 8000 --pass-environment -- uvx biz-dfch-specmgr==0.36.0
readinessProbe:
httpGet:
path: /status
port: http
initialDelaySeconds: 10
---
apiVersion: v1
kind: Service
metadata:
name: biz-dfch-specmgr
namespace: mcp
spec:
selector:
app: biz-dfch-specmgr
ports:
- port: 8000
targetPort: http
name: http
generated from the record, not tested yet
# Generated by Hub for toolset "my-agent" (2026-10-18T16:34:25+00:00).
# Credentials come from the Secret 'mcp-credentials' (kubectl create secret generic ... --from-env-file=.env).
# Each server under `servers` is one Deployment + Service; the keys after it configure
# upstream charts a worker verified.
servers:
biz-dfch-specmgr:
enabled: true
replicas: 1
port: 8000
path: /mcp
container:
name: biz-dfch-specmgr
image: ghcr.io/astral-sh/uv:python3.12-bookworm-slim
ports:
- containerPort: 8000
name: http
env:
- name: SPECMGR_MCP_TRANSPORT
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_MCP_TRANSPORT
- name: SPECMGR_MCP_HOST
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_MCP_HOST
- name: SPECMGR_MCP_PORT
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_MCP_PORT
- name: SPECMGR_ADR_DIR
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_ADR_DIR
- name: SPECMGR_DOCS_DIR
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_DOCS_DIR
- name: SPECMGR_FEAT_DIR
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_FEAT_DIR
- name: SPECMGR_SIMILARITY_DISABLED
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_SIMILARITY_DISABLED
- name: SPECMGR_FEAT_WARMUP_DISABLED
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_FEAT_WARMUP_DISABLED
- name: SPECMGR_PLANTUML_JAR
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_PLANTUML_JAR
- name: SPECMGR_PLANTUML_BIN
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_PLANTUML_BIN
- name: SPECMGR_PLANTUML_URL
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_PLANTUML_URL
- name: SPECMGR_DIAGRAM_MAX_TITLE
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_DIAGRAM_MAX_TITLE
- name: SPECMGR_TESTS_NO_DOTENV
valueFrom:
secretKeyRef:
name: mcp-credentials
key: SPECMGR_TESTS_NO_DOTENV
- name: FASTEMBED_CACHE_PATH
valueFrom:
secretKeyRef:
name: mcp-credentials
key: FASTEMBED_CACHE_PATH
command:
- sh
- -c
- uvx mcp-proxy --host 0.0.0.0 --port 8000 --pass-environment -- uvx biz-dfch-specmgr==0.36.0
readinessProbe:
httpGet:
path: /status
port: http
initialDelaySeconds: 10
# helm install my-agent helm/my-agent -n mcp
in the cloud
one click: the provider's deploy form opens filled in, in your own account- koyeb
-
The form opens with CHANGE_ME for each value you supply: SPECMGR_MCP_TRANSPORT, SPECMGR_MCP_HOST, SPECMGR_MCP_PORT, SPECMGR_ADR_DIR, SPECMGR_DOCS_DIR, SPECMGR_FEAT_DIR, SPECMGR_SIMILARITY_DISABLED, SPECMGR_FEAT_WARMUP_DISABLED, SPECMGR_PLANTUML_JAR, SPECMGR_PLANTUML_BIN, SPECMGR_PLANTUML_URL, SPECMGR_DIAGRAM_MAX_TITLE, SPECMGR_TESTS_NO_DOTENV, FASTEMBED_CACHE_PATH. Fill them in before you deploy.
Clients connect to the service's https://…koyeb.app address plus /mcp.
- azure
-
A Container Apps environment with one app per server, each with HTTPS ingress and one replica. The portal asks for each value you supply as a secure parameter; the deployment's outputs list the endpoints.
connect to it
copy what your client needsuvx biz-dfch-specmgr==0.36.0 # env: SPECMGR_MCP_TRANSPORT, SPECMGR_MCP_HOST, SPECMGR_MCP_PORT, SPECMGR_ADR_DIR, SPECMGR_DOCS_DIR, SPECMGR_FEAT_DIR, SPECMGR_SIMILARITY_DISABLED, SPECMGR_FEAT_WARMUP_DISABLED, SPECMGR_PLANTUML_JAR, SPECMGR_PLANTUML_BIN, SPECMGR_PLANTUML_URL, SPECMGR_DIAGRAM_MAX_TITLE, SPECMGR_TESTS_NO_DOTENV, FASTEMBED_CACHE_PATH
{
"mcpServers": {
"biz-dfch-specmgr": {
"command": "uvx",
"args": [
"biz-dfch-specmgr==0.36.0"
],
"env": {
"SPECMGR_MCP_TRANSPORT": "${SPECMGR_MCP_TRANSPORT}",
"SPECMGR_MCP_HOST": "${SPECMGR_MCP_HOST}",
"SPECMGR_MCP_PORT": "${SPECMGR_MCP_PORT}",
"SPECMGR_ADR_DIR": "${SPECMGR_ADR_DIR}",
"SPECMGR_DOCS_DIR": "${SPECMGR_DOCS_DIR}",
"SPECMGR_FEAT_DIR": "${SPECMGR_FEAT_DIR}",
"SPECMGR_SIMILARITY_DISABLED": "${SPECMGR_SIMILARITY_DISABLED}",
"SPECMGR_FEAT_WARMUP_DISABLED": "${SPECMGR_FEAT_WARMUP_DISABLED}",
"SPECMGR_PLANTUML_JAR": "${SPECMGR_PLANTUML_JAR}",
"SPECMGR_PLANTUML_BIN": "${SPECMGR_PLANTUML_BIN}",
"SPECMGR_PLANTUML_URL": "${SPECMGR_PLANTUML_URL}",
"SPECMGR_DIAGRAM_MAX_TITLE": "${SPECMGR_DIAGRAM_MAX_TITLE}",
"SPECMGR_TESTS_NO_DOTENV": "${SPECMGR_TESTS_NO_DOTENV}",
"FASTEMBED_CACHE_PATH": "${FASTEMBED_CACHE_PATH}"
}
}
}
}
#!/usr/bin/env bash
# Registers every server with Claude Code (run once; `claude mcp list` to check).
set -euo pipefail
set -a; [ -f .env ] && source .env; set +a
claude mcp add biz-dfch-specmgr -e "SPECMGR_MCP_TRANSPORT=${SPECMGR_MCP_TRANSPORT}" -e "SPECMGR_MCP_HOST=${SPECMGR_MCP_HOST}" -e "SPECMGR_MCP_PORT=${SPECMGR_MCP_PORT}" -e "SPECMGR_ADR_DIR=${SPECMGR_ADR_DIR}" -e "SPECMGR_DOCS_DIR=${SPECMGR_DOCS_DIR}" -e "SPECMGR_FEAT_DIR=${SPECMGR_FEAT_DIR}" -e "SPECMGR_SIMILARITY_DISABLED=${SPECMGR_SIMILARITY_DISABLED}" -e "SPECMGR_FEAT_WARMUP_DISABLED=${SPECMGR_FEAT_WARMUP_DISABLED}" -e "SPECMGR_PLANTUML_JAR=${SPECMGR_PLANTUML_JAR}" -e "SPECMGR_PLANTUML_BIN=${SPECMGR_PLANTUML_BIN}" -e "SPECMGR_PLANTUML_URL=${SPECMGR_PLANTUML_URL}" -e "SPECMGR_DIAGRAM_MAX_TITLE=${SPECMGR_DIAGRAM_MAX_TITLE}" -e "SPECMGR_TESTS_NO_DOTENV=${SPECMGR_TESTS_NO_DOTENV}" -e "FASTEMBED_CACHE_PATH=${FASTEMBED_CACHE_PATH}" -- uvx biz-dfch-specmgr==0.36.0
{
"mcpServers": {
"biz-dfch-specmgr": {
"command": "uvx",
"args": [
"biz-dfch-specmgr==0.36.0"
],
"env": {
"SPECMGR_MCP_TRANSPORT": "${SPECMGR_MCP_TRANSPORT}",
"SPECMGR_MCP_HOST": "${SPECMGR_MCP_HOST}",
"SPECMGR_MCP_PORT": "${SPECMGR_MCP_PORT}",
"SPECMGR_ADR_DIR": "${SPECMGR_ADR_DIR}",
"SPECMGR_DOCS_DIR": "${SPECMGR_DOCS_DIR}",
"SPECMGR_FEAT_DIR": "${SPECMGR_FEAT_DIR}",
"SPECMGR_SIMILARITY_DISABLED": "${SPECMGR_SIMILARITY_DISABLED}",
"SPECMGR_FEAT_WARMUP_DISABLED": "${SPECMGR_FEAT_WARMUP_DISABLED}",
"SPECMGR_PLANTUML_JAR": "${SPECMGR_PLANTUML_JAR}",
"SPECMGR_PLANTUML_BIN": "${SPECMGR_PLANTUML_BIN}",
"SPECMGR_PLANTUML_URL": "${SPECMGR_PLANTUML_URL}",
"SPECMGR_DIAGRAM_MAX_TITLE": "${SPECMGR_DIAGRAM_MAX_TITLE}",
"SPECMGR_TESTS_NO_DOTENV": "${SPECMGR_TESTS_NO_DOTENV}",
"FASTEMBED_CACHE_PATH": "${FASTEMBED_CACHE_PATH}"
}
}
}
}
{
"servers": {
"biz-dfch-specmgr": {
"type": "stdio",
"command": "uvx",
"args": [
"biz-dfch-specmgr==0.36.0"
],
"env": {
"SPECMGR_MCP_TRANSPORT": "${SPECMGR_MCP_TRANSPORT}",
"SPECMGR_MCP_HOST": "${SPECMGR_MCP_HOST}",
"SPECMGR_MCP_PORT": "${SPECMGR_MCP_PORT}",
"SPECMGR_ADR_DIR": "${SPECMGR_ADR_DIR}",
"SPECMGR_DOCS_DIR": "${SPECMGR_DOCS_DIR}",
"SPECMGR_FEAT_DIR": "${SPECMGR_FEAT_DIR}",
"SPECMGR_SIMILARITY_DISABLED": "${SPECMGR_SIMILARITY_DISABLED}",
"SPECMGR_FEAT_WARMUP_DISABLED": "${SPECMGR_FEAT_WARMUP_DISABLED}",
"SPECMGR_PLANTUML_JAR": "${SPECMGR_PLANTUML_JAR}",
"SPECMGR_PLANTUML_BIN": "${SPECMGR_PLANTUML_BIN}",
"SPECMGR_PLANTUML_URL": "${SPECMGR_PLANTUML_URL}",
"SPECMGR_DIAGRAM_MAX_TITLE": "${SPECMGR_DIAGRAM_MAX_TITLE}",
"SPECMGR_TESTS_NO_DOTENV": "${SPECMGR_TESTS_NO_DOTENV}",
"FASTEMBED_CACHE_PATH": "${FASTEMBED_CACHE_PATH}"
}
}
}
}
name: my-agent target: local servers: - hub: io.github.dfch/biz-dfch-specmgr
- not probed yet: tools unpinned, ingest lists them
tools
Not probed yetThe tools appear once the hub or its worker has listed this entry. Running it still works: your client lists them on first start.