TSDoc 기반 LLM 문서 제공을 위한 MCP 서버 구축
프로그래밍/소프트웨어 개발
개발 툴
대상자
- 타겟: TypeScript 및 LLM(대규모 언어 모델)과 협업하는 개발자
- 난이도: 중간~고급 (TSDoc, MCP 프로토콜, Rspack 구성 등 기술적 지식 필요)
핵심 요약
- LLM의 한계:
@praha/byethrow
같은 새로운 라이브러리에 대한 지식 부족으로 오류 발생 - MCP 서버 역할:
TSDoc
문서를 기반으로 LLM에 최신 정보 제공 (@modelcontextprotocol/sdk
활용) - 구현 핵심:
TypeDoc
으로 Markdown 생성,Rspack
으로 ESM 패키징,ModuleReference/FunctionReference
도구 정의
섹션별 세부 요약
1. 문제 정의: LLM의 라이브러리 이해 한계
- LLM의 학습 데이터 한계: 최신 오픈소스 라이브러리(
@praha/byethrow
)에 대한 지식 부족 - 예시:
byethrow
사용 시Result
타입의pipe
,andThen
등 핵심 API 오인식 - 결과: 잘못된 함수 생성, 예제 코드 오류 발생
2. MCP 서버 개요 및 작동 방식
- MCP 프로토콜: LLM이 외부 도구(
TSDoc
) 사용 가능 - 작동 흐름:
- LLM → MCP 서버 요청
- MCP 서버 →
TSDoc
Markdown 문서 반환 - LLM → 정확한 코드 생성 및 설명
- 주요 기술:
@modelcontextprotocol/sdk
,Rslib
,TypeDoc
3. 구현 단계 및 구성 요소
- TSDoc 문서 생성:
```bash
npm install --save-dev typedoc typedoc-plugin-markdown
```
- Markdown 정제:
FunctionName
링크 제거 - Rspack 구성:
```ts
// rsbuild.config.ts
import { defineConfig } from '@rslib/core';
export default defineConfig({
tools: {
rspack: {
module: {
rules: [
{ test: /\.md$/, type: 'asset/source' }
]
}
}
}
});
```
- MCP 서버 설정:
```ts
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
const server = new McpServer({
name: '@praha/byethrow',
version: packageJson.version,
instructions: 'Use this server to retrieve up-to-date documentation...'
});
```
- 도구 정의:
ModuleReference
,FunctionReference
,TypeReference
등 생성
4. VSCode 설정 및 검증
- 설정 파일:
```json
{
"mcp": {
"servers": {
"my-mcp-server": {
"type": "stdio",
"command": "node",
"args": ["{path-to-mcp}/dist/index.js"]
}
}
}
}
```
- 검증 로그:
```
[info] Discovered 3 tools
```
결론
- 핵심 팁:
TSDoc
기반 MCP 서버 구축을 통해 LLM의 문서 이해 정확도 향상 - 구현 예시:
@praha/byethrow-mcp
라이브러리 사용,TypeDoc
+Rspack
구성 - 소스 코드: