Skip to main content
Glama

PortOne MCP Server

포트원 사용자를 위한 MCP (Model Context Protocol) 서버입니다. 포트원 개발자센터, 헬프센터 등 공식 문서 내용을 LLM(Large Language Model)에 제공해 정확한 정보를 바탕으로 사용자의 연동 및 질의를 돕도록 합니다.

이외에도 포트원 콘솔에서 제공하는 기능 중 일부를 수행할 수 있습니다.

  • 채널 목록 조회

  • 테스트 채널 추가

  • 하위 상점 조회

  • 결제 내역 조회

  • 거래대사 건별 내역 조회 (정산/거래 대사, 불일치 상세 포함)

  • 거래대사 정산 요약 조회

  • 거래대사 정산 통계 조회

콘솔 기능 사용 시 브라우저를 통해 콘솔 로그인이 필요합니다.

DXT를 이용한 설치

DXT (Desktop Extensions)를 이용해 MCP 서버를 원클릭으로 설치할 수 있습니다.

  1. GitHub Releases에서 최신 portone-mcp-server.dxt 파일을 다운로드합니다.

  2. 지원하는 AI 도구(Claude Desktop 등)에서 다운로드한 .dxt 파일을 드래그 앤 드롭하거나 열기를 통해 설치합니다.

  3. 설치 후 도구를 재시작하여 MCP 서버가 정상적으로 등록되었는지 확인합니다.

WARNING

Claude Desktop에서 DXT 파일 사용 시 주의사항

현재 알려진 이슈로 인해 Claude Desktop에서 DXT 설치 후 MCP 서버가 정상적으로 작동하지 않을 수 있습니다.

이 경우 Node.js 22.6.0 이상을 설치하고 Claude Desktop 설정에서 "MCP용 내장 Node.js 사용" 옵션을 비활성화한 후 재시작하면 정상적으로 작동합니다.

Related MCP server: NicePay MCP Server

MCP 서버 등록하기

  1. Node.js 22.6.0 이상이 설치되어 있어야 합니다.

  2. 사용하는 AI 도구의 MCP 설정에서 아래 내용을 추가합니다. (Cursor, Windsurf, Claude Desktop, etc...)

    "mcpServers": {
    
      // 기존 설정
    
      "portone-mcp-server": {
        "command": "npx",
        "args": [
          "-y",
          "@portone/mcp-server@latest"
        ]
      }
    }
  3. 도구를 재시작해 portone-mcp-server 및 해당 서버가 제공하는 도구들이 잘 등록되었는지 확인합니다.

CAUTION

제3자 AI 서비스를 사용할 경우, API 응답(조회된 데이터 등)이 AI 서비스 측으로 전달되어 저장되거나 해당 서비스의 정책에 따라 모델 학습에 사용될 수 있습니다.

MCP 서버는 API 응답에 포함된 개인정보가 외부로 전달되지 않도록, 우선적으로 해당 정보를 식별 및 제거하는 보호 조치를 마련하고 있습니다. 다만, 그 외의 정보는 AI 서비스의 운영 정책에 따라 일시적으로 저장되거나 처리될 수 있는 점을 유의해야 합니다.

서버 환경에서 사용하기 (액세스 토큰 주입)

브라우저 로그인이 불가능한 서버 환경에서는 PORTONE_ACCESS_TOKEN 환경 변수로 외부에서 발급한 콘솔 OAuth 액세스 토큰을 주입할 수 있습니다. 이 변수가 설정되면 브라우저를 통한 대화형 OAuth 로그인 플로우(로컬 콜백 서버, PKCE)를 건너뛰고, 주입된 토큰을 그대로 콘솔 기능 호출의 Authorization 헤더로 사용합니다.

"mcpServers": {
  "portone-mcp-server": {
    "command": "npx",
    "args": ["-y", "@portone/mcp-server@latest"],
    "env": {
      "PORTONE_ACCESS_TOKEN": "<콘솔에서 발급한 액세스 토큰>"
    }
  }
}
  • PORTONE_ACCESS_TOKEN: 콘솔 OAuth 액세스 토큰(필수). 설정 시 정적 토큰 모드로 동작합니다.

  • PORTONE_TOKEN_TYPE: 토큰 타입(선택, 기본값 Bearer).

IMPORTANT
  • 정적 토큰 모드에서는 리프레시 토큰이 없으므로 토큰의 발급/갱신/만료 관리는 호출 측(서버)의 책임입니다. 만료된 토큰을 주입하면 콘솔 기능 호출이 실패합니다.

  • 토큰은 프로세스별로 격리됩니다. 여러 사용자를 처리하는 서버라면 사용자마다 별도의 프로세스에 해당 사용자의 토큰을 주입해, 토큰이 공유되지 않도록 하세요.

  • PORTONE_ACCESS_TOKEN 이 없으면 기존과 동일하게 브라우저 로그인 플로우로 동작합니다.

엔드포인트 오버라이드

기본적으로 MCP 서버는 PortOne 운영(prod) 환경에 연결됩니다. 아래 환경 변수를 설정하면 각 서비스 엔드포인트를 개별적으로 다른 환경(예: 내부 테스트 환경)으로 오버라이드할 수 있습니다. 설정하지 않은 항목은 운영 환경 기본값을 사용합니다.

  • PORTONE_CONSOLE_URL: 콘솔 (OAuth 브라우저 로그인)

  • PORTONE_MERCHANT_SERVICE_URL: 머천트 서비스 (OAuth 토큰 교환·갱신)

  • PORTONE_CHANNEL_SERVICE_URL: 채널 서비스 (채널 조회·추가)

  • PORTONE_GRAPHQL_URL: GraphQL 게이트웨이 (스토어·결제·거래대사·정산)

"mcpServers": {
  "portone-mcp-server": {
    "command": "npx",
    "args": ["-y", "@portone/mcp-server@latest"],
    "env": {
      "PORTONE_CONSOLE_URL": "<대상 환경 콘솔 URL>",
      "PORTONE_GRAPHQL_URL": "<대상 환경 GraphQL URL>"
    }
  }
}
NOTE
  • 오버라이드는 콘솔 기능(스토어·채널·결제·거래대사·정산 등) 호출 대상만 바꿉니다. 문서/헬프센터 조회는 환경과 무관하게 동일하게 동작합니다.

  • 브라우저 로그인 대신 PORTONE_ACCESS_TOKEN 을 함께 사용하는 경우, 오버라이드한 환경에서 발급한 토큰을 주입해야 합니다.

개발하기

요구사항

  • Node.js 22.6.0 이상

  • pnpm (권장) 또는 npm

  1. 저장소를 클론한 후 필요한 패키지 설치하기

    pnpm install
  2. MCP 서버 실행 (개발 모드)

    pnpm dev
  3. 코드 린팅 및 포맷팅

    pnpm lint
    pnpm format
  4. 타입 체크

    pnpm typecheck
  5. 빌드 및 퍼블리싱

    # 먼저 package.json의 version을 변경합니다.
    rm -rf dist
    pnpm install
    pnpm build
    pnpm publish
  6. 로컬 환경의 MCP 서버 등록하기

    "mcpServers": {
       "portone-mcp-server": {
         "command": "node",
         "args": [
           "/your/absolute/path/to/portone-mcp-server/dist/index.js"
         ]
       }
    }
  7. 문서 업데이트하기

    요구사항:

    • 로컬에 developers.portone.io, help.portone.io 저장소가 클론되어 있어야 합니다.

    • nvm (Node Version Manager) 및 노드 20, 23 버전이 설치되어 있어야 합니다.

    • corepack이 설치되어 있어야 합니다.

    developers.portone.io 저장소에서 생성된 문서를 MCP 서버에 업데이트하려면 다음과 같이 실행합니다:

    # 환경 변수를 사용하는 방법
    export DEVELOPERS_PORTONE_IO_PATH="/path/to/developers.portone.io"
    export HELP_PORTONE_IO_PATH="/path/to/help.portone.io"
    pnpm update-docs
    
    # 또는 대화형으로 실행
    pnpm update-docs
    # 프롬프트가 표시되면 developers.portone.io, help.portone.io 저장소 경로 입력

    이 스크립트는 다음을 수행합니다:

    1. developers.portone.io, help.portone.io 저장소에서 pnpm docs-for-llms 명령을 실행 (로컬에 설정된 브랜치 기준으로 문서 생성)

    2. MCP 서버의 docs 디렉토리를 새로 생성된 내용으로 교체

    3. 개발자센터, 헬프센터 외 일부 문서 다운로드 및 교체

Python 버전에서 마이그레이션

기존에 Python 버전(<0.13.0)의 MCP 서버를 사용하고 계셨다면 TypeScript 버전으로 마이그레이션하는 것을 권장합니다.

마이그레이션 방법

  1. MCP 설정 변경

    기존 파이썬 버전 설정:

    "mcpServers": {
      "portone-mcp-server": {
        "command": "uvx",
        "args": ["portone-mcp-server@latest"]
      }
    }

    새로운 TypeScript 버전 설정:

    "mcpServers": {
      "portone-mcp-server": {
        "command": "npx",
        "args": ["-y", "@portone/mcp-server@latest"]
      }
    }
  2. 환경 변수 및 API 시크릿 설정은 동일하게 유지됩니다.

  3. Node.js 설치: Node.js 22.6.0 이상이 필요합니다.

  4. AI 도구 재시작: 설정 변경 후 사용 중인 AI 도구를 재시작합니다.

라이선스

Apache License 2.0 OR MIT License

Available Tools

16 tools
addTestChannel포트원 테스트 채널 추가A

고객사의 대표상점에 공용 테스트 채널을 추가합니다.

NOTE: 반드시 listSharedTestChannels를 통해 얻은 MID를 사용하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
midYes테스트 채널의 PG사 MID
manualConfirmNo수동 승인 사용 여부

Output Schema

ParametersJSON Schema
NameRequiredDescription
channelKeyYes추가된 채널의 채널키

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full behavioral disclosure. It only states that the tool adds a channel, lacking details on side effects, idempotency, required permissions, or error conditions. For a mutation tool, this is insufficient.

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 with two sentences: a main statement and a NOTE. It is front-loaded and efficient, though the NOTE could be integrated for better flow.

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?

For a simple add tool with an output schema, the description is adequate but lacks context on when to use it versus sibling tools (beyond the MID note) and does not discuss concurrency or error outcomes. The behavioral gaps lower the score.

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 input schema has 100% parameter description coverage, so the baseline is 3. The description adds minimal value beyond the schema: it reinforces the MID parameter's source but does not clarify 'manualConfirm' behavior beyond its schema description.

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 tool's function: adding a public test channel to the merchant's representative store. The verb 'add' and resource 'test channel' are specific. It distinguishes from sibling tools like listSharedTestChannels (which retrieves MIDs) and getChannelsOfStore (which lists existing channels).

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 NOTE explicitly instructs users to obtain the MID from listSharedTestChannels before using this tool, providing clear prerequisite guidance. However, it does not specify when not to use this tool or mention alternative tools for different scenarios.

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

getChannelsOfStore포트원 상점 내 채널 목록 조회B

고객사의 상점에 존재하는 모든 채널 정보를 가져옵니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
storeYes채널을 검색할 상점아이디
fieldsYes결과로 받을 채널 정보 목록

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes조회된 채널 목록

TDQS

B3.2/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 of disclosing behavior. It states the tool 'retrieves' information, implying read-only, but does not mention any side effects, rate limits, authentication requirements, or what happens if the store does not exist. This leaves significant gaps for a safe 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 a single, concise sentence that conveys the core purpose without fluff. While it could benefit from a more structured format (e.g., bullet points for key details), it is not verbose and avoids redundancy.

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 presence of an output schema, return values need not be described. However, the description lacks any contextual information about when to use this tool, prerequisites (e.g., valid store ID), or how the 'fields' parameter affects the output. It is minimally adequate for a simple retrieval tool but leaves room for improvement.

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 100%, so the schema already documents both parameters (store, fields) with descriptions. The tool description adds no additional meaning beyond what the schema provides, so it meets the baseline but does not enhance understanding.

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 action (get all channels) and the resource (a store's channels). The name and title reinforce this, making it easy for an agent to understand what the tool does. It is distinct from siblings like addTestChannel (create) and getPaymentsByFilter (different entity).

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 such as addTestChannel or getPaymentsByFilter. There is no mention of prerequisites, context, or exclusion criteria, leaving the agent without decision support.

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

getPaymentsByFilter포트원 결제 내역 검색A

포트원 서버에서 주어진 조건을 모두 만족하는 결제 내역을 검색합니다.

Note: 소문자 imp_ 혹은 imps_ 로 시작하는 거래번호는 고객사 거래번호가 아닌 V1 포트원 거래번호(imp_uid)일 가능성이 있습니다. 날짜 및 시간 정보 입출력 시에는 반드시 타임존을 명시합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNopaymentId / txId / imp_uid / merchant_uid 검색 필드
pgNo포함할 PG사 모듈 목록
toYes조회 종료 시간 (ISO 8601 형식)
fromYes조회 시작 시간 (ISO 8601 형식)
pageYes검색할 페이지 위치입니다. 0부터 시작합니다.
orderNo결제건의 주문명
typesNo일반 / 정기결제 여부
fieldsYes검색 결과로 받을 필드 목록입니다.
methodNo포함할 결제수단 목록
statusNo포함할 결제 상태 목록
channelNo실연동 및 테스트 포함 목록
webhookNo포함할 결제건의 웹훅 상태 목록
currencyNo포함할 통화 목록, 세 자리 통화 코드
pageSizeNo한 페이지에 반환할 결과의 수
timeTypeYesfrom, to로 제약할 결제건의 기준 시각 조건

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes페이지와 관계없이 조건에 맞는 결제 총 개수
itemsYes조회된 결제 목록

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits itself. It does clarify AND semantics ('모두 만족하는') and includes two useful cautions about imp_uid identification and timezone handling. However, it does not discuss pagination behavior, rate limits, or error conditions, leaving some 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 compact and well-structured: one main sentence followed by two bullet-point notes. Every sentence provides useful information, with no filler. It is front-loaded with the core purpose and followed by essential caveats.

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?

Although the tool has 15 parameters and an output schema, the description is brief. It covers AND semantics and two caveats, but does not mention pagination defaults, how filters combine across multiple parameters, or any prerequisites. The output schema fills return-value details, but overall context feels slightly under-specified for such a complex tool.

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?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful value by explaining that IDs starting with imp_/imps_ may be V1 imp_uid values, which clarifies the 'id' parameter. The timezone note directly informs the 'from' and 'to' parameters, enriching the schema descriptions.

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 it searches payment history on the PortOne server that satisfies all given conditions. The verb '검색합니다' (search) and resource '결제 내역' (payment history) are specific and distinguish it from sibling settlement or reconciliation search 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?

The description provides no explicit guidance on when to use this tool versus alternatives such as getReconciliationsByFilter or getSettlementSummaries. The notes about imp_uid and timezone are cautions, not usage directives. No exclusions or alternative recommendations are given.

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

getPortoneDocsUrl포트원 문서 웹 링크 조회A

포트원 개별 문서들의 경로를 통해 해당 포트원 문서의 웹으로 접근 가능한 링크를 가져옵니다.

Note: 문서가 1개뿐인 경우에는 readPortoneDoc을 사용하면 문서 내용과 메타 정보도 획득할 수 있습니다. getPortoneDocsUrl은 여러 문서의 링크를 가져올 수 있습니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes읽을 포트원 문서들의 경로 목록

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes문서를 웹으로 접근 가능한 링크가 입력한 문서 순서대로 주어집니다.

TDQS

A3.8/5.0
Behavior2/5

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

No annotations provided, and the description does not mention side effects, read-only nature, auth requirements, or rate limits. While 'get' suggests read-only, it is not explicit.

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 very concise with only two sentences and a note, front-loading the purpose. Every sentence adds value with no superfluous content.

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

Completeness4/5

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

Given an output schema exists (not shown) and one parameter, the description adequately explains functionality and when to use alternatives. Missing auth/behavioral context slightly lowers score.

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 coverage is 100% with clear description of the 'path' parameter. The tool description adds no additional semantics beyond the schema, achieving baseline 3.

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 it retrieves web-accessible links for PortOne documents given their paths, distinguishing itself from readPortoneDoc which also returns content and metadata.

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 note explicitly recommends readPortoneDoc for single documents needing content, implying getPortoneDocsUrl is for links only or multiple documents. No explicit 'when not to use' but context is clear.

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

getReconciliationsByFilter거래대사 건별 내역 조회A

특정 하위 상점(store)의 거래대사(정산/거래 대사) 건별 내역을 조회합니다.

각 건은 다음 상태 중 하나를 가집니다: MATCHED(대사 성공), NOT_MATCHED(대사 불일치), INCOMPARABLE(대사 불가), NOT_COLLECTED(PG 정보 미수집), POST_CORRECTION(후보정) (내부적으로 구분되는 역방향 대사 불가(backward incomparable)는 INCOMPARABLE 로 합쳐져 제공됩니다.)

대사 불일치 상세는 statuses=[NOT_MATCHED] 로 조회 후 각 건의 notMatchedReasons 를 확인합니다. 대사 불가 사유는 INCOMPARABLE 건의 incomparableReason 필드에서 확인합니다. 날짜는 반드시 YYYY-MM-DD 형식으로 입력하며, dateType 으로 정산일/결제일 기준을 선택합니다. 조회 기간 제약: from 은 최근 6개월 이내여야 하고, 한 번에 조회 가능한 구간은 최대 2주입니다. store 아이디는 list_stores 도구로 먼저 조회할 수 있습니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYes조회 종료일 (YYYY-MM-DD)
fromYes조회 시작일 (YYYY-MM-DD)
afterNo이전 페이지의 마지막 커서 (endCursor 값)
firstNo조회할 건 수 (최대 100)
storeNo조회할 하위 상점 아이디. 생략하면 고객사 내 모든 하위 상점을 조회합니다.
pgTxIdNoPG사 거래 아이디 검색
dateTypeNofrom/to 로 제약할 기준 (정산일 / 결제일)TRANSACTION
statusesNo포함할 대사 상태 목록. 불일치 건만 보려면 [NOT_MATCHED] 로 지정합니다.
orderNameNo주문명 검색
paymentIdNo고객사 결제 아이디 검색
actionTypesNo포함할 결제 상태 목록
transactionIdNo포트원 결제 아이디 검색
paymentMethodTypesNo포함할 결제 수단 목록
settlementCurrenciesNo포함할 정산 통화 목록 (세 자리 통화 코드)
transactionCurrenciesNo포함할 결제 통화 목록 (세 자리 통화 코드)

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes조회된 거래대사 목록
endCursorYes다음 페이지 조회에 사용할 커서 (after 로 전달)
hasNextPageYes다음 페이지 존재 여부

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Discloses statuses, how to get mismatch details (notMatchedReasons) and incomparable reasons, and the merging of backward incomparable. Missing pagination details (after, first) but overall good.

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?

Description is concise yet informative, with front-loaded purpose and well-organized details. Each sentence adds value; could be slightly tighter but no redundancy.

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

Completeness4/5

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

Covers core functionality, statuses, date constraints, and store lookup. Output schema exists so return format is handled. Missing pagination explanation but overall complete for the tool's complexity.

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?

Schema description coverage is 100%, so baseline 3. Description adds meaning by explaining statuses, dateType, and constraints. Adds context like using list_stores to get store ID, which is beyond 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 clearly states the tool retrieves transaction reconciliation details for a specific sub-store. It mentions distinct statuses and differentiates from siblings like getPaymentsByFilter (payments) and getSettlementStatistics (statistics).

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?

Provides clear usage context: date format, query period constraints (last 6 months, max 2 weeks), and suggests using list_stores for store ID. Lacks explicit when-not-to-use alternatives but sufficient for typical use.

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

getSettlementStatistics거래대사 정산 통계 조회A

특정 하위 상점(store)의 거래대사 정산 통계를 조회합니다.

검색 구간 내 통화별 합산 통계(정산/정산예정 금액·건수)와 일별 통계를 제공합니다. 날짜는 반드시 YYYY-MM-DD 형식으로 입력합니다. 조회 기간 제약: from 은 최근 6개월 이내여야 하고, 한 번에 조회 가능한 구간은 최대 1개월입니다. store 아이디는 list_stores 도구로 먼저 조회할 수 있습니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYes정산일 조회 종료일 (YYYY-MM-DD)
fromYes정산일 조회 시작일 (YYYY-MM-DD)
storeNo조회할 하위 상점 아이디. 생략하면 고객사 내 모든 하위 상점을 조회합니다.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dailyStatisticsYes일별 정산 통계
rangeTotalStatisticsYes검색 구간 내 통화별 합산 통계

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description effectively discloses behavioral traits: it is a read-only query, requires specific date formatting, has period constraints, and optionally filters by store. It does not mention error handling for constraint violations but covers the main behavioral aspects.

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 well-structured: first sentence for purpose, second for output, then format, constraints, and related tool. Every sentence adds necessary information without redundancy, making it efficient and easy to parse.

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

Completeness4/5

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

Given that an output schema exists, the description appropriately omits return value details but mentions aggregated and daily statistics. It covers input parameters fully, including constraints and optionality. Minor gaps like error handling are acceptable for a query tool with good schema support.

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 already describes all 3 parameters (100% coverage). The description adds value by specifying the date format requirement, period constraints, and the suggestion to use list_stores for store IDs. It also clarifies that the store parameter is optional and defaults to all stores.

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 tool retrieves settlement statistics for a specific sub-store, provides aggregated by currency and daily stats, and uses a specific verb '조회합니다' (retrieves). It distinguishes itself from siblings by focusing on store-level statistics, though sibling descriptions are not provided.

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 gives explicit usage constraints: date format (YYYY-MM-DD), period limits (from within 6 months, max 1 month), and a reference to list_stores for obtaining store IDs. It does not explicitly differentiate from similar tools like getSettlementSummaries, but the constraints are clear and actionable.

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

getSettlementSummaries거래대사 정산 요약 조회A

특정 하위 상점(store)의 거래대사 정산 요약을 정산일 기준 일별로 조회합니다.

각 일자별로 정산 금액/건수, PG 수수료, 취소, 후보정 합산치와 상점·PG별 상세 내역을 제공합니다. 날짜는 반드시 YYYY-MM-DD 형식으로 입력합니다. 조회 기간 제약: from 은 최근 6개월 이내여야 하고, 한 번에 조회 가능한 구간은 최대 1개월입니다. store 아이디는 list_stores 도구로 먼저 조회할 수 있습니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYes정산일 조회 종료일 (YYYY-MM-DD)
fromYes정산일 조회 시작일 (YYYY-MM-DD)
afterNo이전 페이지의 마지막 커서
firstNo조회할 일 수 (최대 100)
storeNo조회할 하위 상점 아이디. 생략하면 고객사 내 모든 하위 상점을 조회합니다.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes일별 정산 요약 목록
endCursorYes다음 페이지 조회에 사용할 커서
hasNextPageYes다음 페이지 존재 여부

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries full weight. It discloses date format, range limits, pagination (after, first), and store filtering. However, it does not mention rate limits, authentication needs, or potential side effects. For a read operation, this is adequate but not comprehensive.

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 relatively concise with 6 sentences, starting with the main purpose. It is well-structured but could be slightly more streamlined without losing information.

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

Completeness4/5

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

Given the presence of an output schema, the description adequately covers the typical usage scenario. It mentions the data provided (amounts, fees, cancellations, adjustments) and constraints. Could add edge cases or error conditions, but overall sufficient.

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?

Schema coverage is 100%, but the description adds value beyond the schema: it explains that store is optional and can be obtained from list_stores, and that after is for pagination. This contextual guidance enhances parameter understanding.

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 it retrieves daily settlement summaries for a specific sub-store. It names the resource (settlement summaries) and the action (retrieve). While it doesn't explicitly differentiate from siblings like getSettlementStatistics, the focus on daily summaries by settlement date distinguishes it well.

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 explicit usage context: date format (YYYY-MM-DD), time constraints (from within last 6 months, max 1 month range), and store retrieval via list_stores. It does not state when not to use it, but the constraints give clear guidance on valid inputs.

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

listPortoneDocs포트원 문서 목록 조회A

특정 경로 하위에 있는 모든 포트원 문서 목록을 트리 형태로 조회합니다. 목록에는 문서 경로, 제목, 설명, 대상 버전 등 축약된 문서 정보가 포함되어 있습니다.

Returns: 필터링된 문서 목록 (각 문서의 파일명, 길이, 제목, 설명, 대상 버전 등)

Note: 문서 목록은 대량의 데이터이므로 상위 디렉토리를 조회할 경우 omitFiles를 true로 설정합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsNo하위 목록을 조회할 경로들입니다. 미입력 시 전체 목록을 조회합니다.
onlyPathsNotrue인 경우 문서를 제외한 디렉토리 목록만 표시하고, 디렉토리 하위에 readme.md가 있는 경우 해당 파일의 설명을 표시합니다.

TDQS

A3.7/5.0
Behavior3/5

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

The description mentions tree form and returned fields, but does not disclose read-only nature, authentication, side effects, or rate limits. With no annotations, the description carries the burden but only partially fulfills it.

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 with three sentences, but the note about omitFiles adds unnecessary confusion and could be omitted.

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

Completeness4/5

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

For a simple listing tool with no output schema, the description covers purpose, output fields, and an operational note. The inconsistency in the note slightly reduces 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 coverage is 100% with detailed parameter descriptions. The tool description adds little beyond the schema; the note about omitFiles is inconsistent with the actual parameters.

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 it retrieves all PortOne documents under a specific path in tree form, distinguishing it from sibling tools that focus on URLs, single documents, schemas, or search.

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?

Usage is implied for listing documents, but there is no explicit guidance on when to use this tool versus alternatives. The note about omitFiles is confusing as the parameter does not exist in the schema.

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

listSharedTestChannels포트원 공용 테스트 채널 목록 조회B

포트원에서 테스트 용도로 제공하는 채널의 목록을 가져옵니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
pgProvidersNo목록에 있는 PG사(미설정 시 모든 PG사)만 보여줍니다.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes조회된 채널 목록으로, MID가 포함됩니다.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided. Description lacks behavioral details such as pagination, authentication requirements, or rate limits. As a simple listing tool, minimal disclosure, but still no extra context beyond purpose.

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?

Single sentence, front-loaded with the key action. Efficient but could include more detail without losing conciseness.

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 low complexity (1 optional param, output schema exists), the minimal description is adequate but does not fully explain what the returned list contains. Output schema may compensate, but description should ideally complement it.

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 coverage is 100% with one optional parameter (pgProviders) having a description. The description adds no additional meaning beyond the schema, so baseline 3 applies.

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?

Description clearly states it retrieves a list of test channels provided by PortOne. It is distinct from siblings like addTestChannel and getChannelsOfStore, which perform different operations.

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 vs alternatives like getChannelsOfStore or addTestChannel. Usage context is implied but not clearly stated.

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

listStores상점 목록 조회A

포트원 계정에 연결된 대표상점 및 하위상점의 정보를 가져옵니다.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
mainNo대표상점
itemsYes하위상점 목록

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states 'gets information', implying a read-only operation, but lacks details such as whether pagination, ordering, or authentication constraints apply. This is minimal disclosure.

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 sentence that front-loads the purpose. Every word is necessary and contributes to clarity. No wasted information.

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

Completeness5/5

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

Given the tool's simplicity (no parameters, no nested objects, output schema present), the description fully captures its purpose. There is no need for additional context like return value details, as the output schema presumably covers that.

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 input schema has no parameters, and schema description coverage is trivially 100%. The description adds no additional parameter meaning beyond the schema. Per the baseline rule, score is 3.

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 that the tool retrieves information of representative and sub-stores connected to the Portone account. It uses a specific verb ('가져옵니다') and resource ('상점 정보'), distinguishing it from sibling tools like getChannelsOfStore or addTestChannel.

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 on when to use this tool versus alternatives. The description does not mention when not to use it, nor does it reference siblings such as getChannelsOfStore which might be relevant for channel-related queries.

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

readPortoneDoc포트원 문서 읽기A

포트원 개별 문서의 경로를 통해 해당 포트원 문서의 내용, 메타 정보(제목, 설명, 대상 버전 등), 웹으로 접근 가능한 링크를 가져옵니다.

Note: 먼저 listPortoneDocs을 사용해 포트원 문서 목록을 확인하고, 그 중 원하는 문서의 path를 readPortoneDoc에 전달하여 내용을 확인할 수 있습니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes읽을 포트원 문서의 경로
fieldsYes받을 필드 목록
endIndexNo읽어올 범위 끝 인덱스. 미설정 시 끝까지 읽어옵니다.
startIndexNo읽어올 범위 시작 인덱스. 미설정 시 처음부터 읽어옵니다.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNo문서를 웹으로 접근 가능한 링크
contentNo찾은 포트원 문서의 내용
metadataNo찾은 포트원 문서의 메타 정보

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. It discloses that the tool retrieves content, metadata, and URL, and mentions range parameters. However, it does not explicitly state it is read-only or any caveats about access or side effects.

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 very concise: two sentences with no redundant words. It is front-loaded with the main purpose followed by usage note.

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

Completeness4/5

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

Given the complexity (4 params, output schema exists), the description covers the main workflow and parameter usage. It does not detail output structure or error handling, but the output schema likely accounts for that.

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 coverage is 100%, so all parameters are already described in the schema. The description adds context about the workflow and endpoint, but does not add new parameter-level semantics beyond what the schema provides.

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 tool reads a specific PortOne document by path, returning content, metadata, and URL. It distinguishes from siblings like listPortoneDocs and regexSearchPortoneDocs.

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 explicitly advises to first use listPortoneDocs to get the path, then pass it to readPortoneDoc. This provides clear sequential guidance, though it does not mention when not to use or alternative tools.

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

readPortoneOpenapiSchema포트원 OpenAPI 스키마 읽기B

요청된 포트원 버전에서 제공하는 OpenAPI 스키마 내 특정 path의 데이터를 반환합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYes포트원 버전
yaml_pathYesOpenAPI 스키마 내의 yaml path (list of strings) 키 또는 인덱스(0부터 시작)를 포함할 수 있습니다.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes OpenAPI 스키마를 최대 depth 3으로 요약한 YAML 형식의 문자열

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided; description only states the action without disclosing behavioral traits (e.g., read-only nature, auth requirements, side effects). As the sole source of behavioral info, it is insufficient.

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?

Single sentence that is concise, front-loaded with key information, and contains no filler. Every word serves a purpose.

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?

With output schema present, return values are covered. However, the description lacks guidance on constructing the `yaml_path` parameter (e.g., examples or format), which is critical for correct usage.

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 coverage is 100%, and description adds no extra meaning beyond what the schema already provides. The description reiterates '특정 path' but does not elaborate on parameter usage or constraints.

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?

Description clearly states it returns data for a specific path within the PortOne OpenAPI schema for a requested version, using the verb '반환' and specifying the resource. This distinguishes it from sibling tools like readPortoneOpenapiSchemaSummary.

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 on when to use this tool versus alternatives (e.g., readPortoneOpenapiSchemaSummary, getPortoneDocsUrl). No mention of prerequisites, exclusions, or context.

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

readPortoneOpenapiSchemaSummary포트원 OpenAPI 스키마 요약A

요청된 포트원 버전에서 제공하는 OpenAPI 스키마를 요약해 문자열로 반환합니다. 해당 요약에는 요청된 포트원 버전에서 제공하는 모든 REST API가 포함되어 있습니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYes포트원 버전

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesOpenAPI 스키마를 최대 depth 3으로 요약한 YAML 형식의 문자열

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description bears full burden. It states the tool returns a string summary including all REST APIs, which is basic but lacks details on caching, performance, or format of the summary.

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?

Single sentence, no wasted words, and front-loaded with the action and object.

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

Completeness4/5

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

Tool is simple with one parameter and an output schema (not shown but present). Description explains return type ('string') and scope ('all REST APIs'), which is sufficient for an agent to use it. Minor gap: no mention of summary format (e.g., plain text, JSON).

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?

Schema covers the 'version' parameter with enum and description (100% coverage), baseline 3. The description adds that the summary includes all REST APIs for that version, adding meaningful context beyond the 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 clearly states the tool returns a summary of the OpenAPI schema as a string for a given PortOne version. It distinguishes from the sibling 'readPortoneOpenapiSchema' which presumably returns the full schema.

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?

The description implies usage when a summary is needed rather than the full schema, but no explicit guidance on when to use this tool vs alternatives is provided.

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

readPortoneV2BackendCode포트원 V2 백엔드 코드 예제 읽기B

지정된 매개변수에 따라 포트원 V2 백엔드 코드 예제를 가져옵니다. 포트원 V2에 관련해 어떤 상황이든 프로그래밍 언어로 코드를 작성해야 한다면, 예외 없이 가장 먼저 이 도구를 호출해 예시 코드를 참고한 후 사용자를 도우세요. framework를 제외한 모든 Args는 선택사항이며, 특정되지 않은 경우 비워두세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
pgYes사용할 결제 게이트웨이. 옵션: toss, nice, smartro, kpn, inicis, ksnet, kcp, kakao, naver, tosspay, hyphen, eximbay
frameworkYes사용할 프레임워크. 일치하지 않더라도 현재 맥락에서 가장 유사한 프레임워크를 명시합니다. 옵션: express, fastapi, flask, spring-kotlin
pay_methodYes사용할 결제 방법. 옵션: card, virtualAccount, easyPay, transfer, mobile, giftCertificate
smart_routingNo스마트 라우팅 사용 여부. 옵션: true 또는 false

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, and the description only says it fetches code examples without disclosing read-only nature, side effects, or other behavioral traits.

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?

Two concise sentences with the primary action first, though the contradiction reduces clarity.

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?

No output schema is provided, and the description does not explain what the code example contains or how it is structured, leaving the agent without essential usage context.

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?

The description adds that only framework is required, but the input schema marks pg and pay_method as required, creating a contradiction that could confuse the agent.

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 it retrieves Portone V2 backend code examples based on parameters, and the title and sibling tool (readPortoneV2FrontendCode) differentiate it from frontend code retrieval.

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?

Explicitly instructs to use this tool first when writing Portone V2 code, but does not mention when not to use or provide alternatives.

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

readPortoneV2FrontendCode포트원 V2 프론트엔드 코드 예제 읽기B

지정된 매개변수에 따라 포트원 V2 프론트엔드 코드 예제를 가져옵니다. 포트원 V2에 관련해 어떤 상황이든 프로그래밍 언어로 코드를 작성해야 한다면, 예외 없이 가장 먼저 이 도구를 호출해 예시 코드를 참고한 후 사용자를 도우세요. framework를 제외한 모든 Args는 선택사항이며, 특정되지 않은 경우 비워두세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
pgYes사용할 결제 게이트웨이. 옵션: toss, nice, smartro, kpn, inicis, ksnet, kcp, kakao, naver, tosspay, hyphen, eximbay
frameworkYes사용할 프레임워크. 일치하지 않더라도 현재 맥락에서 가장 유사한 프레임워크를 명시합니다. 옵션: html, react
pay_methodYes사용할 결제 방법. 옵션: card, virtualAccount, easyPay, transfer, mobile, giftCertificate
smart_routingNo스마트 라우팅 사용 여부. 옵션: true 또는 false

TDQS

B3.1/5.0
Behavior1/5

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

Description contradicts the input schema: it claims all args except framework are optional, but schema marks pg and pay_method as required. No other behavioral traits disclosed, and no annotations provided.

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?

Description is relatively concise with three sentences, but the third sentence contains inaccurate information, reducing effectiveness.

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?

No output schema or annotations. Description fails to explain return format, language, or example structure. Incomplete for a code example tool.

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 100%, but description adds contradictory guidance on required fields. It does not meaningfully augment parameter understanding.

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?

Description clearly states that it fetches Portone V2 frontend code examples, distinguishing it from sibling tool readPortoneV2BackendCode. Title reinforces the purpose.

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?

Explicitly instructs to call this tool first before writing any code related to Portone V2, providing clear context. However, it does not specify when not to use or mention alternatives explicitly.

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

regexSearchPortoneDocs포트원 문서 정규표현식 검색A

특정 경로 하위의 포트원 문서의 내용 중 Node.js RegExp 형식의 query가 매칭된 부분을 모두 찾아 반환합니다. 정규식 기반으로 관련 포트원 문서를 찾고 싶은 경우 이 도구를 사용하며, 메타 정보와 문서 내용 모두 검색합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo결과 문자열의 페이지네이션을 위한 시작 인덱스입니다. 한 페이지의 글자 수는 limit 입니다.
limitNo반환할 최대 문자열 길이입니다. 출력이 이 길이를 초과하면 잘리고 truncation 메시지가 추가됩니다.
pathsNo설정 시 이 경로를 접두사로 가지는 문서에서만 검색을 수행합니다. 예를 들어 OPI 문서의 경우 opi/를 입력합니다.
queryYesNode.js RegExp 형식의 문자열을 입력해야 하며, 영어 알파벳 대소문자는 구분 없이 매칭됩니다. 절대 query에 공백을 포함시키지 마세요. 여러 키워드를 한 번에 검색하고 싶다면, 공백 대신 | 연산자를 사용하여 구분합니다. 단어 글자 사이에 공백이 있는 경우도 매칭하고 싶다면, 공백 대신 \s*를 사용하세요.
contextSizeNo0보다 큰 값을 설정할 경우, 검색 결과의 컨텍스트 크기로, 문자 수를 기준으로 합니다. 0 또는 50 정도를 추천합니다. query 매치가 발견된 시작 인덱스를 idx라고 할 때, max(0, idx - contextSize)부터 min(contentLength, idx + len(query) + contextSize) - 1까지의 내용을 반환합니다. 단, 이전 검색결과와 겹치는 컨텍스트는 병합되어 반환됩니다.
showMetadataNotrue이면 문서의 메타데이터(제목, 설명, 대상 버전)을 결과에 포함합니다.

TDQS

A4.2/5.0
Behavior4/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 discloses that the tool searches both metadata and content, supports pagination (page/limit), truncation, and context extraction. However, it does not mention authorization or rate limits.

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 two sentences: first states the primary function, second provides usage context. No unnecessary words; efficiently conveys key information.

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

Completeness4/5

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

Given 6 parameters and no output schema, the description covers the main purpose and mentions important aspects (path restriction, query format). It lacks details on return structure and error handling, but is adequate for a search tool.

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 coverage is 100%, so baseline is 3. The tool description adds minimal parameter-specific meaning beyond what the schema already provides, e.g., the query format and the paths prefix concept are already in the 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 clearly states the tool searches for regex matches in PortOne docs under a specific path using Node.js RegExp format. It distinguishes from sibling tools like listPortoneDocs and readPortoneDoc by emphasizing regex-based search.

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 when to use the tool: 'if you want to find relevant PortOne docs based on regex.' It does not explicitly mention when not to use or alternatives, but the context is clear.

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. 1 tool updatev0.20.0
    • ChangedgetPaymentsByFilter3 fields changed
      • changedInput schema / properties / fields / items / enum
        Previous value: -[
        -  "amount",
        -  "billKey",
        -  "channel",
        -  "group",
        -  "currency",
        -  "customer",
        -  "history",
        -  "webhook",
        -  "order",
        -  "txId",
        -  "storeId",
        -  "schedule",
        -  "requestAt",
        -  "paymentId",
        -  "method",
        -  "amount.total",
        -  "amount.taxFree",
        -  "amount.vat",
        -  "amount.supply",
        -  "amount.dc",
        -  "amount.cancel",
        -  "amount.taxFreeCancel",
        -  "amount.cardDc",
        -  "amount.easyDc",
        -  "amount.promotionDc",
        -  "amount.balance",
        -  "channel.type",
        -  "channel.id",
        -  "channel.key",
        -  "channel.name",
        -  "channel.pg",
        -  "channel.mid",
        -  "group.id",
        -  "group.name",
        -  "group.test",
        -  "history.status",
        -  "history.changedAt",
        -  "history.paid",
        -  "history.cancel"
        -]New value: +[
        +  "amount",
        +  "billKey",
        +  "channel",
        +  "group",
        +  "currency",
        +  "customer",
        +  "history",
        +  "webhook",
        +  "order",
        +  "txId",
        +  "storeId",
        +  "schedule",
        +  "requestAt",
        +  "paymentId",
        +  "method",
        +  "failure",
        +  "cancellation",
        +  "amount.total",
        +  "amount.taxFree",
        +  "amount.vat",
        +  "amount.supply",
        +  "amount.dc",
        +  "amount.cancel",
        +  "amount.taxFreeCancel",
        +  "amount.cardDc",
        +  "amount.easyDc",
        +  "amount.promotionDc",
        +  "amount.balance",
        +  "channel.type",
        +  "channel.id",
        +  "channel.key",
        +  "channel.name",
        +  "channel.pg",
        +  "channel.mid",
        +  "group.id",
        +  "group.name",
        +  "group.test",
        +  "history.status",
        +  "history.changedAt",
        +  "history.paid",
        +  "history.cancel",
        +  "failure.reason",
        +  "failure.pgCode",
        +  "failure.pgMessage",
        +  "cancellation.reason",
        +  "cancellation.amount",
        +  "cancellation.requestAt",
        +  "cancellation.cancelAt",
        +  "cancellation.trigger"
        +]
      • addedOutput schema / properties / items / items / properties / cancellation
        Added value: +{
        +  "description": "결제 취소 내역. 전체 / 부분 취소된 결제건에만 존재함.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "amount": {
        +        "description": "취소 금액",
        +        "type": "number"
        +      },
        +      "cancelAt": {
        +        "description": "취소 완료 시각",
        +        "type": "string"
        +      },
        +      "reason": {
        +        "description": "결제 취소 사유",
        +        "type": "string"
        +      },
        +      "requestAt": {
        +        "description": "취소 요청 시각",
        +        "type": "string"
        +      },
        +      "trigger": {
        +        "description": "취소 요청 주체 (CONSOLE, API, PORTONE_ADMIN, CHARGEBACK)",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / items / items / properties / failure
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "결제 실패 정보. 실패한 결제건에만 존재함.",
        +  "properties": {
        +    "pgCode": {
        +      "description": "PG사 실패 코드",
        +      "type": "string"
        +    },
        +    "pgMessage": {
        +      "description": "PG사 실패 메시지",
        +      "type": "string"
        +    },
        +    "reason": {
        +      "description": "결제 실패 사유",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
  2. 3 tool updatesv1.0.1
    • AddedgetReconciliationsByFilter
    • AddedgetSettlementStatistics
    • AddedgetSettlementSummaries
  3. 13 tool updatesv0.15.0
    • AddedaddTestChannel
    • AddedgetChannelsOfStore
    • AddedgetPaymentsByFilter
    • AddedgetPortoneDocsUrl
    • AddedlistPortoneDocs
    • AddedlistSharedTestChannels
    • AddedlistStores
    • AddedreadPortoneDoc
    • AddedreadPortoneOpenapiSchema
    • AddedreadPortoneOpenapiSchemaSummary
    • AddedreadPortoneV2BackendCode
    • AddedreadPortoneV2FrontendCode
    • AddedregexSearchPortoneDocs

TDQS

B3.4/5.0

Scored across 16 tools

Disambiguation3/5

Several tools are related to documentation and schema access (listPortoneDocs, readPortoneDoc, regexSearchPortoneDocs, getPortoneDocsUrl, readPortoneOpenapiSchemaSummary, readPortoneOpenapiSchema) which could be confused, though their specific functions differ. Also, settlement tools (getReconciliationsByFilter, getSettlementSummaries, getSettlementStatistics) have distinct purposes but similar names.

Naming Consistency3/5

Naming conventions are mixed: some use camelCase (getPaymentsByFilter, getReconciliationsByFilter) and others use snake_case (list_stores, addTestChannel). Also 'list' and 'get' are used interchangeably for retrieval, which is not fully consistent.

Tool Count4/5

With 16 tools, the server is slightly over the ideal range but still reasonable for a payment gateway that covers both API operations and documentation. The count is justifiable given the breadth of functionality.

Completeness3/5

Core payment operations like search and settlement are covered, but there are no tools for creating or updating payments, which are essential for a payment server. Documentation tools are comprehensive, but API lifecycle coverage is incomplete.

Maintenance

ActivityMaintained
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables LLMs to search and retrieve OwlPay documentation directly through natural language queries. Accelerates system integration by providing instant access to OwlPay API documentation and guides.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables searching and reading of PortOne documentation, including OpenAPI schemas and product guides, through the Model Context Protocol. It allows AI agents to easily access and integrate payment-related technical specifications into their workflows.
    9 npm
    ISC
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI coding tools to search and retrieve Bootpay payment and commerce developer documentation, including integration guides and customer service manuals. It facilitates tasks such as payment linking, billing key issuance, and webhook configuration through natural language queries.
    2
    -