<p align="center">
<picture>
<img src="https://raw.githubusercontent.com/mozilla-ai/mcpd/HEAD/docs/assets/mcpd-logo.png" alt="mcpd" width="200"/>
</picture>
</p>
<div align="center"><b>에이전트(agents)를 실행하고, 인프라(infrastructure)는 관리하세요.</b></div>
Built by Mozilla AI
📚 mcpd 공식 문서
mcpd는 선언적 구성(declarative configuration)을 통해 MCP 서버를 관리하고, 이를 깔끔한 HTTP 엔드포인트로 노출하는 데몬입니다. 이 도구는 에이전트와 인프라 사이의 간극을 메워주며, 라이프사이클 관리(lifecycle management), 비밀 주입(secret injection), 환경 승격(environment promotion)과 같은 복잡한 작업을 사용자가 직접 처리할 필요가 없도록 해줍니다.
⚙️ 작동 방식 (How it Works)
내부적으로 mcpd는 MCP 서버를 STDIO 서브프로세스로 생성하고, HTTP를 통해 요청을 프록시합니다.
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="docs/assets/mcpd-architecture-dark.svg">
<source media="(prefers-color-scheme: light)" srcset="docs/assets/mcpd-architecture-light.svg">
<img alt="mcpd 아키텍처 다이어그램" src="https://raw.githubusercontent.com/mozilla-ai/mcpd/HEAD/docs/assets/mcpd-architecture-light.svg" width="800">
</picture>
</p>
🚀 빠른 시작 (Quick Start)
전제 조건 (Prerequisites)
먼저 mcpd 바이너리를 설치하고, 실행하려는 MCP 서버가 사용하는 런타임(runtime)을 설치해야 합니다:
uvx::로 시작하는 패키지에 대해서는 uv를 사용합니다.
npx::로 시작하는 패키지 및 mcpd inspector에 대해서는 Node.js / npx를 사용합니다.
docker::로 시작하는 패키지 또는 mcpd를 Docker에서 실행할 계획이라면 Docker를 사용합니다.
아래의 빠른 시작 예제는 uvx를 통해 time 서버를 사용하므로, 해당 예제에는 uv가 필요합니다.
일부 문서 예제에서 사용되는 선택적 도구:
- HTTP API 호출을 위한
curl
- JSON 응답을 보기 좋게 출력하기 위한
jq
소스에서 mcpd를 빌드하거나 기여하려면 Go (버전 v1.27.1 이상 필요)도 필요합니다.
설치 방법
Homebrew 이용
(macOS와 Linux 모두 사용 가능)
Mozilla.ai tap을 추가합니다:
그런 다음 mcpd를 설치합니다:
또는 cask에서 직접 설치할 수 있습니다:
brew install --cask mozilla-ai/tap/mcpd
GitHub 릴리스 또는 로컬 Go 바이너리 빌드를 통해 설치하려면 문서를 읽어주세요.
mcpd 사용하기
이제 데몬이 실행되었으므로, time MCP 서버가 제공하는 get_current_time 도구를 호출해 보겠습니다.
curl -s --request POST \
--url http://localhost:8090/api/v1/servers/time/tools/get_current_time \
...
API 문서는 http://localhost:8090/docs에서 확인할 수 있습니다.
💡 mcpd를 사용해야 하는 이유?
엔지니어링 팀은 로컬에서 작동하는 에이전트를 구축하지만, 이를 환경 전반에 걸쳐 프로덕션 준비 상태로 만드는 데 어려움을 겪습니다. mcpd는 선언적 구성(declarative configuration)과 보안 비밀 관리(secure secrets management)를 통해 이러한 격차를 해소합니다.
- 선언적이며 재현 가능 (Declarative & reproducible) – .mcpd.toml이 도구 인프라를 정의합니다
- 언어 독립적 (Language-agnostic) – 통합 HTTP API를 통해 Python, JS, Docker 컨테이너 지원
- 개발부터 프로덕션까지 준비 완료 (Dev-to-prod ready) – 동일한 구성으로 로컬 및 컨테이너에서 작동
🏗️ 개발 환경과 프로덕션 환경을 모두 고려하여 구축됨
| 개발 워크플로우 | 프로덕션 이점 |
|---|
mcpd daemon이 모든 것을 로컬에서 실행합니다 | 동일한 데몬이 컨테이너에서 실행됩니다 |
| ... | |
📦 SDK</div>
mcpd SDKs
mcpd plugin SDKs
플러그인 SDK는 mcpd 플러그인 Protocol Buffers 사양을 사용하여 구축됩니다.
💻 개발 (Development)
mcpd를 개발하려면 다음이 필요합니다:
로컬 코드 빌드:
테스트 실행:
Mozilla AI 레지스트리 검증 (레지스트리 파일 수정 시):
로컬 문서 사이트 실행 (uv 필요), 명령줄 문서를 동적으로 생성합니다:
🧩 The Mozilla.ai Stack
mcpd는 Mozilla.ai 에코시스템의 "Tooling Layer"입니다. 이 도구들은 함께 작동하거나 독립적으로 사용하도록 설계되었습니다.
| 계층 (Layer) | 도구 (Tool) | 기능 (Function) |
|---|
| Compute | llamafile | 로컬 LLM 추론 서버 |
| ... | | |
🤝 기여 (Contributing)
자세한 내용은 mcpd에 기여하기 가이드를 참조하십시오.
📄 라이선스 (License)
Apache License 2.0에 따라 라이선스됨.