byteforce

CPN 한국어 자습서 · 외부 문서 한국어 미러

MCP 문서 · Registry

MCP 레지스트리 게시 시 인증 방법

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 인증

GitHub 인증은 mcp-publisher CLI 도구가 시작하는 OAuth 플로우를 사용합니다.

서버 프로젝트 디렉터리에서 다음 명령을 실행합니다:

코드 · 명령
mcp-publisher login github

링크를 방문하여 프롬프트를 따르고 터미널에 출력된 인가 코드를 입력합니다. 완료되면 다음과 같은 출력이 표시됩니다:

코드 · 명령
Successfully authenticated!
✓ Successfully logged in

DNS 인증

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 인증

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