# ๐ ๏ธ Work Memory MCP API ๋ ํผ๋ฐ์ค
Work Memory MCP Server์ ๋ชจ๋ ๋๊ตฌ์ API์ ๋ํ ์์ธํ ๋ฌธ์์
๋๋ค.
## ๐ ๋๊ตฌ ๋ชฉ๋ก
### ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
- [`add_work_memory`](#add_work_memory) - ๋ฉ๋ชจ๋ฆฌ ์ถ๊ฐ
- [`search_work_memory`](#search_work_memory) - ๋ฉ๋ชจ๋ฆฌ ๊ฒ์
- [`list_work_memories`](#list_work_memories) - ๋ฉ๋ชจ๋ฆฌ ๋ชฉ๋ก ์กฐํ
- [`delete_work_memory`](#delete_work_memory) - ๋ฉ๋ชจ๋ฆฌ ์ญ์
### ๊ฒ์ & ๋ถ์
- [`get_related_keywords`](#get_related_keywords) - ๊ด๋ จ ํค์๋ ์กฐํ
- [`get_search_stats`](#get_search_stats) - ๊ฒ์ ํต๊ณ
- [`optimize_search_index`](#optimize_search_index) - ๊ฒ์ ์ธ๋ฑ์ค ์ต์ ํ
### ํ์คํ ๋ฆฌ & ๋ฒ์ ๊ด๋ฆฌ
- [`get_work_memory_history`](#get_work_memory_history) - ๋ณ๊ฒฝ ํ์คํ ๋ฆฌ ์กฐํ
- [`get_work_memory_versions`](#get_work_memory_versions) - ๋ฒ์ ๋ชฉ๋ก ์กฐํ
- [`restore_memory_version`](#restore_memory_version) - ๋ฒ์ ๋ณต๊ตฌ
- [`list_memory_versions`](#list_memory_versions) - ๊ฐ๋จํ ๋ฒ์ ๋ชฉ๋ก
### ์์คํ
- [`get_server_status`](#get_server_status) - ์๋ฒ ์ํ ์กฐํ
---
## ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
### `add_work_memory`
์๋ก์ด ์์
๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฅํฉ๋๋ค.
**ํ๋ผ๋ฏธํฐ:**
- `content` (string, ํ์): ๋ฉ๋ชจ๋ฆฌ ๋ด์ฉ
- `project` (string, ์ ํ): ํ๋ก์ ํธ ์ด๋ฆ
- `tags` (array\<string\>, ์ ํ): ํ๊ทธ ๋ฐฐ์ด
- `importance` (number, ์ ํ): ์ค์๋ (1-10, ๊ธฐ๋ณธ๊ฐ: 5)
- `creator` (string, ์ ํ): ์์ฑ์ (๊ธฐ๋ณธ๊ฐ: "user")
**์์:**
```json
{
"content": "React ecommerce ํ๋ก์ ํธ์ ์ํ ๋ชฉ๋ก ์ปดํฌ๋ํธ ๊ฐ๋ฐ ์ค. Redux๋ก ์ํ ๊ด๋ฆฌํ๊ณ Material-UI๋ก ์คํ์ผ๋ง.",
"project": "ecommerce-web",
"tags": ["react", "redux", "material-ui", "components"],
"importance": 8,
"creator": "developer"
}
```
**์๋ต:**
```
โ
๋ฉ๋ชจ๋ฆฌ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ ์ฅ๋์์ต๋๋ค.
๐ ID: mem_20241201_001
๐ท๏ธ ํ๊ทธ: react, redux, material-ui, components
๐ ์ค์๋: 8/10
๐ ํ๋ก์ ํธ: ecommerce-web
```
---
### `search_work_memory`
์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฒ์ํฉ๋๋ค.
**ํ๋ผ๋ฏธํฐ:**
- `query` (string, ํ์): ๊ฒ์ ์ฟผ๋ฆฌ
- `limit` (number, ์ ํ): ๊ฒฐ๊ณผ ๊ฐ์ ์ ํ (๊ธฐ๋ณธ๊ฐ: 10)
- `project_filter` (string, ์ ํ): ํ๋ก์ ํธ๋ก ํํฐ๋ง
- `tag_filter` (array\<string\>, ์ ํ): ํ๊ทธ๋ก ํํฐ๋ง
- `min_importance` (number, ์ ํ): ์ต์ ์ค์๋ (1-10)
- `max_importance` (number, ์ ํ): ์ต๋ ์ค์๋ (1-10)
- `creator_filter` (string, ์ ํ): ์์ฑ์๋ก ํํฐ๋ง
- `sort_by` (string, ์ ํ): ์ ๋ ฌ ๊ธฐ์ค (timestamp, importance, relevance)
- `date_from` (string, ์ ํ): ์์ ๋ ์ง (YYYY-MM-DD)
- `date_to` (string, ์ ํ): ์ข
๋ฃ ๋ ์ง (YYYY-MM-DD)
**์์:**
```json
{
"query": "React ์ปดํฌ๋ํธ",
"limit": 5,
"project_filter": "ecommerce-web",
"tag_filter": ["react"],
"min_importance": 7,
"sort_by": "importance"
}
```
**์๋ต:**
```
๐ ๊ฒ์ ๊ฒฐ๊ณผ: 3๊ฐ ๋ฐ๊ฒฌ
๐ [mem_20241201_001] React ecommerce ํ๋ก์ ํธ ์ปดํฌ๋ํธ ๊ฐ๋ฐ
๐ ์ค์๋: 8/10 | ๐ ecommerce-web | ๐ท๏ธ react, components
๐ญ React ecommerce ํ๋ก์ ํธ์ ์ํ ๋ชฉ๋ก ์ปดํฌ๋ํธ ๊ฐ๋ฐ ์ค...
๐ [mem_20241130_045] React ํ
์ต์ ํ ์์
๐ ์ค์๋: 7/10 | ๐ ecommerce-web | ๐ท๏ธ react, hooks
๐ญ useState์ useEffect ์ต์ ํ๋ก ์ฑ๋ฅ ๊ฐ์ ...
๐ ๊ฒ์ ์๋ฃ: 3๊ฐ ๊ฒฐ๊ณผ (45ms)
```
---
### `list_work_memories`
์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ ๋ชฉ๋ก์ ์กฐํํฉ๋๋ค.
**ํ๋ผ๋ฏธํฐ:**
- `limit` (number, ์ ํ): ๊ฒฐ๊ณผ ๊ฐ์ ์ ํ (๊ธฐ๋ณธ๊ฐ: 20)
- `sort_by` (string, ์ ํ): ์ ๋ ฌ ๊ธฐ์ค (timestamp, importance, title)
- `sort_order` (string, ์ ํ): ์ ๋ ฌ ์์ (asc, desc, ๊ธฐ๋ณธ๊ฐ: desc)
- `format` (string, ์ ํ): ์ถ๋ ฅ ํ์ (summary, detailed, minimal, ๊ธฐ๋ณธ๊ฐ: summary)
- `project_filter` (string, ์ ํ): ํ๋ก์ ํธ ํํฐ
- `tag_filter` (array\<string\>, ์ ํ): ํ๊ทธ ํํฐ
- `creator_filter` (string, ์ ํ): ์์ฑ์ ํํฐ
- `importance_range` (object, ์ ํ): ์ค์๋ ๋ฒ์ {min: number, max: number}
**์์:**
```json
{
"limit": 10,
"sort_by": "importance",
"format": "detailed",
"project_filter": "ecommerce-web"
}
```
---
### `delete_work_memory`
๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ญ์ ํ๊ฑฐ๋ ์์นด์ด๋ธํฉ๋๋ค.
**ํ๋ผ๋ฏธํฐ:**
- `memory_id` (string, ํ์): ์ญ์ ํ ๋ฉ๋ชจ๋ฆฌ ID
- `archive_only` (boolean, ์ ํ): ์์นด์ด๋ธ๋ง ์ํ (๊ธฐ๋ณธ๊ฐ: false)
- `confirm` (boolean, ์ ํ): ์ญ์ ํ์ธ (๊ธฐ๋ณธ๊ฐ: false)
**์์:**
```json
{
"memory_id": "mem_20241201_001",
"archive_only": true,
"confirm": true
}
```
---
## ๊ฒ์ & ๋ถ์
### `get_related_keywords`
ํน์ ํค์๋์ ๊ด๋ จ๋ ํค์๋๋ค์ ์กฐํํฉ๋๋ค.
**ํ๋ผ๋ฏธํฐ:**
- `keyword` (string, ํ์): ๊ธฐ์ค ํค์๋
- `limit` (number, ์ ํ): ๊ฒฐ๊ณผ ๊ฐ์ ์ ํ (๊ธฐ๋ณธ๊ฐ: 10)
- `similarity_threshold` (number, ์ ํ): ์ ์ฌ๋ ์๊ณ๊ฐ (0.0-1.0, ๊ธฐ๋ณธ๊ฐ: 0.3)
**์์:**
```json
{
"keyword": "react",
"limit": 5,
"similarity_threshold": 0.4
}
```
**์๋ต:**
```
๐ 'react' ๊ด๋ จ ํค์๋
๐ ์ฐ๊ด ํค์๋:
1. components (0.85) - 7๊ฐ ๋ฉ๋ชจ๋ฆฌ
2. hooks (0.72) - 5๊ฐ ๋ฉ๋ชจ๋ฆฌ
3. redux (0.68) - 4๊ฐ ๋ฉ๋ชจ๋ฆฌ
4. jsx (0.61) - 6๊ฐ ๋ฉ๋ชจ๋ฆฌ
5. state (0.58) - 8๊ฐ ๋ฉ๋ชจ๋ฆฌ
๐ก ์ถ์ฒ ๊ฒ์์ด:
- "react components ์ต์ ํ"
- "react hooks ํจํด"
- "react redux ์ฐ๋"
```
---
### `get_search_stats`
๊ฒ์ ์์คํ
์ ํต๊ณ ์ ๋ณด๋ฅผ ์กฐํํฉ๋๋ค.
**ํ๋ผ๋ฏธํฐ:**
- `include_projects` (boolean, ์ ํ): ํ๋ก์ ํธ๋ณ ํต๊ณ ํฌํจ (๊ธฐ๋ณธ๊ฐ: true)
- `include_tags` (boolean, ์ ํ): ํ๊ทธ๋ณ ํต๊ณ ํฌํจ (๊ธฐ๋ณธ๊ฐ: true)
- `include_performance` (boolean, ์ ํ): ์ฑ๋ฅ ํต๊ณ ํฌํจ (๊ธฐ๋ณธ๊ฐ: false)
**์๋ต:**
```
๐ ๊ฒ์ ์์คํ
ํต๊ณ
๐ ๋ฉ๋ชจ๋ฆฌ ํํฉ:
- ์ด ๋ฉ๋ชจ๋ฆฌ: 156๊ฐ
- ํ์ฑ ๋ฉ๋ชจ๋ฆฌ: 142๊ฐ
- ์์นด์ด๋ธ: 14๊ฐ
๐ท๏ธ ์ธ๊ธฐ ํ๊ทธ TOP 5:
1. react (23๊ฐ)
2. javascript (18๊ฐ)
3. optimization (15๊ฐ)
4. api (12๊ฐ)
5. database (10๊ฐ)
๐ ํ๋ก์ ํธ๋ณ ๋ถํฌ:
- ecommerce-web: 45๊ฐ
- mobile-app: 32๊ฐ
- admin-panel: 28๊ฐ
- others: 37๊ฐ
๐ ์ธ๋ฑ์ค ์ํ:
- ํค์๋ ์ธ๋ฑ์ค: 1,247๊ฐ ํญ๋ชฉ
- ๋ง์ง๋ง ์ต์ ํ: 2024-12-01 09:30:00
```
---
### `optimize_search_index`
๊ฒ์ ์ธ๋ฑ์ค๋ฅผ ์ต์ ํํฉ๋๋ค.
**ํ๋ผ๋ฏธํฐ:**
- `force_rebuild` (boolean, ์ ํ): ๊ฐ์ ์ฌ๊ตฌ์ฑ (๊ธฐ๋ณธ๊ฐ: false)
- `cleanup_orphaned` (boolean, ์ ํ): ๊ณ ์ ์ธ๋ฑ์ค ์ ๋ฆฌ (๊ธฐ๋ณธ๊ฐ: true)
**์๋ต:**
```
๐ง ๊ฒ์ ์ธ๋ฑ์ค ์ต์ ํ ์๋ฃ
๐ ์ต์ ํ ๊ฒฐ๊ณผ:
- ์ฒ๋ฆฌ๋ ๋ฉ๋ชจ๋ฆฌ: 156๊ฐ
- ์ธ๋ฑ์ค ํญ๋ชฉ: 1,247๊ฐ โ 1,203๊ฐ (-44๊ฐ)
- ๊ณ ์ ์ธ๋ฑ์ค ์ ๋ฆฌ: 15๊ฐ ์ ๊ฑฐ
- ์์ ์๊ฐ: 2.3์ด
โ
์ฑ๋ฅ ๊ฐ์ :
- ํ๊ท ๊ฒ์ ์๊ฐ: 120ms โ 85ms (-29%)
- ์ธ๋ฑ์ค ํฌ๊ธฐ: 2.1MB โ 1.8MB (-14%)
```
---
## ํ์คํ ๋ฆฌ & ๋ฒ์ ๊ด๋ฆฌ
### `get_work_memory_history`
๋ฉ๋ชจ๋ฆฌ ๋ณ๊ฒฝ ํ์คํ ๋ฆฌ๋ฅผ ์กฐํํฉ๋๋ค.
**ํ๋ผ๋ฏธํฐ:**
- `memory_id` (string, ์ ํ): ํน์ ๋ฉ๋ชจ๋ฆฌ ID (๋ฏธ์ง์ ์ ์ ์ฒด ํ์คํ ๋ฆฌ)
- `limit` (number, ์ ํ): ๊ฒฐ๊ณผ ๊ฐ์ ์ ํ (๊ธฐ๋ณธ๊ฐ: 50)
- `change_type` (string, ์ ํ): ๋ณ๊ฒฝ ์ ํ ํํฐ (CREATE, UPDATE, DELETE, ARCHIVE)
- `date_from` (string, ์ ํ): ์์ ๋ ์ง
- `date_to` (string, ์ ํ): ์ข
๋ฃ ๋ ์ง
- `project_filter` (string, ์ ํ): ํ๋ก์ ํธ ํํฐ
- `creator_filter` (string, ์ ํ): ์์ฑ์ ํํฐ
---
---
### `restore_memory_version`
๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด์ ๋ฒ์ ์ผ๋ก ๋ณต๊ตฌํฉ๋๋ค.
**ํ๋ผ๋ฏธํฐ:**
- `memory_id` (string, ํ์): ๋ณต๊ตฌํ ๋ฉ๋ชจ๋ฆฌ ID
- `target_version` (string, ์ ํ): ๋์ ๋ฒ์ (๋ฏธ์ง์ ์ ์ต๊ทผ ์ด์ ๋ฒ์ )
- `restore_mode` (string, ์ ํ): ๋ณต๊ตฌ ๋ชจ๋ (full, selective, preview)
- `selective_fields` (array, ์ ํ): ์ ํ์ ๋ณต๊ตฌ ํ๋
- `create_backup` (boolean, ์ ํ): ๋ฐฑ์
์์ฑ ์ฌ๋ถ
- `auto_version` (boolean, ์ ํ): ์๋ ๋ฒ์ ์์ฑ ์ฌ๋ถ
- `description` (string, ์ ํ): ๋ณต๊ตฌ ์ค๋ช
- `confirm_restore` (boolean, ์ ํ): ๋ณต๊ตฌ ํ์ธ (์ค์ ๋ณต๊ตฌ ์ ํ์)
**์์:**
```json
{
"memory_id": "mem_20241201_001",
"target_version": "1.2",
"restore_mode": "full",
"create_backup": true,
"confirm_restore": true,
"description": "์๋ชป๋ ์์ ๋ด์ฉ ๋กค๋ฐฑ"
}
```
---
## ์์คํ
### `get_server_status`
MCP ์๋ฒ์ ์ํ ์ ๋ณด๋ฅผ ์กฐํํฉ๋๋ค.
**ํ๋ผ๋ฏธํฐ:**
- `include_performance` (boolean, ์ ํ): ์ฑ๋ฅ ์ ๋ณด ํฌํจ
- `include_statistics` (boolean, ์ ํ): ํต๊ณ ์ ๋ณด ํฌํจ
- `include_health_check` (boolean, ์ ํ): ํฌ์ค ์ฒดํฌ ํฌํจ
**์๋ต:**
```
๐ง Work Memory MCP Server v0.1.0
๐ ์๋ฒ ์ํ: ์ ์ ์ด์
โฑ๏ธ ๊ฐ๋ ์๊ฐ: 2์๊ฐ 34๋ถ
๐พ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋: 45.2MB / 512MB (8.8%)
๐ ์์คํ
ํต๊ณ:
- ์ด ๋ฉ๋ชจ๋ฆฌ: 156๊ฐ
- ์ด ์์ฒญ: 1,247๊ฑด
- ํ๊ท ์๋ต ์๊ฐ: 85ms
- ์ค๋ฅ์จ: 0.2%
๐ง ๊ตฌ์ฑ์์ ์ํ:
โ
๋ฐ์ดํฐ๋ฒ ์ด์ค: ์ ์
โ
๊ฒ์ ์ธ๋ฑ์ค: ์ ์
โ
ํ์ผ ์์คํ
: ์ ์
โ
๋ฐฑ์
์์คํ
: ์ ์
```
---
## ๐ ์๋ต ํ์
### ์ฑ๊ณต ์๋ต
๋ชจ๋ ๋๊ตฌ๋ ์ฑ๊ณต ์ ์ฌ์ฉ์ ์นํ์ ์ธ ํ
์คํธ ํ์์ผ๋ก ์๋ตํฉ๋๋ค.
### ์ค๋ฅ ์๋ต
์ค๋ฅ ๋ฐ์ ์ `โ` ์ด๋ชจ์ง์ ํจ๊ป ๋ช
ํํ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ ๊ณตํฉ๋๋ค.
```
โ ๋ฉ๋ชจ๋ฆฌ ID 'invalid_id'๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
๐ก ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ๋ชฉ๋ก์ ํ์ธํ๋ ค๋ฉด list_work_memories๋ฅผ ์ฌ์ฉํ์ธ์.
```
### ๋ฐ์ดํฐ ํ์
#### ๋ ์ง/์๊ฐ
- ISO 8601 ํ์: `2024-12-01T09:30:00.000Z`
- ๋ก์ปฌ ํ์: `2024-12-01 18:30:00`
#### ๋ฉ๋ชจ๋ฆฌ ID
- ํ์: `mem_YYYYMMDD_XXX`
- ์์: `mem_20241201_001`
#### ์ค์๋
- ๋ฒ์: 1-10 (1: ๋งค์ฐ ๋ฎ์, 10: ๋งค์ฐ ๋์)
- ๊ธฐ๋ณธ๊ฐ: 5
---
## ๐ ์ฑ๋ฅ ๊ณ ๋ ค์ฌํญ
### ๊ฒ์ ์ต์ ํ
- ์ ๊ธฐ์ ์ธ ์ธ๋ฑ์ค ์ต์ ํ ๊ถ์ฅ (`optimize_search_index`)
- ๋๋ ๊ฒ์ ์ `limit` ํ๋ผ๋ฏธํฐ ํ์ฉ
- ๊ตฌ์ฒด์ ์ธ ๊ฒ์์ด ์ฌ์ฉ์ผ๋ก ์ ํ๋ ํฅ์
### ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
- ์ค๋ณต ๋ฉ๋ชจ๋ฆฌ ๋ฐฉ์ง๋ฅผ ์ํ ๊ฒ์ ํ ์ ์ฅ
- ๋ถํ์ํ ๋ฉ๋ชจ๋ฆฌ๋ ์์นด์ด๋ธ ํ์ฉ
- ์ ๊ธฐ์ ์ธ ์ ๋ฆฌ ์์
์ํ
### ๋ฒ์ ๊ด๋ฆฌ
- ์๋ ๋ฒ์ ์์ฑ์ผ๋ก ๋ณ๊ฒฝ ์ด๋ ฅ ์ถ์
- ์ค์ํ ๋ณ๊ฒฝ ์ ์๋ ๋ฐฑ์
์์ฑ
- ๋ณต๊ตฌ ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ชจ๋๋ก ๋ณ๊ฒฝ์ฌํญ ํ์ธ