Nunchi Translator MCP
by jclee941
README.md
# nunchi-translator-mcp





> 한국어 우선 README — 본문은 한국어 단락을 먼저, 영어 보조 단락을 그 다음에 배치합니다.
## 한 줄 요약
`nunchi-translator-mcp`는 **눈치**(Nunchi) 기반 코칭, 확장, 소셜 분석 도구를 노출하는 **Model Context Protocol(MCP) 서버**입니다. HTTP와 stdio 두 가지 전송 방식을 지원하며, 호스트 LLM 클라이언트에서 도구로 호출할 수 있습니다.
## One-line Summary
`nunchi-translator-mcp` is a **Model Context Protocol (MCP) server** that exposes Nunchi-based coaching, expansion, and social-analysis tools. It ships with both HTTP and stdio transports so host LLM clients can register the tools directly.
## 상태 한눈에 보기 / Status at a Glance
| 항목 / Item | 값 / Value | 비고 / Notes |
| --- | --- | --- |
| 패키지명 / Package | `nunchi-translator-mcp` | `private: true` 사내 패키지 |
| 버전 / Version | `0.1.0` | 초기 실험 버전 |
| 런타임 / Runtime | Bun `1.3.10` | `oven/bun:1.3.10-alpine` 베이스 이미지 |
| 언어 / Language | TypeScript `^5.8` | `tsconfig.json` strict 모드 가정 |
| 전송 / Transports | HTTP (`:3000`) + stdio | `mcp:stdio` 스크립트 제공 |
| MCP SDK | `@modelcontextprotocol/sdk@1.29.0` | 2025 표준 SDK |
| 스키마 / Validation | `zod@4.4.3` | `nunchi-schemas.ts` |
| 린트 / Lint | Biome `^2.0.6` | `biome check .` |
| 테스트 / Test | Bun `test` | `bun test` |
| 컨테이너 / Container | Dockerfile 제공 | 멀티 스테이지, `:3000` 노출 |
| 문서 / Docs | `docs/kakao-cloud-git-source-build.md` | Kakao Cloud 빌드 가이드 |
| 운영 준비도 / Production | 실험 단계 / experimental | 인터페이스 안정화 전 |
## 빠른 흐름 / Quick Flow
1. 호스트 LLM 클라이언트가 MCP 클라이언트를 통해 `nunchi-translator-mcp`에 연결합니다.
2. `http-server.ts`(기본) 또는 `stdio-server.ts` 중 하나가 선택되어 MCP 핸드셰이크를 처리합니다.
3. `src/mcp/server.ts`가 등록된 도구 목록(코치·확장·소셜·메타데이터)을 클라이언트에 알립니다.
4. 클라이언트가 도구를 호출하면 `nunchi-coach.ts`, `nunchi-expansion.ts`, `nunchi-social-tools.ts` 중 해당 모듈이 `zod` 스키마로 입력을 검증합니다.
5. 결과가 MCP 응답으로 직렬화되어 호스트 모델에 반환됩니다.
## 목차 / Table of Contents
- [목적과 사용처 / Purpose and Audience](#목적과-사용처--purpose-and-audience)
- [패키지 구성 / Package Contents](#패키지-구성--package-contents)
- [아키텍처 / Architecture](#아키텍처--architecture)
- [빠른 시작 / Quickstart](#빠른-시작--quickstart)
- [설정 / Configuration](#설정--configuration)
- [명령어 / Commands Reference](#명령어--commands-reference)
- [로컬 개발 / Local Development](#로컬-개발--local-development)
- [테스트 / Testing](#테스트--testing)
- [Docker 배포 / Container Build](#docker-배포--container-build)
- [API와 진입점 / API and Entry Points](#api와-진입점--api-and-entry-points)
- [유지보수와 문의 / Maintainers and Contact](#유지보수와-문의--maintainers-and-contact)
- [추가 문서 / Further Documentation](#추가-문서--further-documentation)
## 목적과 사용처 / Purpose and Audience
`nunchi-translator-mcp`는 한국어권 사용자 상호작용에서 **눈치**(상황 맥락 읽기)를 보조하는 MCP 도구를 제공합니다. LLM 에이전트가 대화·관계·상황 데이터를 해석할 때, 다음을 위한 도구 표면을 노출합니다.
- `nunchi-coach` : 한국어 대화에서 어조·맥락 코칭
- `nunchi-expansion` : 짧은 입력을 확장·정제
- `nunchi-social-tools` : 사회적 신호를 분석하는 보조 도구
- `tool-metadata` : 등록된 도구의 메타데이터 질의
주 사용자는 **MCP 호스트(예: Claude Desktop, IDE 플러그인)**를 통해 본 서버를 등록하고, 모델이 필요할 때 위 도구를 호출하도록 설정하는 개발자/운영자입니다.
This project targets **MCP host application developers and operators** who want to plug Korean-context-aware Nunchi tools into their LLM agents without re-implementing them per client.
## 패키지 구성 / Package Contents
| 경로 / Path | 역할 / Role |
| --- | --- |
| `src/http-server.ts` | HTTP 전송 MCP 서버 진입점 (기본 `start`) |
| `src/stdio-server.ts` | stdio 전송 MCP 서버 진입점 (`mcp:stdio`) |
| `src/config.ts` | 환경 변수 기반 런타임 설정 |
| `src/mcp/server.ts` | MCP 서버 부트스트랩과 도구 등록 |
| `src/mcp/nunchi-coach.ts` | 코칭 도구 구현 |
| `src/mcp/nunchi-expansion.ts` | 확장 도구 구현 |
| `src/mcp/nunchi-social-tools.ts` | 소셜 분석 도구 구현 |
| `src/mcp/nunchi-schemas.ts` | `zod` 입력 스키마 정의 |
| `src/mcp/tool-metadata.ts` | 도구 메타데이터 질의 응답 |
| `tests/` | Bun 테스트 (`config`, `http-mcp`, `nunchi-coach`) |
| `docs/kakao-cloud-git-source-build.md` | Kakao Cloud Git 소스 빌드 절차 |
| `assets/` | PlayMCP, 제출용 이미지 자산 |
| `Dockerfile` | 멀티 스테이지 Bun 이미지 빌드 |
| `biome.json` | Biome 린트·포맷 규칙 |
## 아키텍처 / Architecture
본 서버는 단일 프로세스 MCP 서버이며, 전송 계층만 HTTP 또는 stdio로 갈립니다.
| 계층 / Layer | 모듈 / Module | 책임 / Responsibility |
| --- | --- | --- |
| Transport | `http-server.ts` | `:3000` HTTP MCP 핸드셰이크 |
| Transport | `stdio-server.ts` | 표준 입출력 MCP 핸드셰이크 |
| Boot | `mcp/server.ts` | SDK 서버 인스턴스화, 도구 등록 |
| Tool | `mcp/nunchi-coach.ts` | 코칭 시나리오 처리 |
| Tool | `mcp/nunchi-expansion.ts` | 입력 확장·정제 처리 |
| Tool | `mcp/nunchi-social-tools.ts` | 사회 신호 처리 |
| Schema | `mcp/nunchi-schemas.ts` | `zod` 검증 |
| Meta | `mcp/tool-metadata.ts` | 자기 기술(self-description) |
| Config | `config.ts` | 환경 변수 파싱·기본값 |
요청 흐름:
1. 클라이언트가 HTTP 또는 stdio로 MCP 초기화 요청 전송
2. `mcp/server.ts`가 등록된 도구 목록을 `ListTools` 응답으로 반환
3. 클라이언트가 특정 도구를 호출하면 해당 도구 모듈이 `nunchi-schemas.ts`로 입력을 검증
4. 도구 본 로직이 결과를 생성하고 SDK가 JSON-RPC 응답으로 직렬화
5. 호출자는 결과를 다시 모델 컨텍스트에 주입
## 빠른 시작 / Quickstart
### 1) 의존성 설치 / Install dependencies
```bash
bun install --frozen-lockfile
```
### 2) 개발 모드 (HTTP, 핫 리로드) / Dev (HTTP, hot reload)
```bash
bun run dev
```
### 3) stdio 모드로 실행 / Run in stdio mode
```bash
bun run mcp:stdio
```
### 4) 빌드 산출물 없이 즉시 검증 / One-shot verify
```bash
bun run verify
```
## 설정 / Configuration
본 서버는 `src/config.ts`를 통해 환경 변수를 읽습니다. 자세한 변수 목록은 `src/config.ts`를 직접 확인해 주세요. 컨테이너 기본값은 `PORT=3000`, `NODE_ENV=production`입니다.
| 변수 / Variable | 기본값 / Default | 용도 / Purpose |
| --- | --- | --- |
| `PORT` | `3000` | HTTP MCP 수신 포트 |
| `NODE_ENV` | `production` (컨테이너) | 런타임 모드 |
| 기타 MCP 옵션 | `src/config.ts` 참조 | 도구 동작 제어 |
민감한 값(예: 외부 LLM 호출 키)은 저장소 외부에서 주입해 주세요. 본 README는 예시로 비공개 IP나 컨테이너 번호를 하드코딩하지 않습니다.
## 명령어 / Commands Reference
| 명령 / Command | 설명 / Description |
| --- | --- |
| `bun run dev` | HTTP 서버 핫 리로드 개발 모드 |
| `bun run start` | 프로덕션 HTTP 서버 |
| `bun run mcp:stdio` | stdio 전송 MCP 서버 |
| `bun run typecheck` | `tsc --noEmit` 정적 타입 검사 |
| `bun run lint` | Biome 정적 분석 |
| `bun run format` | Biome 자동 수정 |
| `bun test` | Bun 테스트 러너 |
| `bun run verify` | lint + typecheck + test 일괄 실행 |
## 로컬 개발 / Local Development
- 런타임은 Bun `1.3.10` 이상을 권장합니다. Dockerfile과 동일한 베이스를 사용하면 환경 차이를 줄일 수 있습니다.
- 린트와 포맷은 Biome가 단일 소스입니다. 커밋 전 `bun run format`을 실행해 주세요.
- 새 도구를 추가할 때는 다음 순서를 권장합니다.
1. `src/mcp/nunchi-schemas.ts`에 `zod` 스키마 정의
2. 해당 기능 모듈(`nunchi-coach.ts` 등)에 핸들러 구현
3. `src/mcp/server.ts`에서 도구 등록
4. `tests/`에 단위 테스트 추가
5. `bun run verify`로 일괄 검증
## 테스트 / Testing
- 테스트 프레임워크: Bun 내장 `bun test`
- 테스트 위치: `tests/`
- 현재 포함된 테스트:
- `config.test.ts` — 설정 파싱 검증
- `http-mcp.test.ts` — HTTP 전송 MCP 동작 검증
- `nunchi-coach.test.ts` — 코칭 도구 동작 검증
```bash
bun test
```
새 도구를 등록한 경우, `bun run verify`로 정적 분석과 테스트를 함께 실행해 회귀를 방지하세요.
## Docker 배포 / Container Build
멀티 스테이지 Dockerfile이 제공됩니다. 빌드 산출물만 담는 경량 이미지를 만듭니다.
```bash
docker build -t nunchi-translator-mcp:0.1.0 .
docker run --rm -p 3000:3000 nunchi-translator-mcp:0.1.0
```
Kakao Cloud Git 소스 빌드를 사용하는 경우 `docs/kakao-cloud-git-source-build.md`의 절차를 참고하세요.
## API와 진입점 / API and Entry Points
MCP는 JSON-RPC 기반이지만 전송에 따라 진입 형태가 달라집니다.
| 전송 / Transport | 진입점 / Entry Point | 권장 호스트 / Suggested Host |
| --- | --- | --- |
| HTTP | `http://<host>:3000/mcp` (MCP 라우팅) | Claude Desktop, IDE MCP 플러그인 |
| stdio | `bun run src/stdio-server.ts` | 로컬 MCP 클라이언트 |
각 도구의 입력·출력 스키마는 `src/mcp/nunchi-schemas.ts`와 `src/mcp/tool-metadata.ts`를 통해 자체 설명(self-describing)됩니다. 자세한 도구 시그니처는 소스 코드를 직접 확인하세요.
## 유지보수와 문의 / Maintainers and Contact
이 저장소는 사내 비공개 패키지(`private: true`)이며 외부 배포를 전제로 하지 않습니다. 운영 및 변경 요청은 저장소 소유 팀에 문의해 주세요.
- 저장소 소유 / Owner: 본 저장소를 운영하는 사내 팀
- 이슈 트래커: 저장소 내 Issues 탭 사용
- 보안 이슈: 공개 이슈 대신 사내 보안 채널 사용
## 추가 문서 / Further Documentation
- `docs/kakao-cloud-git-source-build.md` — Kakao Cloud Git 소스 빌드 절차
- `CONTRIBUTING.md` — 기여 가이드 (해당 문서 우선)
- `LICENSE` — 라이선스 전문
- MCP 프로토콜 사양: Model Context Protocol 공식 문서
## 라이선스 / License
`LICENSE` 파일을 참조하세요. 본 패키지는 `private: true`로 표시되어 있으므로 외부 재배포를 금합니다.This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessUnresponsive