Search / io.github.olk/design-pattern-mcp
Design Pattern MCP
L0· runs locallyMCP server that provides design-pattern selection expertise to AI coding agents
v1.0.1 · active · repository · descriptor JSON · versions
Search / io.github.olk/design-pattern-mcp
L0· runs locallyMCP server that provides design-pattern selection expertise to AI coding agents
v1.0.1 · active · repository · descriptor JSON · versions
{
"mcpServers": {
"design-pattern-mcp": {
"command": "docker",
"args": [
"--add-host",
"host.docker.internal:host-gateway",
"-e",
"DESIGN_PATTERN_GENERATOR_API_KEY",
"-e",
"DESIGN_PATTERN_GENERATOR_PROVIDER",
"-e",
"DESIGN_PATTERN_GENERATOR_MODEL",
"-e",
"DESIGN_PATTERN_GENERATOR_BASE_URL",
"-e",
"DESIGN_PATTERN_PATTERN_DIRECTORY",
"-e",
"DESIGN_PATTERN_EMBEDDER_BASE_URL",
"-e",
"DESIGN_PATTERN_EMBEDDER_API_KEY",
"-e",
"DESIGN_PATTERN_RERANKER_BASE_URL",
"docker.io/olkowa/design-pattern-mcp:1.0.1",
"--transport",
"stdio"
],
"env": {
"DESIGN_PATTERN_GENERATOR_API_KEY": "${DESIGN_PATTERN_GENERATOR_API_KEY}",
"DESIGN_PATTERN_GENERATOR_PROVIDER": "openai",
"DESIGN_PATTERN_GENERATOR_MODEL": "gpt-4o-mini",
"DESIGN_PATTERN_GENERATOR_BASE_URL": "https://api.openai.com/v1",
"DESIGN_PATTERN_PATTERN_DIRECTORY": "/app/pattern",
"DESIGN_PATTERN_EMBEDDER_BASE_URL": "${DESIGN_PATTERN_EMBEDDER_BASE_URL}",
"DESIGN_PATTERN_EMBEDDER_API_KEY": "${DESIGN_PATTERN_EMBEDDER_API_KEY}",
"DESIGN_PATTERN_RERANKER_BASE_URL": "${DESIGN_PATTERN_RERANKER_BASE_URL}"
}
}
}
}claude mcp add design-pattern-mcp -e "DESIGN_PATTERN_GENERATOR_API_KEY=${DESIGN_PATTERN_GENERATOR_API_KEY}" -e "DESIGN_PATTERN_GENERATOR_PROVIDER=openai" -e "DESIGN_PATTERN_GENERATOR_MODEL=gpt-4o-mini" -e "DESIGN_PATTERN_GENERATOR_BASE_URL=https://api.openai.com/v1" -e "DESIGN_PATTERN_PATTERN_DIRECTORY=/app/pattern" -e "DESIGN_PATTERN_EMBEDDER_BASE_URL=${DESIGN_PATTERN_EMBEDDER_BASE_URL}" -e "DESIGN_PATTERN_EMBEDDER_API_KEY=${DESIGN_PATTERN_EMBEDDER_API_KEY}" -e "DESIGN_PATTERN_RERANKER_BASE_URL=${DESIGN_PATTERN_RERANKER_BASE_URL}" -- docker --add-host host.docker.internal:host-gateway -e DESIGN_PATTERN_GENERATOR_API_KEY -e DESIGN_PATTERN_GENERATOR_PROVIDER -e DESIGN_PATTERN_GENERATOR_MODEL -e DESIGN_PATTERN_GENERATOR_BASE_URL -e DESIGN_PATTERN_PATTERN_DIRECTORY -e DESIGN_PATTERN_EMBEDDER_BASE_URL -e DESIGN_PATTERN_EMBEDDER_API_KEY -e DESIGN_PATTERN_RERANKER_BASE_URL docker.io/olkowa/design-pattern-mcp:1.0.1 --transport stdio[mcp_servers.design-pattern-mcp]
command = "docker"
args = ["--add-host", "host.docker.internal:host-gateway", "-e", "DESIGN_PATTERN_GENERATOR_API_KEY", "-e", "DESIGN_PATTERN_GENERATOR_PROVIDER", "-e", "DESIGN_PATTERN_GENERATOR_MODEL", "-e", "DESIGN_PATTERN_GENERATOR_BASE_URL", "-e", "DESIGN_PATTERN_PATTERN_DIRECTORY", "-e", "DESIGN_PATTERN_EMBEDDER_BASE_URL", "-e", "DESIGN_PATTERN_EMBEDDER_API_KEY", "-e", "DESIGN_PATTERN_RERANKER_BASE_URL", "docker.io/olkowa/design-pattern-mcp:1.0.1", "--transport", "stdio"]
env = { "DESIGN_PATTERN_GENERATOR_API_KEY" = "${DESIGN_PATTERN_GENERATOR_API_KEY}", "DESIGN_PATTERN_GENERATOR_PROVIDER" = "openai", "DESIGN_PATTERN_GENERATOR_MODEL" = "gpt-4o-mini", "DESIGN_PATTERN_GENERATOR_BASE_URL" = "https://api.openai.com/v1", "DESIGN_PATTERN_PATTERN_DIRECTORY" = "/app/pattern", "DESIGN_PATTERN_EMBEDDER_BASE_URL" = "${DESIGN_PATTERN_EMBEDDER_BASE_URL}", "DESIGN_PATTERN_EMBEDDER_API_KEY" = "${DESIGN_PATTERN_EMBEDDER_API_KEY}", "DESIGN_PATTERN_RERANKER_BASE_URL" = "${DESIGN_PATTERN_RERANKER_BASE_URL}" }
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"design-pattern-mcp": {
"type": "local",
"command": [
"docker",
"--add-host",
"host.docker.internal:host-gateway",
"-e",
"DESIGN_PATTERN_GENERATOR_API_KEY",
"-e",
"DESIGN_PATTERN_GENERATOR_PROVIDER",
"-e",
"DESIGN_PATTERN_GENERATOR_MODEL",
"-e",
"DESIGN_PATTERN_GENERATOR_BASE_URL",
"-e",
"DESIGN_PATTERN_PATTERN_DIRECTORY",
"-e",
"DESIGN_PATTERN_EMBEDDER_BASE_URL",
"-e",
"DESIGN_PATTERN_EMBEDDER_API_KEY",
"-e",
"DESIGN_PATTERN_RERANKER_BASE_URL",
"docker.io/olkowa/design-pattern-mcp:1.0.1",
"--transport",
"stdio"
],
"enabled": true,
"environment": {
"DESIGN_PATTERN_GENERATOR_API_KEY": "{env:DESIGN_PATTERN_GENERATOR_API_KEY}",
"DESIGN_PATTERN_GENERATOR_PROVIDER": "openai",
"DESIGN_PATTERN_GENERATOR_MODEL": "gpt-4o-mini",
"DESIGN_PATTERN_GENERATOR_BASE_URL": "https://api.openai.com/v1",
"DESIGN_PATTERN_PATTERN_DIRECTORY": "/app/pattern",
"DESIGN_PATTERN_EMBEDDER_BASE_URL": "{env:DESIGN_PATTERN_EMBEDDER_BASE_URL}",
"DESIGN_PATTERN_EMBEDDER_API_KEY": "{env:DESIGN_PATTERN_EMBEDDER_API_KEY}",
"DESIGN_PATTERN_RERANKER_BASE_URL": "{env:DESIGN_PATTERN_RERANKER_BASE_URL}"
}
}
}
}{
"mcpServers": {
"design-pattern-mcp": {
"command": "docker",
"args": [
"--add-host",
"host.docker.internal:host-gateway",
"-e",
"DESIGN_PATTERN_GENERATOR_API_KEY",
"-e",
"DESIGN_PATTERN_GENERATOR_PROVIDER",
"-e",
"DESIGN_PATTERN_GENERATOR_MODEL",
"-e",
"DESIGN_PATTERN_GENERATOR_BASE_URL",
"-e",
"DESIGN_PATTERN_PATTERN_DIRECTORY",
"-e",
"DESIGN_PATTERN_EMBEDDER_BASE_URL",
"-e",
"DESIGN_PATTERN_EMBEDDER_API_KEY",
"-e",
"DESIGN_PATTERN_RERANKER_BASE_URL",
"docker.io/olkowa/design-pattern-mcp:1.0.1",
"--transport",
"stdio"
],
"env": {
"DESIGN_PATTERN_GENERATOR_API_KEY": "${DESIGN_PATTERN_GENERATOR_API_KEY}",
"DESIGN_PATTERN_GENERATOR_PROVIDER": "openai",
"DESIGN_PATTERN_GENERATOR_MODEL": "gpt-4o-mini",
"DESIGN_PATTERN_GENERATOR_BASE_URL": "https://api.openai.com/v1",
"DESIGN_PATTERN_PATTERN_DIRECTORY": "/app/pattern",
"DESIGN_PATTERN_EMBEDDER_BASE_URL": "${DESIGN_PATTERN_EMBEDDER_BASE_URL}",
"DESIGN_PATTERN_EMBEDDER_API_KEY": "${DESIGN_PATTERN_EMBEDDER_API_KEY}",
"DESIGN_PATTERN_RERANKER_BASE_URL": "${DESIGN_PATTERN_RERANKER_BASE_URL}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=design-pattern-mcp&config=eyJjb21tYW5kIjoiZG9ja2VyIiwiYXJncyI6WyItLWFkZC1ob3N0IiwiaG9zdC5kb2NrZXIuaW50ZXJuYWw6aG9zdC1nYXRld2F5IiwiLWUiLCJERVNJR05fUEFUVEVSTl9HRU5FUkFUT1JfQVBJX0tFWSIsIi1lIiwiREVTSUdOX1BBVFRFUk5fR0VORVJBVE9SX1BST1ZJREVSIiwiLWUiLCJERVNJR05fUEFUVEVSTl9HRU5FUkFUT1JfTU9ERUwiLCItZSIsIkRFU0lHTl9QQVRURVJOX0dFTkVSQVRPUl9CQVNFX1VSTCIsIi1lIiwiREVTSUdOX1BBVFRFUk5fUEFUVEVSTl9ESVJFQ1RPUlkiLCItZSIsIkRFU0lHTl9QQVRURVJOX0VNQkVEREVSX0JBU0VfVVJMIiwiLWUiLCJERVNJR05fUEFUVEVSTl9FTUJFRERFUl9BUElfS0VZIiwiLWUiLCJERVNJR05fUEFUVEVSTl9SRVJBTktFUl9CQVNFX1VSTCIsImRvY2tlci5pby9vbGtvd2EvZGVzaWduLXBhdHRlcm4tbWNwOjEuMC4xIiwiLS10cmFuc3BvcnQiLCJzdGRpbyJdLCJlbnYiOnsiREVTSUdOX1BBVFRFUk5fR0VORVJBVE9SX0FQSV9LRVkiOiIke0RFU0lHTl9QQVRURVJOX0dFTkVSQVRPUl9BUElfS0VZfSIsIkRFU0lHTl9QQVRURVJOX0dFTkVSQVRPUl9QUk9WSURFUiI6Im9wZW5haSIsIkRFU0lHTl9QQVRURVJOX0dFTkVSQVRPUl9NT0RFTCI6ImdwdC00by1taW5pIiwiREVTSUdOX1BBVFRFUk5fR0VORVJBVE9SX0JBU0VfVVJMIjoiaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MSIsIkRFU0lHTl9QQVRURVJOX1BBVFRFUk5fRElSRUNUT1JZIjoiL2FwcC9wYXR0ZXJuIiwiREVTSUdOX1BBVFRFUk5fRU1CRURERVJfQkFTRV9VUkwiOiIke0RFU0lHTl9QQVRURVJOX0VNQkVEREVSX0JBU0VfVVJMfSIsIkRFU0lHTl9QQVRURVJOX0VNQkVEREVSX0FQSV9LRVkiOiIke0RFU0lHTl9QQVRURVJOX0VNQkVEREVSX0FQSV9LRVl9IiwiREVTSUdOX1BBVFRFUk5fUkVSQU5LRVJfQkFTRV9VUkwiOiIke0RFU0lHTl9QQVRURVJOX1JFUkFOS0VSX0JBU0VfVVJMfSJ9fQ%3D%3D"
}{
"servers": {
"design-pattern-mcp": {
"type": "stdio",
"command": "docker",
"args": [
"--add-host",
"host.docker.internal:host-gateway",
"-e",
"DESIGN_PATTERN_GENERATOR_API_KEY",
"-e",
"DESIGN_PATTERN_GENERATOR_PROVIDER",
"-e",
"DESIGN_PATTERN_GENERATOR_MODEL",
"-e",
"DESIGN_PATTERN_GENERATOR_BASE_URL",
"-e",
"DESIGN_PATTERN_PATTERN_DIRECTORY",
"-e",
"DESIGN_PATTERN_EMBEDDER_BASE_URL",
"-e",
"DESIGN_PATTERN_EMBEDDER_API_KEY",
"-e",
"DESIGN_PATTERN_RERANKER_BASE_URL",
"docker.io/olkowa/design-pattern-mcp:1.0.1",
"--transport",
"stdio"
],
"env": {
"DESIGN_PATTERN_GENERATOR_API_KEY": "${DESIGN_PATTERN_GENERATOR_API_KEY}",
"DESIGN_PATTERN_GENERATOR_PROVIDER": "openai",
"DESIGN_PATTERN_GENERATOR_MODEL": "gpt-4o-mini",
"DESIGN_PATTERN_GENERATOR_BASE_URL": "https://api.openai.com/v1",
"DESIGN_PATTERN_PATTERN_DIRECTORY": "/app/pattern",
"DESIGN_PATTERN_EMBEDDER_BASE_URL": "${DESIGN_PATTERN_EMBEDDER_BASE_URL}",
"DESIGN_PATTERN_EMBEDDER_API_KEY": "${DESIGN_PATTERN_EMBEDDER_API_KEY}",
"DESIGN_PATTERN_RERANKER_BASE_URL": "${DESIGN_PATTERN_RERANKER_BASE_URL}"
}
}
}
}{
"mcpServers": {
"design-pattern-mcp": {
"command": "docker",
"args": [
"--add-host",
"host.docker.internal:host-gateway",
"-e",
"DESIGN_PATTERN_GENERATOR_API_KEY",
"-e",
"DESIGN_PATTERN_GENERATOR_PROVIDER",
"-e",
"DESIGN_PATTERN_GENERATOR_MODEL",
"-e",
"DESIGN_PATTERN_GENERATOR_BASE_URL",
"-e",
"DESIGN_PATTERN_PATTERN_DIRECTORY",
"-e",
"DESIGN_PATTERN_EMBEDDER_BASE_URL",
"-e",
"DESIGN_PATTERN_EMBEDDER_API_KEY",
"-e",
"DESIGN_PATTERN_RERANKER_BASE_URL",
"docker.io/olkowa/design-pattern-mcp:1.0.1",
"--transport",
"stdio"
],
"env": {
"DESIGN_PATTERN_GENERATOR_API_KEY": "${DESIGN_PATTERN_GENERATOR_API_KEY}",
"DESIGN_PATTERN_GENERATOR_PROVIDER": "openai",
"DESIGN_PATTERN_GENERATOR_MODEL": "gpt-4o-mini",
"DESIGN_PATTERN_GENERATOR_BASE_URL": "https://api.openai.com/v1",
"DESIGN_PATTERN_PATTERN_DIRECTORY": "/app/pattern",
"DESIGN_PATTERN_EMBEDDER_BASE_URL": "${DESIGN_PATTERN_EMBEDDER_BASE_URL}",
"DESIGN_PATTERN_EMBEDDER_API_KEY": "${DESIGN_PATTERN_EMBEDDER_API_KEY}",
"DESIGN_PATTERN_RERANKER_BASE_URL": "${DESIGN_PATTERN_RERANKER_BASE_URL}"
}
}
}
}extensions:
"design-pattern-mcp":
enabled: true
name: "design-pattern-mcp"
type: stdio
cmd: "docker"
args:
- "--add-host"
- "host.docker.internal:host-gateway"
- "-e"
- "DESIGN_PATTERN_GENERATOR_API_KEY"
- "-e"
- "DESIGN_PATTERN_GENERATOR_PROVIDER"
- "-e"
- "DESIGN_PATTERN_GENERATOR_MODEL"
- "-e"
- "DESIGN_PATTERN_GENERATOR_BASE_URL"
- "-e"
- "DESIGN_PATTERN_PATTERN_DIRECTORY"
- "-e"
- "DESIGN_PATTERN_EMBEDDER_BASE_URL"
- "-e"
- "DESIGN_PATTERN_EMBEDDER_API_KEY"
- "-e"
- "DESIGN_PATTERN_RERANKER_BASE_URL"
- "docker.io/olkowa/design-pattern-mcp:1.0.1"
- "--transport"
- "stdio"
envs:
"DESIGN_PATTERN_GENERATOR_API_KEY": "${DESIGN_PATTERN_GENERATOR_API_KEY}"
"DESIGN_PATTERN_GENERATOR_PROVIDER": "openai"
"DESIGN_PATTERN_GENERATOR_MODEL": "gpt-4o-mini"
"DESIGN_PATTERN_GENERATOR_BASE_URL": "https://api.openai.com/v1"
"DESIGN_PATTERN_PATTERN_DIRECTORY": "/app/pattern"
"DESIGN_PATTERN_EMBEDDER_BASE_URL": "${DESIGN_PATTERN_EMBEDDER_BASE_URL}"
"DESIGN_PATTERN_EMBEDDER_API_KEY": "${DESIGN_PATTERN_EMBEDDER_API_KEY}"
"DESIGN_PATTERN_RERANKER_BASE_URL": "${DESIGN_PATTERN_RERANKER_BASE_URL}"
timeout: 300
Placeholders to fill from your own secret store: ${DESIGN_PATTERN_GENERATOR_API_KEY}, ${DESIGN_PATTERN_EMBEDDER_API_KEY}. The registry never accepts secret values.
This is a local package: the command runs on your machine.
Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)auth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)stability.changes, stability.rug_pulltool list unknowndeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo ~liveness-unmeasured +updated-10d-ago -unpinned-packages(1)
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
docker.io/olkowa/design-pattern-mcp:1.0.1 | oci | unpinned | docker | DESIGN_PATTERN_GENERATOR_API_KEY, DESIGN_PATTERN_EMBEDDER_API_KEY |
No tools observed. Local packages are never executed by the registry.
Schemas: list_tools.
{
"name": "io.github.olk/design-pattern-mcp",
"title": "Design Pattern MCP",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "1.0.1",
"packages": [
{
"transport": {
"type": "stdio"
},
"identifier": "docker.io/olkowa/design-pattern-mcp:1.0.1",
"runtimeHint": "docker",
"registryType": "oci",
"packageArguments": [
{
"type": "positional",
"value": "--transport"
},
{
"type": "positional",
"value": "stdio"
}
],
"runtimeArguments": [
{
"name": "--add-host",
"type": "named",
"value": "host.docker.internal:host-gateway",
"description": "Makes a TEI embedder/reranker running on the Docker host reachable from the container (needed on Linux; already provided by Docker Desktop)."
}
],
"environmentVariables": [
{
"name": "DESIGN_PATTERN_GENERATOR_API_KEY",
"format": "string",
"isSecret": true,
"isRequired": true,
"description": "API key for the generator LLM (LiteLLM provider)."
},
{
"name": "DESIGN_PATTERN_GENERATOR_PROVIDER",
"format": "string",
"default": "openai",
"description": "LiteLLM provider prefix, e.g. openai, anthropic, openrouter."
},
{
"name": "DESIGN_PATTERN_GENERATOR_MODEL",
"format": "string",
"default": "gpt-4o-mini",
"description": "Model name, combined as <provider>/<model> via LiteLLM."
},
{
"name": "DESIGN_PATTERN_GENERATOR_BASE_URL",
"format": "string",
"default": "https://api.openai.com/v1",
"description": "OpenAI-compatible base URL (LiteLLM api_base)."
},
{
"name": "DESIGN_PATTERN_PATTERN_DIRECTORY",
"format": "string",
"default": "/app/pattern",
"description": "Directory with the catalog records (*.json main records plus per-language files). The image bakes the 438-record catalogue at /app/pattern."
},
{
"name": "DESIGN_PATTERN_EMBEDDER_BASE_URL",
"format": "string",
"isRequired": true,
"description": "Required: the dense retrieval leg embeds the 438-record catalogue during startup warmup and the server refuses to start when the endpoint is unreachable. TEI embeddings endpoint: on the Docker host use http://host.docker.internal:8080 (add --add-host=host.docker.internal:host-gateway on Linux); on a shared Docker network use http://design-pattern-tei-embed:8080."
},
{
"name": "DESIGN_PATTERN_EMBEDDER_API_KEY",
"format": "string",
"default": "not-needed",
"isSecret": true,
"description": "API key for the embedder. Keyless TEI accepts any non-empty value; use 'not-needed' there."
},
{
"name": "DESIGN_PATTERN_RERANKER_BASE_URL",
"format": "string",
"isRequired": true,
"description": "Required: retrieval runs a mandatory TEI cross-encoder rerank whenever the fused pool has more than one candidate. On the Docker host use http://host.docker.internal:8080; on a shared Docker network use http://design-pattern-tei-rerank:8080."
}
]
}
],
"repository": {
"url": "https://github.com/olk/design-pattern-mcp",
"source": "github"
},
"description": "MCP server that provides design-pattern selection expertise to AI coding agents"
}