Rag setup project
Skill butchokoy25/lightrag-claude-skills/skills/rag-setup-project
Persistent memory for Claude Code via LightRAG knowledge graphs — 7 skills + 2 auto-hooks
npx -y skills add butchokoy25/lightrag-claude-skills --skill rag-setup-projectAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Set up LightRAG persistent memory for a Cursor project with MCP configuration
SKILL.md
3.5 KB, as published. Nobody here has run it
RAG Setup Project — Configure LightRAG for a Cursor Project
Set up a project-level LightRAG knowledge graph instance for the current Cursor project. Creates the MCP configuration so Claude Code can query and store project-specific memory.
What this does
- Creates
.cursor/mcp.jsonin the project root with the LightRAG MCP server entry - Merges with existing MCP config if other servers are already configured
- Optionally seeds the graph with project context (README, package.json, architecture docs)
Setup steps
1. Create or merge MCP config
If .cursor/mcp.json does NOT exist:
node -e "
const fs = require('fs');
const config = {
mcpServers: {
'lightrag-projects': {
command: 'npx',
args: ['-y', 'lightrag-mcp@latest'],
env: {
LIGHTRAG_URL: 'http://YOUR_LIGHTRAG_HOST:YOUR_PROJECT_PORT',
LIGHTRAG_API_KEY: process.env.LIGHTRAG_API_KEY || 'YOUR_API_KEY'
}
}
}
};
fs.mkdirSync('.cursor', { recursive: true });
fs.writeFileSync('.cursor/mcp.json', JSON.stringify(config, null, 2));
console.log('Created .cursor/mcp.json');
"
If .cursor/mcp.json already exists, merge:
node -e "
const fs = require('fs');
const existing = JSON.parse(fs.readFileSync('.cursor/mcp.json', 'utf-8'));
existing.mcpServers = existing.mcpServers || {};
existing.mcpServers['lightrag-projects'] = {
command: 'npx',
args: ['-y', 'lightrag-mcp@latest'],
env: {
LIGHTRAG_URL: 'http://YOUR_LIGHTRAG_HOST:YOUR_PROJECT_PORT',
LIGHTRAG_API_KEY: process.env.LIGHTRAG_API_KEY || 'YOUR_API_KEY'
}
};
fs.writeFileSync('.cursor/mcp.json', JSON.stringify(existing, null, 2));
console.log('Merged lightrag-projects into existing .cursor/mcp.json');
"
2. Update .gitignore
Suggest adding .cursor/ to .gitignore if not already present:
node -e "
const fs = require('fs');
const gitignore = fs.existsSync('.gitignore') ? fs.readFileSync('.gitignore', 'utf-8') : '';
if (!gitignore.includes('.cursor')) {
fs.appendFileSync('.gitignore', '\n# Cursor IDE config\n.cursor/\n');
console.log('Added .cursor/ to .gitignore');
} else {
console.log('.cursor/ already in .gitignore');
}
"
3. Optionally seed the graph
If the user wants to seed the project graph with existing docs:
node -e "
const fs = require('fs');
const BASE = 'http://YOUR_LIGHTRAG_HOST:YOUR_PROJECT_PORT';
const API_KEY = process.env.LIGHTRAG_API_KEY || 'YOUR_API_KEY';
const files = ['README.md', 'package.json', 'ARCHITECTURE.md', 'CLAUDE.md']
.filter(f => fs.existsSync(f));
(async () => {
for (const file of files) {
const text = fs.readFileSync(file, 'utf-8');
await fetch(BASE + '/documents/text', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': API_KEY
},
body: JSON.stringify({
file_source: '[SEED] ' + file + ' — project bootstrap',
text: text.slice(0, 10000)
})
});
console.log('Seeded:', file);
}
console.log('Done. Seeded ' + files.length + ' files.');
})();
"
After setup
- Restart Claude Code to pick up the new MCP config
- Use
/rag-project-queryto query project memory - Use
/rag-project-rememberto store project-specific knowledge - Use
/rag-project-syncat end of session to persist learnings