Linux Diagnostics MCP Server
Linux 진단 MCP 서버 - 강의 데모
기존 MCPDemo 교육용 저장소를 Python/Linux 환경에 맞게 개조한 버전입니다. 이 저장소는 공개 교육 흐름을 위한 Milestone 7 패리티에 도달했습니다: 간결한 시스템 검사, Linux 프로세스 상세 분석, 리소스 형태의 로그 스냅샷, 워크플로우 프롬프트, /mcp 경로를 통한 HTTP 기반 인증된 MCP, 프로세스 종료 전 명시적 확인 절차, 샘플링 지원 Linux 진단, 그리고 허용된 루트에 대한 proc/sys 스냅샷 기능을 포함합니다.
이 데모의 특징
이 강의 데모에는 다음 기능이 포함되어 있습니다:
✅ 도구:
get_system_info,get_process_list,get_process_by_id,get_process_by_name및 확인 절차가 포함된kill_process를 위한 Linux 진단 도구✅ 리소스: 페이지 단위의
syslog://snapshot/...로그 스냅샷 리소스✅ 프롬프트: 오류 분석, CPU 조사, 보안 검토 및 상태 진단을 위한 MCP 워크플로우 프롬프트
✅ HTTP 전송:
http://127.0.0.1:5000/mcp를 통한 스트리밍 가능한 MCP✅ API 키 인증:
X-API-Key헤더 또는?apiKey=secure-mcp-key사용✅ AI 채팅 클라이언트: 로컬 HTTP 서버를 실행하고, 모델이 MCP 도구, 프롬프트 및 리소스를 호출하도록 하며, 터미널에서 로컬 폼 확인 절차를 처리하는 Python Azure OpenAI 클라이언트
✅ Python 3.12 구현: 공식 MCP Python SDK 사용
✅ 다양한 테스트 방법
✅ Milestone 5:
kill_process를 위한 확인 절차✅ Milestone 6: 샘플링 지원 Linux 진단
✅ Milestone 7: 읽기 전용
/proc및/sys스냅샷을 위한 루트 설정
Related MCP server: troubleshooting-mcp-server
빠른 시작
1. 설치
서버 전용 설치:
python3 -m pip install --user --break-system-packages -e .강의용 채팅 클라이언트 추가 기능 설치:
python3 -m pip install --user --break-system-packages -e '.[llm]'2. 빠른 스모크 테스트 (LLM 없음)
python3 scripts/smoke_test.py이 스크립트의 기능:
로컬 HTTP MCP 서버 시작
API 키 없이
401 Unauthorized확인/mcp에서 MCP 초기화 핸드셰이크 수행요청 간
mcp-session-id흐름이 작동하는지 확인도구, 프롬프트 및 리소스 템플릿 검색
시스템, 프로세스, 로그 스냅샷, proc 스냅샷 및 샘플링 지원 진단 흐름 실행
클라이언트가 확인 절차 지원을 알리지 않을 때
kill_process가 안전하게 실패하는지 확인Azure OpenAI 설정이 누락되었을 때 강의용 채팅 클라이언트가 안전하게 실패하는지 확인
3. 수동으로 서버 실행
python3 -m mcp_linux_diag_server서버 수신 주소:
엔드포인트:
http://127.0.0.1:5000/mcp데모 API 키:
secure-mcp-key
4. MCP Inspector 또는 VS Code MCP 설정으로 테스트
한 터미널에서 서버를 시작한 다음, 위 HTTP 엔드포인트를 사용하여 연결합니다.
이 저장소에는 필요한 헤더가 포함된 .vscode/mcp.json이 있습니다:
{
"servers": {
"linux-diag-demo": {
"url": "http://127.0.0.1:5000/mcp",
"headers": {
"X-API-Key": "secure-mcp-key"
}
}
}
}Inspector가 URL을 직접 허용하는 경우, 다음 쿼리 문자열 형식도 작동합니다:
http://127.0.0.1:5000/mcp?apiKey=secure-mcp-key5. 강의용 채팅 클라이언트 사용
샘플 환경 파일을 복사하고 로컬 Azure OpenAI 설정을 입력합니다:
cp .env.example .env.local
$EDITOR .env.local
python3 -m mcp_linux_diag_server.client --prompt "Summarize this machine."기존 .NET 자격 증명 흐름을 더 가깝게 반영하려면 다음을 설정하세요:
MCP_DEMO_AZURE_OPENAI_USE_DEFAULT_CREDENTIAL=true그리고 API 키를 생략합니다.
대화형 채팅 실행:
python3 -m mcp_linux_diag_server.client또는 단일 프롬프트 실행:
python3 -m mcp_linux_diag_server.client --prompt "What is the system information?"도구
시스템 정보
get_system_info- 간결한 Linux 또는 WSL 시스템 스냅샷 반환호스트 이름
현재 사용자
Linux 배포판 설명
커널 릴리스
아키텍처
논리 CPU 개수
Python 런타임
현재 작업 디렉토리
가동 시간
부하 평균
메모리 요약
WSL 감지 플래그
프로세스 검사
get_process_list- 이름과 PID가 포함된 가벼운 실행 프로세스 목록 반환get_process_by_id- 특정 PID에 대한 상세 Linux 프로세스 정보 반환get_process_by_name- 프로세스 이름에 대한 페이지 단위 상세 프로세스 정보 반환기본값
page_number=1기본값
page_size=5기존 데모의 목록 우선, 상세 정보 후순 교육 흐름 유지
kill_process- 명시적 확인 절차 후에만 Linux 프로세스 종료process_id가 생략되면 서버가 CPU 점유율이 높은 프로세스를 샘플링하고 클라이언트에게 하나를 선택하도록 요청서버는 항상
CONFIRM PID {pid}라는 입력된 확인 문구를 요구강의용 클라이언트는 stdin/stdout이 대화형일 때 터미널에서 이러한 프롬프트를 로컬로 처리
troubleshoot_linux_diagnostics- 샘플링을 사용하여 자연어 Linux 진단 질문을 검증된/proc또는/sys읽기 작업으로 변환서버는 읽기 전에 샘플링된 경로와 필드를 허용 목록과 대조하여 검증
정확한 Python 적용: 샘플링된 쿼리는 WQL 대신 단일 안전
PATH또는PATH | grep FIELD라인임서버는 다시 샘플링하여 관찰 결과를 사용자에게 요약
create_proc_snapshot- 허용된/proc또는/sys경로에서 변경 불가능한 읽기 전용 스냅샷을 생성하고 리소스 URI 반환파일 스냅샷은 줄 단위로 콘텐츠를 페이징
디렉토리 스냅샷은 심볼릭 링크를 따라가지 않고 결정론적 자식 메타데이터를 페이징
읽기 전에 명시적으로 허용된 루트를 강제 적용
request_proc_access- 확인 절차를 사용하여 추가/proc또는/sys루트에 대한 읽기 전용 액세스 요청승인된 루트를 서버의 메모리 내 허용 목록에 추가
모델이 차단된 스냅샷 시도 전에 선제적으로 액세스를 요청하도록 유도
로그 스냅샷
create_log_snapshot- 일반적인 Linux 로그 파일에서 변경 불가능한 스냅샷을 생성하고 리소스 URI 반환system,security,kernel,package로그 그룹 지원선택적
filter_text로 스냅샷을 일치하는 라인으로 좁힘기본 리소스 URI와 페이지가 지정된 리소스 템플릿 반환
리소스
syslog://snapshot/{snapshot_id}- 기본 페이징으로 저장된 Linux 로그 스냅샷 읽기syslog://snapshot/{snapshot_id}?limit={limit}&offset={offset}- 저장된 스냅샷에서 특정 페이지 읽기proc://snapshot/{snapshot_id}- 기본 페이징으로 저장된 proc/sys 스냅샷 읽기proc://snapshot/{snapshot_id}?limit={limit}&offset={offset}- 저장된 proc/sys 스냅샷에서 특정 페이지 읽기
모든 리소스 읽기는 다음을 반환합니다:
스냅샷 메타데이터
캡처된 항목
페이징 메타데이터 (
total_count,returned_count,limit,offset,has_more,next_offset)
프롬프트
AnalyzeRecentApplicationErrors- 오류 중심 로그 분석 워크플로우ExplainHighCpu- CPU 점유율이 높은 프로세스와 Linux 로그 상관관계 분석DetectSecurityAnomalies- 의심스러운 프로세스와 인증/보안 로그 증거 검토DiagnoseSystemHealth- 엔드투엔드 시스템 상태 워크플로우TroubleshootLinuxComponent- 에이전트를troubleshoot_linux_diagnostics로 유도하는 집중 심층 분석 워크플로우
프로젝트
src/mcp_linux_diag_server/server.py
Milestone 1-7 진단 도구, 리소스 및 워크플로우 프롬프트를 노출하는 인증된 HTTP MCP 서버.
src/mcp_linux_diag_server/client.py
다음 기능을 수행하는 강의용 채팅 클라이언트:
로컬 HTTP 서버 실행
데모 API 키를 사용하여 스트리밍 가능한 HTTP로 연결
모델을 위한 도구로서 MCP 프롬프트/리소스 API 노출
모델이
kill_process를 트리거할 때 로컬 터미널에서 MCP 폼 확인 절차 수행서버가 안전한 Linux 진단 쿼리 및 요약을 합성할 수 있도록 MCP 샘플링 요청 수행
차단된 경로를 스냅샷으로 찍기 전에 proc/sys 액세스를 요청하도록 모델 교육
도구 호출 턴 실행
테스트 방법
방법 | 시각적 | 대화형 | LLM | 용도 |
| ❌ 아니오 | ❌ 아니오 | ❌ 아니오 | M1-M7 서버 동작의 빠른 검증 |
MCP Inspector / | ✅ 예 | ✅ 예 | ❌ 아니오 | 개발, 디버깅, 교육 |
| ❌ 아니오 | ✅ 예 | ✅ 예 | 강의 데모 흐름 |
기본 강의 흐름을 뒷받침하는 Milestone 1 검증 체크리스트는 M1_VALIDATION_GUIDE.md를 참조하세요.
프로젝트 구조
MCPPythonDemo/
├── README.md
├── LICENSE.txt
├── pyproject.toml
├── .env.example
├── .vscode/
│ └── mcp.json
├── scripts/
│ └── smoke_test.py
├── src/
│ └── mcp_linux_diag_server/
│ ├── __main__.py
│ ├── client.py
│ ├── http_config.py
│ ├── server.py
│ └── tools/
│ ├── log_snapshots.py
│ ├── proc_snapshots.py
│ ├── processes.py
│ └── system_info.py
├── tests/
│ ├── http_harness.py
│ ├── test_client.py
│ ├── test_m1_smoke.py
│ ├── test_m2_smoke.py
│ ├── test_m3_smoke.py
│ ├── test_m4_http.py
│ ├── test_log_snapshots.py
│ ├── test_processes.py
│ └── test_system_info.py요구 사항
Python 3.12+
mcp[cli]강의용 채팅 클라이언트를 실행하려는 경우에만 Azure OpenAI 필요
마일스톤
✅ Milestone 1 - stdio 기반 최소 진단 도구 및 강의용 채팅 클라이언트
✅ Milestone 2 - 프로세스 검사
✅ Milestone 3 - 로그 스냅샷 리소스 및 프롬프트
✅ Milestone 4 - HTTP 전송 및 보안
✅ Milestone 5 - 확인 절차 기반 kill_process
✅ Milestone 6 - 샘플링 지원 Linux 진단
✅ Milestone 7 - 루트 및 proc/sys 스냅샷
라이선스
MIT. LICENSE.txt를 참조하세요.
리소스
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityAmaintenanceAn MCP server for read-only Linux system administration and diagnostics on RHEL-based systems via SSH. It enables users to troubleshoot remote hosts by accessing system information, services, logs, and network configurations through natural language.Last updated19275Apache 2.0
- Alicense-qualityDmaintenanceA comprehensive MCP server that provides system troubleshooting and diagnostic tools, enabling LLMs to diagnose system issues, monitor resources, check logs, and test connectivity.Last updated1MIT
- Alicense-qualityBmaintenanceA read-only MCP server for Linux and macOS system administration, diagnostics, and troubleshooting, supporting remote SSH execution and multi-host management.Last updatedApache 2.0

masaro-infra-mcpofficial
Flicense-qualityCmaintenanceA secure MCP server providing read-only tools to interact with Cloudflare, Coolify, and other infrastructure services, enabling AI clients to safely diagnose and validate environments.Last updated
Related MCP Connectors
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Operate your Linux servers from your LLM. Every action runs through an auditable allowlist.
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alonf/MCPPythonDemo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server