utensils/mcp-nixos
요약
NixOS의 방대한 패키지 및 설정 데이터를 AI가 실시간으로 조회할 수 있도록 지원하는 MCP(Model Context Protocol) 서버 도구입니다. HTTP 및 STDIO 방식을 지원하며, AI가 환각 없이 정확한 Nix 관련 정보를 활용할 수 있게 돕습니다.
핵심 포인트
- NixOS 패키지, 옵션, Home Manager 등 17개 이상의 도구 제공
- MCP를 통해 AI가 실제 NixOS 데이터를 직접 쿼리 가능
- Windows, macOS, Linux 등 모든 OS 환경에서 작동
- FastMCP를 통한 HTTP 기반 서버 실행 지원
🚨 Nix/NixOS가 필요하지 않습니다! Windows, macOS, Linux 등 모든 시스템에서 작동합니다. 여러분은 그저 API를 쿼리(querying)하는 것뿐입니다.
{
"mcpServers": {
"nixos": {
...
{
"mcpServers": {
"nixos": {
...
{
"mcpServers": {
"nixos": {
...
이제 여러분의 AI는 내용을 지어내는 대신 실제 NixOS 데이터에 접근할 수 있습니다. 천만에요.
FastMCP는 URL을 통해 HTTP 상에서 이 서버를 실행하는 것을 지원합니다 (MCP 엔드포인트의 기본값은 /mcp입니다).
# http://127.0.0.1:8000/mcp 에서 HTTP MCP 서버 실행
MCP_NIXOS_TRANSPORT=http MCP_NIXOS_HOST=127.0.0.1 MCP_NIXOS_PORT=8000 mcp-nixos
STDIO (기본값):
MCP_NIXOS_TRANSPORT=stdio mcp-nixos
사용자 정의 경로 (Custom path):
MCP_NIXOS_TRANSPORT=http MCP_NIXOS_PATH=/api/mcp mcp-nixos
Stateless HTTP (클라이언트별 세션 상태 비활성화):
MCP_NIXOS_TRANSPORT=http MCP_NIXOS_STATELESS_HTTP=1 mcp-nixos
Pi는 MCP를 기본적으로 지원하지 않습니다. 지원되는 두 가지 경로가 있습니다:
A. pi-mcp-adapter (권장 — MCP를 지원하며, 단일 진실 공급원(single source of truth) 역할을 함):
pi install npm:pi-mcp-adapter
그 다음 ~/.pi/agent/mcp.json에 추가하세요:
{
"mcpServers": {
"nixos": {
...
B. 프로젝트 로컬 확장 (clone + 실행): 이 저장소는 .pi/extensions/mcp-nixos.ts를 제공하며, 클론된 저장소에서 pi를 실행할 때 자동으로 로드됩니다. 선택 사항: 에디터 타입 해상도(editor type resolution)를 위해 cd .pi && npm install을 실행하세요. Pi는 어떤 방식이든 이를 실행합니다.
다음과 같은 정확하고 실시간인 정보를 제공하는 MCP 서버:
NixOS 패키지 (packages)- 실제로 존재하는 130K개 이상의 패키지
NixOS 옵션 (options)- 시스템을 구성하는 23K개 이상의 방법
Home Manager- dotfile 애호가를 위한 5K개 이상의 옵션
nix-darwin- Apple이 문서화하지 않은 1K개 이상의 macOS 설정
Nixvim- NuschtOS 검색을 통한 Neovim 설정을 위한 5K개 이상의 옵션
FlakeHub- FlakeHub.com 레지스트리에 등록된 600개 이상의 flakes
Noogle- noogle.dev를 통한 타입 시그니처(type signatures)가 포함된 2K개 이상의 Nix 함수
NixOS Wiki- wiki.nixos.org의 커뮤니티 문서 및 가이드
nix.dev- nix.dev의 공식 Nix 튜토리얼 및 가이드
패키지 버전 (Package versions)- NixHub.io를 통한 커밋 해시(commit hashes)가 포함된 과거 버전
바이너리 캐시 상태 (Binary cache status)- cache.nixos.org에서 다운로드 크기와 함께 패키지 캐시 여부 확인
로컬 flake 입력 (Local flake inputs)- Nix store에서 직접 고정된(pinned) flake 의존성 탐색 (Nix 필요)
단 두 개뿐입니다. 귀하의 AI 컨텍스트 윈도우(context window)는 무한하지 않기 때문에, 우리는 17개의 도구를 2개로 통합했습니다.
총 ~1,030 토큰. 그게 전부입니다. 다른 MCP 서버들이 블랙 프라이데이처럼 귀하의 컨텍스트를 독점하는 동안, 우리는 구석에서 미니멀리스트 차를 마시고 있습니다. 귀하의 AI는 불필요한 요소(bloat) 없이 NixOS의 초능력을 얻게 됩니다.
모든 것을 다스리는 하나의 도구:
nix(action, query, source, type, channel, limit)
| 액션 (Action) | 기능 |
|---|---|
search | 패키지, 옵션, 프로그램 또는 flakes 검색 |
info | 패키지 또는 옵션에 대한 상세 정보 가져오기 |
stats | 수치 및 카테고리 가져오기 |
options | 접두사(prefix)별로 Home Manager/Darwin 옵션 찾아보기 |
channels | 사용 가능한 NixOS 채널 목록 표시 |
flake-inputs | Nix store에서 로컬 flake 입력 탐색 |
cache | 패키지에 대한 바이너리 캐시 상태 확인 |
| 소스 (Source) | 쿼리 내용 (What it queries) |
|---|---|
nixos | 패키지 (Packages), 옵션 (options), 프로그램 (programs) |
home-manager | Home Manager 옵션 (options) |
darwin | nix-darwin 옵션 (options) |
flakes | 커뮤니티 플레이크 (Community flakes) (search.nixos.org) |
flakehub | FlakeHub 레지스트리 (FlakeHub registry) (flakehub.com) |
nixvim | Nixvim Neovim 설정 옵션 (configuration options) |
noogle | Nix 함수 시그니처 및 문서 (Nix function signatures and docs) (noogle.dev) |
wiki | NixOS 위키 문서 (NixOS Wiki articles) (wiki.nixos.org) |
nix-dev | 공식 Nix 문서 (Official Nix documentation) (nix.dev) |
nixhub | 패키지 메타데이터 및 스토어 경로 (Package metadata and store paths) (nixhub.io) |
예시 (Examples):
# NixOS 패키지 검색
nix(action="search", query="firefox", source="nixos", type="packages")
# 패키지 정보 가져오기
...
nixpkgs 커밋 해시 (commit hashes)를 사용하여 과거 버전을 찾을 수 있습니다. 출력에는 다음이 포함됩니다:
- 사용 가능한 경우 패키지 메타데이터 (license, homepage, programs)
- 버전별 플랫폼 가용성 (Linux/macOS)
- 재현 가능한 빌드 (reproducible builds)를 위한 Nixpkgs 커밋 해시
- Nix 표현식 (Nix expressions)을 위한 속성 경로 (Attribute path)
nix_versions(package, version, limit)
예시 (Examples):
# 메타데이터와 함께 최근 버전 목록 표시
nix_versions(package="python", limit=5)
# 특정 버전 찾기
...
Nix를 설치할 필요가 없습니다. 이 도구는 Python이 실행되는 곳이라면 어디에서든 작동합니다.
# 직접 실행 (설치 불필요)
uvx mcp-nixos
# 또는 설치
...
Nix 사용자용:
nix run github:utensils/mcp-nixos
nix profile install github:utensils/mcp-nixos
mcp-nixos는 nixpkgs에서 사용할 수 있습니다:
# NixOS (configuration.nix)
environment.systemPackages = [ pkgs.mcp-nixos ];
# Home Manager (home.nix)
...
또는 제공된 오버레이 (overlay)와 함께 플레이크 (flake)를 직접 사용하세요:
# flake.nix
{inputs = {
...
nix develop # 개발 셸 (dev shell) 진입
nix build # 패키지 빌드
pytest tests/ # 테스트 실행
...
NixHub.io - 패키지 버전 히스토리 (Package version history)
search.nixos.org - 공식 NixOS 검색 (Official NixOS search)
FlakeHub - Determinate Systems의 Flake 레지스트리 (Flake registry)
Jetify - Devbox 및 NixHub의 제작사
Noogle - Nix 함수 검색 엔진 (Nix function search engine)
NuschtOS - Nixvim 지원을 구동하는 정적 옵션 검색 인프라 (Static option search infrastructure)
Nixvim - Nix를 위한 Neovim 설정 프레임워크 (Neovim configuration framework)
MIT - 공유는 배려이기 때문입니다 (Because sharing is caring).
James Brink 제작. Nix를 즐기는 열성적인 마조히스트(mass̶o̶c̶h̶i̶s̶t̶s)들에 의해 유지 관리됩니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기