local-only server
The server can only run on the client’s local machine because it depends on local resources.
메모리메시
MemoryMesh는 AI 모델을 위해 설계된 지식 그래프 서버로, 텍스트 기반 RPG와 인터랙티브 스토리텔링에 중점을 두고 있습니다. AI가 대화 전반에 걸쳐 일관되고 체계적인 메모리를 유지하도록 지원하여 더욱 풍부하고 역동적인 상호작용을 가능하게 합니다.
이 프로젝트는 MCP 서버 저장소의 지식 그래프 메모리 서버를 기반으로 하며 핵심 기능을 유지합니다.
중요한
v0.2.7
부터 스키마의 기본 위치가 dist/data/schemas
로 변경되었습니다. 이 위치는 앞으로도 변경되지 않을 것으로 예상되지만, 이전 버전에서 업데이트하는 경우 스키마 파일을 새 위치로 옮기는 것을 잊지 마세요.
빠른 링크
개요
MemoryMesh는 AI 모델을 위한 구조화된 정보를 구축하고 관리할 수 있는 로컬 지식 그래프 서버입니다. 특히 텍스트 기반 RPG에 적합하지만, 유연한 설계 덕분에 소셜 네트워크 시뮬레이션, 조직 계획 또는 구조화된 데이터가 관련된 모든 시나리오 등 다양한 애플리케이션에 유용합니다.
주요 특징
- 동적 스키마 기반 도구: 스키마를 사용하여 데이터 구조를 정의하면 MemoryMesh가 자동으로 데이터를 추가, 업데이트, 삭제하기 위한 도구를 생성합니다.
- 직관적인 스키마 디자인: 필수 필드, 열거형 및 관계 정의를 사용하여 AI가 노드를 생성하고 연결하도록 안내하는 스키마를 만듭니다.
- AI 지침을 위한 메타데이터: 메타데이터를 사용하여 맥락과 구조를 제공하고, AI가 데이터 내의 의미와 관계를 이해하도록 돕습니다.
- 관계 처리: 스키마 내에서 관계를 정의하여 AI가 관련 데이터 포인트(노드) 간에 연결(에지)을 생성하도록 합니다.
- 정보 피드백: AI에 오류 피드백을 제공하여 실수로부터 학습하고 지식 그래프와의 상호 작용을 개선할 수 있도록 합니다.
- 이벤트 지원: 이벤트 시스템은 작업을 추적하여 지식 그래프가 어떻게 수정되는지에 대한 통찰력을 제공합니다.
노드
노드는 지식 그래프 내의 개체 또는 개념을 나타냅니다. 각 노드는 다음을 갖습니다.
name
: 고유 식별자.nodeType
: 스키마에 의해 정의된 노드의 유형(예:npc
,artifact
,location
)입니다.metadata
: 노드에 대한 설명적 세부 정보를 제공하는 문자열 배열입니다.weight
: (선택 사항) 관계의 강도를 나타내는 0과 1 사이의 숫자 값이며, 기본값은 1입니다.
예제 노드:
지엑스피1
가장자리
에지는 노드 간의 관계를 나타냅니다. 각 에지에는 다음이 있습니다.
from
: 소스 노드의 이름입니다.to
: 대상 노드의 이름입니다.edgeType
: 관계 유형(예:owns
,located_in
)
스키마
스키마는 MemoryMesh의 핵심입니다. 스키마는 데이터 구조를 정의하고 도구의 자동 생성을 담당합니다.
스키마 파일 위치
빌드한 MemoryMesh 프로젝트의 dist/data/schemas
디렉터리에 스키마 파일( .schema.json
)을 넣으세요. MemoryMesh는 시작 시 이 파일을 자동으로 감지하고 처리합니다.
스키마 구조
파일 이름: [name].schema.json
. 예를 들어 'npc'를 정의하는 스키마의 경우 파일 이름은 add_npc.schema.json
입니다.
name
- 메모리 내의 스키마 및 노드 유형에 대한 식별자입니다. 중요 : 스키마 이름은 인식되려면add_
로 시작 해야 합니다 .description
-add_<name>
도구에 대한 설명으로 사용되며 AI에 대한 컨텍스트를 제공합니다. (delete
및update
도구에는 일반적인 설명이 있습니다.)properties
- 각 속성에는 유형, 설명 및 추가 제약 조건이 포함됩니다.property
type
- 지원되는 값은string
또는array
입니다.description
- AI가 엔터티의 목적을 이해하는 데 도움이 됩니다.required
- 부울 값입니다.true
이면 AI가 노드를 생성할 때 이 속성을 제공해야 합니다 .enum
- 문자열 배열. 이 배열이 있는 경우 AI는 주어진 옵션 중 하나를 선택해야 합니다 .relationship
- 다른 노드와의 연결을 정의합니다. 속성이 필수이고 관계가 있는 경우, AI는 항상 노드와 해당 에지를 모두 생성합니다 .edgeType
- 생성할 관계의 유형입니다.description
- AI가 관계의 목적을 파악하는 데 도움이 됩니다.
additionalProperties
- 부울 값입니다.true
이면 AI가 필수 또는 선택 사항으로 정의된 속성 외에 추가 속성을 추가할 수 있습니다.
예시 스키마(add_npc.schema.json):
이 스키마를 기반으로 MemoryMesh는 다음을 자동으로 생성합니다.
- add_npc: 새로운 NPC 노드를 추가합니다.
- update_npc: 기존 NPC 노드를 수정합니다.
- delete_npc: NPC 노드를 제거합니다.
MemoryMesh에는 텍스트 기반 RPG에 맞춰 설계된 11개의 사전 구축된 스키마가 포함되어 있어 게임 개발을 위한 즉시 사용 가능한 기반을 제공합니다.
SchemaManager 도구
MemoryMesh에는 스키마 생성 및 편집을 간소화하는 SchemaManager 도구가 포함되어 있습니다. 시각적 인터페이스를 제공하여 JSON을 직접 작성하지 않고도 데이터 구조를 쉽게 정의할 수 있습니다.
동적 도구
MemoryMesh는 동적 도구를 통해 지식 그래프와의 상호 작용을 간소화합니다. 이러한 도구는 수동으로 코딩할 필요 없이 스키마 정의 에서 자동으로 생성 됩니다. 즉, 스키마를 사용하여 데이터 구조를 정의하면 MemoryMesh가 해당 데이터 구조에 맞춰 작동하는 도구 세트를 지능적으로 생성합니다.
이렇게 생각해 보세요. 청사진(스키마)을 제공하면 MemoryMesh가 해당 청사진을 기반으로 요소를 빌드, 수정, 제거하는 데 필요한 도구를 자동으로 구성합니다.
이런 일은 내부적으로 어떻게 진행되나요?
MemoryMesh는 스키마 정의를 읽어들이는 지능형 시스템을 갖추고 있습니다. 이 시스템은 사용자가 정의한 구조, 엔터티의 속성 및 관계를 분석합니다. 이 분석을 기반으로 각 엔터티 유형에 대한 도구 세트를 자동으로 생성합니다.
add_<entity>
: 엔티티의 새로운 인스턴스를 생성하는 도구입니다.update_<entity>
: 기존 엔터티를 수정하는 도구입니다.delete_<entity>
: 엔티티를 제거하는 도구입니다.
이러한 도구는 MemoryMesh 내의 중앙 허브를 통해 제공되므로 연결된 모든 클라이언트나 AI가 쉽게 액세스하여 사용할 수 있습니다.
본질적으로 MemoryMesh의 동적 도구 시스템은 지식 그래프를 관리하는 강력하고 효율적인 방법을 제공하여 데이터 조작의 기본 메커니즘이 아닌 애플리케이션의 콘텐츠와 논리에 집중할 수 있도록 해줍니다.
메모리 파일
기본적으로 데이터는 dist/data/memory.json
의 JSON 파일에 저장됩니다.
메모리 뷰어
메모리 뷰어는 MemoryMesh가 관리하는 지식 그래프의 내용을 시각화하고 검토할 수 있도록 설계된 별도의 도구입니다. 노드, 에지 및 해당 속성을 탐색할 수 있는 사용자 친화적인 인터페이스를 제공합니다.
주요 특징:
- 그래프 시각화: 지식 그래프를 대화형 노드-링크 다이어그램으로 봅니다.
- 노드 검사: 노드를 선택하여 노드 유형, 메타데이터 및 연결된 에지를 확인합니다.
- 에지 탐색: edgeType 및 방향을 포함하여 노드 간의 관계를 조사합니다.
- 검색 및 필터링: 특정 노드를 빠르게 찾거나 유형별로 필터링합니다.
- 테이블 보기: 특정 노드와 에지 또는 모든 노드와 에지를 한 번에 쉽게 찾아 검사할 수 있습니다.
- 원시 JSON 보기: 메모리 파일에서 원시 JSON 데이터를 볼 수 있습니다.
- 통계 패널: 지식 그래프에 대한 주요 지표와 정보를 제공합니다. 총 노드 수, 총 에지 수, 노드 유형, 에지 유형 등이 있습니다.
- 검색 및 필터링: 노드 유형이나 에지 유형별로 필터링하고, 노드, 에지 또는 둘 다 표시할지 여부를 필터링할 수 있습니다.
메모리 뷰어에 액세스하기
메모리 뷰어는 독립형 웹 애플리케이션입니다. 메모리 뷰어에 대한 토론
메모리 뷰어 사용
- 메모리 파일 선택: 메모리 뷰어에서 "메모리 파일 선택" 버튼을 클릭합니다.
- 파일 선택: MemoryMesh 프로젝트 디렉토리로 이동하여
memory.json
파일을 선택합니다(기본적으로dist/data/memory.json
에 위치). - 탐색: 메모리 뷰어는 지식 그래프의 내용을 로드하고 표시합니다.
메모리 흐름
즉각적인
최적의 결과를 얻으려면 Claude의 "프로젝트" 기능과 맞춤 지침을 사용하세요. 다음은 시작할 수 있는 프롬프트의 예입니다.
채팅에서 AI에게 특정 작업을 수행하도록 직접 지시할 수도 있습니다.
다양한 프롬프트를 실험해 보고 귀하의 사용 사례에 가장 적합한 프롬프트를 찾아보세요!
예
- 사용자 정의 지침이 포함된 간단한 예입니다 .
- 예를 들어 시각화를 통한 예시입니다 (기능의 일부가 아님)
도시 몇 개, NPC 몇 명, 도시 주변의 탐험할 장소 몇 개를 추가하고 어딘가에 유물 하나나 둘을 숨겨 두세요.
설치
Smithery를 통해 설치
Smithery를 통해 Claude Desktop용 MemoryMesh를 자동으로 설치하려면:
필수 조건
- Node.js: 버전 18 이상. nodejs.org 에서 다운로드할 수 있습니다.
- npm: 일반적으로 Node.js에 포함되어 있습니다.
- 데스크톱용 Claude: claude.ai/download 에서 최신 버전이 설치되어 있는지 확인하세요.
설치 단계
- 저장소 복제:Copy
- 종속성 설치:Copy
- 프로젝트 빌드:이 명령은 TypeScript 코드를Copy
dist
디렉토리의 JavaScript로 컴파일하고 샘플 스키마와 데이터 파일도 여기에 복사합니다. - 파일 복사 확인(선택 사항):
- 빌드 프로세스는 자동으로
data
폴더를dist
로 복사해야 합니다. dist/data
존재하고.json
파일이 포함되어 있는지 확인하세요 . 또한dist/data/schemas
존재하고.schema.json
파일이 포함되어 있는지 확인하세요.
- 빌드 프로세스는 자동으로
- Claude Desktop 구성:Claude Desktop 구성 파일을 엽니다.
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
mcpServers
섹션에memorymesh
항목을 추가합니다. 다음 구성 옵션 중 하나를 선택할 수 있습니다.
Copy/ABSOLUTE/PATH/TO/YOUR/PROJECT/``memorymesh
프로젝트 디렉토리의 실제 절대 경로 로 바꾸세요.- 예시(macOS):Copy
- 예(Windows):Copy
- macOS:
- Claude Desktop을 다시 시작합니다. 변경 사항을 적용하려면 Claude Desktop을 완전히 다시 시작합니다.
설치 확인
- Claude Desktop을 시작합니다.
- 새로운 채팅을 엽니다.
- 오른쪽 상단 모서리에 있는 MCP 플러그인 아이콘을 찾으세요. 만약 있다면 구성이 올바르다는 뜻입니다.
- 아이콘을 클릭하세요. 연결된 서버 목록에 "memorymesh"가 표시됩니다.
- 아이콘을 클릭하세요. 도구가 나열되어 있다면(예:
add_npc
,update_npc
등) 서버가 정상적으로 작동하고 도구를 제공하고 있는 것입니다.
업데이트 중
업데이트하기 전에 dist/data
디렉토리를 백업하여 메모리 데이터 손실을 방지하세요.
문제 해결
- Claude에 서버가 나타나지 않습니다:
claude_desktop_config.json
파일의 경로를 다시 한번 확인하세요. 경로가 절대 경로이고 올바른지 확인하세요.dist
디렉토리가 존재하고index.js
포함하여 컴파일된 JavaScript 파일이 포함되어 있는지 확인합니다.- Claude Desktop 로그에서 오류를 확인하세요.
- macOS:
~/Library/Logs/Claude/mcp-server-memorymesh.log
(및mcp.log
) - Windows: (아마도
%AppData%\Claude
아래의Logs
폴더에 있을 것임)
- macOS:
- 도구가 표시되지 않음:
npm run build
명령이 오류 없이 완료되었는지 확인하세요.- 스키마 파일이
dist/data/schemas
에 올바르게 배치되었고 올바른 명명 규칙(add_[entity].schema.json
)을 따르는지 확인하세요. - 초기화 중에 오류가 있는지 서버의 콘솔 출력이나 로그를 확인하세요.
고급 구성
MemoryMesh는 기본 설정 외에도 동작을 사용자 정의할 수 있는 여러 가지 방법을 제공합니다.
변수
/config/config.ts
사용하여 기본 설정을 재정의할 수 있습니다.
- MEMORY_FILE: 지식 그래프 데이터를 저장하는 데 사용되는 JSON 파일의 경로를 지정합니다. (기본값:
dist/data/memory.json
) - SCHEMAS_DIR: 스키마 파일 디렉터리 경로입니다. (기본값:
dist/data/schemas/memory.json
)
제한 사항
- 노드 삭제: AI가 지식 그래프에서 노드를 삭제하는 것을 주저할 수 있습니다. 필요한 경우 메시지를 통해 삭제를 독려하세요.
기부금
기여, 피드백, 그리고 아이디어를 환영합니다! 이 프로젝트는 구조화된 데이터와 AI 추론 기능을 통합하는 것에 대한 개인적인 탐구입니다. 프로젝트를 더욱 발전시키거나 새로운 프로젝트에 영감을 주기 위한 기여, 피드백, 그리고 아이디어를 환영합니다.