@ainote/mcp 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README-ko.md +108 -9
- package/README.md +28 -0
- package/index.js +2 -2
- package/package.json +1 -1
package/README-ko.md
CHANGED
|
@@ -1,3 +1,69 @@
|
|
|
1
|
+
# AI Simple Note - 모델 컨텍스트 프로토콜 (MCP)
|
|
2
|
+
|
|
3
|
+
AI Simple Note의 모델 컨텍스트 프로토콜(MCP)은 외부 AI가 사용자의 개인적인 맥락을 이해하고, 이를 바탕으로 고도로 맞춤화된 정보를 제공할 수 있도록 설계된 혁신적인 프로토콜입니다. 이 저장소는 MCP의 기술적 구현 및 관련 문서를 제공합니다.
|
|
4
|
+
|
|
5
|
+
## 핵심 비전: 개인화된 AI 응답
|
|
6
|
+
|
|
7
|
+
MCP의 궁극적인 목표는 외부 AI가 사용자의 **개인적인 맥락(Context)**을 이해하고, 이를 바탕으로 고도로 맞춤화된 정보를 제공하는 것입니다. AI Simple Note에 기록된 사용자의 할 일, 일정, 메모 등은 AI에게 중요한 "기억"으로 작용합니다.
|
|
8
|
+
|
|
9
|
+
**예시 시나리오: "주말 날씨 어때?"**
|
|
10
|
+
|
|
11
|
+
* **AI 도입 이전 (일반적인 검색)**:
|
|
12
|
+
* 사용자가 "주말 날씨"를 검색하면, 주말 전체의 온도, 강수 확률, 습도 등 보편적인 기상 정보를 얻습니다.
|
|
13
|
+
* 사용자는 이 정보 속에서 자신의 계획(예: 테니스)에 맞는 시간대(예: 오전 7시-9시)의 날씨를 **스스로 해석하고 판단**해야 합니다.
|
|
14
|
+
|
|
15
|
+
* **AI Simple Note + MCP 도입 이후 (개인화된 응답)**:
|
|
16
|
+
1. **AI의 맥락 이해**: 외부 AI가 MCP를 통해 사용자의 AI Simple Note 데이터를 조회합니다.
|
|
17
|
+
* `[반복] 매주 토요일 오전 7:00: 테니스 클럽 모임 #운동`
|
|
18
|
+
* `[할일] 이번 주 토요일: 테니스화 구매하기`
|
|
19
|
+
* `[메모] 지난주 테니스: 날이 더워서 힘들었다. 다음엔 꼭 새벽에 쳐야지.`
|
|
20
|
+
2. **AI의 추론**: AI는 이 "기억"들을 바탕으로 "이 사용자는 주말 오전에 주로 테니스를 치는구나"라고 학습합니다.
|
|
21
|
+
3. **개인화된 답변 생성**: 사용자가 "주말 날씨 어때?"라고 질문하면, AI는 다음과 같이 사용자의 숨은 의도에 부합하는 답변을 우선적으로 제공합니다.
|
|
22
|
+
> "주말 오전에 주로 테니스를 치시죠! **이번 주 토요일 오전 7시부터 9시까지는 구름이 조금 끼지만, 기온은 22도로 테니스 치기 아주 좋은 날씨**가 예상됩니다. 비 소식은 없어요.
|
|
23
|
+
>
|
|
24
|
+
> 그 외 시간대에는 토요일 오후부터 소나기 가능성이 있으니 참고하세요. 일요일 오전은 맑지만 바람이 다소 강할 수 있습니다."
|
|
25
|
+
|
|
26
|
+
이처럼 MCP는 단순한 데이터 조회를 넘어, AI가 사용자의 라이프스타일을 이해하고 **진정한 개인 비서** 역할을 수행하게 만드는 핵심적인 다리 역할을 합니다.
|
|
27
|
+
|
|
28
|
+
## MCP 아키텍처 및 데이터 흐름
|
|
29
|
+
|
|
30
|
+
```mermaid
|
|
31
|
+
graph TD
|
|
32
|
+
subgraph 사용자 상호작용
|
|
33
|
+
A[사용자: AI Simple Note 앱에서 MCP 기능 활성화] --> B(AI Simple Note 앱: API 키 발급 요청)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
subgraph AI Simple Note 백엔드
|
|
37
|
+
B --> C{백엔드: API 키 생성 및 전달}
|
|
38
|
+
C --> D[AI Simple Note 앱: API 키 수신]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
subgraph 외부 AI 서비스
|
|
42
|
+
D --> E[사용자: 발급받은 API 키를 외부 AI 서비스에 등록]
|
|
43
|
+
E --> F(외부 AI 서비스: MCP API 호출)
|
|
44
|
+
F --> G{AI Simple Note 백엔드: 사용자 데이터 요청}
|
|
45
|
+
G --> H[AI Simple Note 백엔드: 사용자 데이터 전달]
|
|
46
|
+
H --> I(외부 AI 서비스: 사용자 데이터 기반 개인화된 답변 생성)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
I --> J[사용자: 개인화된 답변 수신]
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## MCP 엔드포인트 (예시)
|
|
53
|
+
|
|
54
|
+
Rails API가 MCP Gateway 역할을 수행하며, 외부 AI가 사용자의 데이터를 안전하게 조회하고 상호작용할 수 있도록 설계됩니다.
|
|
55
|
+
|
|
56
|
+
- `GET/POST/PUT/DELETE /api/v1/mcp/tasks` - 할일 CRUD
|
|
57
|
+
- `GET /api/v1/mcp/categories` - 카테고리 조회
|
|
58
|
+
|
|
59
|
+
## 보안 및 개인정보 보호
|
|
60
|
+
|
|
61
|
+
- **사용자 동의**: MCP를 통한 데이터 접근은 오직 사용자의 명시적인 동의 하에 이루어집니다.
|
|
62
|
+
- **데이터 주권**: 사용자의 데이터는 AI Simple Note 앱과 백엔드에 안전하게 저장되며, 외부 AI는 필요한 최소한의 정보에만 접근합니다.
|
|
63
|
+
- **암호화**: 모든 통신은 HTTPS/SSL을 통해 암호화됩니다.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
1
67
|
# AI Note MCP 서버
|
|
2
68
|
|
|
3
69
|
[](https://badge.fury.io/js/%40ainote%2Fmcp-server)
|
|
@@ -37,20 +103,48 @@ Claude Desktop을 AI Note 작업 관리 시스템에 연결하는 MCP(Model Cont
|
|
|
37
103
|
|
|
38
104
|
## 설치
|
|
39
105
|
|
|
40
|
-
###
|
|
106
|
+
### 옵션 1: npm에서 설치 (권장)
|
|
41
107
|
|
|
42
108
|
```bash
|
|
43
|
-
npm install -g @ainote/mcp
|
|
109
|
+
npm install -g @ainote/mcp
|
|
44
110
|
```
|
|
45
111
|
|
|
46
|
-
###
|
|
112
|
+
### 옵션 2: 소스코드로부터 설치
|
|
47
113
|
|
|
48
114
|
```bash
|
|
49
|
-
git clone https://github.com/
|
|
115
|
+
git clone https://github.com/ainote-dev/ainote-mcp.git
|
|
50
116
|
cd ainote-mcp-server
|
|
51
117
|
npm install
|
|
52
118
|
```
|
|
53
119
|
|
|
120
|
+
## 업데이트
|
|
121
|
+
|
|
122
|
+
### npm에서 업데이트 (권장)
|
|
123
|
+
|
|
124
|
+
npm을 통해 설치한 경우 최신 버전으로 업데이트:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
npm update -g @ainote/mcp
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
특정 버전을 설치하려면:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
npm install -g @ainote/mcp@1.0.2
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### 소스코드에서 업데이트
|
|
137
|
+
|
|
138
|
+
소스코드로 설치한 경우:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
cd ainote-mcp-server
|
|
142
|
+
git pull origin main
|
|
143
|
+
npm install
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
업데이트 후에는 **Claude Desktop을 재시작**하여 새 버전을 로드하세요.
|
|
147
|
+
|
|
54
148
|
## 설정
|
|
55
149
|
|
|
56
150
|
### 1. 환경 변수 설정
|
|
@@ -76,17 +170,21 @@ Claude Desktop 설정 파일에 다음 내용을 추가하세요:
|
|
|
76
170
|
{
|
|
77
171
|
"mcpServers": {
|
|
78
172
|
"ainote": {
|
|
79
|
-
"command": "
|
|
80
|
-
"args": [
|
|
173
|
+
"command": "npx",
|
|
174
|
+
"args": [
|
|
175
|
+
"-y",
|
|
176
|
+
"@ainote/mcp"
|
|
177
|
+
],
|
|
81
178
|
"env": {
|
|
82
|
-
"AINOTE_API_KEY": "
|
|
179
|
+
"AINOTE_API_KEY": "YOUR_API_KEY",
|
|
180
|
+
"AINOTE_API_URL": "https://ainote-5muq.onrender.com"
|
|
83
181
|
}
|
|
84
182
|
}
|
|
85
183
|
}
|
|
86
184
|
}
|
|
87
185
|
```
|
|
88
186
|
|
|
89
|
-
|
|
187
|
+
전역 설치된 ainote-mcp를 사용하는 경우:
|
|
90
188
|
|
|
91
189
|
```json
|
|
92
190
|
{
|
|
@@ -94,7 +192,8 @@ npm을 통해 전역으로 설치한 경우:
|
|
|
94
192
|
"ainote": {
|
|
95
193
|
"command": "ainote-mcp",
|
|
96
194
|
"env": {
|
|
97
|
-
"AINOTE_API_KEY": "
|
|
195
|
+
"AINOTE_API_KEY": "YOUR_API_KEY",
|
|
196
|
+
"AINOTE_API_URL": "https://ainote-5muq.onrender.com"
|
|
98
197
|
}
|
|
99
198
|
}
|
|
100
199
|
}
|
package/README.md
CHANGED
|
@@ -51,6 +51,34 @@ cd ainote-mcp-server
|
|
|
51
51
|
npm install
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
+
## Update
|
|
55
|
+
|
|
56
|
+
### Update from npm (Recommended)
|
|
57
|
+
|
|
58
|
+
To update to the latest version when installed via npm:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npm update -g @ainote/mcp
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Or to install a specific version:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
npm install -g @ainote/mcp@1.0.2
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Update from source
|
|
71
|
+
|
|
72
|
+
If you installed from source:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
cd ainote-mcp-server
|
|
76
|
+
git pull origin main
|
|
77
|
+
npm install
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
After updating, **restart Claude Desktop** to load the new version.
|
|
81
|
+
|
|
54
82
|
## Configuration
|
|
55
83
|
|
|
56
84
|
To connect the MCP server with Claude Desktop, follow these steps.
|
package/index.js
CHANGED
|
@@ -5,13 +5,13 @@ import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprot
|
|
|
5
5
|
import axios from 'axios';
|
|
6
6
|
|
|
7
7
|
const API_KEY = process.env.AINOTE_API_KEY;
|
|
8
|
-
const API_URL = process.env.AINOTE_API_URL || 'https://ainote
|
|
8
|
+
const API_URL = process.env.AINOTE_API_URL || 'https://api.ainote.dev';
|
|
9
9
|
|
|
10
10
|
// Create axios instance with default config
|
|
11
11
|
const api = axios.create({
|
|
12
12
|
baseURL: API_URL,
|
|
13
13
|
headers: {
|
|
14
|
-
'Authorization': API_KEY
|
|
14
|
+
'Authorization': `McpKey ${API_KEY}`,
|
|
15
15
|
'Content-Type': 'application/json'
|
|
16
16
|
}
|
|
17
17
|
});
|