mcp-with-ssh

by aakarsh-sasi
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Allows CI/CD integration through GitHub Actions, as shown by the test workflow badge in the README.

  • Uses markdown for structured information storage, organizing project data into markdown files for context management across sessions.

  • Provides package distribution through npm registry, enabling installation via npm commands and integration with package.json workflows.

원격 SSH 지원이 있는 메모리 뱅크 MCP 🧠

메모리 뱅크를 관리하는 모델 컨텍스트 프로토콜(MCP) 서버로, AI 어시스턴트가 세션 간에 정보를 저장하고 검색할 수 있도록 지원합니다. 이제 원격 서버 지원도 제공됩니다!

개요 📋

메모리 뱅크 서버는 AI 비서가 메모리 뱅크와 상호 작용할 수 있도록 도구와 리소스 세트를 제공합니다. 메모리 뱅크는 여러 세션에 걸쳐 맥락을 유지하고 진행 상황을 추적하는 데 도움이 되는 정보의 구조화된 저장소입니다.

특징 ✨

  • 메모리 뱅크 관리 : 메모리 뱅크 초기화, 찾기 및 관리
  • 파일 작업 : 메모리 뱅크에서 파일 읽기 및 쓰기
  • 진행 상황 추적 : 진행 상황을 추적하고 메모리 뱅크 파일을 업데이트합니다.
  • 의사결정 로깅 : 맥락과 대안을 고려하여 중요한 의사결정을 로깅합니다.
  • 활성 컨텍스트 관리 : 활성 컨텍스트 정보 유지 및 업데이트
  • 모드 지원 : 모드별 동작을 위해 .clinerules 파일을 감지하고 사용합니다.
  • UMB 명령 : UMB 명령을 사용하여 메모리 뱅크 파일을 임시로 업데이트합니다.
  • 강력한 오류 처리 : 가능한 경우 오류를 우아하게 처리하고 작업을 계속합니다.
  • 상태 접두사 시스템 : 메모리 뱅크 작동 상태에 대한 즉각적인 가시성
  • 원격 서버 지원 : SSH를 사용하여 원격 서버에 메모리 뱅크 저장

디렉토리 구조 📁

기본적으로 메모리 뱅크는 프로젝트 루트에 있는 memory-bank 디렉터리를 사용합니다. --path 옵션을 사용하여 프로젝트 경로를 지정하면 메모리 뱅크는 <project_path>/memory-bank 에 생성되거나 액세스됩니다.

--folder 옵션을 사용하여 메모리 뱅크 폴더의 이름을 사용자 지정할 수 있습니다. 예를 들어, --folder custom-memory 설정하면 메모리 뱅크는 <project_path>/custom-memory 에 생성되거나 액세스됩니다.

폴더 이름을 사용자 지정하는 방법에 대한 자세한 내용은 사용자 지정 메모리 뱅크 폴더 이름을 참조하세요.

최근 개선 사항 🛠️

  • 원격 서버 지원 : SSH를 통해 원격 서버에 메모리 뱅크 저장
  • 사용자 정의 가능한 폴더 이름 : 이제 메모리 뱅크에 대한 사용자 정의 폴더 이름을 지정할 수 있습니다.
  • 일관된 디렉토리 구조 : 메모리 뱅크는 이제 항상 프로젝트 루트에 구성된 폴더 이름을 사용합니다.
  • 향상된 초기화 : 이제 .clinerules 파일이 없어도 메모리 뱅크가 작동합니다.
  • 더 나은 경로 처리 : 절대 경로와 상대 경로의 처리가 개선되었습니다.
  • 개선된 디렉토리 감지 : 기존 메모리 뱅크 디렉토리를 더 잘 감지합니다.
  • 더욱 강력한 오류 처리 : .clinerules 파일과 관련된 오류의 우아한 처리

자세한 내용은 메모리 뱅크 버그 수정을 참조하세요.

설치 🚀

지엑스피1

npx와 함께 사용하기 💻

npx를 사용하면 설치 없이 Memory Bank MCP를 직접 실행할 수 있습니다.

# Run with default settings npx @aakarsh-sasi/memory-bank-mcp # Run with specific mode npx @aakarsh-sasi/memory-bank-mcp --mode code # Run with custom project path npx @aakarsh-sasi/memory-bank-mcp --path /path/to/project # Run with custom folder name npx @aakarsh-sasi/memory-bank-mcp --folder custom-memory-bank # Run with remote server npx @aakarsh-sasi/memory-bank-mcp --remote --remote-user username --remote-host example.host.com --remote-path /home/username/memory-bank # Show help npx @aakarsh-sasi/memory-bank-mcp --help

npx 사용에 대한 자세한 내용은 npx-usage.md를 참조하세요.

원격 서버 모드 사용 🌐

메모리 뱅크 MCP는 이제 SSH를 통해 원격 서버에 메모리 뱅크를 저장할 수 있도록 지원합니다. 이를 통해 다음과 같은 작업을 수행할 수 있습니다.

  1. 메모리 뱅크 중앙화 : 모든 프로젝트 메모리를 한곳에 보관하세요
  2. 메모리 뱅크 공유 : 여러 사용자가 동일한 메모리 뱅크에 액세스할 수 있습니다.
  3. 영구 저장소 : 로컬 머신이 삭제되더라도 메모리 뱅크는 그대로 유지됩니다.

원격 서버 요구 사항

  • 원격 서버에 대한 SSH 액세스
  • SSH 키 인증 설정(암호 인증은 지원되지 않음)
  • 지정된 디렉토리에 파일을 생성/수정할 수 있는 충분한 권한

SSH 키 설정

원격 서버에 대한 SSH 키 인증을 설정하려면:

  1. 새로운 SSH 키 쌍을 생성합니다 (아직 없는 경우):
    # Using modern Ed25519 algorithm (recommended) ssh-keygen -t ed25519 -C "your_email@example.com" # OR using RSA if required for compatibility ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  2. SSH 에이전트를 시작하고 키를 추가합니다 .
    # Start the agent eval "$(ssh-agent -s)" # Add your key ssh-add ~/.ssh/id_ed25519 # or ~/.ssh/id_rsa if you used RSA
  3. 공개 키를 원격 서버에 복사하세요 .
    # Easiest method (if available) ssh-copy-id username@your-remote-host.com # Alternative: manually copy your public key cat ~/.ssh/id_ed25519.pub # copy the output
    그런 다음 키를 원격 서버의 ~/.ssh/authorized_keys 파일에 붙여넣습니다.
  4. 연결을 테스트하세요 :
    ssh username@your-remote-host.com
    비밀번호 없이도 로그인할 수 있어야 합니다.

더 자세한 SSH 키 설정 지침은 SSH 키 가이드를 참조하세요.

원격 서버 구성

원격 서버 모드를 사용하려면 다음 매개변수를 제공해야 합니다.

npx @aakarsh-sasi/memory-bank-mcp --remote \ --ssh-key ~/.ssh/your_ssh_key \ --remote-user username \ --remote-host example.host.com \ --remote-path /home/username/memory-bank

기본적으로 SSH 키는 ~/.ssh/your_ssh_key 에 있다고 가정합니다. --ssh-key 옵션을 사용하여 다른 키를 지정할 수 있습니다.

원격 서버 예제

# Using with a server at example.host.com npx @aakarsh-sasi/memory-bank-mcp --remote \ --remote-user username \ --remote-host example.host.com \ --remote-path /home/username/memory-bank

커서에서 구성하기 🖱️

Cursor는 모델 컨텍스트 프로토콜(MCP)을 지원하는 AI 기반 코드 편집기입니다. Cursor에서 메모리 뱅크 MCP를 구성하려면 다음 단계를 따르세요.

  1. npx와 함께 Memory Bank MCP 사용하기 :패키지를 전역으로 설치할 필요는 없습니다. npx를 직접 사용할 수 있습니다.
    # Verify npx is working correctly npx @aakarsh-sasi/memory-bank-mcp --help
  2. 커서 설정 열기 :
    • 설정(⚙️) > 확장 프로그램 > MCP로 이동하세요.
    • "MCP 서버 추가"를 클릭하세요
  3. MCP 서버 구성 :
    • 이름 : 메모리 뱅크 MCP
    • 명령어 : npx
    • 인수 : @aakarsh-sasi/memory-bank-mcp --mode code (또는 필요에 따라 다른 모드)

    원격 서버의 경우:

    • 인수 : @aakarsh-sasi/memory-bank-mcp --mode code --remote --remote-user username --remote-host example.host.com --remote-path /home/username/memory-bank
  4. 저장 및 활성화 :
    • "저장"을 클릭하세요
    • MCP 서버를 켜서 활성화합니다.
  5. 연결 확인 :
    • 커서에서 프로젝트 열기
    • 이제 메모리 뱅크 MCP가 활성화되어 AI 상호 작용에서 사용할 수 있어야 합니다.

Cursor에 대한 자세한 지침과 고급 사용법은 cursor-integration.md를 참조하세요.

커서와 함께 사용하기 🤖

구성이 완료되면 AI 명령을 통해 커서에서 메모리 뱅크 MCP와 상호 작용할 수 있습니다.

  • 메모리 뱅크 초기화 : /mcp memory-bank-mcp initialize_memory_bank path=./memory-bank
  • 진행 상황 추적 : /mcp memory-bank-mcp track_progress action="Feature Implementation" description="Implemented feature X"
  • 로그 결정 : /mcp memory-bank-mcp log_decision title="API Design" context="..." decision="..."
  • 스위치 모드 : /mcp memory-bank-mcp switch_mode mode=code

MCP 모드 및 사용법 🔄

Memory Bank MCP는 특정 작업에 대한 AI 상호 작용을 최적화하기 위해 다양한 운영 모드를 지원합니다.

사용 가능한 모드

  1. 코드 모드 👨‍💻
    • 초점: 코드 구현 및 개발
    • 사용법: npx @aakarsh-sasi/memory-bank-mcp --mode code
    • 가장 적합한 용도: 코드 작성, 리팩토링 및 최적화
  2. 건축가 모드 🏗️
    • 초점: 시스템 설계 및 아키텍처
    • 사용법: npx @aakarsh-sasi/memory-bank-mcp --mode architect
    • 가장 적합한 용도: 프로젝트 구조 계획, 구성 요소 설계 및 아키텍처 결정
  3. 질문 모드
    • 초점: 질문에 답하고 정보 제공
    • 사용법: npx @aakarsh-sasi/memory-bank-mcp --mode ask
    • 가장 적합한 용도: 설명, 명확화 및 정보 얻기
  4. 디버그 모드 🐛
    • 초점: 문제 해결 및 문제 해결
    • 사용법: npx @aakarsh-sasi/memory-bank-mcp --mode debug
    • 가장 적합한 용도: 버그 찾기 및 수정, 문제 분석
  5. 테스트 모드
    • 초점: 테스트 및 품질 보증
    • 사용법: npx @aakarsh-sasi/memory-bank-mcp --mode test
    • 가장 적합한 용도: 테스트 작성, 테스트 주도 개발

전환 모드

다음과 같은 여러 가지 방법으로 모드를 전환할 수 있습니다.

  1. 서버를 시작할 때 :
    npx @aakarsh-sasi/memory-bank-mcp --mode architect
  2. 세션 중 :
    memory-bank-mcp switch_mode mode=debug
  3. 커서에서 :
    /mcp memory-bank-mcp switch_mode mode=test
  4. .clinerules 파일 사용 : 프로젝트에 .clinerules-[mode] 파일을 생성하면 파일이 감지되면 해당 모드로 자동 전환됩니다.

메모리 뱅크 MCP 작동 원리 🧠

메모리 뱅크 MCP는 AI 어시스턴트가 외부 도구 및 리소스와 상호 작용할 수 있도록 하는 모델 컨텍스트 프로토콜(MCP)을 기반으로 합니다. 작동 방식은 다음과 같습니다.

핵심 구성 요소 🧩

  1. 메모리 뱅크 : 마크다운 파일로 저장된 정보의 구조화된 저장소:
    • product-context.md : 전반적인 프로젝트 정보 및 목표
    • active-context.md : 현재 상태, 진행 중인 작업 및 다음 단계
    • progress.md : 프로젝트 업데이트 및 이정표 기록
    • decision-log.md : 맥락과 근거를 포함한 중요한 결정 기록
    • system-patterns.md : 프로젝트에서 사용된 아키텍처 및 코드 패턴
  2. MCP 서버 : AI 어시스턴트가 메모리 뱅크와 상호 작용할 수 있는 도구와 리소스를 제공합니다.
    • 독립 실행형 프로세스로 실행됩니다
    • MCP 프로토콜을 통해 AI 어시스턴트와 통신합니다.
    • 메모리 뱅크 관리를 위한 도구 세트를 제공합니다.
  3. 모드 시스템 : 다양한 작동 모드를 지원합니다.
    • code : 코드 구현에 집중
    • ask : 질문에 답하는 데 집중하다
    • architect : 시스템 설계에 집중
    • debug : 디버깅 문제에 집중
    • test : 테스트에 집중하다

데이터 흐름 🔄

  1. 초기화 : AI 어시스턴트가 MCP 서버에 연결하고 메모리 뱅크를 초기화합니다.
  2. 도구 호출 : AI 어시스턴트는 MCP 서버에서 제공하는 도구를 호출하여 메모리 뱅크 파일을 읽거나 씁니다.
  3. 컨텍스트 유지 : 메모리 뱅크는 세션 전반에 걸쳐 컨텍스트를 유지하여 AI가 이전 결정과 진행 상황을 기억할 수 있도록 합니다.

메모리 뱅크 구조 📂

메모리 뱅크는 표준화된 구조를 사용하여 정보를 구성합니다.

  • 제품 컨텍스트 : 프로젝트 개요, 목표, 기술 및 아키텍처
  • 활성 컨텍스트 : 현재 상태, 진행 중인 작업, 알려진 문제 및 다음 단계
  • 진행 상황 : 프로젝트 업데이트 및 이정표의 연대순 기록
  • 의사결정 로그 : 맥락, 대안 및 결과를 포함한 중요한 의사결정 기록
  • 시스템 패턴 : 아키텍처 패턴, 코드 패턴, 문서 패턴

고급 기능 🚀

  • UMB 명령 : 세션 중 변경 사항을 적용하지 않고 메모리 뱅크 파일을 임시로 업데이트
  • 모드 감지 : 사용자 입력에 따라 모드를 자동으로 감지하고 전환합니다.
  • 파일 마이그레이션 : 서로 다른 파일 명명 규칙 간 마이그레이션을 위한 도구
  • 언어 표준화 : 모든 메모리 뱅크 파일은 일관성을 위해 영어로 생성됩니다.

버전 관리 📌

이 프로젝트는 의미적 버전 관리(Semantic Versioning)를 따르며, 커밋 메시지에는 기존 커밋(Conventional Commit)을 사용합니다. 변경 사항이 메인 브랜치에 병합되면 버전이 자동으로 상향 조정되고 커밋 메시지를 기반으로 변경 로그가 생성됩니다.

  • 중대한 변경 사항( BREAKING CHANGE 또는 !: 가 포함된 커밋 메시지)이 있는 경우 주요 버전이 올라갑니다.
  • 새로운 기능이 추가되면 마이너 버전이 올라갑니다( feat: 또는 feat(scope): 가 포함된 커밋 메시지)
  • 다른 모든 변경 사항(버그 수정, 문서화 등)은 패치 버전 으로 올라갑니다.

변경 사항의 전체 내역을 보려면 CHANGELOG.md 파일을 참조하세요.

사용법 📝

명령줄 도구로 💻

# Initialize a Memory Bank memory-bank-mcp initialize_memory_bank path=./memory-bank # Track progress memory-bank-mcp track_progress action="Feature Implementation" description="Implemented feature X" # Log a decision memory-bank-mcp log_decision title="API Design" context="..." decision="..." # Switch mode memory-bank-mcp switch_mode mode=code

도서관으로서 📚

import { MemoryBankServer } from "@aakarsh-sasi/memory-bank-mcp"; // Create a new server instance const server = new MemoryBankServer(); // Start the server server.run().catch(console.error);

기여하기 👥

행동 강령과 풀 리퀘스트 제출 프로세스에 대한 자세한 내용은 CONTRIBUTING.md를 참조하세요.

라이센스 📄

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

메모리 뱅크 상태 시스템 🚦

메모리 뱅크 MCP는 메모리 뱅크의 작동 상태를 즉시 파악할 수 있는 상태 접두사 시스템을 구현합니다.

상태 표시기

Memory Bank MCP를 사용하는 AI 도우미의 모든 응답은 다음 상태 표시기 중 하나로 시작됩니다.

  • [MEMORY BANK: ACTIVE] : 메모리 뱅크가 사용 가능하며 상황에 맞는 응답을 제공하는 데 사용됩니다.
  • [MEMORY BANK: INACTIVE] : 메모리 뱅크를 사용할 수 없거나 제대로 구성되지 않았습니다.
  • [MEMORY BANK: UPDATING] : 메모리 뱅크가 현재 업데이트 중입니다(UMB 명령 실행 중)

이 시스템은 사용자가 AI 비서가 전체 상황을 인식하여 작동하는지, 아니면 제한된 정보만으로 작동하는지 항상 알 수 있도록 보장합니다.

이익

  • 투명성 : 사용자는 AI가 전체 프로젝트 컨텍스트에 액세스할 수 있는지 항상 알 수 있습니다.
  • 문제 해결 : 메모리 뱅크가 제대로 구성되지 않은 경우 즉시 명확하게 알 수 있습니다.
  • 컨텍스트 인식 : 특정 응답에 역사적 맥락이 부족한 이유를 사용자가 이해하는 데 도움이 됩니다.

자세한 내용은 메모리 뱅크 상태 접두사 시스템을 참조하세요.

ID: lbc6a9lfqg