toss-mcp
This MCP server gives AI agents access to Toss developer documentation and icon catalog. You can:
Search Toss developer docs (Apps in Toss, TDS React Native, TDS Mobile) and a built-in deployment guide using keywords and optional source filters (
search_docs).List available documentation sources and the number of searchable chunks for each (
list_sources).Manually synchronize documentation sources, optionally forcing a cache refresh to get the latest content (
sync_sources).Search the Toss icon catalog by name or URL, filter by icon type (
icon-*,icn-*,emoji/image), and get recommended component usage code (search_icons).Access a generalized deployment checklist for Apps in Toss bundles, included in search results when relevant.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@toss-mcpSearch for icon icon-search-bold-mono"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
toss-mcp
AI 코딩 에이전트에게 토스 개발자 문서, 기본 제공 아이콘, 공식 Apps in Toss 예제를 제공하는 MCP 서버
토스 개발자 문서(앱인토스, TDS React Native, TDS Mobile)의 최신 내용, 토스 기본 제공 아이콘, 공식 Apps in Toss 예제를 AI가 검색할 수 있도록 제공하는 Model Context Protocol (MCP) 서버입니다.
주요 기능
AI 에이전트가 토스 공식 문서를 바로 검색해 답변에 활용할 수 있습니다.
문서 검색 시 공식 문서군, 내장 배포 가이드, 현장 노트별 필터를 적용할 수 있습니다.
공식 문서에 없는 콘솔/담당자 확인 사항은 큐레이션된
field_notes로 검색되며, 앱인토스 관련 쿼리에는 함께 반환됩니다.list_sources로 실제 수집 중인llms.txt/llms-full.txt원천과 청크 수를 확인할 수 있습니다.최신 문서가 필요할 때
sync_sources로 수동 동기화할 수 있습니다.앱인토스 번들의 환경값 검증부터 CLI 업로드, 콘솔 검토·출시까지 범용 배포 체크리스트를 제공합니다.
토스 아이콘 카탈로그를 검색해 아이콘 이름/URL을 빠르게 찾을 수 있습니다.
아이콘 타입(
icon-*,icn-*,u1F...)에 맞는 권장 컴포넌트 사용법을 바로 안내받을 수 있습니다.실행할 때마다 공식 예제 저장소
main의 최신 commit을 확인하고, 변경된 경우 안전한 텍스트 파일만 선별해 캐시를 갱신합니다.공식 예제를 예제명·플랫폼·언어·SDK 버전별로 찾고 원본 파일의 원하는 줄 범위를 조회할 수 있습니다.
Related MCP server: PortOne Global MCP Server
빠른 시작
필수 조건
Python 3.11+
uv (uvx 사용 시)
원격 실행 (uvx)
아래 클라이언트 설정은 모두 동일한 실행 정보를 사용합니다.
command:uvxargs:["--refresh", "--from", "git+https://github.com/chabinhwang/toss-mcp@main", "toss-mcp"]
@main과 --refresh를 함께 사용하므로 MCP를 실행할 때마다 최신 toss-mcp commit을 확인하고 자동으로 업데이트합니다. 재현 가능한 특정 릴리스를 고정하려면 @main을 @v2.5.0으로 바꾸고 --refresh를 제거하세요.
Claude Code
설정 파일: ~/.claude/settings.json (mcpServers에 추가)
{
"toss-docs": {
"command": "uvx",
"args": ["--refresh", "--from", "git+https://github.com/chabinhwang/toss-mcp@main", "toss-mcp"]
}
}Codex
설정 파일: ~/.codex/config.toml (mcp_servers에 추가)
[mcp_servers.toss-docs]
command = "uvx"
args = ["--refresh", "--from", "git+https://github.com/chabinhwang/toss-mcp@main", "toss-mcp"]Gemini CLI
설정 파일: ~/.gemini/settings.json (mcpServers에 추가)
{
"mcpServers": {
"toss-docs": {
"command": "uvx",
"args": ["--refresh", "--from", "git+https://github.com/chabinhwang/toss-mcp@main", "toss-mcp"]
}
}
}Claude Desktop
설정 파일:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
mcpServers에 아래를 추가:
{
"mcpServers": {
"toss-docs": {
"command": "uvx",
"args": ["--refresh", "--from", "git+https://github.com/chabinhwang/toss-mcp@main", "toss-mcp"]
}
}
}로컬 설치 (개발용)
git clone https://github.com/chabinhwang/toss-mcp.git
cd toss-mcp
python3 -m venv .venv
.venv/bin/pip install -e .설정 파일: MCP 클라이언트의 mcpServers 항목
{
"toss-docs": {
"command": "/absolute/path/to/toss-mcp/.venv/bin/toss-mcp"
}
}제공 도구
search_docs
토스 개발자 문서와 내장 보완 자료를 키워드로 검색합니다. 공식 send-message 스펙에 없는 이동 URL {{ 변수 }} 치환처럼 콘솔/담당자 확인 사항은 field_notes에 있습니다. apps_in_toss만 필터해도 관련 현장 노트는 함께 반환됩니다.
검색어: "앱인토스 결제 API"파라미터 | 타입 | 필수 | 설명 |
| string | O | 검색어 (공백으로 구분된 키워드) |
| string | X | 소스 필터 (아래 표 참고) |
| number | X | 최대 결과 수 (기본 10, 최대 30) |
소스 목록
값 | 설명 |
| 앱인토스 |
| TDS React Native |
| TDS Mobile |
| 범용 앱인토스 배포 실전 가이드(내장 보완 문서) |
| 공식 문서에 없는 콘솔/담당자 확인 현장 노트(비공식, 커뮤니티 근거 포함) |
list_sources
검색 가능한 소스, 공식 index/full 원천 URL, 수집 방식, 현재 검색 청크 수를 보여줍니다.
현재 공식 원천
문서군 | index | full | 검색 문서 구성 |
앱인토스 |
|
| index의 개별 Markdown 페이지를 수집하고, 불완전할 때 full로 폴백 |
TDS React Native |
|
| full을 검색 대상으로 사용 |
TDS Mobile |
|
| full을 검색 대상으로 사용 |
index와 full은 모두 변경 감지에 사용하지만, 같은 내용을 검색 결과에 중복 저장하지는 않습니다. 확인 결과 tossmini-docs.toss.im 도메인 루트와 /tds-web/에는 현재 별도 llms.txt/llms-full.txt가 없습니다.
별도 공식 개발 문서인 토스페이먼츠 개발자센터도 확인했지만, 앱인토스/TDS와 다른 제품군이고 전용 공식 MCP를 제공하므로 이 서버에는 합치지 않았습니다. 이 서버의 범위는 앱인토스 미니앱과 그 TDS 문서로 유지합니다. 공식 문서에 없는 콘솔/담당자 확인 사항은 field_notes로 큐레이션하며, 커뮤니티를 크롤하지 않습니다. 현재 send-message 이동 URL {{ 변수 }} 치환 노트의 근거는 랜딩 URL 동적 파라미터, 발송 건별 동적 랜딩 URL입니다.
sync_sources
문서를 수동으로 동기화합니다. 최신 문서가 필요할 때 사용합니다.
파라미터 | 타입 | 필수 | 설명 |
| boolean | X |
|
search_icons
토스 아이콘 카탈로그(toss_icons.json.gz)를 검색하고, 아이콘 타입별 추천 사용 코드를 안내합니다.
검색어: "icon-search-bold-mono"파라미터 | 타입 | 필수 | 설명 |
| string | O | 검색어 (아이콘 이름/URL 일부, 공백으로 구분된 키워드) |
| string | X | 타입 필터 ( |
| number | X | 최대 결과 수 (기본 10, 최대 30) |
빠른 판단 규칙
이름이
icon-/icn-면name기반 컴포넌트 (Icon,IconButton,Asset.Icon)이름이
u1F...면 URL 기반 (Asset.Image,Asset.ContentImage)
list_examples
검색 가능한 Apps in Toss 공식 예제와 SDK 버전을 보여줍니다.
파라미터 | 타입 | 필수 | 설명 |
| string | X | 플랫폼 필터 ( |
search_examples
공식 예제의 README와 선별된 소스 코드를 검색합니다.
파라미터 | 타입 | 필수 | 설명 |
| string | O | API, 함수, 기능 또는 코드 키워드 |
| string | X | 예제 ID 필터 ( |
| string | X |
|
| number | X | 최대 결과 수 (기본 5, 최대 20) |
각 결과에는 원본 저장소 경로, 줄 번호, commit SHA, SDK 버전, Apache-2.0 라이선스가 표시됩니다.
get_example_file
search_examples가 반환한 경로에서 원하는 줄 범위를 조회합니다. 한 번에 최대 400줄까지 반환합니다.
sync_examples
공식 예제 저장소 main의 최신 commit을 수동 확인합니다. force=true이면 같은 commit도 다시 다운로드하고 라이선스와 파일을 재검증합니다.
기술적 특징
토스 개발자 공식 문서 3개 문서군·6개 index/full 원천 자동 추적
ETag → Last-Modified → 본문 SHA256 순서의 변경 감지(ETag 없는 원천 지원)
앱인토스 개별 Markdown 페이지 수집 실패 시 루트
llms-full.txt폴백마크다운 헤더 기반 지능형 청킹 (H1 → H2 → H3 재귀 분할)
줄바꿈 없는 긴 HTML/table 행까지 청크 최대 3,000자 보장
2단계 키워드 검색 (정확 매칭 우선, 부분 매칭 폴백)
원천 validator 기반 변경 감지 + 로컬 캐시로 빠른 재시작
비동기 병렬 수집 (동시 8개 요청)
패키지 내장 범용 앱인토스 배포 실전 가이드
아이콘 카탈로그 압축 리소스(
toss_mcp/data/toss_icons.json.gz) 로드 지원공식 예제 GitHub API ETag + 최신 commit SHA 변경 감지
Apache-2.0 검증 후 README·package manifest·소스 코드만 allowlist 수집
이미지·로고·환경 파일·인증서·lockfile·생성 파일 제외
함수·hook·컴포넌트와 줄 범위를 보존하는 코드 전용 청킹
검증 또는 네트워크 장애 시 마지막 정상 예제 스냅샷 유지
동작 방식
공식 index/full 원천 6개 변경 감지
↓
앱인토스: index 링크의 개별 페이지 병렬 수집
TDS 2종: full 문서 수집
↓ (개별 페이지 누락 시 앱인토스 full 폴백)
마크다운 헤더 기반 청킹 (최대 3,000자)
↓
공식 문서 로컬 캐시 (~/.toss-mcp-cache/)
+
패키지 내장 배포 가이드
↓
소스 필터 가능한 키워드 검색
공식 예제 main commit 조건부 확인
↓ (SHA 변경 시)
GitHub tarball 다운로드
↓
Apache-2.0/NOTICE + 경로·크기 검증
↓
allowlist 텍스트 선별 + 코드 청킹
↓
원자적 예제 캐시 교체캐시: 시작 시 각 문서군의 index와 full 원천 validator를 비교하고, 변경이 없으면 캐시에서 로드합니다. ETag나 Last-Modified가 없으면 본문 SHA256을 비교합니다.
부분 장애: 갱신 중 특정 문서군 수집에 실패하면 해당 문서군의 기존 캐시를 유지합니다.
내장 가이드: 배포 가이드와 현장 노트는 패키지에서 매번 로드하므로 공식 문서 캐시에 섞이거나 오래된 캐시에 가려지지 않습니다. 현장 노트는 커뮤니티를 크롤하지 않고, 담당자 확인이 있는 항목만 큐레이션합니다.
재동기화:
sync_sources(force=True)호출 또는 캐시 디렉토리 삭제 후 재시작하면 됩니다.공식 예제 최신화: 매 실행 시 최신 SHA를 확인합니다. 실패하거나 라이선스가 달라지면 새 스냅샷을 거부하고 마지막 정상 캐시를 유지합니다.
공식 예제 출처: 검색 결과마다 commit 고정 원본 URL과 Apache-2.0 고지를 포함합니다.
공식 원천 실수집 검증
2026-08-10에 캐시 없는 상태로 공식 원천을 직접 수집하고 검색까지 확인한 결과입니다. 문서가 추가·삭제되면 개수는 달라질 수 있습니다.
소스 | 수집 문서 | 검색 청크 |
| 개별 Markdown 241개 | 1,480개 |
| full 문서 1개 | 177개 |
| full 문서 1개 | 370개 |
| 내장 문서 1개 | 1개 |
| 내장 노트 1개 | 1개 |
6개 index/full 원천이 모두 HTTP 200으로 응답하고 수집됐습니다.
연속으로 validator를 계산했을 때 6개 모두 같은 값으로 판정됐습니다.
ait deploy 검토 요청,미니앱 출시 롤백,IconButton검색을 각 대상 소스에서 확인했습니다.
프로젝트 구조
toss-mcp/
├── pyproject.toml
├── README.md
├── LICENSE
├── THIRD_PARTY_NOTICES.md
└── toss_mcp/
├── __init__.py
├── main.py # MCP 서버 엔트리포인트
├── collector.py # 문서 수집 (httpx 비동기)
├── chunker.py # 마크다운 청킹
├── searcher.py # 키워드 검색
├── example_collector.py # GitHub 최신 SHA·라이선스·allowlist 수집
├── example_chunker.py # Markdown/TS/TSX/JS 예제 청킹
├── example_searcher.py # 예제 검색·카탈로그
├── examples.py # 최신성 확인 + 스냅샷 구성
├── icons.py # 아이콘 카탈로그 로드/검색 + 타입별 추천
├── knowledge.py # 패키지 내장 보완 가이드 로드
├── cache.py # JSON 캐시 + 해시 관리
└── data/
├── toss_icons.json.gz
├── deployment_guide.md
├── field_notes/
│ └── send-message-landing-url.md
└── licenses/
└── apps-in-toss-examples-APACHE-2.0.txt라이선스
toss-mcp 자체 코드는 MIT License입니다.
런타임에 선별·캐시하는 toss/apps-in-toss-examples의 예제 자료는 Apache License 2.0이며, 해당 조건은 MIT로 대체되지 않습니다. 자세한 출처와 고지는 THIRD_PARTY_NOTICES.md를 참고하세요.
이 프로젝트는 독립적인 오픈소스 프로젝트이며 Toss의 보증이나 제휴를 의미하지 않습니다.
Available Tools
8 toolsget_example_fileA
선별된 공식 예제 파일의 지정 줄 범위를 조회합니다.
Args: path: search_examples가 반환한 저장소 상대 경로 start_line: 시작 줄 (1부터 시작) end_line: 끝 줄 (포함, 한 번에 최대 400줄)
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| end_line | No | ||
| start_line | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the operation is a query (조회), which implies read-only, and it specifies a maximum line range of 400 lines, which is a behavioral constraint. It does not mention errors, output structure, or authentication, but for a read operation the disclosed constraints are valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and efficient, with a single purpose statement and a clear parameter list. Every sentence adds information about how to use the tool, and it is well-structured by separating the main description from Args.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (line-range read with defaults and a max), the description covers all parameters and a key constraint (400-line max). An output schema exists, so return values are presumably defined there. The only gap is that it does not explicitly state what happens if line range exceeds file length or if path is invalid, but given the output schema presence, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains each parameter: 'path' is the relative repo path from search_examples, 'start_line' is inclusive 1-based, 'end_line' is inclusive, and the max of 400 lines total. This is beyond the raw schema and provides essential usage semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states that the tool retrieves a specified line range from a selected official example file, which is a specific action on a specific resource. It is differentiated from siblings like search_examples because it specifically retrieves file content, not searches. However, it does not explicitly name sibling alternatives, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context in a Korean-language note stating '가입한 공식 예제 파일의 지정 줄 범위를 조회합니다.' and parameter descriptions, including that 'path' must be the relative path returned by search_examples, which signals a prerequisite. It lacks an explicit statement of when to use this tool versus alternatives, but the usage context is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_examplesC
검색 가능한 Apps in Toss 공식 예제 목록을 보여줍니다.
Args: platform: 플랫폼 필터 (선택). webview, react_native, server
| Name | Required | Description | Default |
|---|---|---|---|
| platform | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description itself carries the full burden of disclosing behavior. It does not mention side effects, read-only nature, output format, rate limits, or any behavior beyond the basic action. This is a significant gap for a tool that likely performs a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a clear statement of purpose and a separate section for arguments. It contains no unnecessary fluff, making it efficient for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description is the sole source of context. It lacks details about the expected output structure, the meaning of 'searchable', or any hints about result size or pagination. This incompleteness could lead to incorrect assumptions by the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides some semantic value for the parameter 'platform' by listing possible values (webview, react_native, server) and indicating it is optional, which is not present in the schema (0% coverage). However, it does not explain what each value signifies or how filtering affects the results, leaving partial ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool shows a list of searchable Apps in the official Toss examples, which is specific and distinguishes it from sibling tools like search_docs or list_sources. The verb 'shows' is appropriate, though the term 'Apps' is slightly vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as search_examples or list_sources. There is no mention of typical use cases, prerequisites, or scenarios where this tool is preferred, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sourcesA
검색 가능한 공식/내장 문서 소스와 원천 URL을 보여줍니다.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. It adds context by specifying that only 'searchable official/built-in' sources are included and that URLs are returned. However, it does not explicitly state that this is a read-only operation, nor does it discuss auth or side effects, though 'shows' implies non-mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the main action and resource, and contains no redundant information. It is appropriately concise for a simple list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the zero-parameter signature and existence of an output schema, the description is largely complete. It could be improved by hinting at its role in the broader workflow (e.g., discovering sources before searching), but it adequately defines what the tool does for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so parameter explanation is unnecessary. Schema coverage is trivially 100%, and the description adds meaning by clarifying the tool's scope (listing sources) without needing to describe parameter syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'shows' and the resource ('searchable official/built-in documentation sources and source URLs'). It distinguishes itself from sibling tools like search_docs, sync_sources, and search_icons by focusing exclusively on listing available sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description does not mention search_docs for searching within these sources, sync_sources for updating them, or any exclusion criteria. It only states what the tool does without situational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsA
토스 개발자 문서와 내장 보완 자료를 검색합니다.
공식 스펙에 없는 콘솔/담당자 확인 동작(send-message 이동 URL의
{{ 변수 }} 치환 등)은 field_notes에 있습니다. apps_in_toss만
필터해도 관련 현장 노트는 함께 반환됩니다.
Args: query: 검색어 (공백으로 구분된 키워드) source: 소스 필터 (선택). list_sources 도구에서 지원값 확인 max_results: 최대 결과 수 (기본 10, 최대 30)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| source | No | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals that results include field notes (even when filtering by apps_in_toss) and that it covers material beyond the official spec. It does not mention side effects or permissions, but the read-only nature is implied and no contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a succinct purpose statement, a valuable note about field notes, and a clean Args list. Every sentence adds value without redundancy, and the structure is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 params, no annotations, and an output schema that likely explains return format), the description is complete: it specifies the search scope, parameter semantics, and cross-references list_sources. No critical gaps are apparent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains all three parameters in detail: query (space-separated keywords), source (optional, check list_sources), and max_results (default 10, max 30). This is essential because the schema has no descriptions (0% coverage in the input schema), and the description fully compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches Toss developer docs and built-in supplemental materials, using a specific verb (search) and resource (docs). It also distinguishes itself by mentioning the inclusion of field notes not in official specs, which differentiates it from sibling search_examples and search_icons.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use it (searching docs, including field notes) and explicitly points to the list_sources tool for valid source values. It does not explicitly exclude alternatives or state when not to use it, but the guidance is clear and relevant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_examplesA
Apps in Toss 공식 예제 코드와 README를 검색합니다.
Args: query: API, 함수, 기능 또는 코드 키워드 example: 예제 ID 필터 (선택). list_examples에서 확인 language: 언어 필터 (선택). markdown, json, typescript, tsx, javascript, jsx max_results: 최대 결과 수 (기본 5, 최대 20)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| example | No | ||
| language | No | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral details beyond what the schema implies. It doesn't mention pagination, return format, or potential limitations. However, the output schema exists, and this is a read-only search tool, but the description adds no transparency about what happens on no results or the nature of results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and structured as a docstring with an Args section. It is front-loaded with the core purpose and each parameter gets a line. It's efficient but could be slightly more structured with a clearer primary description separated from args.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description doesn't need to explain return values. The tool is a search function with a query and optional filters, and the description covers the main usage. However, it lacks some context on what typical results look like or how to combine filters, but overall it's fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the schema by explaining what each filter does and the acceptable language values. With 0% schema description coverage, it compensates by providing guidance on parameter usage, defaults, and constraints (max_results max 20).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches Toss official example code and READMEs, which is a specific verb-resource pair. It distinguishes from sibling tools like search_docs by focusing on examples and READMEs, and mentions the query keyword types (API, functions, features, code keywords).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description doesn't explicitly exclude conditions, it clearly lists optional filters (example, language, max_results) with their meanings and defaults, giving context on when to use them. It falls short of naming sibling alternatives, but the context of use is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_iconsA
토스 아이콘 카탈로그를 검색하고 타입별 추천 사용 코드를 안내합니다.
Args: query: 검색어 (아이콘 이름/URL 일부) icon_type: 타입 필터 (선택). "icon-", "icn-", "emoji/image" max_results: 최대 결과 수 (기본 10, 최대 30)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| icon_type | No | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 states the tool searches and provides usage codes, implying read-only behavior, but does not detail side effects, prerequisites, or response structure beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with one sentence defining the purpose followed by a structured argument documentation. No redundant information; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, the description is not required to detail return values. It provides parameter context and hints at usage codes. Minor improvement could be more context on the output format, but current is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining each parameter: query as search term, icon_type with examples ('icon-*', 'icn-*', 'emoji/image'), and max_results with default and maximum values. This adds significant meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches a specific icon catalog and provides usage code recommendations. Sibling tools search_docs and sync_sources are clearly different in domain, so purpose is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains parameters but does not explicitly state when to use this tool versus siblings. No when-not or alternative guidance is provided, leaving the agent to infer from tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_examplesC
Apps in Toss 공식 예제 main의 최신 커밋을 확인합니다.
Args: force: True이면 같은 commit이어도 다시 다운로드하고 검증
| Name | Required | Description | Default |
|---|---|---|---|
| force | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 it checks commits and can re-download/verify with force=true, but it does not state side effects (e.g., local file modifications, network access), prerequisites, or what happens when force=false. This is minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the main purpose, followed by a compact args section. Every sentence contributes useful information, though it is somewhat terse in Korean. The structure is clear and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is incomplete for a sync tool. It lacks context about the actual sync operation, side effects, and what 'check' leads to. Given that there is an output schema, return values are not needed, but behavioral context is under-specified for a tool that likely downloads and modifies local files.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides meaningful semantics for the 'force' parameter: 'True이면 같은 commit이어도 다시 다운로드하고 검증' explains the re-download and verify behavior. It adds value beyond the schema's boolean type, though it does not explicitly state the default behavior when force=false.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says it checks the latest commit of 'Toss 공식 예제 main', but the tool name is 'sync_examples', implying synchronization. The verb '확인' (check) does not fully convey the sync action, and the description does not distinguish from sibling tools like 'sync_sources'. The force argument hints at downloading/verifying, but the core purpose remains somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention sibling tools, exclusions, or prerequisites. The description only states what it does, not when it should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_sourcesA
문서를 수동으로 동기화합니다.
Args: force: True이면 캐시를 무시하고 강제 재수집
| Name | Required | Description | Default |
|---|---|---|---|
| force | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explains the force parameter but does not disclose side effects, required permissions, or whether the operation is destructive. Synchronization behavior is implied but not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose, no wasted words. Efficiently communicates the tool's action and the single parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no required fields, output schema exists), the description adequately covers purpose and parameter semantics. Lacks usage contextualization but is sufficient for a basic sync operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, but the description adds meaning by explaining that force=true ignores cache and forces re-collection. This significantly supplements the schema, which only provides type and default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool synchronizes documents manually, with a specific verb and resource. It distinctively differs from sibling search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like search_docs or search_icons. The description only mentions 'manually' but lacks context about automatic synchronization or other options.
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.
4 tool updates
v2.5.0- Added
get_example_file - Added
list_examples - Added
search_examples - Added
sync_examples
2 tool updates
v2.3.0- Added
list_sources - Changed
search_docs1 field changed- added
Input schema / properties / max_resultsAdded value: +{ + "default": 10, + "title": "Max Results", + "type": "integer" +}
3 tool updates
v2.1.1- First observed
search_docs - First observed
search_icons - First observed
sync_sources
TDQS
Scored across 8 tools
Each tool targets a distinct resource and action: docs search, source listing/syncing, example listing/searching/file retrieval/syncing, and icon search. No two tools appear to do the same thing.
All tool names follow a consistent verb_noun snake_case pattern (search_, list_, sync_, get_) with clear resource nouns. The naming is uniform and predictable.
8 tools is well-scoped for a developer resource search server covering docs, examples, and icons. Each tool serves a distinct purpose without unnecessary redundancy.
The surface covers searching, listing, and syncing for docs and examples, plus icon search and example file retrieval. A minor gap is the lack of a direct full-document retrieval tool for docs, but list_sources provides URLs as a workaround.
Maintenance
Related MCP Connectors
The documentation, as a tool your agent can call: 950+ AI-dev guides. Search + fetch tools.
Icons for agentic development: search & fetch 366,000+ open-source icons as SVG/PNG. No API key.
Versioned documentation registry and semantic search for AI tools and coding assistants.
Search @imqueue docs and scaffold typed services & clients from your AI coding agent.
Related MCP Servers
- FlicenseAqualityDmaintenanceProvides AI models with direct access to documentation for over 600 technologies from DevDocs.io, including popular languages, frameworks, and tools. It enables comprehensive searching, content retrieval, and offline access via an intelligent local caching system.122-
- AlicenseNot gradedqualityDmaintenanceEnables 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 npmISC
- FlicenseNot gradedqualityFmaintenanceEnables AI agents to search and retrieve Holochain documentation, including developer guides, HDK functions, and HDI API references.2-
- AlicenseNot gradedqualityBmaintenanceProvides AI agents with access to DFNS documentation, API reference, and SDK code through full-text search and type intelligence.11 npmMIT