| name | crawl-api-spec |
| description | Crawls exchange API documentation and generates structured markdown specs. Use when integrating a new exchange or updating API specifications. |
| disable-model-invocation | true |
| user-invocable | true |
| argument-hint | <์๋น์ค๋ช
> <๋ฌธ์URL> [์ถ๋ ฅํ์ผ๊ฒฝ๋ก] |
| allowed-tools | mcp__playwright__*, Write, Read |
| context | fork |
API ๋ฌธ์ ํฌ๋กค๋ง ๋ฐ ์คํ ๋ฌธ์ ์์ฑ
์
๋ ฅ
$ARGUMENTS ํ์: <์๋น์ค๋ช
> <๋ฌธ์URL> [์ถ๋ ฅํ์ผ๊ฒฝ๋ก]
์์:
upbit https://docs.upbit.com/kr/reference docs/exchange/upbit_openapi_spec.md
bithumb https://apidocs.bithumb.com docs/exchange/bithumb_openapi_spec.md
kis https://apiportal.koreainvestment.com docs/exchange/kis_openapi_spec.md
์คํ ์ ์ฐจ
Phase 1: ์ฌ์ดํธ ๊ตฌ์กฐ ํ์
- Playwright MCP
browser_navigate๋ก ๋ฌธ์ URL ์ ์
browser_snapshot์ผ๋ก ํ์ด์ง ๊ตฌ์กฐ ํ์ธ (์ฌ์ด๋๋ฐ ๋ค๋น๊ฒ์ด์
, API ์นดํ
๊ณ ๋ฆฌ)
- ์ฝ๊ด ๋์ ํ์
์ด ์์ผ๋ฉด ์๋ ํด๋ฆญํ์ฌ ํต๊ณผ
- API ์นดํ
๊ณ ๋ฆฌ ๋ชฉ๋ก๊ณผ ๊ฐ API ํ์ด์ง URL์ ์์ง
Phase 2: ๋ฐฐ์น ํฌ๋กค๋ง
browser_run_code๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์น ๋จ์(4~7๊ฐ ํ์ด์ง)๋ก ํฌ๋กค๋ง:
async (page) => {
const pages = ['url1', 'url2', ...];
const results = {};
for (const p of pages) {
await page.goto(p, { waitUntil: 'domcontentloaded', timeout: 15000 });
await page.waitForTimeout(1500);
const content = await page.evaluate(() => {
const article = document.querySelector('article') || document.querySelector('main') || document.body;
return article.innerText.substring(0, 5000);
});
results[p] = content;
}
return JSON.stringify(results);
}
- ๊ฐ ๋ฐฐ์น์์ ์ถ์ถํ ์ ๋ณด:
- API ์ด๋ฆ, Method (GET/POST/DELETE), URL ๊ฒฝ๋ก
- ์
๋ ฅ ํ๋ผ๋ฏธํฐ (์ด๋ฆ, ํ์
, ํ์์ฌ๋ถ, ์ค๋ช
)
- ์ถ๋ ฅ ํ๋ (์ด๋ฆ, ํ์
, ์ค๋ช
)
- Rate Limit, ์ธ์ฆ ๋ฐฉ์
- ํฌ๋กค๋ง ๋์ ์ฐ์ ์์:
- ํ์: ์ธ์ฆ, ์์ธ์กฐํ(ํ์ฌ๊ฐ/ํธ๊ฐ/์ฒด๊ฒฐ/์บ๋ค), ์ฃผ๋ฌธ(์์ฑ/์ทจ์/์กฐํ), ์๊ณ , WebSocket
- ์ ํ: ์
์ถ๊ธ, ์๋น์ค ์ํ, ๊ณต์ง ๋ฑ
Phase 3: ๋์ ๋ก๋ฉ ๋์
- JavaScript SPA ์ฌ์ดํธ์์ ๋ด์ฉ์ด ์ ๋ณด์ด๋ฉด:
browser_wait_for ์ฌ์ฉํ์ฌ ํน์ ํ
์คํธ ๋ก๋ฉ ๋๊ธฐ
browser_evaluate๋ก DOM ์ง์ ํ์
- ๊ทธ๋๋ ๋ถ๊ฐ๋ฅํ๋ฉด
[ํฌ๋กค๋ง ๋ถ๊ฐ - ์๋ ํ์ธ ํ์]๋ก ํ์
- ํ
์ด๋ธ์ด HTML table์ด ์๋ ์ปค์คํ
์ปดํฌ๋ํธ์ธ ๊ฒฝ์ฐ:
innerText ๊ธฐ๋ฐ ์ถ์ถ ํ ํ์ฑ
- ํญ/์ค๋ฐ๊ฟ ํจํด์ผ๋ก ํ๋ ๋ถ๋ฆฌ
Phase 4: ๋ฌธ์ ์์ฑ
- ์์ง๋ ๋ฐ์ดํฐ๋ฅผ ์๋ ํ์ค ํ์์ผ๋ก ์ ๋ฆฌ:
์ถ๋ ฅ ํ
ํ๋ฆฟ์ output-template.md๋ฅผ ์ฐธ์กฐํฉ๋๋ค.
์๋ฌ ๋์
| ์ํฉ | ๋์ |
|---|
| ์ฌ์ดํธ ์ ์ ๋ถ๊ฐ | 3ํ ์ฌ์๋ ํ ์คํจ ๋ณด๊ณ |
| ์ฝ๊ด/CAPTCHA ์ฐจ๋จ | ์ฌ์ฉ์์๊ฒ ์๋ ํต๊ณผ ์์ฒญ |
| ๋ด์ฉ ๋๋ฝ | [๋ฏธํ์ธ - ์๋ ํ์ธ ํ์]๋ก ํ์ |
| Rate Limit | ๋ฐฐ์น ๊ฐ 3์ด ๋๊ธฐ |