local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
OpenAI, Git, 파일 시스템 및 Prometheus 통합을 갖춘 MCP 서버
이 저장소에는 OpenAI 서비스, Git 저장소 분석, 로컬 파일 시스템 작업 및 Prometheus 통합을 지원하는 MCP(모델 제어 평면) 서버 구현이 포함되어 있습니다.
프로젝트 구조
지엑스피1
요구 사항
- 파이썬 3.8 이상
- 패스트API
- 유비콘
- 오픈AI SDK
- 깃파이썬
- 요청
- Docker 및 Docker Compose(Prometheus 기능용)
설치
- 이 저장소를 복제하세요
- 종속성을 설치합니다.
환경 변수
다음 환경 변수를 설정하세요.
Azure OpenAI의 경우:
표준 OpenAI의 경우:
프로메테우스의 경우:
서버 실행
MCP 서버를 시작합니다.
또는 더 많은 옵션을 원하시면:
서버는 http://localhost:8000 에서 사용할 수 있습니다.
통합 테스트 도구
우리는 모든 테스트 기능에 사용자 친화적인 인터페이스를 제공하는 통합 테스트 스크립트를 제공합니다:
이 대화형 스크립트는 다음을 제공합니다.
- 파일 시스템 테스트
- Git 통합 테스트
- 메모리 분석 도구
- 프로메테우스 테스트와 메모리 스트레스
- MCP 서버 관리
- 환경 설정
개별 테스트
개별 테스트를 직접 실행할 수도 있습니다.
OpenAI 통합을 테스트하세요.
Git 통합을 테스트합니다(Git 저장소 URL을 제공하세요):
Git diff 기능 테스트(요구 사항 호환성 분석):
파일 시스템 기능을 테스트하세요.
MCP와 langflow 통합을 테스트하세요.
Prometheus 통합을 테스트하세요.
고급 Git 분석
AI 추천을 통한 더욱 고급 Git 저장소 분석의 경우:
저장소에서 특정 패턴을 검색할 수도 있습니다.
또는 AI 통찰력을 사용하여 마지막 커밋 차이점을 분석합니다.
메모리 분석 도구
MCP에는 메모리 모니터링 및 분석을 위한 여러 도구가 포함되어 있습니다.
테스트를 위해 메모리 압력을 시뮬레이션할 수도 있습니다.
프로메테우스 통합
설정
- Docker Compose를 사용하여 Prometheus 스택을 시작합니다.
이렇게 시작됩니다:
- Prometheus 서버( http://localhost:9090 에서 접근 가능)
- 노드 내보내기(호스트 메트릭용)
- cAdvisor(컨테이너 메트릭용)
- 스트레스 테스트를 위해 메모리 스트레스 컨테이너를 시작할 수 있습니다.
또는 컨테이너 테스트 스크립트를 사용하세요.
Docker 구성 및 재설정 스크립트
이 프로젝트에는 다양한 환경에서 안정적으로 작동할 수 있는 여러 Docker 구성과 재설정 스크립트가 포함되어 있습니다.
Docker 구성
- 표준 구성 (
docker-compose.yml
): Prometheus와 Langflow에 대한 사용자 정의 Dockerfiles를 사용하여 시스템 전체에서 일관된 권한을 보장합니다. - 브리지 네트워크 구성 (
docker-compose.bridge.yml
): 호스트 네트워킹에 문제가 있는 환경에서 브리지 네트워킹을 사용하는 대체 구성입니다.
권한 문제 해결을 위한 사용자 정의 Dockerfile
이 프로젝트는 Prometheus와 Langflow 모두에 대한 사용자 정의 Dockerfiles를 사용하여 일반적인 권한 문제를 해결합니다.
- Dockerfile.prometheus :
nobody
사용자에게 적절한 권한을 부여하여 Prometheus 구성을 설정합니다. - Dockerfile.langflow : 파일 소유권을 변경하지 않고 구성 요소 디렉토리를 컨테이너에 복사하여 Langflow가 권한 오류 없이 구성 요소에 액세스할 수 있도록 합니다.
이 접근 방식을 사용하면 서로 다른 컴퓨터와 사용자 구성에서 권한 충돌이 발생할 수 있는 볼륨 마운트가 필요 없게 됩니다.
스크립트 재설정
- 모든 서비스 재설정 (
reset-all.sh
): 단일 명령으로 모든 컨테이너를 재설정합니다.Copy - 개별 서비스 재설정 :Copy
이러한 스크립트는 컨테이너가 올바른 권한과 최신 코드 변경 사항을 사용하여 제대로 구성되었는지 확인합니다.
문제 해결
권한 문제가 발생하는 경우:
- 재설정 스크립트를 사용하여 컨테이너를 다시 빌드합니다.
docker compose logs <service_name>
으로 로그를 확인하세요.- Langflow에 추가된 모든 구성 요소가 Dockerfile.langflow에 포함되어 있는지 확인하세요.
크로스 머신 배포
새 컴퓨터에 배포할 때:
- 저장소를 복제합니다
- 재설정 스크립트를 실행 가능하게 만들기:
chmod +x *.sh
- 재설정 스크립트를 실행합니다:
./reset-all.sh
사용자 정의 Dockerfile은 다양한 시스템에서 발생할 수 있는 모든 권한 문제를 자동으로 처리합니다.
Prometheus 클라이언트 사용
MCPAIComponent
클래스에는 Prometheus 기능이 포함되어 있습니다.
유용한 PromQL 쿼리
- CPU 사용량:
rate(node_cpu_seconds_total{mode!="idle"}[1m])
- 메모리 사용량:
node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes
- 디스크 사용량:
node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}
- 컨테이너 CPU 사용량:
rate(container_cpu_usage_seconds_total[1m])
- 컨테이너 메모리 사용량:
container_memory_usage_bytes
API 엔드포인트
OpenAI 엔드포인트
- GET
/v1/models
- 사용 가능한 모든 모델 나열 - GET
/v1/models/{model_id}
- 특정 모델에 대한 정보 가져오기 - POST
/v1/models/azure-gpt-4/completion
- Azure OpenAI를 사용하여 텍스트 완성 생성 - POST
/v1/models/azure-gpt-4/chat
- Azure OpenAI를 사용하여 채팅 응답 생성 - POST
/v1/models/openai-gpt-chat/chat
- OpenAI 채팅 모델을 사용하여 채팅 응답 생성 - POST
/v1/models/openai-gpt-completion/completion
- OpenAI 완성 모델을 사용하여 텍스트 완성 생성
Git 통합 엔드포인트
- POST
/v1/models/git-analyzer/analyze
- Git 저장소 분석 - POST
/v1/models/git-analyzer/search
- 패턴과 일치하는 파일을 Git 저장소에서 검색합니다. - POST
/v1/models/git-analyzer/diff
- 저장소의 마지막 커밋의 diff를 가져옵니다.
파일 시스템 엔드포인트
- POST
/v1/models/filesystem/list
- 디렉토리 내용 나열 - POST
/v1/models/filesystem/read
- 파일 내용 읽기 - POST
/v1/models/filesystem/read-multiple
- 여러 파일을 한 번에 읽기 - POST
/v1/models/filesystem/write
- 파일에 콘텐츠 쓰기 - POST
/v1/models/filesystem/edit
- 여러 개의 대체 항목이 있는 파일 편집 - POST
/v1/models/filesystem/mkdir
- 디렉토리 생성 - POST
/v1/models/filesystem/move
- 파일 또는 디렉토리 이동 - POST
/v1/models/filesystem/search
- 패턴과 일치하는 파일 검색 - POST
/v1/models/filesystem/info
- 파일이나 디렉토리에 대한 정보 가져오기
프로메테우스 엔드포인트
- POST
/v1/models/prometheus/query
- 즉석 쿼리 실행 - POST
/v1/models/prometheus/query_range
- 범위 쿼리 실행 - POST
/v1/models/prometheus/series
- 시리즈 데이터 가져오기 - GET
/v1/models/prometheus/labels
- 사용 가능한 모든 레이블 가져오기 - POST
/v1/models/prometheus/label_values
- 특정 레이블에 대한 값 가져오기 - GET
/v1/models/prometheus/targets
- 모든 대상 가져오기 - GET
/v1/models/prometheus/rules
- 모든 규칙 가져오기 - GET
/v1/models/prometheus/alerts
- 모든 알림 받기
클라이언트 사용
MCP 서버 URL을 제공하여 LangFlow 파이프라인에서 MCPAIComponent
사용할 수 있습니다.
GitCodeAnalyzer 클래스 사용
더욱 체계적인 Git 분석을 위해 GitCodeAnalyzer
클래스를 사용할 수 있습니다.
문제 해결
프로메테우스 문제
- Prometheus가 실행 중인지 확인하세요:
docker ps | grep prometheus
- Prometheus UI에 액세스할 수 있는지 확인하세요: http://localhost:9090
- MCP 서버가 실행 중이고 액세스 가능한지 확인하세요.
- MCP 서버 로그에서 오류를 확인하세요.
- 연결성을 확인하려면 먼저 간단한 쿼리를 시도하세요(예:
up
쿼리).
OpenAI 문제
- API 키가 올바르게 설정되었는지 확인하세요
- 속도 제한 또는 할당량 문제를 확인하세요
- API 키에 지원되는 모델을 사용하고 있는지 확인하세요.
Git 문제
- Git 저장소 URL에 액세스할 수 있는지 확인하세요.
- 개인 저장소를 사용하는 경우 인증 문제가 있는지 확인하세요.
- GitPython이 올바르게 설치되었는지 확인하세요
This server cannot be installed
REST API 엔드포인트를 통해 OpenAI 서비스, Git 저장소 분석 및 로컬 파일 시스템 작업을 위한 통합 인터페이스를 제공하는 서버 구현입니다.
- Project Structure
- Requirements
- Installation
- Environment Variables
- Running the Server
- Unified Testing Tool
- Individual Tests
- Advanced Git Analysis
- Memory Analysis Tools
- Prometheus Integration
- API Endpoints
- Client Usage
- Using the GitCodeAnalyzer Class
- Troubleshooting