Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MINIMAXAI_API_KEYNoMiniMax API key used by the dev stack as a fallback for DESIGN_PATTERN_GENERATOR_API_KEY.
DESIGN_PATTERN_PORTNoHTTP bind port when using streamable-http.8050
DESIGN_PATTERN_TRANSPORTNoTransport mode: stdio or streamable-http.stdio
DESIGN_PATTERN_CONFIG_PATHNoPath to the config file.config/config.json
DESIGN_PATTERN_GENERATOR_MODELNoGenerator model name, e.g. minimax/MiniMax-M2.7.gpt-4o-mini
DESIGN_PATTERN_EMBEDDER_BASE_URLNoTEI embedder endpoint; needed when not using the Docker sidecars.http://design-pattern-tei-embed:8080
DESIGN_PATTERN_GENERATOR_API_KEYNoGenerator API key. Required unless MINIMAXAI_API_KEY is provided; the dev stack falls back to MINIMAXAI_API_KEY.
DESIGN_PATTERN_RERANKER_BASE_URLNoTEI reranker endpoint; needed when not using the Docker sidecars.
DESIGN_PATTERN_GENERATOR_BASE_URLNoGenerator API base URL.https://api.openai.com/v1
DESIGN_PATTERN_GENERATOR_PROVIDERNoLiteLLM provider prefix (minimax, openai, anthropic, openrouter, ...).openai

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
select_design_patternsA

Select the design patterns to apply to a described system, with per-application language bindings and a traceable reasoning trail. Send the components, their responsibilities and the constraints derived from an architecture result. Returns applications (pattern, participants, implementation steps, bound language variant), supporting patterns, interactions, quality attributes, a test strategy and risks. Use this when the caller wants the generated design; when your agent writes the code itself and only needs the decisions, call analyze_design instead — it runs the same ANALYZE phase and skips generation and evaluation.

analyze_designA

Analyze a system description and select design patterns per decision part — the analysis-only path for coding agents that write the code themselves. Returns the repaired design brief, the decision parts with their scope/category hypothesis, and one selection per part (primary pattern, supporting patterns with roles, ranked alternatives, veto ledger, quality-attribute weights that drove the scoring) without generating applications or evaluating them. The selection is a routing decision, not an implementation spec: it carries no participants, implementation steps, code sketches or language bindings — before implementing, call generate_design with this payload to materialize the bound applications without re-running the analysis, or get_design_pattern for each selected pattern when only the catalog record and language bindings are needed. A true is_fallback (payload level, or per part with fallback_reason) marks a selection with no eligible primary — treat it as fallback guidance, not a real match. Use select_design_patterns when the caller wants the generated design.

generate_designA

Materialize the pattern applications for a design: either pass the payload of a prior analyze_design call ('analysis'), or pass explicit catalog pattern names ('patterns') together with the system 'description'. Returns a complete design draft — applications with participants, interactions, implementation steps, code sketches and language bindings, plus interactions, quality attributes, a test strategy and risks. Unknown pattern names raise ERR_003.

evaluate_designA

Evaluate a design draft against the requirements it must serve: scores 0-100 with per-axis ratings, findings (a 'selection' finding names the offending pattern and drives reselection upstream), and advisory integrity findings of the design itself. Pass the design returned by generate_design or select_design_patterns, plus the requirement text or a prior analyze_design payload.

list_design_patternsA

List all design patterns known to the server. Returns a minimal view with 'name', 'category' and 'description' for each pattern. Optional filters: 'category' (one of: domain-modeling, construction-composition, behavior-selection, interaction-boundary, workflow-messaging, persistence-state, concurrency-resilience, security-verification, specialized-components) and 'language' (one of: generic, c, cplusplus, csharp, go, java, javascript, kotlin, python, ruby, rust, scala, swift, typescript; keeps patterns with a joined implementation for that language).

get_design_patternA

Get the full JSON of a single design pattern by its name or a resolved alias (e.g. 'singleton', 'borg'). Returns the complete record: intent, problem, context, benefits, tradeoffs, quality_attributes, participants, use cases, related patterns, principles, pitfalls, sources, and the joined per-language implementations with their variants. Raises ERR_013 when the pattern is unknown.

submit_design_jobA

Start a background design-pattern selection job and return a job_id immediately (returns in <100 ms; the job itself takes minutes). ONLY use this when the calling client cannot wait for a long response. After starting, poll get_design_status(job_id) every 10-30 s until status is 'completed', 'failed', or 'cancelled'.

get_design_statusA

Poll the status of a background design job started with submit_design_job. Returns job_id, status ('pending'|'running'|'completed'|'failed'|'cancelled'), a message and the timestamps; 'result' when completed, 'error' when failed.

cancel_designA

Cancel a background design job started with submit_design_job. Best-effort: the job stops at its next stage boundary. Reports the resulting status; a job that already finished is reported as terminal with cancelled=false.

list_promptsB

List all available prompts.

Returns JSON with prompt metadata including name, description, and optional arguments.

get_promptA

Get a prompt by name with optional arguments.

Returns the rendered prompt as JSON with a messages array. Arguments should be provided as a dict mapping argument names to values.

list_resourcesA

List all available resources and resource templates.

Returns JSON with resource metadata. Static resources have a 'uri' field, while templates have a 'uri_template' field with placeholders like {name}.

read_resourceA

Read a resource by its URI.

For static resources, provide the exact URI. For templated resources, provide the URI with template parameters filled in.

Returns the resource content as a string. Binary content is base64-encoded.

Prompts

Interactive templates invoked by user choice

NameDescription
select_design_patterns_workflowGuided end-to-end pattern-selection workflow. Steps: 1) assemble a concrete description from the user's system, 2) call select_design_patterns, 3) inspect applications[].language_binding and re-call with focus quoting a sibling variant_id when the bound realization does not fit the toolchain, 4) fall back to submit_design_job + get_design_status polling for long runs.
explore_pattern_catalogDiscovery workflow over the design-pattern catalog. Steps: 1) read the design-patterns://variants resource for realization vocabulary, 2) probe select_design_patterns with a tightly scoped description, 3) interpret the nine categories as decision groups.
evaluate_my_designWorkflow for checking an existing design against the catalog. Steps: 1) restate the user's components/constraints as a description, 2) call select_design_patterns, 3) compare returned applications and language bindings against the current codebase, 4) read overview.reasoning and alternatives_considered for the why.
compare_pattern_candidatesWorkflow for comparing two or three named patterns for one decision. Steps: 1) recall each candidate's intent/problem from a catalog read, 2) run select_design_patterns once per candidate with the decision worded toward it, 3) diff the fit scores and adjustment ledgers.

Resources

Contextual data attached and managed by the client

NameDescription
design-pattern-variants

TDQS

A4/5.0

Scored across 13 tools

Disambiguation4/5

The main design tools form a closely related pipeline, but the descriptions explicitly distinguish analyze_design (analysis only), generate_design (materialize applications), and select_design_patterns (full generated design). The background job tools and prompt/resource tools are clearly separate, though the pipeline overlap still creates some risk of misselection.

Naming Consistency5/5

All tool names use a consistent snake_case verb_noun pattern: select_design_patterns, analyze_design, generate_design, evaluate_design, list_design_patterns, get_design_pattern, submit_design_job, get_design_status, cancel_design, list_prompts, get_prompt, list_resources, read_resource. The only minor deviation is cancel_design omitting 'job', but the convention remains clear throughout.

Tool Count5/5

With 13 tools, the server is well within a reasonable range for a focused design-pattern assistant. The set covers the design pipeline, catalog lookup, asynchronous job control, and generic prompt/resource access without obvious bloat.

Completeness4/5

The server covers the core lifecycle: analysis, generation, evaluation, combined selection, catalog listing/retrieval, and background job submission/status/cancel, plus prompt and resource access. Minor gaps exist, such as no tool to list active background jobs and no pattern mutation operations, though these are likely out of scope or workable from provided job IDs.

Maintenance

ActivityMaintained
ResponsivenessOutdated data