CPN 한국어 자습서 · 외부 문서 한국어 미러
MCP 문서 · Registry
How to Authenticate When Publishing to the Official MCP Registry · 원문: modelcontextprotocol.io/registry/authentication
아래는 원문을 한국어로 옮긴 미러입니다. 코드·명령은 원문 그대로이며, 가장 최신 정보는 하단 원문 링크에서 확인하세요.
참고: MCP 레지스트리는 현재 프리뷰 중입니다.
공식 MCP 레지스트리에 게시하기 전에 인증이 필요합니다. 선택한 인증 방법에 따라 서버 이름의 네임스페이스가 결정됩니다.
GitHub 기반 인증을 선택하면 server.json의 서버 이름은 반드시 io.github.username/* 형식이어야 합니다. 도메인 기반 인증을 선택하면 이름은 반드시 com.example.*/* 형식이어야 합니다.
| 인증 방법 | 이름 형식 | 예시 이름 |
|---|---|---|
| GitHub 기반 | io.github.username/* 또는 io.github.orgname/* |
io.github.alice/weather-server |
| 도메인 기반 | com.example.*/* |
io.modelcontextprotocol/everything |
GitHub 인증은 mcp-publisher CLI 도구가 시작하는 OAuth 플로우를 사용합니다.
서버 프로젝트 디렉터리에서 다음 명령을 실행합니다:
mcp-publisher login github
링크를 방문하여 프롬프트를 따르고 터미널에 출력된 인가 코드를 입력합니다. 완료되면 다음과 같은 출력이 표시됩니다:
Successfully authenticated! ✓ Successfully logged in
DNS 인증은 공개/개인 키 쌍을 기반으로 DNS TXT 레코드를 사용하는 도메인 기반 인증 방법입니다.
Ed25519를 사용하여 키와 TXT 레코드 생성:
MY_DOMAIN="example.com"
openssl genpkey -algorithm Ed25519 -out key.pem
PUBLIC_KEY="$(openssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64)"
echo "${MY_DOMAIN}. IN TXT \"v=MCPv1; k=ed25519; p=${PUBLIC_KEY}\""
ECDSA P-384를 사용하여 키와 TXT 레코드 생성:
MY_DOMAIN="example.com"
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:secp384r1 -out key.pem
PUBLIC_KEY="$(openssl ec -in key.pem -text -noout -conv_form compressed | grep -A4 "pub:" | tail -n +2 | tr -d ' :\n' | xxd -r -p | base64)"
echo "${MY_DOMAIN}. IN TXT \"v=MCPv1; k=ecdsap384; p=${PUBLIC_KEY}\""
DNS 제공업체의 제어판을 사용하여 TXT 레코드를 추가합니다. TXT 레코드가 전파된 후 mcp-publisher login 명령을 사용하여 로그인합니다:
# Ed25519
PRIVATE_KEY="$(openssl pkey -in key.pem -noout -text | grep -A3 "priv:" | tail -n +2 | tr -d ' :\n')"
mcp-publisher login dns --domain "${MY_DOMAIN}" --private-key "${PRIVATE_KEY}"
# ECDSA P-384
PRIVATE_KEY="$(openssl ec -in key.pem -noout -text | grep -A4 "priv:" | tail -n +2 | tr -d ' :\n')"
mcp-publisher login dns --domain "${MY_DOMAIN}" --private-key "${PRIVATE_KEY}"
Google KMS를 사용하려면 mcp-publisher login dns google-kms --domain="${MY_DOMAIN}" --resource="...", Azure Key Vault를 사용하려면 mcp-publisher login dns azure-key-vault --domain="${MY_DOMAIN}" --vault ... --key ... 형태로 사용합니다.
HTTP 인증은 도메인에 호스팅된 /.well-known/mcp-registry-auth 파일을 사용하는 도메인 기반 인증 방법입니다.
Ed25519를 사용하여 mcp-registry-auth 파일 생성:
openssl genpkey -algorithm Ed25519 -out key.pem
PUBLIC_KEY="$(openssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64)"
echo "v=MCPv1; k=ed25519; p=${PUBLIC_KEY}" > mcp-registry-auth
ECDSA P-384를 사용하여 mcp-registry-auth 파일 생성:
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:secp384r1 -out key.pem
PUBLIC_KEY="$(openssl ec -in key.pem -text -noout -conv_form compressed | grep -A4 "pub:" | tail -n +2 | tr -d ' :\n' | xxd -r -p | base64)"
echo "v=MCPv1; k=ecdsap384; p=${PUBLIC_KEY}" > mcp-registry-auth
mcp-registry-auth 파일을 도메인의 /.well-known/mcp-registry-auth에 호스팅합니다. 파일이 호스팅된 후 mcp-publisher login 명령을 사용하여 로그인합니다:
# Ed25519
MY_DOMAIN="example.com"
PRIVATE_KEY="$(openssl pkey -in key.pem -noout -text | grep -A3 "priv:" | tail -n +2 | tr -d ' :\n')"
mcp-publisher login http --domain "${MY_DOMAIN}" --private-key "${PRIVATE_KEY}"
# ECDSA P-384
MY_DOMAIN="example.com"
PRIVATE_KEY="$(openssl ec -in key.pem -noout -text | grep -A4 "priv:" | tail -n +2 | tr -d ' :\n')"
mcp-publisher login http --domain "${MY_DOMAIN}" --private-key "${PRIVATE_KEY}"
원문(영어): https://modelcontextprotocol.io/registry/authentication · 본 문서는 학습용 한국어 번역이며 원본의 권리는 원저작자(Model Context Protocol)에게 있습니다.
원문(영어): https://modelcontextprotocol.io/registry/authentication