A GitHub-integrated knowledge graph management server that enables remote storage, synchronization, and collaboration on entities, relations, and observations.
Knowledge Graph Operations (CRUD)
Create, read, update, and delete entities, relations, and observations
Add observations to existing entities
Store structured data in
memory/graph.jsonformat on GitHub
Advanced Querying & Search
Search entities by text query or retrieve specific entities by name
List entities with filtering (by type, date range), sorting (by name, createdAt, updatedAt), and pagination
Get entity names quickly (lightweight query) and view entity type statistics
Read the entire knowledge graph structure
GitHub Synchronization
Real-time, automatic, or manual sync with GitHub repositories (pull, push, force sync)
Conflict detection and resolution based on modification timestamps
Configurable auto-sync intervals and optional auto-push after CRUD operations
Custom commit messages for version control
Rate-limited API interactions (5,000 requests/hour)
Backup & Version Control
Create named backups of current memory state
View commit history with configurable limit
Prevents pushing empty graphs and unnecessary commits
Synchronizes knowledge graph data with a GitHub repository, enabling remote storage and collaboration. Supports real-time syncing, conflict detection and resolution, and automatic/manual sync options.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Remote Memory MCP Serverlist all entities created in the last week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
remote-memory-mcp-server
Remote Memory MCP Server
A GitHub-integrated remote memory management MCP server that syncs knowledge graph data with GitHub repositories for remote storage and collaboration.
Features
CRUD operations for entities, relations, and observations
Real-time synchronization with GitHub repositories
Conflict detection and resolution
Automatic/manual synchronization options
Search and filtering capabilities
Project-level memory isolation (v1.4.0)
Multiple projects, each with independent memory
Persistent active project (stored in GitHub
memory/index.json)Per-call project override without switching active project
Enhanced entity query features (v1.3.0)
Entity list retrieval (with filtering, sorting, pagination)
Quick entity name lookup
Entity type statistics
Date range filtering
Enhanced commit messages (customizable)
Backup functionality (per-project)
Commit history tracking
Optional auto-push (AUTO_PUSH environment variable)
Related MCP server: Project MCP Server
Installation
cd C:\YOUR_PATH\remote-memory-mcp
npm install
npm run buildConfiguration
Required Parameters
GITHUB_TOKEN: GitHub Personal Access Token (requires repo permissions)GITHUB_OWNER: GitHub repository ownerGITHUB_REPO: GitHub repository name
Optional Parameters
GITHUB_BRANCH: Branch name to use (default: main)SYNC_INTERVAL: Auto-sync interval in seconds (0 for manual)AUTO_PUSH: Auto-push after CRUD operations (true/false, default: false)PROJECT_NAME: Active project on startup (default: frommemory/index.json, fallback:"default")
Claude Desktop Setup
Add to your claude_desktop_config.json file:
{
"mcpServers": {
"remote-memory": {
"command": "node",
"args": ["C://YOUR_PATH//remote-memory-mcp//dist//index.js"],
"env": {
"GITHUB_TOKEN": "YOUR_GITHUB_TOKEN_HERE",
"GITHUB_OWNER": "YOUR_GITHUB_USERNAME",
"GITHUB_REPO": "YOUR_GITHUB_REPO",
"GITHUB_BRANCH": "main",
"SYNC_INTERVAL": "0",
"AUTO_PUSH": "false",
"PROJECT_NAME": "my-project"
}
}
}
}Usage
For detailed API usage and examples, see SPEC.md.
Project-level Memory (v1.4.0)
Each project stores memory independently in the GitHub repository:
memory/
├── index.json ← project index + active project pointer
├── graph.json ← "default" project (backward compatible)
├── blog/
│ └── graph.json ← "blog" project
└── my-app/
└── graph.json ← "my-app" projectQuick Start
// 1. Create a project
create_project({ name: "blog", description: "Blog memory" })
// 2. Switch to it
switch_project({ project: "blog" })
// 3. Work normally — all tools now target "blog"
create_entities({ entities: [...] })
// 4. Access another project without switching
read_graph({ project: "my-app" })Active Project Priority
PROJECT_NAME env var → memory/index.json → "default"
Data Structure
Memory data is stored per project in the GitHub repository:
{
"entities": {
"Kim Kim": {
"name": "Kim Kim",
"entityType": "Person",
"observations": ["Software developer", "Lives in Seoul"],
"createdAt": "2025-01-01T00:00:00.000Z",
"updatedAt": "2025-01-01T00:00:00.000Z"
}
},
"relations": [
{
"from": "Kim Kim",
"to": "Company ABC",
"relationType": "works_at",
"createdAt": "2025-01-01T00:00:00.000Z"
}
],
"metadata": {
"version": "1.0.0",
"lastModified": "2025-01-01T00:00:00.000Z",
"lastSync": "2025-01-01T00:00:00.000Z"
}
}Architecture
Core Components
GitHubClient: Handles GitHub API interactions
MemoryGraphManager: Manages the in-memory knowledge graph
SyncManager: Handles synchronization and project management
RemoteMemoryMCPServer: Main MCP server class
Synchronization Strategy
Conflict Resolution: Prioritizes based on latest modification timestamp
Auto-push: Immediately pushes local changes to remote
Auto-pull: Checks for remote changes at configured intervals
Force Sync: Performs bidirectional sync ignoring conflicts
Important Notes
Requires GitHub Personal Access Token (with repo permissions)
GitHub API limits: 5,000 requests per hour for authenticated users
Network connection required
Project names: alphanumeric, hyphens, underscores only;
"default"is reserved
License
MIT License - Free to use, modify, and distribute
Changelog
v1.4.0
Project-level memory isolation
list_projects: List all projects and active projectcreate_project: Create a new isolated projectswitch_project: Switch active project (persisted to GitHub)
projectparameter on all tools: Target any project per-call without switchingPer-project backup paths:
backups/{project}/backup-*.jsonAdded
PROJECT_NAMEenvironment variableServer version bumped to 1.4.0
v1.3.0
New query tools
list_entities: Retrieve entity list (with filtering, sorting, pagination)get_entity_names: Quick entity name lookupget_entity_types: Entity type statistics
Enhanced query capabilities
EntityType filtering
Date range filtering (based on createdAt)
Sort options (createdAt, updatedAt, name)
Pagination (limit, offset)
Improved handling of large datasets
v1.2.0
Prevented unnecessary auto-commits on initialization
Added AUTO_PUSH environment variable for optional auto-push
Added logic to prevent pushing empty graphs
Improved initial load state tracking
v1.1.0
Custom commit message support
Added backup system (
create_backup)Commit history tracking (
get_commit_history)Automatic commit message generation
v1.0.0
Initial release
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.