LabelBridge
БесплатноНе проверенThis MCP server enables human-in-the-loop semantic labeling by creating self-contained HTML forms for ambiguous data and securely retrieving labeled results.
Описание
This MCP server enables human-in-the-loop semantic labeling by creating self-contained HTML forms for ambiguous data and securely retrieving labeled results.
README
AI가 처리하기 애매한 의미 판단을, 비전문가가 HTML 하나로 빠르게 채워 넣게 만들고, 그 결과를 다시 MCP가 AI-native structured context로 회수하는 human-in-the-loop labeling bridge입니다.
핵심 아이디어
LabelBridge는 LLM이 바로 판단하기 애매한 semantic labeling 작업을 사람에게 잠깐 빌려줍니다. MCP는 데이터 배열을 받아 self-contained HTML 설문지를 만들고, 사용자는 그 HTML에서 빈칸을 채운 뒤 답안을 돌려보냅니다. MCP는 이 결과를 다시 받아 원본 dictionary 배열에 라벨을 붙여 반환합니다.
카카오톡, 이메일, 드라이브, USB 같은 경로는 설문지를 옮기는 사용 맥락일 뿐입니다. 보안과 1회성은 플랫폼이 아니라 LabelBridge MCP의 one-time capability가 담당합니다.
완료 순간에는 파일을 직접 찾아 헤매지 않도록 먼저 OS 공유창을 열어 답안을 보낼 수 있게 했습니다. 공유창이 지원되지 않는 환경에서는 같은 화면에서 답안 내용 복사와 답안 파일 받기로 바로 이어집니다.
제공 도구
create_labeling_session- 배열 형태의 데이터를 받아 라벨링 HTML URL과 다운로드 URL을 만듭니다.
- 세션마다 256-bit capability와 AES-GCM 결과 암호화 키를 발급합니다.
ingest_labeling_result- 사용자가 HTML에서 내려받은 JSON 전체를 입력받습니다.
- 결과를 복호화하고 원본 batch hash, schema hash, item hash, item id, 필수 라벨, 만료 시간을 검증합니다.
- 최초 1회만 SQLite transaction으로 세션을
consumed처리하고 dictionary 배열을 반환합니다.
inspect_labeling_session- capability나 라벨 원문을 노출하지 않고 세션 상태를 확인합니다.
빠른 실행
npm install
npm run build
PORT=3000 HOST=0.0.0.0 npm start
MCP endpoint는 다음입니다.
http://localhost:3000/mcp
배포 환경에서는 기본적으로 Host/X-Forwarded-* 헤더에서 공개 URL을 추론합니다. 프록시가 해당 헤더를 전달하지 않는 환경에서만 PUBLIC_BASE_URL=https://YOUR_DEPLOYED_HOST를 명시하세요.
스모크 테스트
서버를 켠 뒤 다른 터미널에서 실행합니다.
SMOKE_MCP_URL=http://127.0.0.1:3000/mcp npm run smoke
테스트 전체:
npm run typecheck
npm test
npm run build
npm run check:submission
실제 MCP 왕복 테스트:
npm run build
PORT=3000 HOST=127.0.0.1 npm start
SMOKE_MCP_URL=http://127.0.0.1:3000/mcp npm run full-loop
데모 설문 URL만 만들기:
MCP_URL=http://127.0.0.1:3000/mcp npm run demo-form
GitHub Actions CI는 npm ci, typecheck, test, build, audit, Docker build, 컨테이너 /healthz, 컨테이너 MCP full-loop, PlayMCP tool metadata audit까지 확인합니다.
배포된 endpoint가 나오면 다음으로 공개 URL 계약을 한 번에 확인할 수 있습니다.
MCP_ENDPOINT=https://YOUR_DEPLOYED_HOST/mcp npm run check:endpoint
응답속도 조건도 같은 endpoint에 대해 확인할 수 있습니다.
MCP_ENDPOINT=https://YOUR_DEPLOYED_HOST/mcp npm run check:latency
Docker
PlayMCP의 Git 소스 빌드 화면에서 이 저장소의 Dockerfile을 사용하면 됩니다.
docker build -t labelbridge-mcp .
docker run --rm -p 3000:3000 \
-e LABELBRIDGE_SECRET=replace-with-a-long-random-secret \
labelbridge-mcp
대표 이미지는 루트의 playmcp-representative-image.png를 사용하세요.
사용 예시
create_labeling_session 입력 예시:
{
"task_title": "전자제품 사진 라벨링",
"task_description": "각 항목을 보고 의미 라벨을 짧게 채워 주세요.",
"items": [
{
"id": "photo_001",
"source": "카카오톡 나에게 보내기로 옮긴 에어컨 사진",
"hint": "전자제품"
},
{
"id": "memo_002",
"source": "회의 녹취 요약 문장",
"hint": "문서"
}
],
"expires_in_minutes": 1440
}
ingest_labeling_result는 HTML에서 공유, 복사, 또는 다운로드한 JSON 전체를 result_json에 넣습니다. 성공하면 이런 구조를 반환합니다.
{
"accepted": true,
"labeled_data": [
{
"id": "photo_001",
"source": "카카오톡 나에게 보내기로 옮긴 에어컨 사진",
"hint": "전자제품",
"labels": {
"label": "air_conditioner",
"confidence": "high"
},
"_labelbridge": {
"session_id": "...",
"batch_hash": "...",
"schema_hash": "...",
"item_hash": "...",
"consumed_at": "...",
"item_index": 0
}
}
]
}
보안 모델
LabelBridge의 1회성은 HTML 파일 자체가 아니라 MCP 회수 단계에서 보장됩니다.
- 세션마다 256-bit bearer capability를 생성합니다.
- 서버는 capability 원문을 저장하지 않고
HMAC-SHA256(capability)digest만 저장합니다. - 결과 파일은 브라우저에서 AES-256-GCM으로 암호화됩니다.
- 복호화된 payload는 schema hash, item count, issued/expires timestamp, per-item source hash와 맞아야 합니다.
- 첫 번째 유효 제출만 SQLite
BEGIN IMMEDIATEtransaction 안에서issued -> consumed로 바뀝니다. - 같은 결과 파일 재제출, batch hash 불일치, schema/item hash 불일치, 알 수 없는 item id, extra label field, 필수 라벨 누락, 만료 세션은 거부됩니다.
- HTML은 외부 네트워크 연결을 하지 않으며 CSP로 외부 리소스를 막습니다.
자세한 threat model은 docs/SECURITY.md를 보세요.
PlayMCP 제출 포인트
- 창의성: 일상적인 파일 전달 습관을 MCP 기반 human-in-the-loop 라벨링 루프로 바꿉니다.
- 편의성: 비전문가가 설치 없이 HTML 하나로 라벨링할 수 있습니다.
- 회수 UX: 완료 직후 답안 보내기로 공유창을 열고, 안 되면 복사/파일받기로 끝냅니다.
- 안정성: capability digest, AES-GCM, batch/schema/item hash, strict payload 검증, 원자적 consume을 기본 설계에 포함했습니다.
제출용 문구와 데모 시나리오는 docs/PLAYMCP_SUBMISSION.md에, 실제 입력 필드는 docs/PLAYMCP_FORM_VALUES.md에 정리되어 있습니다.
Установка LabelBridge
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/studyreadbook4ever/labelbridge-mcpFAQ
LabelBridge MCP бесплатный?
Да, LabelBridge MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для LabelBridge?
Нет, LabelBridge работает без API-ключей и переменных окружения.
LabelBridge — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить LabelBridge в Claude Desktop, Claude Code или Cursor?
Открой LabelBridge на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare LabelBridge with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
