投掷mcp
MCP服务器为AI编码代理提供TOS开发者文档和TOS内置图标信息
TOS开发者文档(应用程序Intos、TDS React Native、TDS Mobile) 最新内容 和TOS提供的有关图标的信息可供AI搜索 模型上下文协议(MCP) 服务器。
主要功能
- AI代理可以立即搜索TOS官方文档并将其用于回答。
- 搜索文档时按源筛选(
apps_in_toss,tds_react_native,tds_mobile)。 - 需要最新文档时
sync_sources可以手动同步到。 - 搜索TOS图标目录,快速查找图标名称/URL。
- 图标类型(
icon-*,icn-*,u1F...)的建议组件使用方法。
快速入门
必备条件
- Python 3.11+
- 紫外线 (使用uvx时)
远程运行(uvx)
以下所有客户端设置都使用相同的运行信息。
command:uvxargs:["--from", "git+https://github.com/chabinhwang/toss-mcp@main", "toss-mcp"]
克劳德代码
配置文件: ~/.claude/settings.json (mcpServers添加到)
{
"toss-docs": {
"command": "uvx",
"args": ["--from", "git+https://github.com/chabinhwang/toss-mcp@main", "toss-mcp"]
}
}法典
配置文件: ~/.codex/config.toml (mcp_servers添加到)
[mcp_servers.toss-docs]
command = "uvx"
args = ["--from", "git+https://github.com/chabinhwang/toss-mcp@main", "toss-mcp"]双子星命令行工具
配置文件: ~/.gemini/settings.json (mcpServers添加到)
{
"mcpServers": {
"toss-docs": {
"command": "uvx",
"args": ["--from", "git+https://github.com/chabinhwang/toss-mcp@main", "toss-mcp"]
}
}
}克劳德桌面版
配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
mcpServers在中添加以下内容:
{
"mcpServers": {
"toss-docs": {
"command": "uvx",
"args": ["--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
使用关键字搜索TOS开发者文档。
검색어: "앱인토스 결제 API"参数类型必需说明 |----------|------|------|------| | query 搜索词(空格分隔的关键字) | source |string|X|源过滤器(请参见下表)|
源列表
值说明 |---|------| | apps_in_toss |应用程序Intos| | tds_react_native |TDS反应原生| | tds_mobile |TDS移动|
sync_sources
手动同步文档。需要最新文档时使用。
参数类型必需说明 |----------|------|------|------| | force |布尔值|X| true忽略双面缓存后强制重新收集|
search_icons
TOS图标目录(toss_icons.json.gz),并指导您按图标类型使用推荐代码。
검색어: "icon-search-bold-mono"参数类型必需说明 |----------|------|------|------| | query 搜索词(图标名称/URL的一部分,空格分隔的关键字)| | icon_type |string|X|类型过滤器(icon-*, icn-*, emoji/image) | | max_results 最大结果数(默认值10,最大值30)
快速判断规则
- 名字
icon-/icn-面name基础组件(Icon,IconButton,Asset.Icon) - 名字
u1F...基于面URL(Asset.Image,Asset.ContentImage)
技术特性
- 自动收集TOS开发者文档的3个源(应用程序TOS、TDS React Native、TDS Mobile)
- 基于标记头的智能窃听(H1→H2→H3递归分割)
- 二级关键字搜索(正确匹配优先,部分匹配回退)
- 基于ETag的更改检测+本地缓存快速重启
- 异步并行收集(同时8个请求)
- 图标目录压缩资源(
toss_mcp/data/toss_icons.json.gz)加载支持
动作方式
llms.txt / llms-full.txt 다운로드
↓
링크 파싱 (seed) 또는 그대로 사용 (full)
↓
하위 페이지 병렬 수집 (동시 8개)
↓
마크다운 헤더 기반 청킹 (최대 3,000자)
↓
로컬 캐시 저장 (~/.toss-mcp-cache/)
↓
키워드 검색 제공- 缓存:启动时比较每个源的ETag以确认是否有更改,如果没有更改,请立即从缓存中加载。仅当检测到更改时,才会进行完全重新收集。
- 重新同步:
sync_sources(force=True)只需在调用或删除缓存目录后重新启动即可。
性能基准
基于2026-03-13,为了与当前本地运行的MCP分离,每次运行都是临时的 HOME使用隔离缓存后进行了实测。
- 执行路径:与实际服务器启动时间相同
lifespan标准_init_chunks()+_init_icons()测量到 - 重复次数:每个场景10次
- 场景A:
full_recollect_boot
启动时没有缓存 llms.txt / llms-full.txt和重新收集所有子文档
- 场景B:
etag_compare_boot
从同一个临时缓存接收一次后重新启动,只比较ETag,如果没有更改,则使用缓存,无需重新下载
- 注意:
etag_compare_boot实际上,所有10/10次都使用了“无更改,使用缓存”路径。
| 方案 | 平均值 | 中值 | 最小值 | 最大值 |
|---|---|---|---|---|
full_recollect_boot | 4.048秒 | 3.878秒 | 3.667秒 | 5.363秒 |
etag_compare_boot | 0.851秒 | 0.803秒 | 0.723秒 | 1.168秒 |
- 平均标准差:
3.197s - 基于中间值的差异:
3.075s - 按平均标准
etag_compare_boot假药4.8배快速 - 解释:TOS MCP比完全重新收集要快得多,如果像现在的代码一样在ETag比较后没有更改,则使用缓存的引导路径要快得多。
项目结构
toss-mcp/
├── pyproject.toml
├── README.md
├── LICENSE
└── toss_mcp/
├── __init__.py
├── main.py # MCP 서버 엔트리포인트
├── collector.py # 문서 수집 (httpx 비동기)
├── chunker.py # 마크다운 청킹
├── searcher.py # 키워드 검색
├── icons.py # 아이콘 카탈로그 로드/검색 + 타입별 추천
├── cache.py # JSON 캐시 + 해시 관리
└── data/
└── toss_icons.json.gz许可证
MIT许可证
