Yapay zeka rol oyunu ve hikaye üretimi için optimize edilmiş, grafik tabanlı bellek sistemi
Claude Desktop config.json'a ekle
{
"mcpServers": {
"chemiguel23-memorymesh": {
"command": "node",
"args": [
"~/.mcp/MemoryMesh/index.js"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/CheMiguel23/MemoryMesh.git ~/.mcp/MemoryMesh
cd ~/.mcp/MemoryMesh MemoryMesh, AI modelleri için tasarlanmış bir bilgi grafı sunucusudur ve metin tabanlı RPG'ler ile etkileşimli hikaye anlatımına odaklanmıştır. AI'ın konuşmalar arasında tutarlı, yapılandırılmış belleği korumasına yardımcı olarak, daha zengin ve dinamik etkileşimleri mümkün kılar.
Proje, MCP sunucuları deposundan Knowledge Graph Memory Server tabanlıdır ve temel işlevselliğini korumaktadır.
v0.3.0 Güncellemesi: MCP SDK, mevcut Model Context Protocol spesifikasyonuna (2025-11-25) uyum sağlamak için v1.0.4'ten v1.25.2'ye güncellendi. Bu, Claude Desktop, ChatGPT, Cursor, Gemini ve VS Code dahil olmak üzere en son MCP istemcileriyle uyumluluğu sağlayan büyük bir güncellemedir. Güncelledikten sonra, yeni bağımlılıkları almak için npm install komutunu çalıştırın.
v0.2.7 sürümünden itibaren şemaların varsayılan konumu dist/data/schemas olarak değiştirilmiştir.
Bu konum gelecekte değişmesi beklenmemektedir, ancak önceki bir sürümden güncelleme yapıyorsanız, şema dosyalarınızı yeni konuma taşıdığınızdan emin olun.
MemoryMesh, AI modelleri için yapılandırılmış bilgi oluşturmanızı ve yönetmenizi sağlayan yerel bir bilgi grafı sunucusudur. Metin tabanlı RPG'ler için özellikle uygun olmakla birlikte, uyarlanabilir tasarımı sosyal ağ simülasyonları, organizasyon planlaması veya yapılandırılmış verileri içeren herhangi bir senaryo için kullanışlı hale getirir.
Düğümler, bilgi grafı içindeki varlıkları veya kavramları temsil eder. Her düğüm şunlara sahiptir:
name: Benzersiz bir tanımlayıcı.nodeType: Düğümün türü (örn. npc, artifact, location), şemalarınız tarafından tanımlanır.metadata: Düğüm hakkında açıklayıcı ayrıntılar sağlayan dizelerin bir dizisi.weight: (İsteğe Bağlı) İlişkinin gücünü temsil eden 0 ile 1 arasında bir sayısal değer, varsayılan olarak 1'dir.Örnek Düğüm:
{
"name": "Aragorn",
"nodeType": "player_character",
"metadata": [
"Race: Human",
"Class: Ranger",
"Skills: Tracking, Swordsmanship",
"Affiliation: Fellowship of the Ring"
]
}
Kenarlar, düğümler arasındaki ilişkileri temsil eder. Her kenar şunlara sahiptir:
from: Kaynak düğümün adı.to: Hedef düğümün adı.edgeType: İlişkinin türü (örn. owns, located_in).{
"from": "Aragorn",
"to": "Andúril",
"edgeType": "owns"
}
Şemalar, MemoryMesh'in kalbidir. Verilerinizin yapısını tanımlar ve araçların otomatik oluşturulmasını yönlendirir.
Şema dosyalarınızı (.schema.json) yapılı MemoryMesh projenizin dist/data/schemas dizinine yerleştirin. MemoryMesh, başlangıçta bu dosyaları otomatik olarak algılayacak ve işleyecektir.
Dosya adı: [name].schema.json. Örneğin, bir 'npc' tanımlayan bir şema için, dosya adı add_npc.schema.json olacaktır.
name - Şema ve bellek içindeki düğüm türü için tanımlayıcı. ÖNEMLİ: Şemanın adı tanınması için add_ ile başlamalıdır.description - add_<name> aracının açıklaması olarak kullanılır, AI için bağlam sağlar. (İçin delete ve update araçlarının genel bir açıklaması vardır)properties - Her property, türü, açıklaması ve ek kısıtlamalarını içerir.
property
type - Desteklenen değerler string veya array şeklindedir.description - AI'ı varlığın amacı hakkında rehberlik etmeye yardımcı olur.required - Boolean. true ise, AI'ın zorunlu olarak bir düğüm oluştururken bu property'yi sağlaması gerekir.enum - Dizelerin bir dizisi. Mevcutsa, AI'ın verilen seçeneklerden birini seçmesi gerekir.relationship - Başka bir düğüme bağlantı tanımlar. Bir property zorunlu ve ilişkiye sahipse, AI her zaman hem düğümü hem de karşılık gelen kenarı oluşturacaktır.
edgeType - Oluşturulacak ilişkinin türü.description - AI'ı ilişkinin amacı hakkında rehberlik etmeye yardımcı olur.additionalProperties - Boolean. true ise, AI'ın zorunlu veya isteğe bağlı olarak tanımlanan olanlar dışında ek attribute eklemesine izin verir.{
"name": "add_npc",
"description": "Schema for adding an NPC to the memory" ,
"properties": {
"name": {
"type": "string",
"description": "A unique identifier for the NPC",
"required": true
},
"race": {
"type": "string",
"description": "The species or race of the NPC",
"required": true,
"enum": [
"Human",
"Elf",
"Dwarf",
"Orc",
"Goblin"
]
},
"currentLocation": {
"type": "string",
"description": "The current location of the NPC",
"required": true,
"relationship": {
"edgeType": "located_in",
"description": "The current location of the NPC"
}
}
},
"additionalProperties": true
}
Bu şemaya bağlı olarak, MemoryMesh otomatik olarak şunları oluşturur:
MemoryMesh, metin tabanlı RPG'ler için tasarlanmış 11 ön kurulu şema içerir ve oyun geliştirme için hazır kullanıma hazır bir temel sağlar.
MemoryMesh, şema oluşturma ve düzenlemesini basitleştirmek için bir SchemaManager aracı içerir. Visual bir arayüz sağlayarak, JSON'u doğrudan yazmadan veri yapılarınızı tanımlamayı kolaylaştırır.
MemoryMesh, dinamik araçlar aracılığıyla bilgi grafınız ile etkileşimi basitleştirir. Bu araçlar manuel olarak kodlanmaz, bunun yerine otomatik olarak oluşturulur doğrudan şema tanımlarınızdan. Bu, şemalar kullanarak verilerinizin yapısını tanımladığınızda, MemoryMesh'in bu belirli veri yapısıyla çalışmak için özel olarak tasarlanmış bir araç seti zekice oluşturacağı anlamına gelir.
Bunu şöyle düşünün: Siz bir blueprint (şema) sağlarsınız ve MemoryMesh, o blueprint'e dayalı olarak öğeleri oluşturmak, değiştirmek ve kaldırmak için gerekli araçları otomatik olarak inşa eder.
MemoryMesh'in, şema tanımlarınızı okuyan akıllı bir sistemi vardır. Tanımladığınız yapıyı, varlıklarınızın özellikleri ve ilişkilerini analiz eder. Bu analize bağlı olarak, her varlık türü için otomatik olarak bir araç seti oluşturur:
add_<entity>: Bir varlığın yeni örneklerini oluşturmak için bir araç.update_<entity>: Mevcut varlıkları değiştirmek için bir araç.delete_<entity>: Varlıkları kaldırmak için bir araç.Bu araçlar daha sonra MemoryMesh içindeki merkezi bir hub aracılığıyla kullanıma sunulur, böylece bağlı herhangi bir istemci veya AI tarafından kolayca erişilebilir ve kullanılabilir duruma getirilir.
Esasen, MemoryMesh'in dinamik araç sistemi, bilgi grafınızı yönetmek için güçlü ve etkili bir yol sağlayarak, temel veri manipülasyonunun mekaniklerinden ziyade uygulamanızın içeriği ve mantığına odaklanmanıza olanak tanır.
Varsayılan olarak, veriler dist/data/memory.json dosyasında JSON olarak depolanır.
Memory Viewer, MemoryMesh tarafından yönetilen bilgi grafının içeriğini görselleştirmenize ve incelemenize yardımcı olmak için tasarlanmış ayrı bir araçtır. Düğümleri, kenarları ve özelliklerini keşfetmek için kullanıcı dostu bir arayüz sağlar.
Memory Viewer, bağımsız bir web uygulamasıdır. Memory Viewer tartışması
memory.json dosyasını seçin (varsayılan olarak dist/data/memory.json konumunda).En iyi sonuçlar için Claude'un "Projects" özelliğini özel talimatlarla kullanın. Başlayabileceğiniz bir istem örneği:
You are a helpful AI assistant managing a knowledge graph for a text-based RPG. You have access to the following tools: add_npc, update_npc, delete_npc, add_location, update_location, delete_location, and other tools for managing the game world.
When the user provides input, first process it using your available tools to update the knowledge graph. Then, respond in a way that is appropriate for a text-based RPG.
Sohbette doğrudan AI'ya belirli eylemler gerçekleştirmesi talimatını da verebilirsiniz.
Kullanım durumunuz için en iyi sonucu veren farklı istemler deneyin!
Birkaç şehir, bazı NPC'ler, şehrin etrafında keşfetmek için birkaç konum ekleyin, bir veya iki artefaktı bir yerlere gizleyin
Depoyu Klonlayın:
git clone https://github.com/CheMiguel23/memorymesh.git
cd memorymesh
Bağımlılıkları Kurun:
npm install
Projeyi Yapılandırın:
npm run build
Bu komut, TypeScript kodunu dist dizininde JavaScript'e derler ve örnek şema ile veri dosyalarını da kopyalar.
Dosya Kopyalamayı Doğrulayın (İsteğe Bağlı):
data klasörünü dist klasörüne otomatik olarak kopyalamalıdır.dist/data klasörünün var olduğunu ve .json dosyaları içerdiğini. Ayrıca dist/data/schemas klasörünün var olduğunu ve .schema.json dosyaları içerdiğini doğrulayın.Claude Desktop'ı Yapılandırın:
Claude Desktop yapılandırma dosyanızı açın:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonmcpServers bölümüne memorymesh için bir entry ekleyin. Aşağıdaki yapılandırma seçeneklerinden birini seçebilirsiniz:"mcpServers": {
"memorymesh": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/YOUR/PROJECT/memorymesh/dist/index.js"]
}
}
/ABSOLUTE/PATH/TO/YOUR/PROJECT/ öğesini memorymesh proje dizininizin gerçek mutlak yolu ile değiştirin."command": "node",
"args": ["/Users/yourusername/Projects/memorymesh/dist/index.js"]
"command": "node",
"args": ["C:\\Projects\\memorymesh\\dist\\index.js"]
Claude Desktop'ı Yeniden Başlatın: Değişikliklerin etkili olması için Claude Desktop'ı tamamen yeniden başlatın.
add_npc, update_npc, vb.), sunucunuz çalışıyor ve araçları doğru şekilde ortaya koymaktadır.Güncellemelerden önce, bellek verilerinizi kaybetmemek için dist/data dizinini yedekleyin.
Sunucu Claude'da görünmüyor:
claude_desktop_config.json dosyasındaki yolları çift kontrol edin. Mutlak yollar ve doğru oldukları emin olun.dist dizininin var olduğunu ve index.js dahil olmak üzere derlenmiş JavaScript dosyalarını içerdiğini doğrulayın.~/Library/Logs/Claude/mcp-server-memorymesh.log (ve mcp.log)%AppData%\Claude altındaki bir Logs klasöründe)Araçlar görünmüyor:
npm run build komutunuzun hatasız tamamlandığından emin olun.dist/data/schemas konumunda doğru bir şekilde yerleştirildiğini ve doğru adlandırma kuralını izlediğini doğrulayın (add_[entity].schema.json).MemoryMesh, temel kurulumun ötesinde davranışını özelleştirmenin birkaç yolunu sunar:
/config/config.ts içinde varsayılan ayarları geçersiz kılabilirsiniz
dist/data/memory.json)dist/data/schemas/memory.json)Düğüm Silme: AI, bilgi grafından düğümleri silme konusunda isteksiz olabilir. Gerekirse istemler aracılığıyla bunu teşvik edin.
Çatışan Bilgi: MemoryMesh, verileri işlemek için şu anda bir "son yazı kazanır" yaklaşımı kullanır. Aynı varlık hakkında çatışan bilgiler sağlanırsa, en son güncelleme önceki değerlerin yerine geçer. Çatışan bilgileri yönetmek için stratejiler:
Mevcut Yaklaşımlar:
"Source: Character testimony" veya "Source: Official records" gibi meta veri girişleri ekleyerek bilginin nereden geldiğini takip edin."As of Chapter 3") ekleyerek bilginin ne zaman geçerli olduğunu takip edin.rumor_about_villain vs truth_about_villain).weight özelliğini kullanın.Örnek - Belirsiz bilgileri izlemek:
{
"name": "VillainOrigin_Rumor",
"nodeType": "information",
"metadata": [
"Source: Tavern gossip",
"Reliability: Low",
"Claims: Villain came from the northern mountains"
]
}
Gelecekteki Hususlar: Sofistike çatışma çözümleme gerektiren uygulamalar için, şunları yapan özel bir katman uygulamayı düşünün:
Katkılar, geri bildirim ve fikirler hoş karşılanır! Bu proje, yapılandırılmış verilerin AI akıl yürütme yetenekleriyle entegre edilmesine yönelik kişisel bir keşiftir. Bunu ileriye taşımak veya yeni projeleri ilham vermek için katkılar, geri bildirim ve fikirler hoş karşılanır.
LLM'ler ve yapay zeka kod editörleri için güncel kod dokümantasyonu.
AI ajanlar için bağlam sıkıştırma katmanı. Tool çıktılarını, logları, RAG chunk'larını, dosyaları ve konuşma geçmişini LLM'ye ulaşmadan önce sıkıştırır ve MCP tool'ları aracılığıyla geri alınabilir şekilde depolar.
AI uygulamaları ve Ajanlar için bellek yöneticisi, çeşitli graph ve vector store'ları destekler ve 30+ veri kaynağından veri alımına olanak tanır.
Obsidian vault'larınız için evrensel bir AI köprüsü sunan MCP tabanlı araç. Notlarınıza güvenli okuma/yazma erişimi sağlar ve arama, toplu işlemler, etiket yönetimi ile frontmatter işleme gibi 11 kapsamlı işlem sunur. Claude, ChatGPT ve tüm MCP uyumlu AI asistanlarıyla çalışır.
Grafik RAG, vektör arama ve tam metin aramasını birleştiren, üretime hazır RAG platformu. Kendi Knowledge Graph'ınızı oluşturmak ve Context Engineering için en iyi seçim.
Mem0 için bir Model Context Protocol sunucusu; IDE'ler (Cursor, Windsurf gibi) içinde kodlama tercihlerini ve desenlerini yönetmeye, kod implementasyonlarını, best practices'leri ve teknik dokümantasyonu semantik olarak depolamaya ve erişmeye yarayan araçlar sunuyor.