mcp.json와 .env 환경변수 주입 질문
76
작성한 질문수 9
안녕하세요, 강사님!
Context7 MCP 설정 중 환경변수 처리 방식에 대해 질문드립니다.
제가 원하는 구성은,
1. context7 설정이 포함된 .mcp.json은 프로젝트 스코프로 관리하고 Git에 커밋
2. 개인 context7의 API Key는 .env에 분리하고 .env는 .gitignore 처리
그런데 .mcp.json 안에서는 ${...} 형태의 환경변수 플레이스홀더가 동작하지 않고, .env를 import하는 방식도 지원되지 않는 것 같습니다. Claude Code 공식 문서에서도 관련 방법을 찾지 못했습니다.
이런 경우 강사님께서는 보통 어떤 방식으로 해결하시는지 조언을 구합니다.. ㅠ
감사합니다.
답변 2
1
안녕하세요! 😊 방향 정확하세요. .mcp.json은 커밋하고 키만 분리, 그대로 하시면 됩니다.
결론부터 말씀드리면 클로드 코드는 .mcp.json에서 ${VAR} 확장을 공식 지원해요. 안 되셨던 건 문법이 아니라 그 변수가 셸 환경에 안 올라가 있어서일 가능성이 커요. .mcp.json은 .env를 자동으로 읽지 않거든요.
1. .mcp.json에는 자리표시자만
env에 "CONTEXT7_API_KEY": "${CONTEXT7_API_KEY}"처럼 넣으세요. 실제 키가 아니라 자리표시자라 커밋해도 안전합니다. 값이 없을 때 대비하려면 ${CONTEXT7_API_KEY:-}로 기본값도 줄 수 있어요.
2. 실제 키는 셸 환경변수로
.env는 자동 로드가 안 되니, 클로드 코드를 켜는 셸에 변수를 올려야 해요. 둘 중 하나면 됩니다.
첫째, ~/.zshrc에 export CONTEXT7_API_KEY=키값을 추가하고 터미널을 새로 열기.
둘째, 켜기 직전에 set -a; source .env; set +a로 로드한 뒤 claude 실행하기.
echo $CONTEXT7_API_KEY로 값이 뜨면 준비 끝이에요. 감사합니다! 🙂
0
안녕하세요, 인프런 AI 인턴입니다.
eunseo lay님이 말씀하신 상황에서는 Spring Boot의 환경 변수 설정 방식을 참고하셔서 문제를 해결하실 수 있을 것 같습니다. Spring Boot는 다양한 외부화된 구성 옵션을 제공하는데, 특히 JSON 구조나 환경 변수를 활용할 수 있는 방법이 있습니다. 하지만 .mcp.json에서 직접 변수를 치환하거나, .env 파일을 import하는 기능이 지원되지 않는다면 다음의 두 가지 방안을 고려해볼 수 있습니다.
환경 변수로 직접 설정: Spring Boot의 경우처럼 Java 애플리케이션을 실행할 때
SPRING_APPLICATION_JSON환경 변수를 사용하여 JSON 포맷으로 설정을 전달할 수 있습니다. 예를 들어, Shell에서 애플리케이션을 실행할 때 다음과 같이 설정할 수 있습니다.$ SPRING_APPLICATION_JSON='{"context7":{"apiKey":"your-api-key-here"}}' java -jar yourapp.jar이 방법을 사용하면
.json파일 내에서 직접적인 변수가 아닌, 실행 시점에 JSON을 환경 변수로 전달할 수 있습니다.구성 파일 분리:
.mcp.json파일과는 별도로 중요한 개인 API Key를 담고 있는 설정 파일을 분리하고, 이를 애플리케이션이 시작될 때 읽어들이도록 코드를 수정하는 방법입니다. 예를 들어.env파일을.gitignore로 설정하고, 애플리케이션 내에서 API Key 등의 정보를 환경 변수나 별도 파일로부터 읽어오도록 설정할 수 있습니다.
위 방법들을 고려하여 프로젝트에 맞게 적용하시면 도움이 되실 것입니다.
이외에도 Spring Boot의 자세한 외부화된 구성 설정 방법에 대한 문서를 참고하면 추가적인 아이디어를 얻으실 수 있을 것입니다:
- Spring Boot 외부 구성 문서
- Spring Boot JSON 애플리케이션 프로퍼티
추가적인 도움이 필요하시면 언제든지 질문 주세요. 좋은 하루 되세요!
전체적인 개발에 대해 문의드립니다.
1
27
1
줄바꿈 시 \ 필수인가요?
0
31
2
2605 이후 최신 클로드코드 강의 추가 부탁드립니다.
0
27
2
커리큘럼 문서 제공받을 수 있을까요?
0
26
1
outputStyle 설정하는데 어디서 문제일까요?
0
28
3
test.txt파일 삭제시 rm명령어이니 클로드의 질문이 있어야 한다고 하셨는데
0
22
2
검은화면
0
31
3
강의교환링크안열려요.....
0
30
2
영상재생에러 [확인부탁드려요!!!]
0
26
2
클로드 채팅에서 코드로 넘어가기
0
41
2
110강부터 따라가기가 힘듭니다...
0
61
2
커서에서 붙여넣기
0
41
2
깃허브 사용시 폴더경로 관련질문
0
29
2
/output-style 명령어는 폐기 되었다고 나오네요.
0
40
2
프롬프트 작성시 html, css, javascript
0
36
2
Cursor 창이 수업 내용과 달라요.
0
39
3
Supabase MCP 관련 질문입니다
0
46
2
클로드 로그인 후 승인창이 안떠요
0
37
1
61강 claude.local.md 변경사항 관련 질문
0
44
3
github
0
47
2
Claude에서 Bash, PowerShell 커맨드 묻기
0
63
2
mission 4 실행중 같은 질분 반복
0
39
2
sequential thinking mcp 사용 유용성에 대하여 질문있습니다.
0
67
2
VS Code? Cursor?
0
67
1





