Skip to main content

Conversation memory and session management MCP server for Amazon Q CLI with ChromaDB real-time sync

Project description

AWS Q Memory MCP Server (q_mem_mcp_server)

A Model Context Protocol (MCP) server that provides conversation memory and session management for Amazon Q CLI.

๐ŸŽฏ Key Features

  • Automatic Conversation Saving: Real-time sync of Q CLI conversations to ChromaDB
  • Session Management: Organize conversations by topics/sessions
  • Context Restoration: Resume previous conversations with full context memory
  • Semantic Search: Search through conversation history using natural language

๐Ÿš€ Quick Start

1. MCP Configuration

Add to ~/.aws/amazonq/mcp.json:

{
  "mcpServers": {
    "q-mem": {
      "command": "uvx",
      "args": ["q_mem_mcp_server@latest"],
      "env": {
        "Q_CLI_DB_PATH": "~/Library/Application Support/amazon-q/data.sqlite3",
        "Q_MEM_VERBOSE": "true"
      },
      "disabled": false,
      "autoApprove": [
        "start_session",
        "resume_session", 
        "search_memory_by_session_id",
        "get_storage_stats",
        "list_sessions"
      ]
    }
  }
}

2. Usage Examples

# Start Q CLI
q chat

# Start a new session
start_session(description="backendDev")
# or natural language: "Start session a backendDev"

# Chat normally (automatically saved)
# ... have conversations ...

# List sessions
list_sessions()
# or natural language: "show me session list"

# Resume session (loads full context)
resume_session(session_id="backendDev")
# or natural language: "resume session a backendDev"

๐Ÿ› ๏ธ Available Commands

Command Description
start_session(description) Start a new session
list_sessions() List all sessions
resume_session(session_id) Resume session with full context
search_memory_by_session_id(session_id, query) Search previous conversations
delete_session(session_id, confirm=true) Delete a session
get_storage_stats() Check storage status

๐Ÿ”ง Technology Stack

  • ChromaDB: Vector database for conversation storage and search
  • SQLite WAL: Real-time sync with Q CLI database
  • Sentence Transformers: Semantic search embeddings
  • MCP Protocol: Communication with Amazon Q

๐Ÿ“ Data Storage

  • ChromaDB: ~/.Q_mem/chroma_db/
  • Sync State: ~/.Q_mem/sync_state.json
  • Logs: ~/.Q_mem/q_mem.log

๐Ÿ”„ Auto-Sync Features

Q CLI conversations are automatically saved to ChromaDB in real-time:

  • Real-time Detection: Checks for new conversations every 2 seconds
  • Partial Failure Handling: Saves successful conversations even if some fail
  • Auto Recovery: Automatically recovers from consecutive failures
  • State Restoration: Restores sync state after restart

๐ŸŒŸ Revolutionary Multi-Persona Workflow Example

Experience the power of seamless context switching between different expert personas:

# === Day 1: Backend Development Session ===
q chat
> start_session(description="backendDev")
โœ… Session 'backendDev' started

> "You are now a backend developer persona. Help me design a microservices architecture"
๐ŸŽฏ Backend Developer: I'll help you design a robust microservices architecture...

> "Store my PyPI API key: pypi-AgEI..."
โœ… PyPI API key stored for future deployments

> "Design a user authentication service with JWT"
๐ŸŽฏ Backend Developer: Here's a comprehensive JWT authentication service design...
# ... detailed backend discussion continues ...

# === Day 2: Database Design Session ===
q chat  
> start_session(description="dba")
โœ… Session 'dba' started

> "You are now a database administrator persona. Help me optimize the user service database"
๐ŸŽฏ Database Administrator: I'll help you optimize your database design...

> "What's the best indexing strategy for user lookups?"
๐ŸŽฏ Database Administrator: For optimal user lookup performance, consider these indexing strategies...
# ... detailed database discussion continues ...

# === Day 3: Seamless Context Switching ===
q chat
> list_sessions()
๐Ÿ“‹ Your sessions:
1. backendDev (15 conversations) - Backend development and API design
2. dba (8 conversations) - Database optimization and indexing

> resume_session(session_id="backendDev")
๐Ÿ”„ Session 'backendDev' resumed with full context
๐ŸŽฏ Backend Developer: Welcome back! We were discussing JWT authentication service...

> "Remember my PyPI key? I need to deploy the auth service we designed"
๐ŸŽฏ Backend Developer: Yes! Using your stored PyPI key: pypi-AgEI...
โœ… Deploying q_auth_service v1.0.0 to PyPI...

> "Now switch to DBA context to check if our database design supports this deployment"
> resume_session(session_id="dba")
๐Ÿ”„ Session 'dba' resumed with full context  
๐ŸŽฏ Database Administrator: Checking the indexing strategy we discussed for the auth service...

> "The backend team deployed the JWT service. Does our index design handle the expected load?"
๐ŸŽฏ Database Administrator: Based on our previous optimization discussion, the composite index on (user_id, created_at) will handle the JWT validation queries efficiently...

# === Day 4: Cross-Session Knowledge Integration ===
> search_memory_by_session_id(session_id="backendDev", query="JWT token expiration")
๐Ÿ” Found in backendDev session:
- "JWT tokens should expire in 15 minutes for security"
- "Refresh tokens valid for 7 days"
- "Store refresh tokens in Redis for fast lookup"

> resume_session(session_id="dba")
๐ŸŽฏ Database Administrator: I remember we need to optimize for JWT refresh token storage...

> "Based on the backend session, we need Redis optimization for 7-day refresh tokens"
๐ŸŽฏ Database Administrator: Perfect! Let me design a Redis clustering strategy for high-availability refresh token storage...

๐Ÿš€ Why This Is Revolutionary

  1. Persistent Expertise: Each session maintains specialized knowledge and context
  2. Seamless Switching: Jump between expert personas without losing conversation flow
  3. Cross-Session Intelligence: Search and reference knowledge across different expert contexts
  4. Secure Credential Storage: API keys and sensitive data persist across sessions
  5. Natural Workflow: Mirrors real-world collaboration between different specialists

๐ŸŽฏ Real-World Applications

  • DevOps Teams: Switch between developer, DBA, and infrastructure personas
  • Full-Stack Projects: Frontend, backend, and database expert contexts
  • Learning Paths: Separate sessions for different technologies or concepts
  • Client Projects: Dedicated sessions per client with persistent context
  • Code Reviews: Different perspectives from various expert personas

๐Ÿ’ก Usage Tips

  1. Session Organization: Separate conversations by topics, roles, or projects
  2. Semantic Search: Use natural language rather than exact keywords
  3. Context Utilization: Use resume_session for complete conversation restoration
  4. Regular Cleanup: Delete unnecessary sessions to maintain performance
  5. Cross-Session References: Use search_memory_by_session_id to find relevant information across personas

Memory Management

# Clean up old sessions
cleanup_old_sessions(days=30, confirm=true)
# or natural language: "remove old sessions"

# Delete specific session
delete_session(session_id="session_name", confirm=true)
# or natural language: "delete session session_name"

๐Ÿ“„ License

MIT License

๐Ÿ”— Links


AWS Q Memory MCP Server (q_mem_mcp_server) - KOR

Amazon Q CLI๋ฅผ ์œ„ํ•œ ๋Œ€ํ™” ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์„ธ์…˜ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” Model Context Protocol (MCP) ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.

๐ŸŽฏ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ์ž๋™ ๋Œ€ํ™” ์ €์žฅ: Q CLI ๋Œ€ํ™”๋ฅผ ChromaDB์— ์‹ค์‹œ๊ฐ„ ๋™๊ธฐํ™”
  • ์„ธ์…˜ ๊ด€๋ฆฌ: ์ฃผ์ œ/์„ธ์…˜๋ณ„๋กœ ๋Œ€ํ™” ์ •๋ฆฌ
  • ์ปจํ…์ŠคํŠธ ๋ณต์›: ์ด์ „ ๋Œ€ํ™”์˜ ์ „์ฒด ์ปจํ…์ŠคํŠธ์™€ ํ•จ๊ป˜ ์žฌ๊ฐœ
  • ์˜๋ฏธ ๊ฒ€์ƒ‰: ์ž์—ฐ์–ด๋ฅผ ์‚ฌ์šฉํ•œ ๋Œ€ํ™” ๊ธฐ๋ก ๊ฒ€์ƒ‰

๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘

1. MCP ์„ค์ •

~/.aws/amazonq/mcp.json์— ์ถ”๊ฐ€:

{
  "mcpServers": {
    "q-mem": {
      "command": "uvx",
      "args": ["q_mem_mcp_server@latest"],
      "env": {
        "Q_CLI_DB_PATH": "~/Library/Application Support/amazon-q/data.sqlite3",
        "Q_MEM_VERBOSE": "true"
      },
      "disabled": false,
      "autoApprove": [
        "start_session",
        "resume_session", 
        "search_memory_by_session_id",
        "get_storage_stats",
        "list_sessions"
      ]
    }
  }
}

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

# Q CLI ์‹œ์ž‘
q chat

# ์ƒˆ ์„ธ์…˜ ์‹œ์ž‘
start_session(description="๋ฐฑ์—”๋“œ๊ฐœ๋ฐœ")
# ๋˜๋Š” ์ž์—ฐ์–ด: "๋ฐฑ์—”๋“œ๊ฐœ๋ฐœ ์„ธ์…˜ ์‹œ์ž‘ํ•ด์ค˜"

# ์ผ๋ฐ˜์ ์œผ๋กœ ๋Œ€ํ™” (์ž๋™ ์ €์žฅ๋จ)
# ... ๋Œ€ํ™” ์ง„ํ–‰ ...

# ์„ธ์…˜ ๋ชฉ๋ก ๋ณด๊ธฐ
list_sessions()
# ๋˜๋Š” ์ž์—ฐ์–ด: "์„ธ์…˜ ๋ชฉ๋ก ๋ณด์—ฌ์ค˜"

# ์„ธ์…˜ ์žฌ๊ฐœ (์ „์ฒด ์ปจํ…์ŠคํŠธ ๋กœ๋“œ)
resume_session(session_id="๋ฐฑ์—”๋“œ๊ฐœ๋ฐœ")
# ๋˜๋Š” ์ž์—ฐ์–ด: "๋ฐฑ์—”๋“œ๊ฐœ๋ฐœ ์„ธ์…˜์œผ๋กœ ์žฌ๊ฐœํ•ด์ค˜"

๐Ÿ› ๏ธ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ช…๋ น์–ด

๋ช…๋ น์–ด ์„ค๋ช…
start_session(description) ์ƒˆ ์„ธ์…˜ ์‹œ์ž‘
list_sessions() ๋ชจ๋“  ์„ธ์…˜ ๋ชฉ๋ก ๋ณด๊ธฐ
resume_session(session_id) ์ „์ฒด ์ปจํ…์ŠคํŠธ์™€ ํ•จ๊ป˜ ์„ธ์…˜ ์žฌ๊ฐœ
search_memory_by_session_id(session_id, query) ์ด์ „ ๋Œ€ํ™” ๊ฒ€์ƒ‰
delete_session(session_id, confirm=true) ์„ธ์…˜ ์‚ญ์ œ
get_storage_stats() ์ €์žฅ์†Œ ์ƒํƒœ ํ™•์ธ

๐Ÿ”ง ๊ธฐ์ˆ  ์Šคํƒ

  • ChromaDB: ๋Œ€ํ™” ์ €์žฅ ๋ฐ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
  • SQLite WAL: Q CLI ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์‹ค์‹œ๊ฐ„ ๋™๊ธฐํ™”
  • Sentence Transformers: ์˜๋ฏธ ๊ฒ€์ƒ‰ ์ž„๋ฒ ๋”ฉ
  • MCP Protocol: Amazon Q์™€์˜ ํ†ต์‹ 

๐Ÿ“ ๋ฐ์ดํ„ฐ ์ €์žฅ

  • ChromaDB: ~/.Q_mem/chroma_db/
  • ๋™๊ธฐํ™” ์ƒํƒœ: ~/.Q_mem/sync_state.json
  • ๋กœ๊ทธ: ~/.Q_mem/q_mem.log

๐Ÿ”„ ์ž๋™ ๋™๊ธฐํ™” ๊ธฐ๋Šฅ

Q CLI ๋Œ€ํ™”๊ฐ€ ChromaDB์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ž๋™ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค:

  • ์‹ค์‹œ๊ฐ„ ๊ฐ์ง€: 2์ดˆ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๋Œ€ํ™” ํ™•์ธ
  • ๋ถ€๋ถ„ ์‹คํŒจ ์ฒ˜๋ฆฌ: ์ผ๋ถ€ ์‹คํŒจํ•ด๋„ ์„ฑ๊ณตํ•œ ๋Œ€ํ™”๋Š” ์ €์žฅ
  • ์ž๋™ ๋ณต๊ตฌ: ์—ฐ์† ์‹คํŒจ ์‹œ ์ž๋™ ๋ณต๊ตฌ
  • ์ƒํƒœ ๋ณต์›: ์žฌ์‹œ์ž‘ ํ›„ ๋™๊ธฐํ™” ์ƒํƒœ ๋ณต์›

๐ŸŒŸ ํ˜์‹ ์ ์ธ ๋ฉ€ํ‹ฐ ํŽ˜๋ฅด์†Œ๋‚˜ ์›Œํฌํ”Œ๋กœ์šฐ ์˜ˆ์‹œ

์„œ๋กœ ๋‹ค๋ฅธ ์ „๋ฌธ๊ฐ€ ํŽ˜๋ฅด์†Œ๋‚˜ ๊ฐ„์˜ ๋งค๋„๋Ÿฌ์šด ์ปจํ…์ŠคํŠธ ์ „ํ™˜์˜ ํž˜์„ ๊ฒฝํ—˜ํ•ด๋ณด์„ธ์š”:

# === 1์ผ์ฐจ: ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ์„ธ์…˜ ===
q chat
> start_session(description="๋ฐฑ์—”๋“œ๊ฐœ๋ฐœ")
โœ… '๋ฐฑ์—”๋“œ๊ฐœ๋ฐœ' ์„ธ์…˜์ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค

> "๋„ˆ๋Š” ์ด์ œ๋ถ€ํ„ฐ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ํŽ˜๋ฅด์†Œ๋‚˜์•ผ. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„๋ฅผ ๋„์™€์ค˜"
๐ŸŽฏ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž: ๊ฒฌ๊ณ ํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„๋ฅผ ๋„์™€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค...

> "PyPI API ํ‚ค ์ €์žฅํ•ด์ค˜: pypi-AgEI..."
โœ… ํ–ฅํ›„ ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด PyPI API ํ‚ค๊ฐ€ ์ €์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

> "JWT๋ฅผ ์‚ฌ์šฉํ•œ ์‚ฌ์šฉ์ž ์ธ์ฆ ์„œ๋น„์Šค ์„ค๊ณ„ํ•ด์ค˜"
๐ŸŽฏ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž: ํฌ๊ด„์ ์ธ JWT ์ธ์ฆ ์„œ๋น„์Šค ์„ค๊ณ„๋ฅผ ์ œ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค...
# ... ์ƒ์„ธํ•œ ๋ฐฑ์—”๋“œ ๋…ผ์˜ ๊ณ„์† ...

# === 2์ผ์ฐจ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„ ์„ธ์…˜ ===
q chat  
> start_session(description="DBA")
โœ… 'DBA' ์„ธ์…˜์ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค

> "๋„ˆ๋Š” ์ด์ œ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž ํŽ˜๋ฅด์†Œ๋‚˜์•ผ. ์‚ฌ์šฉ์ž ์„œ๋น„์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ตœ์ ํ™”๋ฅผ ๋„์™€์ค˜"
๐ŸŽฏ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„ ์ตœ์ ํ™”๋ฅผ ๋„์™€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค...

> "์‚ฌ์šฉ์ž ์กฐํšŒ๋ฅผ ์œ„ํ•œ ์ตœ์ ์˜ ์ธ๋ฑ์‹ฑ ์ „๋žต์€ ๋ญ์•ผ?"
๐ŸŽฏ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž: ์ตœ์ ์˜ ์‚ฌ์šฉ์ž ์กฐํšŒ ์„ฑ๋Šฅ์„ ์œ„ํ•ด ๋‹ค์Œ ์ธ๋ฑ์‹ฑ ์ „๋žต์„ ๊ณ ๋ คํ•˜์„ธ์š”...
# ... ์ƒ์„ธํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋…ผ์˜ ๊ณ„์† ...

# === 3์ผ์ฐจ: ๋งค๋„๋Ÿฌ์šด ์ปจํ…์ŠคํŠธ ์ „ํ™˜ ===
q chat
> list_sessions()
๐Ÿ“‹ ์„ธ์…˜ ๋ชฉ๋ก:
1. ๋ฐฑ์—”๋“œ๊ฐœ๋ฐœ (15๊ฐœ ๋Œ€ํ™”) - ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๋ฐ API ์„ค๊ณ„
2. DBA (8๊ฐœ ๋Œ€ํ™”) - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ตœ์ ํ™” ๋ฐ ์ธ๋ฑ์‹ฑ

> resume_session(session_id="๋ฐฑ์—”๋“œ๊ฐœ๋ฐœ")
๐Ÿ”„ '๋ฐฑ์—”๋“œ๊ฐœ๋ฐœ' ์„ธ์…˜์ด ์ „์ฒด ์ปจํ…์ŠคํŠธ์™€ ํ•จ๊ป˜ ์žฌ๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
๐ŸŽฏ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž: ๋‹ค์‹œ ์˜ค์…จ๊ตฐ์š”! JWT ์ธ์ฆ ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๊ณ  ์žˆ์—ˆ์ฃ ...

> "๋‚ด PyPI ํ‚ค ๊ธฐ์–ตํ•˜์ง€? ์šฐ๋ฆฌ๊ฐ€ ์„ค๊ณ„ํ•œ ์ธ์ฆ ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•ด์•ผ ํ•ด"
๐ŸŽฏ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž: ๋„ค! ์ €์žฅ๋œ PyPI ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค: pypi-AgEI...
โœ… q_auth_service v1.0.0์„ PyPI์— ๋ฐฐํฌ ์ค‘...

> "์ด์ œ DBA ์ปจํ…์ŠคํŠธ๋กœ ์ „ํ™˜ํ•ด์„œ ์šฐ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„๊ฐ€ ์ด ๋ฐฐํฌ๋ฅผ ์ง€์›ํ•˜๋Š”์ง€ ํ™•์ธํ•ด์ค˜"
> resume_session(session_id="DBA")
๐Ÿ”„ 'DBA' ์„ธ์…˜์ด ์ „์ฒด ์ปจํ…์ŠคํŠธ์™€ ํ•จ๊ป˜ ์žฌ๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
๐ŸŽฏ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž: ์ธ์ฆ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•ด ๋…ผ์˜ํ–ˆ๋˜ ์ธ๋ฑ์‹ฑ ์ „๋žต์„ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค...

> "๋ฐฑ์—”๋“œ ํŒ€์ด JWT ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ–ˆ์–ด. ์šฐ๋ฆฌ ์ธ๋ฑ์Šค ์„ค๊ณ„๊ฐ€ ์˜ˆ์ƒ ๋ถ€ํ•˜๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์„๊นŒ?"
๐ŸŽฏ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž: ์ด์ „ ์ตœ์ ํ™” ๋…ผ์˜๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ, (user_id, created_at) ๋ณตํ•ฉ ์ธ๋ฑ์Šค๊ฐ€ JWT ๊ฒ€์ฆ ์ฟผ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค...

# === 4์ผ์ฐจ: ์„ธ์…˜ ๊ฐ„ ์ง€์‹ ํ†ตํ•ฉ ===
> search_memory_by_session_id(session_id="๋ฐฑ์—”๋“œ๊ฐœ๋ฐœ", query="JWT ํ† ํฐ ๋งŒ๋ฃŒ")
๐Ÿ” '๋ฐฑ์—”๋“œ๊ฐœ๋ฐœ' ์„ธ์…˜์—์„œ ๋ฐœ๊ฒฌ:
- "๋ณด์•ˆ์„ ์œ„ํ•ด JWT ํ† ํฐ์€ 15๋ถ„ ํ›„ ๋งŒ๋ฃŒ๋˜์–ด์•ผ ํ•จ"
- "๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์€ 7์ผ๊ฐ„ ์œ ํšจ"
- "๋น ๋ฅธ ์กฐํšŒ๋ฅผ ์œ„ํ•ด ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ Redis์— ์ €์žฅ"

> resume_session(session_id="DBA")
๐ŸŽฏ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž: JWT ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ์ €์žฅ์„ ์œ„ํ•œ ์ตœ์ ํ™”๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค...

> "๋ฐฑ์—”๋“œ ์„ธ์…˜ ๊ธฐ๋ฐ˜์œผ๋กœ, 7์ผ๊ฐ„ ์œ ํšจํ•œ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ์œ„ํ•œ Redis ์ตœ์ ํ™”๊ฐ€ ํ•„์š”ํ•ด"
๐ŸŽฏ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž: ์™„๋ฒฝํ•ฉ๋‹ˆ๋‹ค! ๊ณ ๊ฐ€์šฉ์„ฑ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ์ €์žฅ์„ ์œ„ํ•œ Redis ํด๋Ÿฌ์Šคํ„ฐ๋ง ์ „๋žต์„ ์„ค๊ณ„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค...

๐Ÿš€ ์™œ ์ด๊ฒƒ์ด ํ˜์‹ ์ ์ธ๊ฐ€

  1. ์ง€์†์ ์ธ ์ „๋ฌธ์„ฑ: ๊ฐ ์„ธ์…˜์ด ์ „๋ฌธ ์ง€์‹๊ณผ ์ปจํ…์ŠคํŠธ๋ฅผ ์œ ์ง€
  2. ๋งค๋„๋Ÿฌ์šด ์ „ํ™˜: ๋Œ€ํ™” ํ๋ฆ„์„ ์žƒ์ง€ ์•Š๊ณ  ์ „๋ฌธ๊ฐ€ ํŽ˜๋ฅด์†Œ๋‚˜ ๊ฐ„ ์ด๋™
  3. ์„ธ์…˜ ๊ฐ„ ์ง€๋Šฅ: ์„œ๋กœ ๋‹ค๋ฅธ ์ „๋ฌธ๊ฐ€ ์ปจํ…์ŠคํŠธ ๊ฐ„ ์ง€์‹ ๊ฒ€์ƒ‰ ๋ฐ ์ฐธ์กฐ
  4. ๋ณด์•ˆ ์ž๊ฒฉ์ฆ๋ช… ์ €์žฅ: API ํ‚ค์™€ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์„ธ์…˜ ๊ฐ„ ์ง€์†
  5. ์ž์—ฐ์Šค๋Ÿฌ์šด ์›Œํฌํ”Œ๋กœ์šฐ: ์‹ค์ œ ๋‹ค์–‘ํ•œ ์ „๋ฌธ๊ฐ€ ๊ฐ„ ํ˜‘์—…์„ ๋ฐ˜์˜

๐ŸŽฏ ์‹ค์ œ ํ™œ์šฉ ์‚ฌ๋ก€

  • DevOps ํŒ€: ๊ฐœ๋ฐœ์ž, DBA, ์ธํ”„๋ผ ํŽ˜๋ฅด์†Œ๋‚˜ ๊ฐ„ ์ „ํ™˜
  • ํ’€์Šคํƒ ํ”„๋กœ์ ํŠธ: ํ”„๋ก ํŠธ์—”๋“œ, ๋ฐฑ์—”๋“œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ „๋ฌธ๊ฐ€ ์ปจํ…์ŠคํŠธ
  • ํ•™์Šต ๊ฒฝ๋กœ: ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ์ด๋‚˜ ๊ฐœ๋…๋ณ„ ๋ณ„๋„ ์„ธ์…˜
  • ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ์ ํŠธ: ํด๋ผ์ด์–ธํŠธ๋ณ„ ์ „์šฉ ์„ธ์…˜๊ณผ ์ง€์†์ ์ธ ์ปจํ…์ŠคํŠธ
  • ์ฝ”๋“œ ๋ฆฌ๋ทฐ: ๋‹ค์–‘ํ•œ ์ „๋ฌธ๊ฐ€ ํŽ˜๋ฅด์†Œ๋‚˜์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๊ด€์ 

๐Ÿ’ก ์‚ฌ์šฉ ํŒ

  1. ์„ธ์…˜ ์ •๋ฆฌ: ์ฃผ์ œ, ์—ญํ• , ํ”„๋กœ์ ํŠธ๋ณ„๋กœ ๋Œ€ํ™” ๋ถ„๋ฆฌ
  2. ์˜๋ฏธ ๊ฒ€์ƒ‰: ์ •ํ™•ํ•œ ํ‚ค์›Œ๋“œ๋ณด๋‹ค ์ž์—ฐ์–ด ์‚ฌ์šฉ
  3. ์ปจํ…์ŠคํŠธ ํ™œ์šฉ: ์™„์ „ํ•œ ๋Œ€ํ™” ๋ณต์›์„ ์œ„ํ•ด resume_session ์‚ฌ์šฉ
  4. ์ •๊ธฐ ์ •๋ฆฌ: ์„ฑ๋Šฅ ์œ ์ง€๋ฅผ ์œ„ํ•ด ๋ถˆํ•„์š”ํ•œ ์„ธ์…˜ ์‚ญ์ œ
  5. ์„ธ์…˜ ๊ฐ„ ์ฐธ์กฐ: search_memory_by_session_id๋ฅผ ์‚ฌ์šฉํ•ด ํŽ˜๋ฅด์†Œ๋‚˜ ๊ฐ„ ๊ด€๋ จ ์ •๋ณด ์ฐพ๊ธฐ

๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

# ์˜ค๋ž˜๋œ ์„ธ์…˜ ์ •๋ฆฌ
cleanup_old_sessions(days=30, confirm=true)
# ๋˜๋Š” ์ž์—ฐ์–ด: "์˜ค๋ž˜๋œ ์„ธ์…˜ ์‚ญ์ œํ•ด์ค˜"

# ํŠน์ • ์„ธ์…˜ ์‚ญ์ œ
delete_session(session_id="์„ธ์…˜์ด๋ฆ„", confirm=true)
# ๋˜๋Š” ์ž์—ฐ์–ด: "์„ธ์…˜์ด๋ฆ„ ์„ธ์…˜ ์‚ญ์ œํ•ด์ค˜"

๐Ÿ“„ ๋ผ์ด์„ ์Šค

MIT License

๐Ÿ”— ๋งํฌ

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

q_mem_mcp_server-1.0.4.tar.gz (28.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

q_mem_mcp_server-1.0.4-py3-none-any.whl (30.3 kB view details)

Uploaded Python 3

File details

Details for the file q_mem_mcp_server-1.0.4.tar.gz.

File metadata

  • Download URL: q_mem_mcp_server-1.0.4.tar.gz
  • Upload date:
  • Size: 28.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for q_mem_mcp_server-1.0.4.tar.gz
Algorithm Hash digest
SHA256 16563b71b76b4b8d8e440d27f468f315023f4c39178d7100f119bd7efc9739c9
MD5 d13294d2a14b0191ff469343af022222
BLAKE2b-256 51ba53fae7ce1a0b190fd13e75e4aba7471513c6d112cc63c963cc369bd09865

See more details on using hashes here.

File details

Details for the file q_mem_mcp_server-1.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for q_mem_mcp_server-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6eae7e4f574940e9dd59f51b82cad802d4463b218567850f2b1fde4eddc33fb5
MD5 4ad6e5ba7971d81672f2e70715a15065
BLAKE2b-256 fd69138cef45364ae051dc8b0f43cdfbfb6687046e7b1202b84e5738492cf9e0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page