gmemory

putao520/gmemory

3.2

If you are the rightful owner of gmemory and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Generative Memory - MCP server for semantic conversation memory with Qdrant and Ollama

Tools
3
Resources
0
Prompts
0

gmemory

Generative Memory - MCP server for semantic conversation memory with Qdrant and Ollama

License: MIT Rust MCP

gmemoryๆ˜ฏไธ€ไธชๅŸบไบŽModel Context Protocol (MCP)็š„ๆœๅŠกๅ™จ๏ผŒไธบAIๅฏน่ฏ็ณป็ปŸๆไพ›้•ฟๆœŸ่ฎฐๅฟ†่ƒฝๅŠ›ใ€‚้€š่ฟ‡่ฏญไน‰ๅ‘้‡ๅญ˜ๅ‚จๅ’Œๆฃ€็ดข๏ผŒๅฎž็Žฐๅฏน่ฏๅކๅฒ็š„ๆŒไน…ๅŒ–ๅ’Œๆ™บ่ƒฝๆŸฅ่ฏขใ€‚

โœจ ๆ ธๅฟƒ็‰นๆ€ง

  • ๐Ÿง  ่ฏญไน‰่ฎฐๅฟ†: ไฝฟ็”จOllama + qwen3-embedding็”Ÿๆˆ่ฏญไน‰ๅ‘้‡
  • ๐Ÿ” ๆ™บ่ƒฝๆฃ€็ดข: ๅŸบไบŽQdrantๅ‘้‡ๆ•ฐๆฎๅบ“็š„็›ธไผผๅบฆๆœ็ดข
  • ๐Ÿ“ TODO็ฎก็†: ่‡ชๅŠจ่ฟฝ่ธชๅฏน่ฏไธญ็š„ๅพ…ๅŠžไปปๅŠก
  • ๐Ÿš€ ้ซ˜ๆ€ง่ƒฝ: Rust + gRPC๏ผŒไฝŽๅปถ่ฟŸ้ซ˜ๅžๅ
  • ๐Ÿ”Œ ๆ ‡ๅ‡†ๅ่ฎฎ: ๅฎŒๅ…จๅ…ผๅฎนMCP่ง„่Œƒ๏ผŒๅฏ่ขซไปปไฝ•MCPๅฎขๆˆท็ซฏไฝฟ็”จ
  • ๐Ÿ›ก๏ธ ็ฑปๅž‹ๅฎ‰ๅ…จ: ็ผ–่ฏ‘ๆœŸ็ฑปๅž‹ๆฃ€ๆŸฅ๏ผŒ่ฟ่กŒๆ—ถ้”™่ฏฏๅฐ‘

๐ŸŽฏ ไฝฟ็”จๅœบๆ™ฏ

  • AIๅŠฉๆ‰‹้•ฟๆœŸ่ฎฐๅฟ†: ่ฎฉAI่ฎฐไฝไน‹ๅ‰็š„ๅฏน่ฏๅ†…ๅฎน
  • ไธŠไธ‹ๆ–‡ๆฃ€็ดข: ๅฟซ้€ŸๆŸฅๆ‰พ็›ธๅ…ณๅކๅฒๅฏน่ฏ
  • ไปปๅŠก่ทŸ่ธช: ่‡ชๅŠจ็ฎก็†ๅฏน่ฏไธญๆๅˆฐ็š„TODO
  • ็Ÿฅ่ฏ†ๅบ“ๆž„ๅปบ: ๅŸบไบŽๅฏน่ฏๆž„ๅปบ่ฏญไน‰็Ÿฅ่ฏ†ๅบ“

๐Ÿ—๏ธ ๆŠ€ๆœฏๆžถๆž„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    MCP Client                            โ”‚
โ”‚                 (Claude Code / etc.)                     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                  โ”‚ JSON-RPC via STDIO
                  โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              gmemory MCP Server (Rust)                   โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  MCP Tools (rmcp SDK)                            โ”‚  โ”‚
โ”‚  โ”‚  - write_message  - search_messages              โ”‚  โ”‚
โ”‚  โ”‚  - query_todos                                   โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  Services                                         โ”‚  โ”‚
โ”‚  โ”‚  - EmbeddingService (ollama-rs)                  โ”‚  โ”‚
โ”‚  โ”‚  - StorageService (qdrant-client)                โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
         โ–ผ                 โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Ollama     โ”‚  โ”‚     Qdrant       โ”‚
โ”‚              โ”‚  โ”‚   Vector DB      โ”‚
โ”‚ qwen3-emb    โ”‚  โ”‚                  โ”‚
โ”‚ :0.6b        โ”‚  โ”‚ gRPC: 26333     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆ ธๅฟƒๆŠ€ๆœฏๆ ˆ

  • MCPๆก†ๆžถ: rmcp 0.5 (ๅฎ˜ๆ–นRust SDK)
  • ๅ‘้‡ๆ•ฐๆฎๅบ“: Qdrant >= 1.7.0
  • Ollamaๅฎขๆˆท็ซฏ: ollama-rs 0.3.1
  • ๅตŒๅ…ฅๆจกๅž‹: qwen3-embedding:0.6b (้€š่ฟ‡Ollama)
  • ๅผ‚ๆญฅ่ฟ่กŒๆ—ถ: Tokio 1.x

๐Ÿ“ฆ ๅฎ‰่ฃ…

ๅ‰็ฝฎไพ่ต–

  1. Rust >= 1.70

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    
  2. Ollama >= 0.1.0

    # macOS/Linux
    curl -fsSL https://ollama.com/install.sh | sh
    
    # ไธ‹่ฝฝqwen3-embeddingๆจกๅž‹
    ollama pull qwen3-embedding:0.6b
    
  3. Qdrant >= 1.7.0

    # ไฝฟ็”จDocker
    docker run -p 26333:6334 -p 26334:6333 \
        -v $(pwd)/qdrant_storage:/qdrant/storage \
        qdrant/qdrant
    

ๆž„ๅปบ้กน็›ฎ

# ๅ…‹้š†ไป“ๅบ“
git clone https://github.com/yourusername/gmemory.git
cd gmemory

# ๆž„ๅปบ๏ผˆๅผ€ๅ‘ๆจกๅผ๏ผ‰
cargo build

# ๆž„ๅปบ๏ผˆๅ‘ๅธƒๆจกๅผ๏ผ‰
cargo build --release

๐Ÿš€ ๅฟซ้€Ÿๅผ€ๅง‹

1. ้…็ฝฎ็Žฏๅขƒๅ˜้‡๏ผˆๅฏ้€‰๏ผ‰

ๅˆ›ๅปบ .env ๆ–‡ไปถ๏ผš

# Ollama้…็ฝฎ
OLLAMA_ENDPOINT=http://localhost:11434
OLLAMA_MODEL=qwen3-embedding:0.6b
# OLLAMA_API_KEY=  # ๅฏ้€‰

# Qdrant้…็ฝฎ
QDRANT_ENDPOINT=http://localhost
QDRANT_PORT=26333
# QDRANT_API_KEY=  # ๅฏ้€‰

# ๆ—ฅๅฟ—็บงๅˆซ
RUST_LOG=info

2. ่ฟ่กŒๆœๅŠกๅ™จ

# ๅผ€ๅ‘ๆจกๅผ
cargo run

# ๅ‘ๅธƒๆจกๅผ
./target/release/gmemory

3. ๅœจMCPๅฎขๆˆท็ซฏไธญไฝฟ็”จ

Claude Code้…็ฝฎ็คบไพ‹

ๅœจ .claude/mcp.json ไธญๆทปๅŠ ๏ผš

{
  "mcpServers": {
    "gmemory": {
      "command": "/path/to/gmemory/target/release/gmemory",
      "env": {
        "OLLAMA_ENDPOINT": "http://localhost:11434",
        "QDRANT_PORT": "26333"
      }
    }
  }
}

๐Ÿ› ๏ธ MCPๅทฅๅ…ท

write_message

ๅ†™ๅ…ฅๅฏน่ฏๆถˆๆฏๅˆฐๅ‘้‡ๆ•ฐๆฎๅบ“ใ€‚

ๅ‚ๆ•ฐ:

{
  "session_id": "uuid-string",
  "role": "user|assistant|system",
  "content": "ๆถˆๆฏๅ†…ๅฎน",
  "metadata": {}  // ๅฏ้€‰
}

่ฟ”ๅ›ž: ๆถˆๆฏID

search_messages

ๅŸบไบŽ่ฏญไน‰็›ธไผผๅบฆๆœ็ดขๅކๅฒๅฏน่ฏใ€‚

ๅ‚ๆ•ฐ:

{
  "query": "ๆœ็ดขๆŸฅ่ฏขๆ–‡ๆœฌ",
  "session_id": "uuid-string",  // ๅฏ้€‰
  "limit": 10,  // ๅฏ้€‰๏ผŒ้ป˜่ฎค10
  "min_score": 0.7  // ๅฏ้€‰๏ผŒ้ป˜่ฎค0.0
}

่ฟ”ๅ›ž: Top-K็›ธไผผๆถˆๆฏๅˆ—่กจ

query_todos

ๆŸฅ่ฏขๆŒ‡ๅฎšไผš่ฏ็š„ๆœชๅฎŒๆˆTODOไปปๅŠกใ€‚

ๅ‚ๆ•ฐ:

{
  "session_id": "uuid-string",
  "include_completed": false  // ๅฏ้€‰
}

่ฟ”ๅ›ž: TODOไปปๅŠกๅˆ—่กจ

๐Ÿ“– ๆ–‡ๆกฃ

ๅฎŒๆ•ด็š„่ฎพ่ฎกๆ–‡ๆกฃๅ’Œๆžถๆž„ๅ†ณ็ญ–่ฏทๅ‚่ง ็›ฎๅฝ•๏ผš

  • - ้œ€ๆฑ‚่ง„ๆ ผ
  • - ็ณป็ปŸๆžถๆž„
  • - ๆ•ฐๆฎ็ป“ๆž„
  • - API่ฎพ่ฎก
  • - ๅ˜ๆ›ดๆ—ฅๅฟ—

๐Ÿ”ง ๅผ€ๅ‘

้กน็›ฎ็ป“ๆž„

gmemory/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ main.rs          # ๅ…ฅๅฃ
โ”‚   โ”œโ”€โ”€ config.rs        # ้…็ฝฎ็ฎก็†
โ”‚   โ”œโ”€โ”€ server.rs        # MCPๆœๅŠกๅ™จๅฎž็Žฐ
โ”‚   โ”œโ”€โ”€ tools/           # ๅทฅๅ…ทๅ‚ๆ•ฐๅฎšไน‰
โ”‚   โ”œโ”€โ”€ services/        # ไธšๅŠก้€ป่พ‘
โ”‚   โ””โ”€โ”€ models/          # ๆ•ฐๆฎๆจกๅž‹
โ”œโ”€โ”€ SPEC/                # ๅฎŒๆ•ด่ฎพ่ฎกๆ–‡ๆกฃ
โ”œโ”€โ”€ Cargo.toml
โ””โ”€โ”€ README.md

่ฟ่กŒๆต‹่ฏ•

cargo test

ไปฃ็ ้ฃŽๆ ผ

cargo fmt
cargo clippy

๐Ÿค ่ดก็Œฎ

ๆฌข่ฟŽ่ดก็Œฎ๏ผ่ฏทๆŸฅ็œ‹ ๏ผˆๅพ…ๆทปๅŠ ๏ผ‰ไบ†่งฃ่ฏฆๆƒ…ใ€‚

ๅผ€ๅ‘ๆต็จ‹

  1. Fork ๆœฌไป“ๅบ“
  2. ๅˆ›ๅปบ็‰นๆ€งๅˆ†ๆ”ฏ (git checkout -b feature/AmazingFeature)
  3. ๆไบคๆ›ดๆ”น (git commit -m 'feat: Add AmazingFeature')
  4. ๆŽจ้€ๅˆฐๅˆ†ๆ”ฏ (git push origin feature/AmazingFeature)
  5. ๅˆ›ๅปบ Pull Request

๐Ÿ“„ ่ฎธๅฏ่ฏ

ๆœฌ้กน็›ฎ้‡‡็”จ MIT ่ฎธๅฏ่ฏ - ่ฏฆ่ง ๆ–‡ไปถ

๐Ÿ™ ่‡ด่ฐข

  • Model Context Protocol - MCP่ง„่Œƒ
  • rmcp - ๅฎ˜ๆ–นRust SDK
  • Qdrant - ้ซ˜ๆ€ง่ƒฝๅ‘้‡ๆ•ฐๆฎๅบ“
  • Ollama - ๆœฌๅœฐLLM่ฟ่กŒๆ—ถ
  • ollama-rs - Ollama Rustๅฎขๆˆท็ซฏ

๐Ÿ“ฌ ่”็ณปๆ–นๅผ


ๆณจๆ„: ๆœฌ้กน็›ฎ็›ฎๅ‰ๅค„ไบŽ v1.0.0 ๅผ€ๅ‘้˜ถๆฎต๏ผŒAPIๅฏ่ƒฝไผšๆœ‰ๅ˜ๅŒ–ใ€‚