Entity Enricher는 /api/mcp에 임베디드 Model Context Protocol 서버를 제공합니다 — 스키마 목록 조회, 엔터티 강화, 결과 검토, 분류 경고 해결을 모두 하나의 Claude 채팅 안에서 처리합니다. 워크플로 편집기가 필요 없습니다.
형태가 다르면 사용 사례도 다릅니다. n8n과 Make 커넥터는 워크플로우 자동화를 위해 API를 감쌉니다: 트리거, 예약 실행, 다단계 파이프라인, 지속 상태. MCP는 대화형 채팅을 위해 감쌉니다: 즉석 질문, 탐색적 보강, 후속 명확화. 워크플로우는 배치 형태이고 채팅은 대화 형태입니다 — 표면이 다르고 UX도 다릅니다.
MCP만이 잠금 해제하는 킬러 기능: 대화형 분류 재개. 사전 점검 분류기가 엔터티를 거부하면(예: Planet 스키마에 대해 "Titan"을 보강하도록 요청했지만 Titan은 위성인 경우), n8n/Make는 비대화형이므로 자동으로 취소해야 합니다. MCP는 경고를 Claude에 표시하고, Claude가 확인을 요청하며, "예"라고 하면 분류기 없이 도구가 다시 실행됩니다. 파이프라인 중간 실패도, 처음부터 다시 실행할 필요도 없습니다.
claude.ai, Claude Code, Cursor, 그리고 표준 OAuth 흐름을 지원하는 모든 MCP 클라이언트에 사용합니다. 생성하거나 붙여넣을 API 키가 없으며, 클라이언트가 인증 서버를 자동으로 검색합니다.
https://entityenricher.ai/api/mcp/입니다.대화형 로그인이 아니라 JSON 파일로 구성하는 클라이언트(Claude Desktop, Continue, Zed)에 사용합니다.
ent_… 값을 복사하세요. 한 번만 표시됩니다.Claude Desktop의 경우 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS) 또는 %APPDATA%\Claude\claude_desktop_config.json(Windows)을 편집하세요:
{
"mcpServers": {
"entityenricher": {
"url": "https://entityenricher.ai/api/mcp/",
"headers": { "X-API-Key": "ent_your_key_here" }
}
}
}Claude Desktop을 다시 시작하세요. 동일한 스니펫이 Claude Code, Cursor, Continue, Zed 등 모든 MCP 호환 클라이언트에서 작동합니다.
새 채팅에서: "내 Entity Enricher 스키마를 나열한 다음, Claude Sonnet을 사용하여 제약회사 스키마에 대해 Sanofi를 강화하세요." Claude는 도구를 자동으로 발견하고 올바른 도구를 선택하며, 모델과 스키마 선택을 확인하도록 요청한 후 결과를 인라인으로 스트리밍합니다.
29개의 도구가 전체 보강 및 스키마 작성 영역을 다룹니다. 동작은 이들이 래핑하는 REST 엔드포인트와 동일합니다(동일한 검증, 청구, 요금제 제한) — 웹 UI가 수정되면 MCP에도 함께 반영됩니다. 장시간 실행 작업(배치 보강, 샘플 생성, 벤치마크 실행)은 비동기입니다: 시작 도구가 job_id를 반환하고, Claude가 get_job_status를 폴링하며, 작업이 완료되면 레코드에서 저장된 출력을 가져옵니다.
| 범주 | 도구 | 설명 |
|---|---|---|
| 검색 | list_models | 사용 가능한 LLM 모델과 요금제의 profile_limits를 나열하여 Claude가 HTTP 402에 도달하기 전에 스스로 속도를 조절하도록 합니다. |
| 스키마 | list_schemas | 조직에 저장된 JSON 스키마를 고정된 항목 순으로 나열합니다. |
| 스키마 | get_schema | UUID로 스키마의 전체 콘텐츠를 가져옵니다. |
| 스키마 | generate_sample | 엔티티 유형 설명에서 사실적인 샘플 엔티티를 생성합니다 — 스키마 생성 전의 자연스러운 첫 단계입니다. 첨부 파일이 있으면 대화형 플래너가 설명 요청 질문과 함께 일시 중지될 수 있습니다. |
| 스키마 | create_schema_from_sample | LLM을 통해 샘플 엔티티 딕셔너리에서 JSON 스키마를 생성하며, 선택적으로 업로드된 원본 문서(attachment_ids)를 기반으로 합니다. 결과는 자동 저장됩니다. |
| 스키마 | edit_schema | 기존 스키마를 자연어로 수정합니다. 새 콘텐츠와 5개의 후속 제안을 반환합니다. |
| 스키마 | save_schema | Claude가 직접 작성한 스키마를 저장합니다 — LLM 호출 없음, 비용 없음, 서버 측에서 검증됩니다. |
| 스키마 | update_schema | LLM 호출 없이 저장된 스키마의 이름 변경, 콘텐츠 교체, 재태그 또는 고정을 수행합니다. |
| 스키마 | delete_schema | UUID로 저장된 스키마를 소프트 삭제합니다. |
| 보강 | enrich_entity | 선택적 자동 융합이 포함된 다중 모델 강화입니다. 선택적 attachment_ids 목록을 허용합니다. 분류 불일치는 오류가 아닌 응답을 반환하므로 Claude가 사용자에게 확인 후 재시도를 요청할 수 있습니다. |
| 보강 | start_batch_enrichment | 최대 100개의 엔티티를 비동기로 보강합니다 — 엔티티별 전체 파이프라인과 자동 융합. job_id를 반환하며, 결과는 레코드에 저장됩니다. |
| 보강 | fetch_entities | 외부 REST API에서 서버 측으로 엔티티의 JSON 배열을 가져옵니다(bearer / api_key / basic 인증) — 배치 보강과 함께 사용됩니다. |
| 보강 | retry_expertises | 레코드에서 실패한 전문 분야만 다시 실행하고 복구된 값을 다시 병합합니다 — 이미 성공한 부분에 대한 재결제는 없습니다. |
| 보강 | merge_records | 2개 이상의 기존 레코드를 하나의 융합 결과로 병합합니다 — 규칙 기반 또는 LLM 중재 모델 사용. |
| 작업 | get_job_status | 모든 비동기 작업(배치, 샘플 생성, 벤치마크 실행)을 폴링합니다: 진행 카운터, 최종 요약, 대기 중인 설명 요청 질문. |
| 작업 | cancel_job | 대기 중, 실행 중 또는 일시 중지된 작업을 취소합니다. |
| 작업 | answer_job_question | 일시 중지된 작업의 설명 요청 질문에 답하고 작업을 재개합니다 — generate_sample의 대화형 부분입니다. |
| 벤치마크 | list_benchmark_scenarios | 저장된 벤치마크 시나리오(재사용 가능한 보강 테스트)를 나열합니다. |
| 벤치마크 | get_benchmark_scenario | 모델별 채점 결과(품질 / 비용 / 속도)를 포함한 단일 시나리오입니다. |
| 벤치마크 | create_benchmark_scenario | 시나리오를 생성합니다: 스키마 + 고정 엔티티 + 전략 + 채점 심사자. 소유자 역할과 벤치마크가 포함된 요금제가 필요합니다. |
| 벤치마크 | update_benchmark_scenario | 시나리오의 테스트 정의 또는 채점 구성을 업데이트합니다; 기존 결과는 오래된 것으로 표시됩니다. |
| 벤치마크 | set_benchmark_reference | 골드 기준 출력을 저장하고 검증됨으로 표시합니다 — 실행 전에 필요합니다. |
| 벤치마크 | delete_benchmark_scenario | 시나리오와 그 결과를 삭제합니다. |
| 벤치마크 | run_benchmark | 명시적 모델 목록, 선택한 제공자의 모든 활성 모델, 또는 모든 활성 모델에서 시나리오를 실행합니다 — 각 결과는 기준과 대조하여 자동 채점됩니다. |
| 레코드 | list_records | 유형, 성공 여부, model, 작업, 자유 텍스트 검색으로 필터링하여 과거 record를 살펴봅니다. |
| 레코드 | get_record | 하나의 레코드에 대한 전체 구조화된 출력 + 검증 오류입니다. |
| 레코드 | get_stats | 집계된 조직 통계: 총계, 성공률, 토큰, 비용. |
| 첨부 파일 | upload_attachment | base64 파일(filename, content_base64, media_type?)을 업로드하고 enrich_entity에서 사용할 첨부 파일 ID를 반환합니다. |
| 첨부 파일 | delete_attachment | ID로 첨부 파일을 삭제합니다 — 강화 후 유용한 정리 단계입니다. |
리소스를 사용하면 Claude가 도구 호출을 소모하지 않고 데이터를 탐색할 수 있으며, LLM 클라이언트는 이를 파일처럼 취급합니다. 두 리소스 유형 모두 저렴한 인라인 표시를 위해 Markdown으로 렌더링됩니다.
| URI 템플릿 | 설명 |
|---|---|
| enricher://schemas/{schema_id} | Markdown으로 렌더링된 저장된 스키마 — 메타데이터 헤더와 코드 블록으로 감싼 JSON 형태의 GeneratedJsonSchema입니다. |
| enricher://records/{record_id} | Markdown으로 렌더링된 과거 강화 레코드 — 메타데이터 + 구조화된 출력 + 검증 오류. |
enrich_entity에 분류 모델을 사용하도록 요청했는데 엔티티가 스키마 유형과 일치하지 않으면, 도구는 구조화된 세부 정보와 함께 오류가 아닌 응답을 반환합니다. Claude가 이를 읽어 근거를 사용자에게 제시하고, (사용자 확인 시) force_after_classification_warning=true로 재시도합니다 — 이 경우 재시도에서 분류기를 제거합니다.
{
"success": false,
"error_code": "classification_warning",
"message": "Pre-flight classification rejected the entity. ...",
"classification": {
"status": "mismatch",
"reasoning": "Titan is a moon of Saturn, not a planet.",
"confidence": 0.97
},
"job_id": "..."
}n8n과 Make는 파이프라인 도중에 사용자에게 물어볼 수 없기 때문에 이 상태에서 자동으로 취소됩니다. MCP는 물어볼 수 있으며, 바로 이 차이 하나가 커넥터가 존재하는 이유입니다.
동일한 대화형 기능이 두 번째 흐름을 지원합니다: generate_sample이 원본 문서와 함께 실행되면, 플래너가 구조적 설명 요청 질문과 함께 일시 중지될 수 있습니다. Claude가 이를 사용자에게 전달하고 answer_job_question으로 작업을 재개합니다 — 샘플이 생성될 때까지 반복적으로 진행됩니다.
도구 오류는 error_code 필드가 있는 구조화된 딕셔너리로 변환되어, Claude가 자유 텍스트를 파싱하는 대신 패턴 매칭을 할 수 있습니다. HTTP 계층은 명확하게 매핑됩니다: 402 → 할당량 또는 credit 오류, 422 → classification 경고, 504 → 타임아웃, 502 → 업스트림 LLM 실패.
| error_code | 시점 |
|---|---|
| invalid_request | 잘못된 형식의 UUID, 상호 배타적인 인수(schema_id + target_schema), 또는 요청 본문 검증 실패. |
| prompt_limit_reached | 일별/주별/월별 prompt 할당량이 소진되었습니다(HTTP 402). 본문에 기간, 한도, 사용량, 필요량이 포함됩니다. |
| insufficient_credits | organization에 결제가 활성화되어 있으나 credit 잔액이 너무 적어 작업을 시작할 수 없습니다(HTTP 402). 본문에 잔액과 구매 URL이 포함됩니다. |
| model_limit_exceeded | 요금제가 허용하는 것보다 많은 모델을 요청했습니다(HTTP 402). 한도와 요청 수를 반환합니다. |
| language_limit_exceeded | 요금제가 허용하는 것보다 많은 언어를 요청했습니다(HTTP 402). |
| concurrent_job_limit_reached | 이 organization에 활성 enrichment 작업이 너무 많습니다. 기다리거나 요금제를 업그레이드하세요. |
| classification_warning | ⚡ 오류 아님: 사전 검사 classifier가 entity를 거부했습니다. 응답에 classification 컨텍스트가 포함되어 있어 Claude가 사용자에게 확인을 요청하고 force_after_classification_warning=true로 재시도할 수 있습니다. |
| benchmarks_not_in_plan | 벤치마크 도구에는 소유자 역할과 Model Benchmarks가 포함된 요금제가 필요합니다(HTTP 403). |
| enrichment_timeout | 작업이 timeout_seconds를 초과했습니다. 모델 수를 줄이거나 엔터티를 분할하는 것을 권장합니다. |
| schema_generation_timeout | 스키마 생성이 timeout_seconds를 초과했습니다. |
| schema_generation_failed | 스키마 생성 중 업스트림 LLM 오류가 발생했습니다 (HTTP 502). |
| cancelled | 작업이 실행 도중 취소되었습니다(HTTP 499). |
| not_found | 스키마 또는 레코드 ID가 조직에 존재하지 않습니다. |
| http_error | 구조화된 세부 정보 본문이 없는 HTTP 오류에 대한 포괄 처리입니다. |
get_stats는 채팅 측 요약을 제공하며, 전체 대시보드는 앱에 유지됩니다.