Hyperkorn/qdrant-neo4j-crawl4ai-mcp

๐Ÿง  Qdrant, Neo4j, Crawl4AI MCP ์„œ๋ฒ„๋กœ AI ํ˜‘์—…์„ ๊ฐ•ํ™”ํ•˜์—ฌ ๋ฒกํ„ฐ ๊ฒ€์ƒ‰, ์ง€์‹ ๊ทธ๋ž˜ํ”„, ์›น ์ธํ…”๋ฆฌ์ „์Šค๋ฅผ ์ตœ์ ์˜ ์„ฑ๋Šฅ์œผ๋กœ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค.

qdrant-neo4j-crawl4ai-mcp๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Hyperkorn/qdrant-neo4j-crawl4ai-mcp๋Š” AI ์—์ด์ „ํŠธ(์˜ˆ: Claude Code, Cursor ๋“ฑ MCP ํ˜ธํ™˜ ํ”Œ๋žซํผ)๋ฅผ ์œ„ํ•œ ํ†ตํ•ฉ MCP ์„œ๋ฒ„๋กœ, Qdrant์˜ ๋ฒกํ„ฐ ๊ฒ€์ƒ‰, Neo4j์˜ ์ง€์‹ ๊ทธ๋ž˜ํ”„, Crawl4AI์˜ ์›น ์Šคํฌ๋ž˜ํ•‘ ๋Šฅ๋ ฅ์„ ํ•˜๋‚˜์˜ ๋„๊ตฌ๋กœ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šคํ‚ฌ์„ ์‚ฌ์šฉํ•˜๋ฉด AI ์—์ด์ „ํŠธ๊ฐ€ ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ, ์˜๋ฏธ๋ก ์  ์œ ์‚ฌ์„ฑ, ๊ทธ๋ฆฌ๊ณ  ์‹ค์‹œ๊ฐ„ ์›น ์ •๋ณด๋ฅผ ๋™์‹œ์— ํ™œ์šฉํ•˜์—ฌ ๋ณต์žกํ•œ ์งˆ๋ฌธ์— ๋‹ตํ•˜๊ณ , ์ง€์‹๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋ฉฐ, ์ถ”๋ก  ๊ธฐ๋ฐ˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ํ‘œ์ค€ MCP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ํ†ต์‹ ํ•˜๋ฏ€๋กœ ๋ณ„๋„์˜ ๋ณต์žกํ•œ ์„ค์ • ์—†์ด๋„ ์—์ด์ „ํŠธ๊ฐ€ ์ž์œ ๋กญ๊ฒŒ ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์ด๋ฅผ ํ†ตํ•ด RAG(Retrieval-Augmented Generation) ํŒŒ์ดํ”„๋ผ์ธ, ๋™์  ์ง€์‹ ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰, ์ž๋™ํ™”๋œ ์›น ๋ฆฌ์„œ์น˜ ๋“ฑ์„ ์†์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€์› ๋Œ€์ƒ~Claude Code~Codex CLI~Cursor
npx skills add Hyperkorn/qdrant-neo4j-crawl4ai-mcp

Installed? Explore more ์—ฐ๊ตฌ & ๋ฐ์ดํ„ฐ ๋ถ„์„ skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review ยท View all 6 โ†’

์ฆ๊ฒจ ์‚ฌ์šฉํ•˜๋Š” AI์—๊ฒŒ ๋ฌผ์–ด๋ณด๊ธฐ

์ด ์—์ด์ „ํŠธ ์Šคํ‚ฌ์ด ๋ฏธ๋ฆฌ ๋กœ๋“œ๋œ ์ƒˆ ์ฑ„ํŒ…์„ ์—ฝ๋‹ˆ๋‹ค.

๋ฌธ์„œ

qdrant-neo4j-crawl4ai-mcp์€(๋Š”) ๋ฌด์—‡์„ ํ•˜๋‚˜์š”?

๐Ÿง  Qdrant, Neo4j, Crawl4AI MCP ์„œ๋ฒ„๋กœ AI ํ˜‘์—…์„ ๊ฐ•ํ™”ํ•˜์—ฌ ๋ฒกํ„ฐ ๊ฒ€์ƒ‰, ์ง€์‹ ๊ทธ๋ž˜ํ”„, ์›น ์ธํ…”๋ฆฌ์ „์Šค๋ฅผ ์ตœ์ ์˜ ์„ฑ๋Šฅ์œผ๋กœ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์š”

์ด MCP ์„œ๋ฒ„๋Š” AI ์—์ด์ „ํŠธ๊ฐ€ Qdrant(๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค), Neo4j(๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค), Crawl4AI(์›น ์Šคํฌ๋ž˜ํ•‘)์˜ ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜์˜ ํ†ตํ•ฉ๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๊ฐœ๋ณ„ MCP ๋„๊ตฌ๋กœ ์ œ๊ณต๋˜๋ฉฐ, ์—์ด์ „ํŠธ๋Š” ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋ณตํ•ฉ์ ์ธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ

  • Qdrant ๋ฒกํ„ฐ ๊ฒ€์ƒ‰: ์˜๋ฏธ๋ก ์  ์œ ์‚ฌ๋„ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰, ์ž„๋ฒ ๋”ฉ ์ €์žฅ ๋ฐ ๊ด€๋ฆฌ
  • Neo4j ์ง€์‹ ๊ทธ๋ž˜ํ”„: ์—”ํ‹ฐํ‹ฐ ๊ด€๊ณ„ ์ €์žฅ, ๊ทธ๋ž˜ํ”„ ์ฟผ๋ฆฌ, ํŒจํ„ด ๋งค์นญ
  • Crawl4AI ์›น ์ธํ…”๋ฆฌ์ „์Šค: ๋™์  ์›น ํŽ˜์ด์ง€ ์Šคํฌ๋ž˜ํ•‘, ์ฝ˜ํ…์ธ  ์ถ”์ถœ, ๋งํฌ ๋ถ„์„
  • ๊ฒฐํ•ฉ ์›Œํฌํ”Œ๋กœ์šฐ: ์›น ๋ฐ์ดํ„ฐ๋ฅผ ๋ฒกํ„ฐํ™”ํ•˜์—ฌ Qdrant์— ์ €์žฅํ•˜๊ณ , Neo4j์—์„œ ๊ด€๊ณ„๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋“ฑ ๋‹ค๋‹จ๊ณ„ ์ž‘์—… ์ง€์›

์ง€์› ํ”Œ๋žซํผ

  • Claude Code
  • Cursor
  • Codex
  • ๊ธฐํƒ€ MCP(MCP(Model Context Protocol)) ํ˜ธํ™˜ ํด๋ผ์ด์–ธํŠธ

๋น ๋ฅธ ์‹œ์ž‘

1. ์ €์žฅ์†Œ ํด๋ก 

git clone https://github.com/Hyperkorn/qdrant-neo4j-crawl4ai-mcp.git
cd qdrant-neo4j-crawl4ai-mcp

2. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

.env ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ๋‹ค์Œ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์„ธ์š”:

# Qdrant
QDRANT_URL=http://localhost:6333
QDRANT_API_KEY=your_qdrant_api_key

# Neo4j
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=your_password

# Crawl4AI
CRAWL4AI_API_KEY=your_crawl4ai_key

3. ์„œ๋ฒ„ ์‹คํ–‰

pip install -r requirements.txt
python server.py

๋˜๋Š” Docker ์‚ฌ์šฉ:

docker-compose up

4. MCP ํด๋ผ์ด์–ธํŠธ์—์„œ ์‚ฌ์šฉ

MCP ํด๋ผ์ด์–ธํŠธ ์„ค์ •์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”:

{
  "mcpServers": {
    "qdrant-neo4j-crawl4ai": {
      "command": "python",
      "args": ["path/to/server.py"],
      "env": {}
    }
  }
}

์‚ฌ์šฉ ์˜ˆ์‹œ

์˜ˆ์‹œ 1: ์›น ํŽ˜์ด์ง€ ์Šคํฌ๋ž˜ํ•‘ ํ›„ Qdrant์— ์ €์žฅ

์‚ฌ์šฉ์ž: "https://example.com/article๋ฅผ ์Šคํฌ๋ž˜ํ•‘ํ•˜๊ณ  ์ฃผ์š” ๋‚ด์šฉ์„ Qdrant์— ์ €์žฅํ•ด์ค˜."
์—์ด์ „ํŠธ: Crawl4AI ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐ€์ ธ์˜จ ํ›„, Qdrant ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž„๋ฒ ๋”ฉ์„ ์ƒ์„ฑํ•˜๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ 2: Neo4j์—์„œ ์ง€์‹ ๊ทธ๋ž˜ํ”„ ์ฟผ๋ฆฌ

์‚ฌ์šฉ์ž: "AI์™€ ๋จธ์‹ ๋Ÿฌ๋‹ ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ Neo4j์—์„œ ์ฐพ์•„์ค˜."
์—์ด์ „ํŠธ: Cypher ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๊ด€๋ จ ๋…ธ๋“œ์™€ ๊ด€๊ณ„๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ 3: ๊ฒฐํ•ฉ ์›Œํฌํ”Œ๋กœ์šฐ

์‚ฌ์šฉ์ž: "์›น์—์„œ ์ตœ์‹  AI ๋‰ด์Šค๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง€์‹ ๊ทธ๋ž˜ํ”„๋ฅผ ์—…๋ฐ์ดํŠธํ•œ ํ›„, ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค˜."
์—์ด์ „ํŠธ: Crawl4AI๋กœ ๋‰ด์Šค๋ฅผ ์Šคํฌ๋ž˜ํ•‘ โ†’ ํ…์ŠคํŠธ๋ฅผ ์ฒญํฌ๋กœ ๋ถ„ํ•  โ†’ Qdrant์— ๋ฒกํ„ฐ ์ €์žฅ โ†’ Neo4j์— ์—”ํ‹ฐํ‹ฐ์™€ ๊ด€๊ณ„ ์ƒ์„ฑ.

๋„๊ตฌ ๋ชฉ๋ก

Qdrant ๋„๊ตฌ

  • qdrant_store_vectors - ๋ฒกํ„ฐ ์ €์žฅ
  • qdrant_search - ๋ฒกํ„ฐ ๊ฒ€์ƒ‰
  • qdrant_delete_vectors - ๋ฒกํ„ฐ ์‚ญ์ œ

Neo4j ๋„๊ตฌ

  • neo4j_query - Cypher ์ฟผ๋ฆฌ ์‹คํ–‰
  • neo4j_create_node - ๋…ธ๋“œ ์ƒ์„ฑ
  • neo4j_create_relationship - ๊ด€๊ณ„ ์ƒ์„ฑ

Crawl4AI ๋„๊ตฌ

  • crawl4ai_scrape - ๋‹จ์ผ ํŽ˜์ด์ง€ ์Šคํฌ๋ž˜ํ•‘
  • crawl4ai_crawl - ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€ ํฌ๋กค๋ง
  • crawl4ai_extract - ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ ์ถ”์ถœ

๋ผ์ด์„ ์Šค

MIT

๊ธฐ์—ฌ

์ด์Šˆ์™€ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ์ž์„ธํ•œ ๋‚ด์šฉ์€ CONTRIBUTING.md๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ด€๋ จ ์Šคํ‚ฌ