hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Provides tools for monitoring Docker containers and networks on an Unraid server, including listing containers and accessing detailed information about specific containers.
Interfaces with Unraid's GraphQL API to facilitate all server interactions, handling authentication and providing consistent error reporting.
Allows querying information about the Plex media server container running on Unraid, mentioned as an example use case for container-specific details.
Unraid MCP 서버
AI 어시스턴트가 공식 Unraid GraphQL API를 통해 Unraid 서버와 상호 작용할 수 있도록 하는 Python 기반 MCP(Model Context Protocol) 서버입니다.
부인 성명
사용 시 모든 책임은 사용자에게 있습니다 . 이 소프트웨어는 AI 비서를 통해 Unraid 서버에 접근할 수 있도록 합니다. 보안 강화를 위해 이 구현은 읽기 전용 으로 설정되어 있지만, 사용 시 주의가 필요합니다.
- 이는 비공식적인 도구이며 Unraid, Inc.와 제휴하거나 보증을 받지 않았습니다.
- 모든 작업은 시스템 수정을 방지하기 위해 읽기 전용 작업으로 제한됩니다.
- 항상 데이터의 적절한 백업을 유지하세요
- 조치를 취하기 전에 AI 도우미가 제공하는 모든 정보와 제안을 검토하세요.
- 개발자는 이 소프트웨어 사용으로 인해 발생할 수 있는 문제에 대해 책임을 지지 않습니다.
읽기 전용 액세스 권한이 있더라도 모니터링 도구는 민감한 시스템 정보를 노출할 가능성이 있습니다. 이 소프트웨어를 사용함으로써 귀하는 이러한 제한 사항과 위험을 인지하고 이에 동의합니다.
특징
- 시스템 정보 : Unraid 서버에 대한 자세한 정보를 얻으세요
- 어레이 관리 : 어레이 상태 모니터링
- Docker 관리 : Docker 컨테이너 및 네트워크 나열
- VM 관리 : 가상 머신 목록
- 디스크 정보 : 디스크 및 할당되지 않은 장치에 대한 자세한 정보를 가져옵니다.
- 알림 관리 : 시스템 알림을 보고 관리합니다.
- 공유 관리 : 네트워크 공유를 보고 관리합니다.
- 사용자 관리 : 사용자 목록
- API 키 관리 : API 키 목록
- 패리티 기록 : 패리티 검사 기록 보기
- 공유 : Unraid 서버에서 사용자 공유를 탐색합니다.
- 플러그인 : 설치된 플러그인과 해당 상태를 확인합니다.
- 오류 처리 : 진단 정보를 통한 포괄적인 오류 처리
- 로깅 : 문제 해결을 위한 자세한 로깅
- 템플릿 리소스 : 이름으로 특정 컨테이너 및 VM에 액세스
필수 조건
- Python 3.10 이상
- API가 활성화된 Unraid 서버
- 적절한 권한이 있는 API 키
설치
Smithery를 통해 설치
Smithery를 통해 Claude Desktop에 Unraid MCP 서버를 자동으로 설치하려면:
지엑스피1
수동 설치
- 저장소를 복제합니다.Copy
- 가상 환경을 만들고 활성화하세요.Copy
- 종속성 설치:Copy
- Unraid API 자격 증명으로
.env
파일을 만듭니다.Copy
Unraid API 설정
이 MCP 서버를 사용하려면 Unraid 서버에서 Unraid API를 설정해야 합니다.
- CLI를 사용하여 개발자 모드와 GraphQL 샌드박스를 활성화합니다.화면의 지시에 따라 샌드박스를 활성화하세요.Copy
- 필요한 권한이 있는 API 키를 만듭니다.화면의 지시에 따라 이름, 설명, 역할, 권한을 설정하세요.Copy
- 다음을 사용하여
.env
파일을 구성하세요.UNRAID_API_URL
: GraphQL URL(예:http://your-unraid-server-ip/graphql
)UNRAID_API_KEY
: 생성한 API 키
http://your-unraid-server-ip/graphql
에서 GraphQL 샌드박스를 사용하여 API를 테스트하세요.
참고 : Unraid API는 인증을 위해 Bearer 토큰이 아닌
x-api-key
헤더를 사용합니다.
문제 해결
- CORS 오류가 발생하는 경우 클라이언트에 서버의 URL과 일치하는 올바른
Origin
헤더가 포함되어 있는지 확인하세요. - 실행하려는 쿼리에 필요한 역할과 권한이 API 키에 있는지 확인하세요.
- GraphQL 샌드박스가 활성화되어 있고 접근 가능한지 확인하세요.
용법
MCP 서버 실행
AI 어시스턴트와 통합하려면 stdio 모드에서 서버를 실행하세요.
stdio 모드는 다음과 같은 경우에 유용합니다.
- MCP 프로토콜을 지원하는 AI 어시스턴트와의 직접 통합
- Anthropic Python SDK로 테스트하기
- 커서에서 Claude와의 통합
stdio 모드로 실행될 때 서버는 MCP 프로토콜 형식에 따라 표준 입력에서 데이터를 읽고 표준 출력에 데이터를 씁니다. 이를 통해 HTTP 전송 없이 AI 어시스턴트와 직접 통신할 수 있습니다.
서버 아키텍처
서버는 FastMCP 프레임워크를 사용하여 구축되었으며 다음으로 구성됩니다.
- Unraid API 클라이언트 (
unraid_client.py
):- Unraid 서버와의 GraphQL 통신을 처리합니다.
- 인증 및 오류 처리를 관리합니다.
- 일관된 오류 보고를 제공합니다
- MCP 서버 (
server.py
):- MCP 사양에 따라 리소스와 도구를 정의합니다.
- AI 어시스턴트에 Unraid 기능을 공개합니다.
- 요청 검증 및 오류 진단을 처리합니다.
사용 가능한 리소스
리소스 URI | 설명 |
---|---|
unraid://system/info | 시스템 정보(CPU, 메모리, 가동 시간) |
unraid://system/plugins | 설치된 플러그인 |
unraid://docker/containers | 모든 Docker 컨테이너 목록 |
unraid://docker/{container_name} | 특정 컨테이너의 세부 정보 |
unraid://array/status | 현재 배열 상태 |
unraid://vms/list | 모든 가상 머신 목록 |
unraid://vms/{vm_name} | 특정 VM의 세부 정보 |
unraid://storage/shares | 사용자가 정보를 공유합니다 |
사용 가능한 도구
시스템 관리
도구 이름 | 설명 |
---|---|
get_system_info | 자세한 시스템 정보를 얻으세요 |
get_network_info | 네트워크 인터페이스 정보 가져오기 |
어레이 관리
도구 이름 | 설명 |
---|---|
get_array_status | 사람이 읽을 수 있는 방식으로 배열 상태 가져오기 |
get_parity_history | 패리티 검사 내역 가져오기 |
도커 관리
도구 이름 | 설명 |
---|---|
get_docker_containers | Docker 컨테이너에 대한 정보를 얻으세요 |
get_docker_networks | Docker 네트워크에 대한 정보를 얻으세요 |
list_containers | 사람이 읽을 수 있는 방식으로 Docker 컨테이너 나열 |
VM 관리
도구 이름 | 설명 |
---|---|
get_vms | 가상 머신에 대한 정보를 얻으세요 |
get_vm_details | 특정 VM에 대한 자세한 정보를 얻으세요 |
list_vms | 사람이 읽을 수 있는 방식으로 가상 머신을 나열합니다. |
알림 관리
도구 이름 | 설명 |
---|---|
get_notifications | Unraid 서버에서 알림 받기 |
create_notification | 새 알림 만들기 |
archive_notification | 알림 보관 |
주식 관리
도구 이름 | 설명 |
---|---|
get_shares | 네트워크 공유에 대한 정보를 얻으세요 |
get_share_details | 특정 주식에 대한 자세한 정보를 얻으세요 |
디스크 관리
도구 이름 | 설명 |
---|---|
get_disks | 모든 디스크에 대한 정보를 얻으세요 |
get_disk_details | 특정 디스크에 대한 정보 얻기 |
get_unassigned_devices | 할당되지 않은 장치에 대한 정보 가져오기 |
사용자 관리
도구 이름 | 설명 |
---|---|
get_users | 모든 사용자에 대한 정보를 얻으세요 |
API 키 관리
도구 이름 | 설명 |
---|---|
get_api_keys | 모든 API 키에 대한 정보를 얻으세요 |
Claude와의 통합
Claude API 또는 stdio 모드를 지원하는 다른 AI 어시스턴트와 함께 MCP 서버를 사용하려면:
- 구성 파일을 만듭니다(예:
unraid_mcp_config.json
):Copy
참고 : Windows 사용자의 경우 경로에 백슬래시를 두 개 사용해야 합니다(예:
C:\\Users\\username\\unraid-mcp\\run_server.py
).
예제 쿼리
- "내 Unraid 서버의 현재 CPU 사용량은 얼마입니까?"
- "내 모든 Docker 컨테이너 나열"
- "내 Plex 컨테이너에 대해 알려주세요"(container_details 리소스 사용)
- "Plex 컨테이너 시작"
- "내 배열의 상태는 어떻습니까?"
- "내 Unraid 서버에 얼마나 많은 여유 공간이 있나요?"
- "내 Windows VM에 대한 세부 정보를 보여주세요"(vm_details 리소스 사용)
- "어떤 플러그인을 설치했나요?"
문제 해결
자세한 오류 정보는 로그 파일( unraid_mcp.log
)에서 확인하세요.
일반적인 문제:
.env
파일에 잘못된 API URL 또는 키가 있습니다.- Unraid 서버에 대한 네트워크 연결 문제
- API 키에 대한 권한이 부족합니다.
- Unraid 서버에서 개발자 모드가 활성화되지 않았습니다.
- API 키에 필요한 역할이 없습니다.
기여하다
기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.
특허
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.
참고문헌
This server cannot be installed
AI 어시스턴트가 공식 Unraid GraphQL API를 통해 Unraid 서버와 상호 작용할 수 있도록 하는 Python 기반 서버로, 시스템 정보, Docker 컨테이너, VM, 스토리지 등에 대한 읽기 전용 액세스를 제공합니다.
- Disclaimer
- Features
- Prerequisites
- Installation
- Unraid API Setup
- Usage
- Server Architecture
- Available Resources
- Available Tools
- Integration with Claude
- Example Queries
- Troubleshooting
- Contributing
- License
- References