대상: 고객사 관리자 / 사내 개발자 — Studio 에서 툴킷을 만들고 WRKS AI 에 연결해서 사용하는 전 과정 선행 조건: 커넥터 설치 완료 (Connector 설치 가이드 참고) 소요 시간: 단순 DB 툴킷 1개 기준 약 10~20 분
1. 툴킷 (Toolkit) 이 무엇인가요?
툴킷 은 사내 시스템 1개 (예: ERP DB 1개, 사내 REST API 1개) 를 WRKS AI 가 호출할 수 있는 도구 묶음 으로 등록한 단위입니다.
┌─────────────────────────────────────────┐
│ Studio 에서 1개 툴킷 = 1개 사내 시스템 │
└─────────────────────────────────────────┘
WRKS AI ─ MCP 도구 호출 ─ Hub ─ 커넥터 (mTLS 터널) ─ 사내 DB / API
한 사내 시스템에 여러 도구 (예: 조회·집계·등록) 가 있어도 툴킷 1개 로 묶입니다.
툴킷 종류
| 종류 | 사례 | 작동 방식 |
|---|---|---|
| HTTP 툴킷 | 사내 REST API, SAP OData, ERP 외부 API | OpenAPI 명세 (JSON / YAML) 로 도구 자동 생성 |
| Database 툴킷 | PostgreSQL / MySQL / MS SQL / Oracle | describe_schema (스키마 조회) + execute_query (SELECT 실행) 두 가지 표준 도구 자동 제공 |
2. 사전 준비
- 커넥터가 "연결됨" 상태 — Studio 의 "커넥터" 메뉴에서 확인
- 사내 시스템 접속 정보 — DB 호스트/포트/DB명/사용자명, API base URL 등
- 자격증명은 커넥터 호스트의 secrets 파일에 저장 — 비밀번호는 Studio 에 직접 입력 X (다음 섹션 참고)
자격증명 secrets 파일 만드는 법은 Connector 설치 가이드 의 4-3 절 참고.
3. 비밀번호 등 변수 (Secrets) 처리 원칙
Studio 에 비밀번호를 평문으로 입력하지 마세요. WRKS Hub 는 비밀번호를 저장하지 않고, placeholder 만 저장합니다. 실제 값은 커넥터가 호출 직전 사내 secrets 파일에서 치환합니다.
Studio 에 입력하는 값: postgres://erp_user:${DB_PASSWORD}@db.internal:5432/erp
▲
이 부분이 placeholder
(변수명만 적음)
커넥터 호스트의 파일: /etc/mcp-connector/secrets/erp.env
DB_PASSWORD=실제비밀번호값
→ 호출 직전 커넥터가 치환:
postgres://erp_user:실제비밀번호값@db.internal:5432/erp
(Hub 메모리에도 잠시도 머무르지 않음)
Placeholder 규칙
| 형식 | 사용처 | 예시 |
|---|---|---|
${변수명} | DB URL, HTTP 인증 헤더 등 어디든 | ${DB_PASSWORD}, ${ERP_TOKEN} |
| 변수명 컨벤션 | 대문자 + 숫자 + 언더스코어 | DB_PASSWORD ✓ / db-password ✗ |
| 같은 변수 여러 곳 재사용 | OK | URL 과 인증 헤더 둘 다 ${API_KEY} |
secrets 파일 예시 (커넥터 호스트)
/etc/mcp-connector/secrets/erp.env:
DB_PASSWORD=Pa55word!2024
DB_USER=erp_readonly
ERP_TOKEN=Bearer-token-from-erp
SAP_USER=mcpuser
SAP_PASS=sap-password-123
파일명은 자유 (
erp.env,db.env,sap.env등). 폴더 안의 모든*.env가 자동 로드.
어떤 필드에 placeholder 를 쓸지 — 선택 정책
| 필드 | 평문 입력 | placeholder 사용 | 권장 |
|---|---|---|---|
| 비밀번호 / 토큰 / API Key | ✗ (금지) | ✅ 항상 placeholder (${DB_PASSWORD} 등) | ✅ |
| Host / Port / Database / User | ✅ (가능) | ✅ (선택 — ${DB_HOST}, ${DB_NAME} 등) | 상황 |
| Base URL / OpenAPI URL | ✅ (가능) | ✅ (선택) | 상황 |
- 항상 placeholder: 비밀번호 / 토큰 / API Key — 노출되면 보안 사고가 나는 값들. Hub DB 에 평문 저장 자체를 막아야 함.
- 선택: Host / Database / User 등 토폴로지 정보 — 평문이어도 직접적인 보안 사고는 아니지만, Hub DB 에 토폴로지가 그대로 저장되는 게 부담스러우면 모두 placeholder 로 작성. 이 경우 secrets 파일에 같이 적어두면 됨.
- 두 방식은 혼용 가능. 예: Host 만 평문, 나머지는 placeholder.
정책 결정: 사내 보안팀이 토폴로지 평문 저장도 금지하면 "모두 placeholder", 그렇지 않으면 비밀번호만 placeholder 로 두고 나머지는 평문 — 둘 다 정상 동작합니다.
4. HTTP 툴킷 만들기 (REST API / SAP OData)
4-1. "+ 새 Toolkit" 시작
Studio 상단 메뉴 "툴킷" → 우측 상단 "+ 새 Toolkit" 클릭.

4-2. 기본 정보 입력
| 필드 | 입력값 예시 | 설명 |
|---|---|---|
| 종류 | "HTTP" 선택 | OpenAPI 명세 기반 |
| 이름 | erp-api | 영문/숫자/하이픈. WRKS AI 가 도구 이름 prefix 로 사용 |
| 커넥터 | 드롭다운에서 선택 | 미리 설치한 커넥터 |
| Base URL | https://erp.internal.company.com | 사내 API base URL |
4-3. OpenAPI 명세 입력
3가지 방법 중 택일:
| 방법 | 언제 사용 |
|---|---|
| 파일 업로드 | OpenAPI JSON / YAML 파일이 있을 때 |
| 텍스트 붙여넣기 | JSON 을 직접 복사 |
| URL 에서 가져오기 | API 가 swagger 같은 명세 endpoint 제공 시 (예: https://erp.internal/api-docs-json) — 커넥터를 통해 가져오므로 사내 URL 도 OK |
SAP ECC 사용 시: OData
$metadataXML URL 을 그대로 입력하면 자동으로 OpenAPI 로 변환됩니다.

4-4. 인증 설정
Studio 인증 방식 라디오 순서 (실제 UI): None → API Key (헤더 기반) → Basic Auth (사내 SAP / ECC) → OAuth (per-user, WRKS 중계) → OAuth Client Credentials (M2M).
| 인증 종류 | 사용처 | placeholder 예시 |
|---|---|---|
| None | 인증 불필요한 API | — |
| API Key (헤더 기반) | X-API-Key: xxx 식 | ${API_KEY} |
| Basic Auth (사내 SAP / ECC) | Authorization: Basic base64(user:pass) | ${SAP_USER} / ${SAP_PASS} |
| OAuth (per-user, WRKS 중계) | 사용자별 다른 토큰 — Hub 가 외부 OAuth 를 대행해서 사용자마다 다른 access_token 발급·저장·자동 갱신 | 하단 "OAuth per-user 툴킷 만들기" 참고 |
| OAuth Client Credentials (M2M) | 사용자 무관, 시스템 계정으로 API 호출 (예: Salesforce/Oracle APEX) | ${OAUTH_CLIENT_ID} / ${OAUTH_CLIENT_SECRET} |
"생성" 버튼 클릭 → 툴킷 생성 + 도구 자동 추출 + 도구 목록 페이지 이동.
4-5. OAuth 두 방식 — 언제 어느 걸 쓰나요?
두 OAuth 방식은 누구의 권한으로 API 를 호출하는가 로 갈립니다.
| 항목 | OAuth per-user (oauth_user) | OAuth Client Credentials (client_credentials) |
|---|---|---|
| 누구의 권한 | 사용자 (Alice, Bob …) 개인 | 시스템 계정 1개 (공용) |
| 토큰 발급 시점 | Alice 가 처음 도구 호출 시 로그인 화면 → 승인 | Connector 가 시작 시 client_id/secret 으로 token 자동 발급 |
| 사용자별 데이터 격리 | 예 (Alice 는 자기 데이터만) | 아니오 (모두 같은 계정으로 조회) |
| 대표 예시 | Google Drive (개인 문서), Salesforce (개인 리드) | Oracle APEX API, Auth0 M2M, 내부 Salesforce 조회 |
| Studio 인증 방식 선택 | OAuth (per-user, WRKS 중계) | OAuth Client Credentials (M2M) |
| 실제 client_id/secret 보관 | Connector secrets/*.env (Hub 는 이름만) | Connector secrets/*.env (Hub 는 이름만) |
| WRKS AI 등록 시 인증 방식 | OAuth (DCR) 선택 — MCP URL 하나만 붙여넣으면 자동 등록 | API Key (커넥터가 만든 토큰이 알아서 헤더에 실림) |
선택 팁: "이 API 결과가 사용자마다 달라져야 하는가?" 예 → per-user. 아니오 → client_credentials. per-user 는 사용자마다 로그인 화면을 봐야 하고 토큰 저장·refresh 흐름이 복잡하니, 사용자 격리가 정말 필요할 때만.
4-6. OAuth per-user 툴킷 만들기 (oauth_user)
대상 시스템이 사용자별로 다른 권한 을 요구하는 경우 (예: 각 직원이 자기 Google Drive 파일만 보게) 이 authType 을 씁니다. Hub 가 OAuth Authorization Server 역할을 맡아 사용자별로 외부 서비스 로그인 화면을 대행해 띄우고 access_token 을 발급·저장· 자동 갱신합니다.
Studio 툴킷 생성 시 또는 이후 툴킷 상세의 "인증" 섹션에서 변경/편집 가능. 인증 방식 OAuth (per-user, WRKS 중계) 선택 → 다음 6개 필드 입력:

| 필드 | 의미 | 예시 |
|---|---|---|
| Authorization endpoint URL * | 외부 OAuth 서비스의 승인 endpoint | https://accounts.google.com/o/oauth2/v2/auth |
| Token endpoint URL * | 외부 서비스의 code → token 교환 endpoint | https://oauth2.googleapis.com/token |
| Scope (선택, 공백 구분) | 외부 서비스에서 요구하는 최소 권한. Entra ID (M365) 는 offline_access 필수 포함 — 없으면 refresh_token 발급 안 됨 | openid email profile drive.readonly |
| Client ID placeholder * | 외부 OAuth 앱의 Client ID 를 담을 secret 이름 (실제 값 아님). ${VAR} placeholder 규약 | ${OAUTH_CLIENT_ID} (또는 ${GOOGLE_CLIENT_ID} 등 provider 별 접두어) |
| Client Secret placeholder * | 외부 OAuth 앱의 Client Secret 을 담을 secret 이름. 마찬가지로 placeholder | ${OAUTH_CLIENT_SECRET} |
| Userinfo endpoint URL (선택) | 사용자 profile 조회 endpoint. 발급된 토큰의 소유자 확인용 | https://openidconnect.googleapis.com/v1/userinfo |
핵심 규칙 (반드시 지킬 것):
- secret 값은 Studio 에 저장 안 함. clientIdVar / clientSecretVar 는 이름
(
${OAUTH_CLIENT_ID}등) 만. 실제 값은 커넥터의/etc/mcp-connector/secrets/*.env파일에 한 줄로. §3 의 placeholder 규약과 동일. - 외부 OAuth 앱의 Callback URL 은 엔드포인트 발급 후 확인 가능. 발급 결과
카드에 "사내 OAuth 앱 등록용" 섹션에서
https://<hub>/oauth/<slug>/callback형태로 표시. 이 URL 을 외부 OAuth 앱 (Google Cloud Console 의 "승인된 리디렉션 URI" · Azure AD 의 "Redirect URI" 등) 에 미리 등록해야 사용자가 로그인 화면에서redirect_uri_mismatch없이 진입 가능. - Google 대응 시 Hub 이 자동으로
access_type=offline+prompt=consent파라미터를 붙여 refresh_token 을 확보합니다. 별도 설정 불필요. - 등록 후 WRKS AI 쪽 도구 등록 절차는 WRKS AI 연동 가이드 §9 "OAuth (per-user) 툴킷 등록" 참고.
secrets 파일 예 (커넥터 호스트):
# /etc/mcp-connector/secrets/google.env
OAUTH_CLIENT_ID=123456789.apps.googleusercontent.com
OAUTH_CLIENT_SECRET=GOCSPX-xxxxxxxxxxxxxxxxx
여러 provider 를 같은 커넥터에서 쓴다면 접두어로 구분:
OAUTH_GOOGLE_CLIENT_ID,OAUTH_AZURE_CLIENT_ID등. Studio 의 placeholder 도 그에 맞춰 지정.
4-7. Client Credentials 툴킷 만들기 (M2M)
Studio → "OAuth Client Credentials (M2M)" 선택 시 나오는 필드:
| 필드 | 설명 | 예시 |
|---|---|---|
| Token URL | 외부 OAuth 서비스의 token endpoint | https://accounts.example.com/oauth2/token |
| Client 인증 방식 | Basic Auth 헤더 (권장) / Request Body | Basic Auth 헤더 |
| Client ID placeholder | Connector env var 이름 (실제 값 아님) | ${OAUTH_CLIENT_ID} |
| Client Secret placeholder | 위와 동일 | ${OAUTH_CLIENT_SECRET} |
| Scope (선택) | 공백 구분, 외부 서비스가 요구하는 최소 권한 | read:orders write:leads |
Client 인증 방식 선택 팁: 신규 등록은 Basic Auth 헤더 (권장) 로 시작. Oracle APEX ORDS · Ping · 대부분 사내 IdP 는 Basic 만 허용합니다. 저장 후에도
invalid_client오류가 계속 뜨면 Request Body 로 바꿔보세요 (Auth0 · Salesforce 계열은 body 방식만 허용하는 경우도 있음). 이 옵션은 커넥터 v0.2.6 이상 에서만 동작합니다.
저장 후 Connector secrets/*.env 에 실제 값 놓기:
OAUTH_CLIENT_ID=abc123
OAUTH_CLIENT_SECRET=xyz789
커넥터는 매 도구 호출 전 (또는 캐시된 token 만료 시) Token URL 로
grant_type=client_credentials 요청 → 받은 access_token 을 Authorization
헤더에 자동 실어 대상 API 로 forward. Hub / Studio 는 이 흐름에 개입하지
않음.
WRKS AI 등록 시 인증 방식: API Key 선택 (per-user 와 다름). Hub
엔드포인트는 그냥 static Bearer 로 노출되고, 사용자 매핑은 이 흐름에서
무의미합니다.
5. Database 툴킷 만들기
5-1. 공통 흐름
Studio 상단 메뉴 "툴킷" → "+ 새 Toolkit" → 종류 "Database" 선택.
| 필드 | 설명 |
|---|---|
| 이름 | 영문/숫자/하이픈. 자동으로 db: prefix 가 붙음 (예: db:erp-prod) |
| 커넥터 | 사내망 안의 커넥터 선택 |
| Dialect | PostgreSQL / MySQL / MS SQL / Oracle DB 선택 |
| Host | DB 호스트 주소 (커넥터 호스트에서 접근 가능해야 함). 평문 OR ${DB_HOST} |
| Port | dialect 별 default 값 자동 채워짐 (5432 / 3306 / 1433 / 1521). 평문 OR ${DB_PORT} |
| Database | DB 이름 (또는 Oracle 의 SERVICE_NAME). 평문 OR ${DB_NAME} |
| User | DB 사용자명. 읽기 전용 권한 권장. 평문 OR ${DB_USER} |
| 비밀번호 (환경변수) | 반드시 placeholder — ${DB_PASSWORD} (실제 값 입력 금지) |
| SSL/TLS | 보통 "사용 (CA 검증 없음) — 권장 default" 선택 |
어떤 필드든
${VAR}형식으로 placeholder 사용 가능. 비밀번호는 무조건 placeholder, 나머지 (Host / Port / Database / User) 는 사내 정책에 따라 평문/placeholder 둘 다 OK — 자세한 정책은 §3 의 "어떤 필드에 placeholder 를 쓸지" 참고.

5-2. Dialect 별 입력 예시
PostgreSQL
| 필드 | 값 |
|---|---|
| Host | pg-erp.internal |
| Port | 5432 |
| Database | erp |
| User | erp_readonly |
| 비밀번호 | ${DB_PASSWORD} |
| SSL | 사용 (CA 검증 없음) — 사내 사설 인증서일 때 권장 |
미리보기에 표시되는 최종 baseUrl:
postgres://erp_readonly:${DB_PASSWORD}@pg-erp.internal:5432/erp
MySQL
| 필드 | 값 |
|---|---|
| Host | mysql-app.internal |
| Port | 3306 |
| Database | appdb |
| User | app_readonly |
| 비밀번호 | ${DB_PASSWORD} |
| SSL | 사용 (CA 검증 없음) |
MS SQL (SQL Server)
| 필드 | 값 |
|---|---|
| Host | mssql-erp.internal |
| Port | 1433 |
| Database | ERPProd |
| User | erp_reader |
| 비밀번호 | ${MSSQL_PASS} |
| SSL | disable / require / verify 환경 맞춰 |
비밀번호에
@같은 특수문자가 있으면 secrets 파일에서 따옴표 처리 필요할 수 있음.
Oracle DB
| 필드 | 값 |
|---|---|
| Host | oracle-erp.internal |
| Port | 1521 |
| Database | ERPSVC ← SERVICE_NAME (SID 가 아니라) |
| User | mcp_reader |
| 비밀번호 | ${ORACLE_PASS} |
| SSL | disable (사내망) 또는 require (TCPS) |
미리보기:
oracle://mcp_reader:${ORACLE_PASS}@oracle-erp.internal:1521/ERPSVC11g 이상 모든 버전 지원 (Thin 모드 자동, Instant Client 불필요).
5-3. 자동 생성되는 도구 2개
DB 툴킷은 OpenAPI 명세 입력 불필요. 자동으로 두 도구 생성:
| 도구 이름 | 역할 |
|---|---|
db_<툴킷이름>_describe_schema | DB 의 테이블 / 컬럼 / 타입 목록 반환. WRKS AI 가 SQL 만들기 전에 호출 |
db_<툴킷이름>_execute_query | 읽기 전용 (SELECT / WITH) SQL 실행. DDL / DML 자동 거부, 100 행 제한 |
DB 사용자 권한은 SELECT 만 권장 — execute_query 가 코드 단에서 SELECT 만 허용하지만, DB 레벨에서도 보호하는 게 안전.
5-4. secrets 파일 확인
DB 툴킷 만든 직후 화면 하단에 안내 표시:
Connector 의 secrets 폴더에 다음 한 줄 추가하세요: DB_PASSWORD=실제비밀번호
커넥터 호스트의 /etc/mcp-connector/secrets/<파일>.env 에 한 줄 추가하면 1초 내 자동 반영 (재시작 불필요).
6. 도구 (Tools) 페이지 — 만든 도구 살펴보기
생성된 툴킷 카드 → "도구" 탭 클릭.

표 항목:
| 컬럼 | 의미 |
|---|---|
| slug | WRKS AI 가 호출할 도구 이름 (예: db_erp_prod_describe_schema). 편집 가능 |
| 설명 | WRKS AI 가 도구 선택 시 참고하는 설명. 여기를 좋게 쓰면 AI 가 더 정확히 호출 |
| 파라미터 | 도구가 받는 인자 목록 |
| 활성 | 토글로 도구별 개별 on/off |
| AI 추천 | ✨ 버튼 — 설명을 LLM 이 자동 개선 |
7. 도구 테스트 호출
도구 행의 ▶ 테스트 버튼 → 모달이 열림.

- Tool: 도구 드롭다운
- Arguments (JSON): 인자 입력. DB describe_schema 는
{}면 됨. execute_query 는{"sql": "SELECT 1"}식 - 호출 버튼 → 실제 사내 시스템 호출 → 결과를 모달 하단에 표시
이 흐름은 WRKS AI 가 호출할 때와 완전히 동일한 경로 (Hub → 커넥터 → 사내 시스템). 여기서 OK 면 AI 도 OK.
테스트 실패 시 확인:
connector_not_connected— 커넥터 상태 (Studio 의 커넥터 페이지)placeholder_unresolved: ${DB_PASSWORD}— secrets 파일에 변수 누락- DB 측 에러 (인증 실패, 호스트 도달 불가) — 커넥터 호스트에서
psql / sqlcmd / sqlplus등으로 직접 접속 가능한지 점검
8. WRKS AI 에 MCP 도구로 연결하기
8-1. Endpoint 발급
툴킷의 "엔드포인트" 탭 → "+ 새 엔드포인트" 클릭.
발급 다이얼로그 상단에서 인증 방식 선택:
- API Key (static Bearer) — 대부분 툴킷 (DB · API Key · Basic · Client Credentials)
- OAuth (per-user) — 사용자별 로그인이 필요한 툴킷 (
oauth_userauthType 툴킷 한정)

API Key (static Bearer) 발급 결과:
| 항목 | 의미 |
|---|---|
| MCP URL | https://mcp-hub.wrks.ai/mcp/<슬러그> 형식. WRKS AI 가 호출할 endpoint |
| Bearer Token | 발급 직후 1회만 화면에 표시 — 반드시 안전한 곳에 저장. 분실 시 재발급만 가능 (revoke + 새로 발급) |
OAuth (per-user) 발급 결과:
발급 결과 카드가 3섹션으로 분리되어 각 값을 어디에 써야 하는지 명확히 안내:
- 권장 안내 배너 — WRKS AI 는 DCR 을 지원하므로 MCP URL 하나만 등록하면 자동. 나머지 표는 다른 MCP 클라이언트 (DCR 미지원) 를 위한 참고
- WRKS AI 등록용 (필수) — MCP URL 하나. WRKS AI 는 이 값 하나만으로 metadata discovery + DCR 자동 처리
- 사내 OAuth 앱 등록용 — Callback URL (
https://mcp-hub.wrks.ai/oauth/<슬러그>/callback). Google Cloud Console · Azure AD 등의 "허용된 리디렉션 URI" 목록에 등록해야 함
Authorize URL · Token URL 은 표준 discovery 로 자동 발견되므로 별도 표시하지 않습니다 (예전에는 표시했으나 사용자 혼동 유발로 숨김 처리).
8-2. WRKS AI 의 MCP 도구 등록
절차는 WRKS AI 연동 가이드 에 상세. 요약:
- API Key 툴킷: URL + Bearer Token 붙여넣기 → 저장
- OAuth per-user 툴킷: URL 만 붙여넣기 → 인증 방식 "OAuth (DCR)" 선택 → 저장. Client ID/Secret 은 자동 등록됨
저장 후 WRKS AI 가 자동으로 도구 목록 (tools/list) 을 받아옴. 채팅에서 "ERP 어제 매출" 같은 자연어로 질문하면 AI 가 해당 툴킷 도구를 자동 선택해 호출.
9. 자주 쓰는 운영 동작
9-1. 도구 설명 개선 (정확도 향상)
도구 행에서 ✨ AI 추천 버튼 → Hub 의 LLM 이 OpenAPI spec / 파라미터 기반으로 자연어 설명 자동 생성. WRKS AI 가 도구 선택할 때 이 설명을 보고 판단하므로 설명 품질 = AI 호출 정확도.
9-2. 사용량 확인
툴킷 카드 → "호출 로그" 탭. 시간 / 사용자 / 도구 / 응답 상태 / 지연시간 별로 검색 가능.
9-3. 일시 중지 / 재개 (Kill Switch)
Studio 헤더의 "⏸ 일시중지" 버튼 — 해당 enterprise 의 모든 MCP 호출 즉시 차단. 사고 발생 시 응급 차단용. 재개도 동일 버튼.
9-4. Endpoint 회수 (Revoke)
엔드포인트 탭의 🗑 회수 버튼 → 그 URL/토큰 즉시 무효. 토큰 유출 시 응급 대응.
재발급 시 주의 (OAuth per-user): 새 슬러그로 재발급하면 옛 슬러그는 즉시 무효. WRKS AI 는 옛 URL 을 캐시할 수 있어 도구 호출 시
unknown_endpoint로 실패. 이 경우 WRKS AI 관리 UI 에서 이 도구를 삭제 후 새 MCP URL 로 재등록 필요 (WRKS AI 연동 가이드 §9-5 참고).
10. 트러블슈팅
| 증상 | 원인 / 해결 |
|---|---|
툴킷 생성 시 connector_not_active | 커넥터 미실행. docker logs 로 확인 |
테스트 시 placeholder_unresolved: ${DB_PASSWORD} | secrets 폴더에 변수 없음. /etc/mcp-connector/secrets/*.env 에 한 줄 추가 |
테스트 시 connection refused: <host> | 커넥터 호스트에서 그 호스트로 네트워크 도달 X. ping / telnet 점검 |
| 테스트 시 SSL 관련 에러 | SSL/TLS 옵션 조정 — 사내 자체서명 인증서면 "사용 (CA 검증 없음)" |
| describe_schema 가 너무 많은 테이블 반환 | DB 사용자에게 특정 스키마만 권한 주기 (혹은 view 만 노출) |
| 응답이 100 행에서 끊김 | 정상 동작 (안전 제한). 더 많은 데이터 필요시 SQL 의 WHERE 로 좁히기 |
| MCP 도구 호출 시 401 | Bearer token 잘못됨. 재발급 |
| WRKS AI 가 도구를 안 쓰고 그냥 응답함 | 도구 설명 빈약. ✨ AI 추천 으로 설명 개선 |
OAuth per-user 관련 에러 (upstream_token_expired_no_refresh, upstream_refresh_failed, invalid_client 등) | WRKS AI 연동 가이드 §9-5 문제해결 표 참고 |
11. 빠른 체크리스트
새 DB 툴킷 등록 시:
- 커넥터가 "연결됨" 상태
- DB 사용자 SELECT 권한 (DDL 금지)
- 커넥터 호스트에서 DB 호스트로 네트워크 도달 가능 (telnet 등)
- secrets 파일 (
/etc/mcp-connector/secrets/*.env) 에 비밀번호 라인 추가 - Studio 에서 툴킷 생성 — 비밀번호는
${VAR}placeholder 만 - 도구 ▶ 테스트 호출로 describe_schema 통과 확인
- (선택) ✨ AI 추천 으로 도구 설명 개선
- 엔드포인트 발급 후 Bearer 토큰 안전 보관
- WRKS AI 에 MCP 도구 등록
12. 문의
- 도구 사용법 / 도구 설명 개선 / 호출 정확도 향상: WRKS 담당자에게 연락
- 사내 DB / API 환경 특수성: 사내 인프라 담당자와 협업
다음 문서도 같이 보세요:
- 커넥터 설치 가이드 → Connector 설치 가이드