# Q Memory MCP Server
A Model Context Protocol (MCP) server that provides conversation memory and workspace management for Amazon Q CLI using SQLite + FTS5 for fast, reliable storage and search.
## Features
- **Automatic Conversation Saving**: Real-time sync of Q CLI conversations to SQLite database
- **Workspace Management**: Organize conversations by topics/workspaces with natural language support
- **Workspace Restoration**: Resume previous conversations with full context
- **Full-Text Search**: Search through conversation history using SQLite FTS5
- **Q CLI LLM Integration**: Intelligent conversation summarization using Q CLI's built-in LLM
## Quick Start
### 1. MCP Configuration
Add to `~/.aws/amazonq/mcp.json`:
**For macOS:**
```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
}
}
}
```
**For Windows:**
First, find your Q CLI database path:
```cmd
where /r %USERPROFILE% data.sqlite3
```
Then use the found path in your configuration:
```json
{
"mcpServers": {
"q-mem": {
"command": "uvx",
"args": ["q_mem_mcp_server@latest"],
"env": {
"Q_CLI_DB_PATH": "C:\\Users\\YourUsername\\AppData\\Local\\amazon-q\\data.sqlite3",
"Q_MEM_VERBOSE": "true"
},
"disabled": false
}
}
}
```
### 2. Usage Examples
```bash
# Start Q CLI
q chat
# Start a new workspace
start_workspace(description="backend_development")
# OR natural language: "Start backend development workspace"
# Chat normally (automatically saved)
# ... have conversations ...
# List workspaces
list_workspaces()
# Resume workspace (loads full context)
resume_workspace(workspace_id="backend_development")
# OR natural language: "Resume backend development workspace"
# Switch to another workspace
resume_workspace(workspace_id="frontend_development")
# OR natural language: "Resume frontend development workspace"
# Search conversations
search_memory_by_workspace(workspace_id="backend_development", query="API design")
# OR natural language: "What did I say about API design?"
```
## Available Tools
| Tool | Description |
|------|-------------|
| `show_usage()` | Show usage instructions |
| `start_workspace(description)` | Start a new workspace with auto-sync |
| `list_workspaces(limit=10)` | List all workspaces (default: 10, max: 50) |
| `resume_workspace(workspace_id)` | Resume workspace with full context |
| `search_memory_by_workspace(workspace_id, query)` | Search conversations using FTS5 |
| `delete_workspace(workspace_id, confirm=true)` | Delete a workspace and all conversations |
| `cleanup_old_workspaces(days=30, confirm=true)` | Clean up workspaces older than specified days |
| `get_storage_stats()` | Get storage statistics and usage information |
## Technology Stack
- **SQLite + FTS5**: Fast full-text search without external dependencies
- **Real-time Sync**: Monitors Q CLI database for new conversations
- **Q CLI LLM Integration**: Uses Q CLI's built-in LLM for intelligent summarization
- **MCP Protocol**: Standard communication with Amazon Q
## Data Storage
- **Database**: `~/.Q_mem/conversations.db`
- **Logs**: `~/.Q_mem/operations.log`
## Auto-Sync Features
Q CLI conversations are automatically saved to SQLite in real-time:
- **Real-time Detection**: Monitors Q CLI database for new conversations
- **Immediate Sync**: Processes new conversations as they appear
- **Background Processing**: Non-blocking synchronization
- **State Recovery**: Maintains sync state across restarts
## Workspace Management
### Creating Workspaces
```bash
# Start a new workspace
start_workspace(description="Python_learning")
# OR natural language
"Start Python learning workspace"
```
### Switching Between Workspaces
```bash
# List available workspaces (default: 10, max: 50)
list_workspaces()
list_workspaces(limit=20)
# Resume a specific workspace
resume_workspace(workspace_id="developer")
# OR natural language
"Resume developer workspace"
```
### Searching Conversations
```bash
# Search within a workspace using FTS5
search_memory_by_workspace(workspace_id="Python_learning", query="list")
# OR natural language: "Did I mention lists in the current workspace?"
# Get all conversations from a workspace
search_memory_by_workspace(workspace_id="Python_learning", query="")
```
### Maintenance
```bash
# Check storage usage and statistics
get_storage_stats()
# Clean up old workspaces (default: 30 days)
cleanup_old_workspaces(confirm=true)
cleanup_old_workspaces(days=60, confirm=true)
# Delete specific workspace
delete_workspace(workspace_id="backend_development", confirm=true)
# Show usage instructions
q_mem_help()
```
## Natural Language Support
The server supports natural language commands in both English and Korean:
```bash
# English
"start backend_development workspace"
"resume Python_learning workspace"
"show me all workspaces"
# Korean
"백엔드개발 워크스페이스로 시작해줘"
"Python_학습 워크스페이스로 재개해줘"
"워크스페이스 목록 보여줘"
```
## Usage Tips
1. **Workspace Organization**: Use descriptive names for workspaces to easily identify them later
2. **Search Strategy**: Use specific keywords rather than general terms for better FTS5 search results
3. **Regular Maintenance**: Periodically clean up old workspaces to maintain performance
4. **Context Restoration**: Use `resume_workspace` to restore full conversation context
5. **Natural Language**: Use natural language commands for easier interaction
## Advantages of SQLite + FTS5
- ⚡ **Instant startup** - No embedding model loading required
- 🔍 **Fast search** - Native FTS5 full-text search capabilities
- 💾 **Reliable storage** - Battle-tested SQLite database
- 🔄 **Real-time sync** - Immediate Q CLI integration
- 📊 **Simple queries** - Standard SQL operations
- 🚀 **No dependencies** - Self-contained solution
## License
MIT License
## Links
- **PyPI**: https://pypi.org/project/q_mem_mcp_server/
- **GitHub**: https://github.com/jikang-jeong/aws-q-mem-mcp-server
- **Issues**: https://github.com/jikang-jeong/aws-q-mem-mcp-server/issues
---
# Q Memory MCP Server (한국어)
Amazon Q CLI를 위한 대화 메모리 및 워크스페이스 관리 기능을 제공하는 Model Context Protocol (MCP) 서버입니다. SQLite + FTS5를 사용하여 빠르고 안정적인 저장 및 검색을 제공합니다.
## 주요 기능
- **자동 대화 저장**: Q CLI 대화를 SQLite 데이터베이스에 실시간 동기화
- **워크스페이스 관리**: 주제/워크스페이스별로 대화 정리 (자연어 지원)
- **워크스페이스 복원**: 이전 대화의 전체 컨텍스트와 함께 재개
- **전문 검색**: SQLite FTS5를 사용한 대화 기록 검색
- **Q CLI LLM 통합**: Q CLI의 내장 LLM을 사용한 지능적 대화 요약
## 빠른 시작
### 1. MCP 설정
`~/.aws/amazonq/mcp.json`에 추가:
**macOS의 경우:**
```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
}
}
}
```
**Windows의 경우:**
먼저 Q CLI 데이터베이스 경로를 찾으세요:
```cmd
where /r %USERPROFILE% data.sqlite3
```
찾은 경로를 설정에 사용하세요:
```json
{
"mcpServers": {
"q-mem": {
"command": "uvx",
"args": ["q_mem_mcp_server@latest"],
"env": {
"Q_CLI_DB_PATH": "C:\\Users\\사용자명\\AppData\\Local\\amazon-q\\data.sqlite3",
"Q_MEM_VERBOSE": "true"
},
"disabled": false
}
}
}
```
### 2. 사용 예시
```bash
# Q CLI 시작
q chat
# 새 워크스페이스 시작
start_workspace(description="백엔드개발")
# 또는 자연어: "백엔드개발 워크스페이스로 시작해줘"
# 일반적으로 대화 (자동 저장됨)
# ... 대화 진행 ...
# 워크스페이스 목록 보기
list_workspaces()
# 워크스페이스 재개 (전체 컨텍스트 로드)
resume_workspace(workspace_id="백엔드개발")
# 또는 자연어: "백엔드개발 워크스페이스로 재개해줘"
# 다른 워크스페이스로 전환
resume_workspace(workspace_id="프론트개발")
# 또는 자연어: "프론트개발 워크스페이스로 재개해줘"
# 대화 검색
search_memory_by_workspace(workspace_id="백엔드개발", query="API 설계")
# 또는 자연어: "API 설계에 대해서 뭐라고 말했었는가?"
```
## 사용 가능한 도구
| 도구 | 설명 |
|------|-------------|
| `show_usage()` | 사용법 안내 표시 |
| `start_workspace(description)` | 자동 동기화와 함께 새 워크스페이스 시작 |
| `list_workspaces(limit=10)` | 모든 워크스페이스 목록 (기본: 10개, 최대: 50개) |
| `resume_workspace(workspace_id)` | 전체 컨텍스트와 함께 워크스페이스 재개 |
| `search_memory_by_workspace(workspace_id, query)` | FTS5를 사용한 대화 검색 |
| `delete_workspace(workspace_id, confirm=true)` | 워크스페이스와 모든 대화 삭제 |
| `cleanup_old_workspaces(days=30, confirm=true)` | 지정된 일수보다 오래된 워크스페이스 정리 |
| `get_storage_stats()` | 저장소 통계 및 사용량 정보 조회 |
## 기술 스택
- **SQLite + FTS5**: 외부 의존성 없는 빠른 전문 검색
- **실시간 동기화**: Q CLI 데이터베이스의 새 대화 모니터링
- **Q CLI LLM 통합**: Q CLI의 내장 LLM을 사용한 지능적 요약
- **MCP 프로토콜**: Amazon Q와의 표준 통신
## 데이터 저장
- **데이터베이스**: `~/.Q_mem/conversations.db`
- **로그**: `~/.Q_mem/operations.log`
## 자동 동기화 기능
Q CLI 대화가 SQLite에 실시간으로 자동 저장됩니다:
- **실시간 감지**: Q CLI 데이터베이스의 새 대화 모니터링
- **즉시 동기화**: 새 대화가 나타나면 즉시 처리
- **백그라운드 처리**: 논블로킹 동기화
- **상태 복구**: 재시작 후에도 동기화 상태 유지
## 워크스페이스 관리
### 워크스페이스 생성
```bash
# 새 워크스페이스 시작
start_workspace(description="Python_학습")
# 또는 자연어
"Python_학습 워크스페이스로 시작해줘"
```
### 워크스페이스 간 전환
```bash
# 사용 가능한 워크스페이스 목록 (기본: 10개, 최대: 50개)
list_workspaces()
list_workspaces(limit=20)
# 특정 워크스페이스 재개
resume_workspace(workspace_id="개발자")
# 또는 자연어
"개발자 워크스페이스로 재개해"
```
### 대화 검색
```bash
# FTS5를 사용한 워크스페이스 내 검색
search_memory_by_workspace(workspace_id="Python_학습", query="리스트")
# 또는 자연어: "현재 워크스페이스에서 내가 리스트를 말한적이 있었는가?"
# 워크스페이스의 모든 대화 조회
search_memory_by_workspace(workspace_id="Python_학습", query="")
```
### 유지보수
```bash
# 저장소 사용량 및 통계 확인
get_storage_stats()
# 오래된 워크스페이스 정리 (기본: 30일)
cleanup_old_workspaces(confirm=true)
cleanup_old_workspaces(days=60, confirm=true)
# 특정 워크스페이스 삭제
delete_workspace(workspace_id="백엔드개발", confirm=true)
# 사용법 안내 표시
q_mem_help()
```
## 자연어 지원
서버는 영어와 한국어 자연어 명령을 모두 지원합니다:
```bash
# 영어
"start backend_development workspace"
"resume Python_learning workspace"
"show me all workspaces"
# 한국어
"백엔드개발 워크스페이스로 시작해줘"
"Python_학습 워크스페이스로 재개해줘"
"워크스페이스 목록 보여줘"
```
## 사용 팁
1. **워크스페이스 정리**: 나중에 쉽게 식별할 수 있도록 워크스페이스에 설명적인 이름 사용
2. **검색 전략**: 더 나은 FTS5 검색 결과를 위해 일반적인 용어보다 구체적인 키워드 사용
3. **정기 유지보수**: 성능 유지를 위해 주기적으로 오래된 워크스페이스 정리
4. **컨텍스트 복원**: 전체 대화 컨텍스트 복원을 위해 `resume_workspace` 사용
5. **자연어**: 더 쉬운 상호작용을 위해 자연어 명령 사용
## SQLite + FTS5의 장점
- ⚡ **즉시 시작** - 임베딩 모델 로딩 불필요
- 🔍 **빠른 검색** - 네이티브 FTS5 전문 검색 기능
- 💾 **안정적인 저장** - 검증된 SQLite 데이터베이스
- 🔄 **실시간 동기화** - 즉시 Q CLI 통합
- 📊 **간단한 쿼리** - 표준 SQL 작업
- 🚀 **의존성 없음** - 자체 완결형 솔루션
## 라이선스
MIT License
## 링크
- **PyPI**: https://pypi.org/project/q_mem_mcp_server/
- **GitHub**: https://github.com/jikang-jeong/aws-q-mem-mcp-server
- **Issues**: https://github.com/jikang-jeong/aws-q-mem-mcp-server/issues
Raw data
{
"_id": null,
"home_page": null,
"name": "q-mem-mcp-server",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "amazon-q, conversation-memory, fts5, mcp, real-time-sync, sqlite, workspace-management",
"author": null,
"author_email": "jikjeong <jikjeong@amazon.com>",
"download_url": "https://files.pythonhosted.org/packages/89/13/2aa7d64ffabdfaa6a0f12ab322ef18d95f7d0dc31c1d68978ac3c2fd244a/q_mem_mcp_server-2.2.4.tar.gz",
"platform": null,
"description": "# Q Memory MCP Server\n\nA Model Context Protocol (MCP) server that provides conversation memory and workspace management for Amazon Q CLI using SQLite + FTS5 for fast, reliable storage and search.\n\n## Features\n\n- **Automatic Conversation Saving**: Real-time sync of Q CLI conversations to SQLite database\n- **Workspace Management**: Organize conversations by topics/workspaces with natural language support\n- **Workspace Restoration**: Resume previous conversations with full context\n- **Full-Text Search**: Search through conversation history using SQLite FTS5\n- **Q CLI LLM Integration**: Intelligent conversation summarization using Q CLI's built-in LLM\n\n## Quick Start\n\n### 1. MCP Configuration\nAdd to `~/.aws/amazonq/mcp.json`:\n\n**For macOS:**\n```json\n{\n \"mcpServers\": {\n \"q-mem\": {\n \"command\": \"uvx\",\n \"args\": [\"q_mem_mcp_server@latest\"],\n \"env\": {\n \"Q_CLI_DB_PATH\": \"~/Library/Application Support/amazon-q/data.sqlite3\",\n \"Q_MEM_VERBOSE\": \"true\"\n },\n \"disabled\": false \n }\n }\n}\n```\n\n**For Windows:**\nFirst, find your Q CLI database path:\n```cmd\nwhere /r %USERPROFILE% data.sqlite3\n```\n\nThen use the found path in your configuration:\n```json\n{\n \"mcpServers\": {\n \"q-mem\": {\n \"command\": \"uvx\",\n \"args\": [\"q_mem_mcp_server@latest\"],\n \"env\": {\n \"Q_CLI_DB_PATH\": \"C:\\\\Users\\\\YourUsername\\\\AppData\\\\Local\\\\amazon-q\\\\data.sqlite3\",\n \"Q_MEM_VERBOSE\": \"true\"\n },\n \"disabled\": false \n }\n }\n}\n```\n\n### 2. Usage Examples\n```bash\n# Start Q CLI\nq chat\n\n# Start a new workspace\nstart_workspace(description=\"backend_development\")\n# OR natural language: \"Start backend development workspace\"\n\n# Chat normally (automatically saved)\n# ... have conversations ...\n\n# List workspaces\nlist_workspaces()\n\n# Resume workspace (loads full context)\nresume_workspace(workspace_id=\"backend_development\")\n# OR natural language: \"Resume backend development workspace\"\n\n# Switch to another workspace\nresume_workspace(workspace_id=\"frontend_development\")\n# OR natural language: \"Resume frontend development workspace\"\n\n# Search conversations\nsearch_memory_by_workspace(workspace_id=\"backend_development\", query=\"API design\")\n# OR natural language: \"What did I say about API design?\"\n```\n\n## Available Tools\n\n| Tool | Description |\n|------|-------------|\n| `show_usage()` | Show usage instructions |\n| `start_workspace(description)` | Start a new workspace with auto-sync |\n| `list_workspaces(limit=10)` | List all workspaces (default: 10, max: 50) |\n| `resume_workspace(workspace_id)` | Resume workspace with full context |\n| `search_memory_by_workspace(workspace_id, query)` | Search conversations using FTS5 |\n| `delete_workspace(workspace_id, confirm=true)` | Delete a workspace and all conversations |\n| `cleanup_old_workspaces(days=30, confirm=true)` | Clean up workspaces older than specified days |\n| `get_storage_stats()` | Get storage statistics and usage information | \n\n## Technology Stack\n\n- **SQLite + FTS5**: Fast full-text search without external dependencies\n- **Real-time Sync**: Monitors Q CLI database for new conversations\n- **Q CLI LLM Integration**: Uses Q CLI's built-in LLM for intelligent summarization\n- **MCP Protocol**: Standard communication with Amazon Q\n\n## Data Storage\n\n- **Database**: `~/.Q_mem/conversations.db`\n- **Logs**: `~/.Q_mem/operations.log`\n\n## Auto-Sync Features\n\nQ CLI conversations are automatically saved to SQLite in real-time:\n\n- **Real-time Detection**: Monitors Q CLI database for new conversations\n- **Immediate Sync**: Processes new conversations as they appear\n- **Background Processing**: Non-blocking synchronization\n- **State Recovery**: Maintains sync state across restarts\n\n## Workspace Management\n\n### Creating Workspaces\n```bash\n# Start a new workspace\nstart_workspace(description=\"Python_learning\")\n# OR natural language\n\"Start Python learning workspace\"\n```\n\n### Switching Between Workspaces\n```bash\n# List available workspaces (default: 10, max: 50)\nlist_workspaces()\nlist_workspaces(limit=20)\n\n# Resume a specific workspace\nresume_workspace(workspace_id=\"developer\")\n# OR natural language\n\"Resume developer workspace\"\n```\n\n### Searching Conversations\n```bash\n# Search within a workspace using FTS5\nsearch_memory_by_workspace(workspace_id=\"Python_learning\", query=\"list\")\n\n# OR natural language: \"Did I mention lists in the current workspace?\"\n\n# Get all conversations from a workspace\nsearch_memory_by_workspace(workspace_id=\"Python_learning\", query=\"\")\n```\n\n### Maintenance\n```bash\n# Check storage usage and statistics\nget_storage_stats()\n\n# Clean up old workspaces (default: 30 days)\ncleanup_old_workspaces(confirm=true)\ncleanup_old_workspaces(days=60, confirm=true)\n\n# Delete specific workspace\ndelete_workspace(workspace_id=\"backend_development\", confirm=true)\n\n \n# Show usage instructions\nq_mem_help()\n```\n\n## Natural Language Support\n\nThe server supports natural language commands in both English and Korean:\n\n```bash\n# English\n\"start backend_development workspace\"\n\"resume Python_learning workspace\"\n\"show me all workspaces\"\n\n# Korean\n\"\ubc31\uc5d4\ub4dc\uac1c\ubc1c \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4\ub85c \uc2dc\uc791\ud574\uc918\"\n\"Python_\ud559\uc2b5 \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4\ub85c \uc7ac\uac1c\ud574\uc918\"\n\"\uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \ubaa9\ub85d \ubcf4\uc5ec\uc918\"\n```\n\n## Usage Tips\n\n1. **Workspace Organization**: Use descriptive names for workspaces to easily identify them later\n2. **Search Strategy**: Use specific keywords rather than general terms for better FTS5 search results\n3. **Regular Maintenance**: Periodically clean up old workspaces to maintain performance\n4. **Context Restoration**: Use `resume_workspace` to restore full conversation context\n5. **Natural Language**: Use natural language commands for easier interaction\n\n## Advantages of SQLite + FTS5\n\n- \u26a1 **Instant startup** - No embedding model loading required\n- \ud83d\udd0d **Fast search** - Native FTS5 full-text search capabilities\n- \ud83d\udcbe **Reliable storage** - Battle-tested SQLite database\n- \ud83d\udd04 **Real-time sync** - Immediate Q CLI integration\n- \ud83d\udcca **Simple queries** - Standard SQL operations\n- \ud83d\ude80 **No dependencies** - Self-contained solution\n\n## License\n\nMIT License\n\n## Links\n\n- **PyPI**: https://pypi.org/project/q_mem_mcp_server/\n- **GitHub**: https://github.com/jikang-jeong/aws-q-mem-mcp-server\n- **Issues**: https://github.com/jikang-jeong/aws-q-mem-mcp-server/issues\n\n---\n\n# Q Memory MCP Server (\ud55c\uad6d\uc5b4)\n\nAmazon Q CLI\ub97c \uc704\ud55c \ub300\ud654 \uba54\ubaa8\ub9ac \ubc0f \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \uad00\ub9ac \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\ub294 Model Context Protocol (MCP) \uc11c\ubc84\uc785\ub2c8\ub2e4. SQLite + FTS5\ub97c \uc0ac\uc6a9\ud558\uc5ec \ube60\ub974\uace0 \uc548\uc815\uc801\uc778 \uc800\uc7a5 \ubc0f \uac80\uc0c9\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.\n\n## \uc8fc\uc694 \uae30\ub2a5\n\n- **\uc790\ub3d9 \ub300\ud654 \uc800\uc7a5**: Q CLI \ub300\ud654\ub97c SQLite \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc2e4\uc2dc\uac04 \ub3d9\uae30\ud654\n- **\uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \uad00\ub9ac**: \uc8fc\uc81c/\uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4\ubcc4\ub85c \ub300\ud654 \uc815\ub9ac (\uc790\uc5f0\uc5b4 \uc9c0\uc6d0)\n- **\uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \ubcf5\uc6d0**: \uc774\uc804 \ub300\ud654\uc758 \uc804\uccb4 \ucee8\ud14d\uc2a4\ud2b8\uc640 \ud568\uaed8 \uc7ac\uac1c\n- **\uc804\ubb38 \uac80\uc0c9**: SQLite FTS5\ub97c \uc0ac\uc6a9\ud55c \ub300\ud654 \uae30\ub85d \uac80\uc0c9\n- **Q CLI LLM \ud1b5\ud569**: Q CLI\uc758 \ub0b4\uc7a5 LLM\uc744 \uc0ac\uc6a9\ud55c \uc9c0\ub2a5\uc801 \ub300\ud654 \uc694\uc57d\n\n## \ube60\ub978 \uc2dc\uc791\n\n### 1. MCP \uc124\uc815\n`~/.aws/amazonq/mcp.json`\uc5d0 \ucd94\uac00:\n\n**macOS\uc758 \uacbd\uc6b0:**\n```json\n{\n \"mcpServers\": {\n \"q-mem\": {\n \"command\": \"uvx\",\n \"args\": [\"q_mem_mcp_server@latest\"],\n \"env\": {\n \"Q_CLI_DB_PATH\": \"~/Library/Application Support/amazon-q/data.sqlite3\",\n \"Q_MEM_VERBOSE\": \"true\"\n },\n \"disabled\": false \n }\n }\n}\n```\n\n**Windows\uc758 \uacbd\uc6b0:**\n\uba3c\uc800 Q CLI \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uacbd\ub85c\ub97c \ucc3e\uc73c\uc138\uc694:\n```cmd\nwhere /r %USERPROFILE% data.sqlite3\n```\n\n\ucc3e\uc740 \uacbd\ub85c\ub97c \uc124\uc815\uc5d0 \uc0ac\uc6a9\ud558\uc138\uc694:\n```json\n{\n \"mcpServers\": {\n \"q-mem\": {\n \"command\": \"uvx\",\n \"args\": [\"q_mem_mcp_server@latest\"],\n \"env\": {\n \"Q_CLI_DB_PATH\": \"C:\\\\Users\\\\\uc0ac\uc6a9\uc790\uba85\\\\AppData\\\\Local\\\\amazon-q\\\\data.sqlite3\",\n \"Q_MEM_VERBOSE\": \"true\"\n },\n \"disabled\": false \n }\n }\n}\n```\n\n### 2. \uc0ac\uc6a9 \uc608\uc2dc\n```bash\n# Q CLI \uc2dc\uc791\nq chat\n\n# \uc0c8 \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \uc2dc\uc791\nstart_workspace(description=\"\ubc31\uc5d4\ub4dc\uac1c\ubc1c\")\n# \ub610\ub294 \uc790\uc5f0\uc5b4: \"\ubc31\uc5d4\ub4dc\uac1c\ubc1c \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4\ub85c \uc2dc\uc791\ud574\uc918\"\n\n# \uc77c\ubc18\uc801\uc73c\ub85c \ub300\ud654 (\uc790\ub3d9 \uc800\uc7a5\ub428)\n# ... \ub300\ud654 \uc9c4\ud589 ...\n\n# \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \ubaa9\ub85d \ubcf4\uae30\nlist_workspaces()\n\n# \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \uc7ac\uac1c (\uc804\uccb4 \ucee8\ud14d\uc2a4\ud2b8 \ub85c\ub4dc)\nresume_workspace(workspace_id=\"\ubc31\uc5d4\ub4dc\uac1c\ubc1c\")\n# \ub610\ub294 \uc790\uc5f0\uc5b4: \"\ubc31\uc5d4\ub4dc\uac1c\ubc1c \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4\ub85c \uc7ac\uac1c\ud574\uc918\"\n\n# \ub2e4\ub978 \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4\ub85c \uc804\ud658\nresume_workspace(workspace_id=\"\ud504\ub860\ud2b8\uac1c\ubc1c\")\n# \ub610\ub294 \uc790\uc5f0\uc5b4: \"\ud504\ub860\ud2b8\uac1c\ubc1c \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4\ub85c \uc7ac\uac1c\ud574\uc918\"\n\n# \ub300\ud654 \uac80\uc0c9\nsearch_memory_by_workspace(workspace_id=\"\ubc31\uc5d4\ub4dc\uac1c\ubc1c\", query=\"API \uc124\uacc4\")\n# \ub610\ub294 \uc790\uc5f0\uc5b4: \"API \uc124\uacc4\uc5d0 \ub300\ud574\uc11c \ubb50\ub77c\uace0 \ub9d0\ud588\uc5c8\ub294\uac00?\"\n```\n\n## \uc0ac\uc6a9 \uac00\ub2a5\ud55c \ub3c4\uad6c\n\n| \ub3c4\uad6c | \uc124\uba85 |\n|------|-------------|\n| `show_usage()` | \uc0ac\uc6a9\ubc95 \uc548\ub0b4 \ud45c\uc2dc |\n| `start_workspace(description)` | \uc790\ub3d9 \ub3d9\uae30\ud654\uc640 \ud568\uaed8 \uc0c8 \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \uc2dc\uc791 |\n| `list_workspaces(limit=10)` | \ubaa8\ub4e0 \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \ubaa9\ub85d (\uae30\ubcf8: 10\uac1c, \ucd5c\ub300: 50\uac1c) |\n| `resume_workspace(workspace_id)` | \uc804\uccb4 \ucee8\ud14d\uc2a4\ud2b8\uc640 \ud568\uaed8 \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \uc7ac\uac1c |\n| `search_memory_by_workspace(workspace_id, query)` | FTS5\ub97c \uc0ac\uc6a9\ud55c \ub300\ud654 \uac80\uc0c9 |\n| `delete_workspace(workspace_id, confirm=true)` | \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4\uc640 \ubaa8\ub4e0 \ub300\ud654 \uc0ad\uc81c |\n| `cleanup_old_workspaces(days=30, confirm=true)` | \uc9c0\uc815\ub41c \uc77c\uc218\ubcf4\ub2e4 \uc624\ub798\ub41c \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \uc815\ub9ac |\n| `get_storage_stats()` | \uc800\uc7a5\uc18c \ud1b5\uacc4 \ubc0f \uc0ac\uc6a9\ub7c9 \uc815\ubcf4 \uc870\ud68c |\n\n## \uae30\uc220 \uc2a4\ud0dd\n\n- **SQLite + FTS5**: \uc678\ubd80 \uc758\uc874\uc131 \uc5c6\ub294 \ube60\ub978 \uc804\ubb38 \uac80\uc0c9\n- **\uc2e4\uc2dc\uac04 \ub3d9\uae30\ud654**: Q CLI \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc758 \uc0c8 \ub300\ud654 \ubaa8\ub2c8\ud130\ub9c1\n- **Q CLI LLM \ud1b5\ud569**: Q CLI\uc758 \ub0b4\uc7a5 LLM\uc744 \uc0ac\uc6a9\ud55c \uc9c0\ub2a5\uc801 \uc694\uc57d\n- **MCP \ud504\ub85c\ud1a0\ucf5c**: Amazon Q\uc640\uc758 \ud45c\uc900 \ud1b5\uc2e0\n\n## \ub370\uc774\ud130 \uc800\uc7a5\n\n- **\ub370\uc774\ud130\ubca0\uc774\uc2a4**: `~/.Q_mem/conversations.db`\n- **\ub85c\uadf8**: `~/.Q_mem/operations.log`\n\n## \uc790\ub3d9 \ub3d9\uae30\ud654 \uae30\ub2a5\n\nQ CLI \ub300\ud654\uac00 SQLite\uc5d0 \uc2e4\uc2dc\uac04\uc73c\ub85c \uc790\ub3d9 \uc800\uc7a5\ub429\ub2c8\ub2e4:\n\n- **\uc2e4\uc2dc\uac04 \uac10\uc9c0**: Q CLI \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc758 \uc0c8 \ub300\ud654 \ubaa8\ub2c8\ud130\ub9c1\n- **\uc989\uc2dc \ub3d9\uae30\ud654**: \uc0c8 \ub300\ud654\uac00 \ub098\ud0c0\ub098\uba74 \uc989\uc2dc \ucc98\ub9ac\n- **\ubc31\uadf8\ub77c\uc6b4\ub4dc \ucc98\ub9ac**: \ub17c\ube14\ub85c\ud0b9 \ub3d9\uae30\ud654\n- **\uc0c1\ud0dc \ubcf5\uad6c**: \uc7ac\uc2dc\uc791 \ud6c4\uc5d0\ub3c4 \ub3d9\uae30\ud654 \uc0c1\ud0dc \uc720\uc9c0\n\n## \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \uad00\ub9ac\n\n### \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \uc0dd\uc131\n```bash\n# \uc0c8 \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \uc2dc\uc791\nstart_workspace(description=\"Python_\ud559\uc2b5\")\n# \ub610\ub294 \uc790\uc5f0\uc5b4\n\"Python_\ud559\uc2b5 \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4\ub85c \uc2dc\uc791\ud574\uc918\"\n```\n\n### \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \uac04 \uc804\ud658\n```bash\n# \uc0ac\uc6a9 \uac00\ub2a5\ud55c \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \ubaa9\ub85d (\uae30\ubcf8: 10\uac1c, \ucd5c\ub300: 50\uac1c)\nlist_workspaces()\nlist_workspaces(limit=20)\n\n# \ud2b9\uc815 \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \uc7ac\uac1c\nresume_workspace(workspace_id=\"\uac1c\ubc1c\uc790\")\n# \ub610\ub294 \uc790\uc5f0\uc5b4\n\"\uac1c\ubc1c\uc790 \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4\ub85c \uc7ac\uac1c\ud574\"\n```\n\n### \ub300\ud654 \uac80\uc0c9\n```bash\n# FTS5\ub97c \uc0ac\uc6a9\ud55c \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \ub0b4 \uac80\uc0c9\nsearch_memory_by_workspace(workspace_id=\"Python_\ud559\uc2b5\", query=\"\ub9ac\uc2a4\ud2b8\")\n\n# \ub610\ub294 \uc790\uc5f0\uc5b4: \"\ud604\uc7ac \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4\uc5d0\uc11c \ub0b4\uac00 \ub9ac\uc2a4\ud2b8\ub97c \ub9d0\ud55c\uc801\uc774 \uc788\uc5c8\ub294\uac00?\"\n\n# \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4\uc758 \ubaa8\ub4e0 \ub300\ud654 \uc870\ud68c\nsearch_memory_by_workspace(workspace_id=\"Python_\ud559\uc2b5\", query=\"\")\n```\n\n### \uc720\uc9c0\ubcf4\uc218\n```bash\n# \uc800\uc7a5\uc18c \uc0ac\uc6a9\ub7c9 \ubc0f \ud1b5\uacc4 \ud655\uc778\nget_storage_stats()\n\n# \uc624\ub798\ub41c \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \uc815\ub9ac (\uae30\ubcf8: 30\uc77c)\ncleanup_old_workspaces(confirm=true)\ncleanup_old_workspaces(days=60, confirm=true)\n\n# \ud2b9\uc815 \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \uc0ad\uc81c\ndelete_workspace(workspace_id=\"\ubc31\uc5d4\ub4dc\uac1c\ubc1c\", confirm=true)\n\n\n# \uc0ac\uc6a9\ubc95 \uc548\ub0b4 \ud45c\uc2dc\nq_mem_help()\n```\n\n## \uc790\uc5f0\uc5b4 \uc9c0\uc6d0\n\n\uc11c\ubc84\ub294 \uc601\uc5b4\uc640 \ud55c\uad6d\uc5b4 \uc790\uc5f0\uc5b4 \uba85\ub839\uc744 \ubaa8\ub450 \uc9c0\uc6d0\ud569\ub2c8\ub2e4:\n\n```bash\n# \uc601\uc5b4\n\"start backend_development workspace\"\n\"resume Python_learning workspace\"\n\"show me all workspaces\"\n\n# \ud55c\uad6d\uc5b4\n\"\ubc31\uc5d4\ub4dc\uac1c\ubc1c \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4\ub85c \uc2dc\uc791\ud574\uc918\"\n\"Python_\ud559\uc2b5 \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4\ub85c \uc7ac\uac1c\ud574\uc918\"\n\"\uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \ubaa9\ub85d \ubcf4\uc5ec\uc918\"\n```\n\n## \uc0ac\uc6a9 \ud301\n\n1. **\uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \uc815\ub9ac**: \ub098\uc911\uc5d0 \uc27d\uac8c \uc2dd\ubcc4\ud560 \uc218 \uc788\ub3c4\ub85d \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4\uc5d0 \uc124\uba85\uc801\uc778 \uc774\ub984 \uc0ac\uc6a9\n2. **\uac80\uc0c9 \uc804\ub7b5**: \ub354 \ub098\uc740 FTS5 \uac80\uc0c9 \uacb0\uacfc\ub97c \uc704\ud574 \uc77c\ubc18\uc801\uc778 \uc6a9\uc5b4\ubcf4\ub2e4 \uad6c\uccb4\uc801\uc778 \ud0a4\uc6cc\ub4dc \uc0ac\uc6a9\n3. **\uc815\uae30 \uc720\uc9c0\ubcf4\uc218**: \uc131\ub2a5 \uc720\uc9c0\ub97c \uc704\ud574 \uc8fc\uae30\uc801\uc73c\ub85c \uc624\ub798\ub41c \uc6cc\ud06c\uc2a4\ud398\uc774\uc2a4 \uc815\ub9ac\n4. **\ucee8\ud14d\uc2a4\ud2b8 \ubcf5\uc6d0**: \uc804\uccb4 \ub300\ud654 \ucee8\ud14d\uc2a4\ud2b8 \ubcf5\uc6d0\uc744 \uc704\ud574 `resume_workspace` \uc0ac\uc6a9\n5. **\uc790\uc5f0\uc5b4**: \ub354 \uc26c\uc6b4 \uc0c1\ud638\uc791\uc6a9\uc744 \uc704\ud574 \uc790\uc5f0\uc5b4 \uba85\ub839 \uc0ac\uc6a9\n\n## SQLite + FTS5\uc758 \uc7a5\uc810\n\n- \u26a1 **\uc989\uc2dc \uc2dc\uc791** - \uc784\ubca0\ub529 \ubaa8\ub378 \ub85c\ub529 \ubd88\ud544\uc694\n- \ud83d\udd0d **\ube60\ub978 \uac80\uc0c9** - \ub124\uc774\ud2f0\ube0c FTS5 \uc804\ubb38 \uac80\uc0c9 \uae30\ub2a5\n- \ud83d\udcbe **\uc548\uc815\uc801\uc778 \uc800\uc7a5** - \uac80\uc99d\ub41c SQLite \ub370\uc774\ud130\ubca0\uc774\uc2a4\n- \ud83d\udd04 **\uc2e4\uc2dc\uac04 \ub3d9\uae30\ud654** - \uc989\uc2dc Q CLI \ud1b5\ud569\n- \ud83d\udcca **\uac04\ub2e8\ud55c \ucffc\ub9ac** - \ud45c\uc900 SQL \uc791\uc5c5\n- \ud83d\ude80 **\uc758\uc874\uc131 \uc5c6\uc74c** - \uc790\uccb4 \uc644\uacb0\ud615 \uc194\ub8e8\uc158\n\n## \ub77c\uc774\uc120\uc2a4\n\nMIT License\n\n## \ub9c1\ud06c\n\n- **PyPI**: https://pypi.org/project/q_mem_mcp_server/\n- **GitHub**: https://github.com/jikang-jeong/aws-q-mem-mcp-server\n- **Issues**: https://github.com/jikang-jeong/aws-q-mem-mcp-server/issues\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Conversation memory and workspace management MCP server for Amazon Q CLI with SQLite + FTS5 storage and real-time sync",
"version": "2.2.4",
"project_urls": {
"Documentation": "https://github.com/jikjeong/q-mem-mcp-server/blob/main/README.md",
"Homepage": "https://github.com/jikjeong/q-mem-mcp-server",
"Issues": "https://github.com/jikjeong/q-mem-mcp-server/issues",
"Repository": "https://github.com/jikjeong/q-mem-mcp-server"
},
"split_keywords": [
"amazon-q",
" conversation-memory",
" fts5",
" mcp",
" real-time-sync",
" sqlite",
" workspace-management"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "4d3233df6eac1de679c5652395d92fdce55458a59bdcb02bf8507cb9d9722c82",
"md5": "e47e12a22d1d8412a7b3e9e8e0d30233",
"sha256": "565bac926654e4813f1b409271f751ec18a210a9ee6e317013f85a7adab44556"
},
"downloads": -1,
"filename": "q_mem_mcp_server-2.2.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e47e12a22d1d8412a7b3e9e8e0d30233",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 25875,
"upload_time": "2025-07-12T11:47:41",
"upload_time_iso_8601": "2025-07-12T11:47:41.580722Z",
"url": "https://files.pythonhosted.org/packages/4d/32/33df6eac1de679c5652395d92fdce55458a59bdcb02bf8507cb9d9722c82/q_mem_mcp_server-2.2.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "89132aa7d64ffabdfaa6a0f12ab322ef18d95f7d0dc31c1d68978ac3c2fd244a",
"md5": "6cf08d8db14b5a7fea0e3caa0ccab438",
"sha256": "3db5a9e2686e0249ba545330cd660e4f77ca7d61c8e95d63f51119ffc8a2ba74"
},
"downloads": -1,
"filename": "q_mem_mcp_server-2.2.4.tar.gz",
"has_sig": false,
"md5_digest": "6cf08d8db14b5a7fea0e3caa0ccab438",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 23080,
"upload_time": "2025-07-12T11:47:43",
"upload_time_iso_8601": "2025-07-12T11:47:43.017601Z",
"url": "https://files.pythonhosted.org/packages/89/13/2aa7d64ffabdfaa6a0f12ab322ef18d95f7d0dc31c1d68978ac3c2fd244a/q_mem_mcp_server-2.2.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-12 11:47:43",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jikjeong",
"github_project": "q-mem-mcp-server",
"github_not_found": true,
"lcname": "q-mem-mcp-server"
}