tripinned-mcp 1.0.6 → 1.0.8
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/dist/index.js +14 -78
- package/package.json +29 -29
package/dist/index.js
CHANGED
|
@@ -34,7 +34,7 @@ async function call(method, path, body) {
|
|
|
34
34
|
}
|
|
35
35
|
const server = new McpServer({
|
|
36
36
|
name: "tripinned",
|
|
37
|
-
version: "1.0.
|
|
37
|
+
version: "1.0.8",
|
|
38
38
|
});
|
|
39
39
|
// ── Trips ────────────────────────────────────────────────────────────────────
|
|
40
40
|
server.tool("list_trips", "내 여행 플랜 목록을 가져옵니다.", {}, async () => {
|
|
@@ -94,44 +94,12 @@ server.tool("add_item", `특정 Day에 일정을 추가합니다. Day당 최대
|
|
|
94
94
|
trip_id: z.string().describe("플랜 ID"),
|
|
95
95
|
day_id: z.string().describe("Day ID (get_trip으로 확인 가능)"),
|
|
96
96
|
title: z.string().max(50).describe("일정 제목 (최대 50자)"),
|
|
97
|
-
icon: z
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
"HOTEL",
|
|
102
|
-
"SIGHTSEEING",
|
|
103
|
-
"SHOPPING",
|
|
104
|
-
"ACTIVITY",
|
|
105
|
-
"ETC",
|
|
106
|
-
"TRANSPORT",
|
|
107
|
-
"PLANE",
|
|
108
|
-
"TRAIN",
|
|
109
|
-
"BUS",
|
|
110
|
-
"CAR",
|
|
111
|
-
"BOAT",
|
|
112
|
-
"WALK",
|
|
113
|
-
"TRANSPORT_ETC",
|
|
114
|
-
])
|
|
115
|
-
.optional()
|
|
116
|
-
.describe("아이콘 종류 (기본값: ETC)"),
|
|
117
|
-
start_time: z
|
|
118
|
-
.string()
|
|
119
|
-
.regex(/^\d{2}:\d{2}$/)
|
|
120
|
-
.optional()
|
|
121
|
-
.describe("시작 시간 (HH:MM)"),
|
|
122
|
-
end_time: z
|
|
123
|
-
.string()
|
|
124
|
-
.regex(/^\d{2}:\d{2}$/)
|
|
125
|
-
.optional()
|
|
126
|
-
.describe("종료 시간 (HH:MM)"),
|
|
127
|
-
end_day_offset: z.coerce
|
|
128
|
-
.number()
|
|
129
|
-
.int()
|
|
130
|
-
.min(0)
|
|
131
|
-
.optional()
|
|
132
|
-
.describe("도착일 오프셋 (0=당일, 1=다음날 등)"),
|
|
97
|
+
icon: z.string().optional().describe("아이콘 (FOOD|CAFE|HOTEL|SIGHTSEEING|SHOPPING|ACTIVITY|ETC|TRANSPORT|PLANE|TRAIN|BUS|CAR|BOAT|WALK|TRANSPORT_ETC, 기본값: ETC)"),
|
|
98
|
+
start_time: z.string().optional().describe("시작 시간 (HH:MM)"),
|
|
99
|
+
end_time: z.string().optional().describe("종료 시간 (HH:MM)"),
|
|
100
|
+
end_day_offset: z.coerce.number().int().min(0).optional().describe("도착일 오프셋 (0=당일, 1=다음날)"),
|
|
133
101
|
place: z.string().optional().describe("장소명"),
|
|
134
|
-
memo: z.string().max(1000).optional().describe("메모
|
|
102
|
+
memo: z.string().max(1000).optional().describe("메모"),
|
|
135
103
|
from_place: z
|
|
136
104
|
.string()
|
|
137
105
|
.optional()
|
|
@@ -143,7 +111,7 @@ server.tool("add_item", `특정 Day에 일정을 추가합니다. Day당 최대
|
|
|
143
111
|
layovers: z
|
|
144
112
|
.string()
|
|
145
113
|
.optional()
|
|
146
|
-
.describe('경유지 JSON 배열 (항공편 전용).
|
|
114
|
+
.describe('경유지 JSON 배열 (항공편 전용). 필드: iata, tz, arrTime(HH:MM), arrOffset, depTime(HH:MM), depOffset, depFlightNo?, airportChange?, depIata?, depTz?'),
|
|
147
115
|
flight_no: z.string().optional().describe("항공편 번호 (예: KE447)"),
|
|
148
116
|
}, async ({ trip_id, day_id, title, icon, start_time, end_time, end_day_offset, place, memo, from_place, to_place, layovers, flight_no, }) => {
|
|
149
117
|
const body = { title };
|
|
@@ -175,44 +143,12 @@ server.tool("update_item", "일정을 수정합니다. 변경할 필드만 보
|
|
|
175
143
|
day_id: z.string().describe("Day ID"),
|
|
176
144
|
item_id: z.string().describe("일정 ID"),
|
|
177
145
|
title: z.string().max(50).optional().describe("새 제목"),
|
|
178
|
-
icon: z
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
"SHOPPING",
|
|
185
|
-
"ACTIVITY",
|
|
186
|
-
"ETC",
|
|
187
|
-
"TRANSPORT",
|
|
188
|
-
"PLANE",
|
|
189
|
-
"TRAIN",
|
|
190
|
-
"BUS",
|
|
191
|
-
"CAR",
|
|
192
|
-
"BOAT",
|
|
193
|
-
"WALK",
|
|
194
|
-
"TRANSPORT_ETC",
|
|
195
|
-
])
|
|
196
|
-
.optional()
|
|
197
|
-
.describe("새 아이콘"),
|
|
198
|
-
start_time: z
|
|
199
|
-
.string()
|
|
200
|
-
.regex(/^\d{2}:\d{2}$/)
|
|
201
|
-
.optional()
|
|
202
|
-
.describe("새 시작 시간 (HH:MM)"),
|
|
203
|
-
end_time: z
|
|
204
|
-
.string()
|
|
205
|
-
.regex(/^\d{2}:\d{2}$/)
|
|
206
|
-
.optional()
|
|
207
|
-
.describe("새 종료 시간 (HH:MM)"),
|
|
208
|
-
end_day_offset: z.coerce
|
|
209
|
-
.number()
|
|
210
|
-
.int()
|
|
211
|
-
.min(0)
|
|
212
|
-
.optional()
|
|
213
|
-
.describe("도착일 오프셋 (0=당일, 1=다음날 등)"),
|
|
214
|
-
place: z.string().optional().describe("새 장소명"),
|
|
215
|
-
memo: z.string().max(1000).optional().describe("새 메모"),
|
|
146
|
+
icon: z.string().optional().describe("아이콘 (FOOD|CAFE|HOTEL|SIGHTSEEING|SHOPPING|ACTIVITY|ETC|TRANSPORT|PLANE|TRAIN|BUS|CAR|BOAT|WALK|TRANSPORT_ETC)"),
|
|
147
|
+
start_time: z.string().optional().describe("시작 시간 (HH:MM)"),
|
|
148
|
+
end_time: z.string().optional().describe("종료 시간 (HH:MM)"),
|
|
149
|
+
end_day_offset: z.coerce.number().int().min(0).optional().describe("도착일 오프셋 (0=당일, 1=다음날)"),
|
|
150
|
+
place: z.string().optional().describe("장소명"),
|
|
151
|
+
memo: z.string().max(1000).optional().describe("메모"),
|
|
216
152
|
from_place: z
|
|
217
153
|
.string()
|
|
218
154
|
.optional()
|
|
@@ -225,7 +161,7 @@ server.tool("update_item", "일정을 수정합니다. 변경할 필드만 보
|
|
|
225
161
|
.string()
|
|
226
162
|
.nullable()
|
|
227
163
|
.optional()
|
|
228
|
-
.describe('경유지 JSON 배열 (항공편 전용).
|
|
164
|
+
.describe('경유지 JSON 배열 (항공편 전용). 필드: iata, tz, arrTime(HH:MM), arrOffset, depTime(HH:MM), depOffset, depFlightNo?, airportChange?, depIata?, depTz?. null로 초기화 가능'),
|
|
229
165
|
flight_no: z.string().optional().describe("항공편 번호 (예: KE447)"),
|
|
230
166
|
}, async ({ trip_id, day_id, item_id, title, icon, start_time, end_time, end_day_offset, place, memo, from_place, to_place, layovers, flight_no, }) => {
|
|
231
167
|
const body = {};
|
package/package.json
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "tripinned-mcp",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "MCP server for Tripinned — manage your travel plans with AI",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"bin": {
|
|
8
|
-
"tripinned-mcp": "dist/index.js"
|
|
9
|
-
},
|
|
10
|
-
"files": [
|
|
11
|
-
"dist"
|
|
12
|
-
],
|
|
13
|
-
"scripts": {
|
|
14
|
-
"build": "tsc",
|
|
15
|
-
"dev": "node --loader ts-node/esm src/index.ts",
|
|
16
|
-
"start": "node dist/index.js"
|
|
17
|
-
},
|
|
18
|
-
"dependencies": {
|
|
19
|
-
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
20
|
-
"zod": "^4.3.6"
|
|
21
|
-
},
|
|
22
|
-
"devDependencies": {
|
|
23
|
-
"@types/node": "^25.5.0",
|
|
24
|
-
"typescript": "^5.0.0"
|
|
25
|
-
},
|
|
26
|
-
"engines": {
|
|
27
|
-
"node": ">=18"
|
|
28
|
-
}
|
|
29
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "tripinned-mcp",
|
|
3
|
+
"version": "1.0.8",
|
|
4
|
+
"description": "MCP server for Tripinned — manage your travel plans with AI",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"tripinned-mcp": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "tsc",
|
|
15
|
+
"dev": "node --loader ts-node/esm src/index.ts",
|
|
16
|
+
"start": "node dist/index.js"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
20
|
+
"zod": "^4.3.6"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@types/node": "^25.5.0",
|
|
24
|
+
"typescript": "^5.0.0"
|
|
25
|
+
},
|
|
26
|
+
"engines": {
|
|
27
|
+
"node": ">=18"
|
|
28
|
+
}
|
|
29
|
+
}
|