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.
Files changed (2) hide show
  1. package/dist/index.js +14 -78
  2. 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.5",
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
- .enum([
99
- "FOOD",
100
- "CAFE",
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("메모 (최대 1000자)"),
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 배열 (항공편 전용). 각 경유지 필드: iata(도착공항), tz(타임존), arrTime(도착시간HH:MM), arrOffset(도착일오프셋), depTime(출발시간HH:MM), depOffset(출발일오프셋), depFlightNo?(출발편명), airportChange?(공항변경/스탑오버여부), depIata?(출발공항IATA, airportChange=true일때), depTz?(출발공항타임존). 예: [{"iata":"DMK","tz":"Asia/Bangkok","arrTime":"23:00","arrOffset":0,"depTime":"06:00","depOffset":1,"airportChange":true,"depIata":"BKK","depTz":"Asia/Bangkok"}]'),
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
- .enum([
180
- "FOOD",
181
- "CAFE",
182
- "HOTEL",
183
- "SIGHTSEEING",
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 배열 (항공편 전용). 각 경유지 필드: iata(도착공항), tz(타임존), arrTime(도착시간HH:MM), arrOffset(도착일오프셋), depTime(출발시간HH:MM), depOffset(출발일오프셋), depFlightNo?(출발편명), airportChange?(공항변경/스탑오버여부), depIata?(출발공항IATA, airportChange=true일때), depTz?(출발공항타임존). 예: [{"iata":"DMK","tz":"Asia/Bangkok","arrTime":"23:00","arrOffset":0,"depTime":"06:00","depOffset":1,"airportChange":true,"depIata":"BKK","depTz":"Asia/Bangkok"}] / null로 초기화'),
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.6",
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
+ }