Skip to main content
Glama

KoreanSkinpedia MCP

발행 API 클라이언트 MCP 서버. 프로젝트 외부 사용자가 Claude Code에서 이 MCP를 추가하고 API 키로 콘텐츠를 발행. 실제 검증/저장은 발행 API(api/)가 수행.

도구

도구

설명

create_article

아티클 발행(API /publish/article)

create_procedure

시술 발행(API /publish/procedure)

upsert_clinic

클리닉 생성/수정(API /publish/clinic)

health

발행 API 상태

의료 콘텐츠(article/procedure)는 reviewer+sources(최소 1)+medicallyReviewedAt가 필수. API가 Zod로 검증해 거부.

Related MCP server: korea-stock-mcp

환경변수

변수

설명

KSP_API_URL

발행 API 베이스 URL(필수). 예: https://<lambda-function-url>.lambda-url.ap-northeast-2.on.aws

KSP_API_KEY

API 키(Authorization: Bearer). API가 API_KEY 설정 시 필요.

외부 사용자 추가(Claude Code)

claude mcp add koreanskinpedia -- npx ksp-mcp \
  --env KSP_API_URL=https://<발행-API-URL> --env KSP_API_KEY=<키>

또는 .mcp.json(프로젝트 루트):

{
  "mcpServers": {
    "koreanskinpedia": {
      "command": "node", "args": ["mcp/dist/server.js"],
      "env": { "KSP_API_URL": "https://...", "KSP_API_KEY": "..." }
    }
  }
}

개발

cd mcp && npm install && npm run build
KSP_API_URL=http://localhost:8787 npm run smoke   # api/ 가 로컬 실행 중일 때

Available Tools

4 tools
create_articleA

KoreanSkinpedia 아티클 발행(API 호출). 의료 필수: reviewer{name,cred}, sources[{n,label,url?}](최소 1), medicallyReviewedAt(ISO). 필드: title, lang(en/ko/zh/ja), tag(skincare/procedures/trends), excerpt, read(분), tldr[], related[], translateNote?, body(마크다운). 발행 즉시 사이트에 반영.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

The description notes that the article is immediately reflected on the site, indicating instant publishing. However, it does not discuss destructive actions, idempotency, authentication needs, or rate limits. With no annotations, more detail would be beneficial.

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 a single dense paragraph. While it includes all necessary information, it lacks structure (e.g., bullet points, separations) and could be more readable. It front-loads the purpose but is not optimally concise.

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?

The description covers input parameters well but omits output/return values. For a creation tool, knowing what is returned (e.g., article ID) is important context missing here. Additional operational details are absent.

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

Parameters5/5

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

The input schema is minimal ('additionalProperties: true'), so the description carries full burden. It thoroughly explains each field (e.g., lang en/ko/zh/ja, tag options, sources minimum 1) and constraints, providing essential meaning beyond the generic schema.

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 explicitly states the tool creates a KoreanSkinpedia article via API, listing required and optional fields. It clearly distinguishes from sibling tools (create_procedure, health, upsert_clinic).

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 specifies medical requirement and lists required fields (reviewer, sources, medicallyReviewedAt). It does not explicitly state when not to use or alternatives, but the context of publishing articles is clear.

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

create_procedureB

시술 가이드 발행(API). 의료 필수 동일. 필드: name, lang, tagline, priceRange, duration, recovery, definition, how[{n,text}], goodFor[], tldr[], faqs[{q,a}], clinicsHere[], body(마크다운).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present. The description does not disclose behavioral traits such as idempotency, authentication requirements, or error handling. The phrase '의료 필수 동일' is vague and does not clarify behavior.

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 concise (one sentence plus a list) but could benefit from better formatting (e.g., bullets or grouping). It is not verbose but slightly unstructured.

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?

There is no output schema, and the description does not mention return values (e.g., created object ID, success status). Missing information on error handling and post-creation behavior makes it incomplete for a creation tool.

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

Parameters5/5

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

The description enumerates all expected fields (name, lang, tagline, etc.) with types (strings, arrays, markdown). Since the input schema is a generic object with no defined properties, the description fully compensates by providing parameter meanings.

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 '시술 가이드 발행(API)' which indicates the tool publishes a procedure guide. The verb '발행' and resource '시술 가이드' are clear. It distinguishes from sibling 'create_article' by the specific resource type, but the Korean text may be ambiguous for non-native speakers.

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 like 'create_article' or 'health'. The description only lists fields without context for selection.

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

healthA

발행 API 상태 확인(store 모드, 버킷).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are present, so the description must carry full burden. It states 'check' implying read-only, but does not disclose details about response, potential side effects, or permissions needed.

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?

A single, front-loaded sentence with no wasted words; it conveys the essential information efficiently.

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?

While the tool is simple, the description could be more complete by explaining what 'store mode' and 'bucket' mean or what the health status response looks like, but it is adequate for a straightforward health check.

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?

There are zero parameters, so schema coverage is 100%. Per guidelines, baseline is 4 for 0 parameters, and the description adds no parameter info (none needed).

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 'Check publishing API status (store mode, bucket)' with a specific verb and resource, distinguishing it from sibling tools which are all mutations (create, upsert).

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance is provided. The context implies it is for health checks, but the description does not mention alternatives or exclusions.

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

upsert_clinicB

클리닉 생성/수정(API). 필드: name, area, verified, rating?, reviewCount?, procedures[], priceList[{name,time,price}], from, langs[], hours, address, payment[], about, reviews[].

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden for behavioral disclosure. It mentions 'upsert' but does not explain behavior on conflict (overwrite, merge, etc.), side effects, authentication needs, or error states. The field listing adds some context but lacks operational details.

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 a single sentence that front-loads the purpose and then lists fields. It is concise but could be more structured (e.g., separate lines for clarity). However, it avoids unnecessary words.

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 an upsert operation with many fields and no annotations or output schema, the description is incomplete. It does not explain return values, error handling, idempotency, or how partial updates are handled. The field list is helpful but insufficient for correct usage.

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 input schema is empty with 'additionalProperties: true', so the description provides the only structure by enumerating expected fields (name, area, verified, etc.) and indicating optionality with '?'. This adds significant meaning beyond the schema, though some fields (like nested objects) are not fully detailed.

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 explicitly states '클리닉 생성/수정(API)' meaning create/update clinic, which is a specific verb+resource. It lists the expected fields, and the tool name 'upsert_clinic' reinforces this. Sibling tools are for different resources (articles, procedures), so no confusion.

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 (e.g., when to create vs update, or if there are specific prerequisites). The description only states what it does, not the context of usage.

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.

  1. 4 tool updatesv0.1.0
    • First observedcreate_article
    • First observedcreate_procedure
    • First observedhealth
    • First observedupsert_clinic

TDQS

A3.7/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: article creation, procedure guide creation, health check, and clinic upsert. No overlap in functionality.

Naming Consistency4/5

Two tools use 'create_' prefix, one uses 'upsert_', and one uses a noun 'health'. While mostly consistent, the 'health' tool breaks the verb_noun pattern slightly.

Tool Count5/5

With 4 tools, the set is well-scoped for a specialized content management server. Each tool serves a distinct, necessary function without bloat.

Completeness3/5

The set covers creation and upsert for articles, procedures, and clinics, but lacks retrieval (get/list) or deletion tools. Agents may need to query existing data, which is unsupported.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI-powered analysis of Korean stock market data and corporate disclosures using official DART and KRX APIs.
    149 npm
    ISC