Skip to main content
Glama
ycyun

ABLESTACK MOLD MCP Server

by ycyun

ablestack-mcp-server

mold

ABLESTACK MOLD API를 MCP(Model Context Protocol)로 노출하는 서버입니다.
mold_* 네임스페이스의 MCP 툴을 통해 MOLD API를 직접 호출·탐색·디버그할 수 있습니다.


특징

  • 연결정보 툴: mold_getConfig, mold_setConfig (endpoint/apiKey/secret/algo 저장·조회)

  • 범용 호출: mold_call → 임의의 API 호출

  • 서명 디버그: mold_signDebug → 정규화 문자열/서명/최종 URL 확인

  • 자동 등록: mold_autoRegisterApis, mold_listApisMeta
    listApis 메타를 읽어 모든 APImold_<API명> 툴로 동적 등록

  • 비동기 폴링: isAsync API에 _wait, _timeoutMs, _intervalMs 옵션 지원

  • 브래킷 표기 변환: 중첩 params(JSON) → details[0].cpuNumber=8 등으로 자동 전개

  • 서명 알고리즘 토글: HMAC-SHA1/SHA256 (서버/클라 동일해야 함)


Related MCP server: Modal MCP Server

요구 사항

  • Node.js v18+

  • 네트워크에서 MOLD API endpoint에 접근 가능


설치 & 실행

# 의존성 설치
npm i

# 실행 (stdio)
node server.js

Claude Desktop(또는 MCP 클라이언트) 연동 예시

config.json (클라이언트 설정) 예시:

{
  "mcpServers": {
    "mcp-mold-server": {
      "command": "node",
      "args": ["server.js"],
      "env": {
        "MOLD_ENDPOINT": "http://10.10.32.10:8080/client/api",
        "MOLD_API_KEY": "<YOUR_API_KEY>",
        "MOLD_SECRET_KEY": "<YOUR_SECRET_KEY>",
        "MOLD_SIG_ALGO": "sha256",   // 또는 "sha1"
        "MOLD_AUTOREGISTER": "all"   // (선택) 시작 시 전체 API 자동 등록
      }
    }
  }
}

실행 후 MCP Inspector/Claude 등에서 툴이 표시됩니다.


툴 목록(핵심)

툴 이름

설명

입력 예시

mold_getConfig

현재 endpoint/apiKey(마스킹)/algo/구성파일 경로 조회

{}

mold_setConfig

연결정보 설정 및 저장(persist=true면 디스크 저장)

{"endpoint":"http://HOST:8080/client/api","apiKey":"...","secret":"...","algo":"sha256","persist":true}

mold_signDebug

서명 디버그(정규화 문자열·서명·최종 URL 생성)

{"command":"listVirtualMachines","params":{"listall":true}}

mold_call

임의 API 호출(command + params)

{"command":"listZones"}

mold_listApisMeta

listApis 메타 조회(name/isasync/params)

{} 또는 {"name":"deployVirtualMachine"}

mold_autoRegisterApis

모든 API를 MCP 툴로 동적 등록

`{"include":"^list

mold_<API명>

자동 등록된 개별 API 툴(예: mold_deployVirtualMachine)

API별 파라미터(아래 표 참고)

자동 등록된 비동기 API(isasync=true)는 _wait, _timeoutMs, _intervalMs 옵션을 추가로 받습니다.


사용 예시

1) 연결정보 설정/확인

// 설정
{"endpoint":"http://10.10.32.10:8080/client/api","apiKey":"...","secret":"...","algo":"sha256","persist":true}

// 조회
{}

2) 기본 조회

// 존 목록
{"command":"listZones"}

// VM 목록
{"command":"listVirtualMachines","params":{"listall":true}}

3) 배포(비동기) — mold_call

입력(JSON):

{
  "command": "deployVirtualMachine",
  "params": {
    "name": "MySQL-Server2",
    "zoneid": "dbbaf9e7-865a-4c89-8a26-338c66ec2b81",
    "details": { "memory": "16384", "cpuNumber": "8" },
    "networkids": "91a24cde-38e4-494a-ae48-778d683ae735",
    "templateid": "ca990e93-f2c0-4367-9f88-5bbc571e9fac",
    "displayname": "MySQL-Server",
    "serviceofferingid": "362c96c7-2b9c-4414-b9ca-9897da845080",
    "boottype": "UEFI"
  }
}

내부 전개(브래킷 표기; 서명 전에 적용):

zoneid=...&serviceofferingid=...&details[0].cpuNumber=8&details[0].memory=16384&
networkids=...&name=MySQL-Server2&templateid=...&displayname=MySQL-Server&boottype=UEFI&
command=deployVirtualMachine

4) 자동 등록된 툴로 바로 호출

// 예: mold_deployVirtualMachine
{
  "serviceofferingid": "362c96c7-2b9c-4414-b9ca-9897da845080",
  "zoneid": "dbbaf9e7-865a-4c89-8a26-338c66ec2b81",
  "templateid": "ca990e93-f2c0-4367-9f88-5bbc571e9fac",
  "name": "MySQL-Server2",
  "details": { "cpuNumber": "8", "memory": "16384" },
  "_wait": true              // 완료까지 폴링
}

파라미터 전개 규칙(브래킷 표기)

입력 타입

예시 입력

전송 형태

원시값

"name":"vm01"

name=vm01

원시 배열

"securitygroupids":["id1","id2"]

securitygroupids=id1,id2 (CSV)

객체(톱레벨)

"details":{"cpuNumber":"8","memory":"16384"}

details[0].cpuNumber=8, details[0].memory=16384

배열-객체

"datadisks":[{"size":"50","diskofferingid":"..."},{"size":"100"}]

datadisks[0].size=50, datadisks[0].diskofferingid=..., datadisks[1].size=100

이미 표기된 키

"details[0].cpuNumber":"8"

그대로 사용

복잡한 중첩 객체도 자동으로 전개됩니다. 이미 details[0].x와 같이 브래킷/닷 표기로 준 키는 수정하지 않습니다.


환경변수

이름

의미

기본

MOLD_ENDPOINT

http(s)://HOST:PORT/client/api

(없음)

MOLD_API_KEY

API 키

(없음)

MOLD_SECRET_KEY

시크릿 키

(없음)

MOLD_SIG_ALGO

sha1 또는 sha256

sha256

MOLD_AUTOREGISTER

"all"이면 시작 시 전체 자동 등록

(비활성)

실행 중에는 mold_setConfig로 변경·저장 가능. 저장 파일: ~/.config/mcp-mold/config.json (파일 권한 0600, 디렉터리 0700)


문제 해결(401 서명 오류 체크리스트)

증상

점검

User signature [...] is not equaled to computed signature [...]

서버/클라 해시 알고리즘 일치(SHA1 vs SHA256), 키·시크릿 공백/개행 제거, 정규화 문자열(소문자·키정렬·값 URL 인코딩·공백 %20) 확인

401 계속

CIDR 제한(api.allowed.source.cidr.list) 또는 권한 문제

일부 API만 실패

파라미터 누락/오타, 권한 부족

mold_signDebugnormalized/URL을 비교하면 원인을 빨리 찾을 수 있습니다.


보안

  • API/Secret 키는 민감정보입니다. 노출 시 즉시 재발급(회전) 하세요.

  • stdio 모드에선 stdout은 프로토콜 전용, 로그는 stderr만 사용해야 합니다.


라이선스

  • LICENSE 파일을 확인하세요(MIT).


변경 이력(요약)

  • 연결정보 툴 추가(get/set + 디스크 저장)

  • mold_* 네임스페이스로 툴 이름 정규식 대응

  • listApis 기반 자동 도구 등록

  • 비동기 API 폴링 옵션 지원

  • 브래킷 표기 변환기로 중첩 파라미터 처리

  • SHA1/SHA256 서명 알고리즘 토글

Available Tools

11 tools
mold_autoRegisterApisMOLD 모든 API 동적 등록C

listApis를 기반으로 MCP 도구를 일괄 등록합니다. include/exclude는 정규식.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNo
excludeNo
limitNo
namespaceNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'bulk registration' but doesn't specify what happens during registration (e.g., whether it overwrites existing tools, requires authentication, has side effects, or handles errors). The regex mention for include/exclude is a minor behavioral detail, but overall, critical traits like mutation impact and operational context are missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with two concise sentences that are front-loaded with the main action. There's no unnecessary fluff, and each sentence contributes directly to the tool's functionality, making it efficient in structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a bulk registration tool with 4 parameters, 0% schema coverage, no annotations, and no output schema, the description is incomplete. It lacks details on what the tool returns, how errors are handled, and the full scope of parameters, making it inadequate for safe and effective use by an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for all 4 parameters. It only mentions include/exclude as regex patterns, leaving limit and namespace completely undocumented. This adds minimal meaning beyond the schema, failing to adequately explain parameter purposes or usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool 'registers MCP tools in bulk based on listApis' which provides a general purpose, but it's vague about what 'MCP tools' specifically refers to and how the registration works. It doesn't clearly distinguish this from sibling tools like mold_listApisMeta or mold_getConfig that might involve API listing or configuration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It mentions 'based on listApis' but doesn't explain if this should be used instead of manually registering APIs or in what scenarios bulk registration is preferred over individual calls. There's no mention of prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mold_callMOLD API 호출(범용)C

임의의 MOLD API 명령을 호출합니다. (command + params)

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes
paramsNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions calling API commands but fails to disclose critical behavioral traits like authentication requirements, rate limits, error handling, or whether it's read-only or destructive. This leaves significant gaps for an agent to understand how to use it safely and effectively.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with just one sentence, which is appropriately sized for a generic tool. However, it's under-specified rather than efficiently informative—the brevity comes at the cost of clarity, though it's not unnecessarily verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (2 parameters with nested objects, 0% schema coverage, no annotations, no output schema), the description is highly incomplete. It doesn't explain return values, error conditions, or provide examples, making it inadequate for an agent to use this tool effectively in the broader context of the MOLD API ecosystem.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions 'command + params' but provides no details on what commands are available, their formats, or what params might be required. With 2 parameters (one required) and complex nested structures, this minimal explanation is insufficient for an agent to construct valid calls.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool 'calls arbitrary MOLD API commands' which provides a general purpose, but it's vague about what specific resources or operations it targets. It doesn't differentiate from siblings like mold_call_debug or mold_autoRegisterApis, leaving ambiguity about when to use this versus more specialized tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. With siblings like mold_listApisMeta or mold_startVirtualMachine that handle specific operations, the description lacks any indication of appropriate contexts, prerequisites, or exclusions for this generic API caller.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mold_call_debugMOLD API 호출(범용)C

임의의 MOLD API 명령을 호출합니다. (command + params)

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes
paramsNo

TDQS

C2.2/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. The description only states what the tool does (calls API commands) without any information about side effects, authentication requirements, rate limits, error handling, or what makes this a 'debug' tool versus regular tools. This is critically insufficient for a tool that can execute arbitrary commands.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise - just one sentence that directly states the tool's function. There's no wasted verbiage or unnecessary elaboration. However, the extreme brevity comes at the cost of completeness, making it more under-specified than optimally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool that can execute arbitrary API commands with complex nested parameters, no annotations, no output schema, and 0% schema description coverage, this description is completely inadequate. It doesn't explain what makes this a 'debug' tool, what commands are available, how to structure parameters, what authentication is needed, or what to expect in return. The description fails to provide the necessary context for safe and effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage for both parameters, the description must compensate but provides minimal help. It mentions 'command + params' which maps to the two parameters, but doesn't explain what valid commands are, how to structure params, or provide any examples. For a tool with complex nested parameter structures, this is inadequate compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool 'calls arbitrary MOLD API commands' which is a clear verb+resource combination. However, it doesn't distinguish this from its sibling 'mold_call' tool, leaving ambiguity about when to use this debug version versus the regular version. The purpose is understandable but lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'mold_call' available, there's no indication of when this debug version is appropriate versus the regular version, nor any context about prerequisites or constraints. The agent receives no usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mold_getConfigMOLD 연결정보 조회A

현재 사용 중인 endpoint/apiKey(마스킹)/알고리즘/구성파일 경로를 반환합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool returns current configuration details, implying a read-only operation, but doesn't clarify if this requires authentication, has rate limits, or what happens if no configuration is set. The description is minimal and lacks behavioral context beyond the basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It is front-loaded with the core action and resources, making it easy for an agent to parse and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate for a basic read operation. However, it lacks details on authentication requirements, error handling, or output format specifics, which could be helpful for an agent. It meets minimum viability but has clear gaps in contextual information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, which aligns with the schema. A baseline of 4 is applied as it correctly handles the absence of parameters without unnecessary elaboration.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('returns') and the exact resources (endpoint, apiKey, algorithm, configuration file path) that are retrieved. It distinguishes itself from siblings like mold_setConfig (which sets configuration) by focusing on retrieval rather than modification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an active connection), exclusions, or comparisons to siblings like mold_listApisMeta, leaving the agent to infer usage context solely from the tool name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mold_listApisMetaMOLD listApis 메타 조회C

listApis로부터 API 메타데이터(name, isasync, params)를 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states what data is retrieved but doesn't describe how: whether it returns all APIs or filtered results, response format, error conditions, authentication requirements, rate limits, or whether it's a read-only operation. For a metadata retrieval tool with zero annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise - a single Korean sentence that directly states the tool's function. There's no wasted language, repetition, or unnecessary elaboration. Every word contributes to understanding the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a metadata retrieval tool with no annotations, no output schema, and incomplete parameter documentation, the description is insufficient. It doesn't explain what format the metadata returns, how results are structured, whether filtering occurs, or any behavioral characteristics. The agent would struggle to use this tool effectively without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description mentions retrieving metadata from 'listApis' but doesn't explain the single 'name' parameter in the schema. With 0% schema description coverage and one undocumented parameter, the description adds minimal value beyond implying some connection to listApis. However, since there's only one parameter, the baseline is higher than for tools with multiple undocumented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('조회합니다' - retrieves/retrieves) and resource ('API 메타데이터' - API metadata) with specific fields (name, isasync, params). It distinguishes from siblings by specifying it retrieves metadata from 'listApis' rather than performing operations like calling or configuring. However, it doesn't explicitly differentiate from all siblings (e.g., mold_getConfig might also retrieve configuration metadata).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, appropriate contexts, or compare to sibling tools like mold_getConfig (which retrieves configuration) or mold_call (which executes APIs). The agent receives no help in selecting this tool over others for metadata retrieval needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mold_listVirtualMachinesVM 목록 조회C

listVirtualMachines(4.21) 호출. 주요 필터만 노출(추가 필드는 mold_call 사용).

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNo
idNo
nameNo
stateNo
zoneidNo
projectidNo
domainidNo
accountNo
listallNo
detailsNo
pageNo
pagesizeNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the tool exposes only major filters and references version '4.21', but doesn't describe what the tool actually returns, whether it's paginated (despite page/pagesize parameters), authentication requirements, rate limits, or error behavior. The description provides minimal behavioral context beyond the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise - just two short sentences in Korean. It's front-loaded with the core operation and immediately provides the key alternative guidance. While efficient, it may be too terse given the complexity of the tool with 12 undocumented parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 12 parameters, 0% schema coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns, how to interpret results, what the parameters do, or the behavioral characteristics. The mention of version '4.21' and the mold_call alternative provides minimal context but leaves most questions unanswered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage for 12 parameters, the description provides almost no parameter semantics. It mentions '주요 필터만 노출' (only major filters exposed) which hints at filtering capabilities, but doesn't explain what any of the 12 parameters mean, how they interact, or which are the 'major filters'. The description fails to compensate for the complete lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool calls 'listVirtualMachines(4.21)' which implies listing virtual machines, but it's vague about what this actually does. It mentions '주요 필터만 노출' (only major filters exposed) but doesn't clearly explain what the tool returns or its scope. While it distinguishes from 'mold_call' for additional fields, the core purpose remains somewhat ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on when to use alternatives: '추가 필드는 mold_call 사용' (use mold_call for additional fields). This explicitly tells the agent to use mold_call when needing fields beyond the major filters. However, it doesn't specify when to use this tool versus other VM-related siblings like mold_startVirtualMachine or mold_stopVirtualMachine.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mold_setConfigMOLD 연결정보 설정B

endpoint, apiKey, secret 및 서명 알고리즘(sha1|sha256)을 설정합니다. 기본은 sha256. persist=true면 디스크에 저장.

ParametersJSON Schema
NameRequiredDescriptionDefault
endpointNo
apiKeyNo
secretNo
algoNo
persistNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that it sets configuration values, mentions a default algorithm (sha256), and describes persistence behavior ('persist=true면 디스크에 저장' - if persist=true, saves to disk). However, it lacks details on permissions needed, whether it overwrites existing config, error conditions, or rate limits. It adds some behavioral context but is incomplete for a configuration mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and efficiently structured in two sentences: the first states the action and parameters, the second adds behavioral details (default and persistence). Every sentence earns its place with no wasted words, making it appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (5 parameters, no output schema, no annotations), the description is partially complete. It covers the action, parameters, and some behavioral traits but lacks details on error handling, return values, or integration with sibling tools. Without annotations or output schema, more context on outcomes and usage scenarios would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It lists all parameters (endpoint, apiKey, secret, algo, persist) and adds meaning: algo has enum values (sha1|sha256) with a default (sha256), and persist controls disk storage. However, it does not explain the purpose or format of endpoint, apiKey, or secret, leaving gaps in parameter understanding. The description adds value but does not fully compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('설정합니다' - sets/configure) and the specific resources being configured (endpoint, apiKey, secret, and signature algorithm). It distinguishes from siblings like mold_getConfig (which retrieves) and mold_call (which executes calls), though not explicitly named. The purpose is specific but could be more explicit about distinguishing from all siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. It mentions a default (sha256) and persistence behavior, but does not specify prerequisites, when-not-to-use scenarios, or direct comparisons with siblings like mold_getConfig for retrieval. Usage context is implied but not clearly articulated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mold_signDebugMOLD 서명/URL 디버그C

정규화 문자열, 서명(Base64), URL 인코딩 서명, 최종 요청 URL을 생성해 점검합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes
paramsNo
includeResponseNo
apiKeyFieldNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions creating and checking components (normalized strings, signatures, URLs), implying a read-only or diagnostic operation, but doesn't specify if it performs actual API calls, requires authentication, has side effects, or details error handling. For a tool with 4 parameters and no annotations, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It directly states what the tool does, making it easy to parse. Every part of the sentence contributes essential information, earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (4 parameters, nested objects, no output schema, and 0% schema coverage), the description is incomplete. It lacks details on parameter usage, behavioral traits (e.g., whether it makes network calls), and output expectations. Without annotations or an output schema, the description should provide more context to guide effective tool invocation, but it falls short.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning none of the 4 parameters (command, params, includeResponse, apiKeyField) are documented in the schema. The description doesn't add any semantic information about these parameters—it doesn't explain what 'command' refers to, the purpose of 'params', what 'includeResponse' controls, or the significance of 'apiKeyField' enum values. With low coverage and no compensation in the description, this score reflects inadequate parameter guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '정규화 문자열, 서명(Base64), URL 인코딩 서명, 최종 요청 URL을 생성해 점검합니다' (Creates and checks normalized strings, signatures (Base64), URL-encoded signatures, and final request URLs). It specifies the verb '생성해 점검합니다' (creates and checks) and the resources involved. However, it doesn't explicitly differentiate from sibling tools like 'mold_call_debug', which might have overlapping debugging purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'mold_call_debug' or 'mold_call', nor does it specify contexts or prerequisites for usage. The tool's purpose is clear, but without usage guidelines, an agent might struggle to select it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mold_startVirtualMachineVM 시작C

startVirtualMachine(4.21). 반환에 jobid가 포함될 수 있음(비동기).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
hostidNo
clusteridNo
podidNo
considerlasthostNo
bootintosetupNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions that the return may include a jobid (asynchronous), which is useful context about the operation's nature. However, it doesn't cover critical aspects like required permissions, whether this is a destructive operation, rate limits, or error conditions. The description adds some value but leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with just one sentence containing two clauses. It's front-loaded with the tool name and includes relevant behavioral information about asynchronous returns. There's no wasted text, though it could benefit from slightly more detail given the complexity of the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters (0% schema coverage), no annotations, no output schema, and complex VM operations, the description is inadequate. It mentions the asynchronous nature but doesn't explain parameter meanings, required permissions, side effects, or how to handle the jobid return. The description doesn't provide enough context for safe and effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for completely undocumented parameters. The description provides no information about any of the 6 parameters (id, hostid, clusterid, podid, considerlasthost, bootintosetup). It doesn't explain what these parameters mean, their relationships, or which are required versus optional beyond what the schema already indicates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'startVirtualMachine' which clearly indicates the verb (start) and resource (Virtual Machine), but it doesn't specify what distinguishes it from sibling tools like 'mold_stopVirtualMachine' or 'mold_listVirtualMachines'. The version number '(4.21)' adds some specificity but doesn't clarify functional differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. There's no mention of prerequisites, when not to use it, or how it relates to sibling tools like 'mold_stopVirtualMachine' or 'mold_waitForJob'. The description only states what the tool does, not when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mold_stopVirtualMachineVM 정지C

stopVirtualMachine(4.21). forced 옵션 지원. 반환에 jobid 포함 가능.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
forcedNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the tool can return a jobid, which hints at asynchronous operation, but doesn't clarify if stopping is reversible, what permissions are needed, whether it affects running processes/data, or error conditions. The 'forced' option is mentioned but not explained behaviorally.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief (one sentence fragment) but not particularly well-structured. It front-loads the function name with version, then mentions forced option, then return value - this ordering could be improved for clarity. While concise, it feels more like technical notes than a helpful description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive VM operation with no annotations and no output schema, the description is inadequate. It doesn't explain what 'stopping' entails, whether data is preserved, what the jobid return means operationally, or error handling. The mention of version (4.21) adds some context but not enough for safe usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage for 2 parameters, the description adds minimal value. It mentions 'forced 옵션 지원' (forced option supported) for one parameter but doesn't explain what 'forced' means semantically or how it differs from regular shutdown. The 'id' parameter gets no explanation at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool stops a virtual machine, which is a clear verb+resource combination. However, it doesn't distinguish this from its sibling 'mold_startVirtualMachine' beyond the obvious action difference, nor does it specify if this is a graceful shutdown or immediate termination beyond the 'forced' parameter mention.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It mentions 'forced 옵션 지원' (forced option supported) but doesn't explain when to use forced vs non-forced shutdown, or how this relates to other VM management tools like 'mold_startVirtualMachine' or 'mold_waitForJob'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mold_waitForJob비동기 잡 완료 대기C

queryAsyncJobResult를 주기적으로 호출하여 완료(1)/실패(2)까지 대기.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobidYes
timeoutMsNo
intervalMsNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the polling behavior and outcome states (completion/failure), which is useful. However, it lacks critical details: it does not specify default or recommended values for timeoutMs and intervalMs, error handling for network issues, or what happens after timeout. For a tool with no annotation coverage, this leaves significant gaps in understanding its operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's function. It is front-loaded with the key action and outcome, with no redundant or verbose language. Every word contributes to understanding the polling behavior and end states.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (asynchronous polling with timeout and interval controls), no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It covers the basic polling mechanism but misses details on parameter usage, error scenarios, and result interpretation. For a tool that manages job states, more context is needed to use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions 'queryAsyncJobResult' and '주기적으로' (periodically), which hints at the jobid and intervalMs parameters, but does not explain their semantics, units, or constraints. The timeoutMs parameter is not referenced at all. With 3 parameters and no schema descriptions, the description adds minimal value beyond naming the core action.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'queryAsyncJobResult를 주기적으로 호출하여 완료(1)/실패(2)까지 대기' translates to 'periodically call queryAsyncJobResult to wait until completion (1)/failure (2).' This specifies the verb (wait by polling), resource (async job), and outcome states. It distinguishes from siblings like mold_call or mold_startVirtualMachine by focusing on job monitoring rather than execution or configuration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing a job ID from another operation), exclusions, or sibling tools. Usage is implied only by the action described, with no explicit context for selection among related tools like mold_call or mold_startVirtualMachine.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev1.0.0
    • Changedmold_getConfig1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
  2. 11 tool updates
    • First observedmold_autoRegisterApis
    • First observedmold_call
    • First observedmold_call_debug
    • First observedmold_getConfig
    • First observedmold_listApisMeta
    • First observedmold_listVirtualMachines
    • First observedmold_setConfig
    • First observedmold_signDebug
    • First observedmold_startVirtualMachine
    • First observedmold_stopVirtualMachine
    • First observedmold_waitForJob

TDQS

B3/5.0
Disambiguation3/5

Most tools have distinct purposes, but there is notable overlap between mold_call and mold_call_debug, which appear to perform the same function with only a debug suffix difference. Additionally, mold_signDebug is similar in purpose to mold_call but focused on debugging signatures, creating some ambiguity in tool selection for debugging-related tasks.

Naming Consistency4/5

Tool names follow a consistent mold_verbNoun pattern with snake_case throughout, such as mold_listVirtualMachines and mold_setConfig. The only minor deviation is mold_autoRegisterApis, which uses 'Apis' instead of 'APIs' or a more standard noun form, but overall the naming is highly predictable and readable.

Tool Count5/5

With 11 tools, the count is well-scoped for managing MOLD APIs and virtual machines. Each tool serves a clear purpose, from configuration and debugging to VM operations and job monitoring, without feeling excessive or insufficient for the server's domain.

Completeness4/5

The toolset provides comprehensive coverage for MOLD API interactions and VM lifecycle management, including configuration, listing, starting, stopping, and job waiting. A minor gap is the lack of tools for updating or deleting configurations or VMs beyond stop, but core workflows are well-supported with workarounds via mold_call.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ycyun/ablestack-MCP-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server