@kajidog/connpass-mcp-server 0.2.0 → 0.4.0

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 (59) hide show
  1. package/README.md +72 -149
  2. package/dist/index.d.ts +0 -2
  3. package/dist/index.js +4729 -162
  4. package/dist/index.js.map +1 -1
  5. package/dist/mcp-app.html +139 -0
  6. package/dist/stdio.d.ts +1 -0
  7. package/dist/stdio.js +2120 -0
  8. package/dist/stdio.js.map +1 -0
  9. package/package.json +21 -20
  10. package/dist/apps-sdk.d.ts +0 -8
  11. package/dist/apps-sdk.d.ts.map +0 -1
  12. package/dist/apps-sdk.js +0 -79
  13. package/dist/apps-sdk.js.map +0 -1
  14. package/dist/config.d.ts +0 -7
  15. package/dist/config.d.ts.map +0 -1
  16. package/dist/config.js +0 -82
  17. package/dist/config.js.map +0 -1
  18. package/dist/index.d.ts.map +0 -1
  19. package/dist/tools/events.d.ts +0 -82
  20. package/dist/tools/events.d.ts.map +0 -1
  21. package/dist/tools/events.js +0 -385
  22. package/dist/tools/events.js.map +0 -1
  23. package/dist/tools/formatting.d.ts +0 -74
  24. package/dist/tools/formatting.d.ts.map +0 -1
  25. package/dist/tools/formatting.js +0 -211
  26. package/dist/tools/formatting.js.map +0 -1
  27. package/dist/tools/groups.d.ts +0 -48
  28. package/dist/tools/groups.d.ts.map +0 -1
  29. package/dist/tools/groups.js +0 -106
  30. package/dist/tools/groups.js.map +0 -1
  31. package/dist/tools/index.d.ts +0 -58
  32. package/dist/tools/index.d.ts.map +0 -1
  33. package/dist/tools/index.js +0 -21
  34. package/dist/tools/index.js.map +0 -1
  35. package/dist/tools/shared.d.ts +0 -24
  36. package/dist/tools/shared.d.ts.map +0 -1
  37. package/dist/tools/shared.js +0 -113
  38. package/dist/tools/shared.js.map +0 -1
  39. package/dist/tools/users.d.ts +0 -51
  40. package/dist/tools/users.d.ts.map +0 -1
  41. package/dist/tools/users.js +0 -239
  42. package/dist/tools/users.js.map +0 -1
  43. package/dist/transports/http.d.ts +0 -17
  44. package/dist/transports/http.d.ts.map +0 -1
  45. package/dist/transports/http.js +0 -185
  46. package/dist/transports/http.js.map +0 -1
  47. package/dist/transports/sse.d.ts +0 -21
  48. package/dist/transports/sse.d.ts.map +0 -1
  49. package/dist/transports/sse.js +0 -161
  50. package/dist/transports/sse.js.map +0 -1
  51. package/dist/widgets/connpass-events.d.ts +0 -29
  52. package/dist/widgets/connpass-events.d.ts.map +0 -1
  53. package/dist/widgets/connpass-events.html +0 -2269
  54. package/dist/widgets/connpass-events.js +0 -58
  55. package/dist/widgets/connpass-events.js.map +0 -1
  56. package/dist/widgets/index.d.ts +0 -6
  57. package/dist/widgets/index.d.ts.map +0 -1
  58. package/dist/widgets/index.js +0 -34
  59. package/dist/widgets/index.js.map +0 -1
package/README.md CHANGED
@@ -4,149 +4,93 @@
4
4
 
5
5
  Connpass MCP Server は、MCP (Model Context Protocol) 経由で Connpass API を扱うためのツール群です。AI やエージェントが理解しやすいパラメータ設計になっており、自然言語に近い入力でイベント・グループ・ユーザー情報を取得できます。
6
6
 
7
+ MCP Apps Extension 対応クライアントでは、インタラクティブなイベントブラウザ UI も利用できます。
8
+
7
9
  ## インストール
8
10
 
9
- ### npx で即座に起動
11
+ ### npx で即座に起動(stdio モード)
10
12
 
11
13
  ```bash
12
- # HTTP トランスポートで起動(デフォルト)
14
+ # 起動
13
15
  npx @kajidog/connpass-mcp-server
14
16
 
15
- # ポート指定
16
- npx @kajidog/connpass-mcp-server --port 8080
17
-
18
- # SSE トランスポートで起動
19
- npx @kajidog/connpass-mcp-server --transport sse
17
+ # API キーを指定
18
+ CONNPASS_API_KEY=your-api-key npx @kajidog/connpass-mcp-server
20
19
 
21
20
  # ヘルプを表示
22
21
  npx @kajidog/connpass-mcp-server --help
23
22
  ```
24
23
 
25
- 環境変数を設定する場合:
24
+ ### HTTP モードで起動
26
25
 
27
26
  ```bash
28
- CONNPASS_API_KEY=your-api-key npx @kajidog/connpass-mcp-server
27
+ npx @kajidog/connpass-mcp-server --http --port 3000
29
28
  ```
30
29
 
31
30
  ### グローバルインストール
32
31
 
33
32
  ```bash
34
- # インストール
35
33
  npm install -g @kajidog/connpass-mcp-server
36
-
37
- # 実行
38
34
  connpass-mcp-server
39
35
  ```
40
36
 
41
- ## 開発用セットアップ
42
-
43
- 1. 依存関係をインストールします。
44
-
45
- ```bash
46
- pnpm install
47
- ```
48
-
49
- 2. ビルドして利用可能な状態にします。
50
-
51
- ```bash
52
- pnpm --filter @kajidog/connpass-mcp-server build
53
- ```
54
-
55
- 3. Connpass API キーを環境変数で指定してサーバーを起動します。
56
-
57
- ```bash
58
- CONNPASS_API_KEY=あなたのAPIキー pnpm --filter @kajidog/connpass-mcp-server start
59
- ```
37
+ ## 環境変数
60
38
 
61
- > ローカル開発時などで API キーが未設定の場合、`dummy-key` が自動で使用されます。
39
+ | 変数名 | 説明 | デフォルト |
40
+ |--------|------|-----------|
41
+ | `CONNPASS_API_KEY` | Connpass API キー | - |
42
+ | `CONNPASS_DEFAULT_USER_ID` | `search_schedule` で `userId` 省略時に使うユーザー ID | - |
43
+ | `CONNPASS_RATE_LIMIT_ENABLED` | API レート制限の有効化 | `true` |
44
+ | `CONNPASS_RATE_LIMIT_DELAY_MS` | レート制限の遅延 (ms) | `1000` |
45
+ | `MCP_HTTP_MODE` | HTTP モードで起動 | `false` |
46
+ | `MCP_HTTP_PORT` | HTTP モードのポート | `3000` |
47
+ | `MCP_HTTP_HOST` | HTTP モードのホスト | `0.0.0.0` |
48
+ | `MCP_API_KEY` | HTTP モードの API キー認証 | - |
62
49
 
63
- 必要に応じて、デフォルトで参照するユーザー ID を `CONNPASS_DEFAULT_USER_ID` に設定できます。`get_my_upcoming_events` ツールで `userId` を省略した場合に利用されます。
64
-
65
- ## トランスポート方式
66
-
67
- Connpass MCP Server は2つのトランスポート方式に対応しています。
50
+ ## ツール一覧
68
51
 
69
- ### HTTP (Streamable HTTP) - デフォルト
52
+ ### イベント
70
53
 
71
- デフォルトのトランスポート方式です。HTTPリクエスト/レスポンスベースで通信します。
54
+ | ツール名 | 説明 | 主な入力 |
55
+ |----------|------|----------|
56
+ | `search_events` | キーワードや日付でイベントを検索し、会話用の結果と `searchSessionId` を返す | `query`, `from`, `to`, `prefectures`, `sort`, `includeDetails` |
57
+ | `browse_events` | `search_events` の `searchSessionId` を使ってインタラクティブ UI を開く | `searchSessionId` |
58
+ | `get_event_detail` | イベント ID を指定して詳細をフル取得 | `eventId` |
59
+ | `get_event_presentations` | イベントの発表情報を取得 | `eventId` |
60
+ | `search_schedule` | ユーザーのスケジュールを検索 | `userId`, `nickname`, `fromDate`, `toDate`, `includeDetails` |
72
61
 
73
- ```bash
74
- # デフォルトで HTTP トランスポートを使用 (ポート 3000)
75
- connpass-mcp-server
62
+ ### グループ
76
63
 
77
- # ポートを指定
78
- connpass-mcp-server --port 8080
79
- connpass-mcp-server -p 8080
64
+ | ツール名 | 説明 | 主な入力 |
65
+ |----------|------|----------|
66
+ | `search_groups` | グループをキーワードや所在地で検索 | `query`, `country`, `prefecture`, `sort` |
80
67
 
81
- # 明示的に HTTP トランスポートを指定
82
- connpass-mcp-server --transport http
83
- connpass-mcp-server -t http
84
- ```
68
+ ### ユーザー
85
69
 
86
- ### SSE (Server-Sent Events)
70
+ | ツール名 | 説明 | 主な入力 |
71
+ |----------|------|----------|
72
+ | `search_users` | ニックネームなどでユーザーを検索 | `nickname`, `userIds`, `sort` |
73
+ | `get_user_groups` | ユーザーが所属するグループ一覧 | `userId` |
74
+ | `get_user_attended_events` | ユーザーが参加したイベント一覧 | `userId`, `includeDetails` |
75
+ | `get_user_presenter_events` | ユーザーが登壇したイベント一覧 | `userId`, `includeDetails` |
87
76
 
88
- Server-Sent Events を使用した双方向通信です。
77
+ ### その他
89
78
 
90
- ```bash
91
- # SSE トランスポートを使用
92
- connpass-mcp-server --transport sse
79
+ | ツール名 | 説明 |
80
+ |----------|------|
81
+ | `list_prefectures` | 利用可能な都道府県コード一覧 |
93
82
 
94
- # ポートを指定
95
- connpass-mcp-server --transport sse --port 8080
96
- connpass-mcp-server -t sse -p 8080
97
- ```
83
+ ### `includeDetails` パラメータ
98
84
 
99
- ### コマンドラインオプション
85
+ `search_events`, `search_schedule`, `get_user_attended_events`, `get_user_presenter_events` では、`includeDetails: true` を指定するとイベントの説明文(200文字まで)が含まれます。AI がおすすめイベントを判断する際に有用です。
100
86
 
101
- ```
102
- Usage: connpass-mcp-server [options]
87
+ デフォルト (`false`) では、タイトル・キャッチフレーズ・日時・会場・参加者数・URL などの基本情報のみを返します。
103
88
 
104
- Options:
105
- -t, --transport <type> Transport type: http or sse (default: http)
106
- -p, --port <number> Port number for http/sse transports (default: 3000)
107
- -h, --help Show this help message
89
+ 個別イベントの完全な説明文が必要な場合は `get_event_detail` を使用してください。
108
90
 
109
- Examples:
110
- connpass-mcp-server # Start with HTTP transport on port 3000
111
- connpass-mcp-server --transport sse --port 8080 # Start with SSE transport on port 8080
112
- connpass-mcp-server -t http -p 5000 # Start with HTTP transport on port 5000
113
- ```
91
+ ## 使い方の例
114
92
 
115
- > **注意:** `PORT` および `MCP_TRANSPORT` 環境変数を設定することでも、ポートやトランスポート方式を変更できます。コマンドライン引数よりも環境変数が優先されます。
116
-
117
- ### 環境変数一覧
118
-
119
- | 変数名 | 説明 | 既定値 |
120
- | --- | --- | --- |
121
- | `CONNPASS_API_KEY` | Connpass API Key。未設定の場合は `dummy-key` が使われます(本番利用不可)。 | `dummy-key` |
122
- | `CONNPASS_DEFAULT_USER_ID` | `get_my_upcoming_events` で `userId` を省略したときに使うユーザー ID。 | 未設定 |
123
- | `CONNPASS_INCLUDE_PRESENTATIONS_DEFAULT` | `get_my_upcoming_events` の `includePresentations` の既定値。`true/false` や `1/0` などで指定。 | 未設定(false と同等) |
124
- | `CONNPASS_RATE_LIMIT_ENABLED` | API クライアントのレート制限キューを有効/無効化します。`false` にすると 1 秒間隔の待機をスキップします。 | `true` |
125
- | `CONNPASS_RATE_LIMIT_DELAY_MS` | レート制限キューが適用する待機時間(ミリ秒)。Connpass 既定は 1000 ミリ秒です。 | `1000` |
126
- | `CONNPASS_PRESENTATION_CACHE_ENABLED` | プレゼンテーション取得結果をディスクキャッシュするかどうか。 | `true` |
127
- | `CONNPASS_PRESENTATION_CACHE_TTL_MS` | キャッシュ保持期間(ミリ秒)。 | `3600000` |
128
- | `CONNPASS_PRESENTATION_CACHE_PATH` | キャッシュファイルの保存先パス。 | `./data/presentation-cache.json` |
129
- | `CONNPASS_ENABLE_APPS_SDK_OUTPUT` | Apps SDK 互換の `structuredContent` をツール応答に含めるかどうか。`true/false` や `1/0` などで指定。 | `false` |
130
- | `MCP_BASE_PATH` | MCP エンドポイントのベースパス。リバースプロキシで `/mcp` を `/` に転送する場合などに `/` を指定。(SSE トランスポートのみ) | `/mcp` |
131
- | `MCP_TRANSPORT` | トランスポート方式 (`http`, `sse`)。コマンドライン引数より優先されます。 | 未設定 |
132
- | `PORT` | サーバーのポート番号 (http, sse トランスポートのみ)。コマンドライン引数より優先されます。 | `3000` |
133
-
134
- ## ツール一覧
135
-
136
- | ツール名 | 説明 | 主な入力フィールド |
137
- | --- | --- | --- |
138
- | `search_events` | 自然言語の日付やキーワードでイベントを検索 | `query`, `anyQuery`, `on`, `from`, `to`, `participantNickname`, `hostNickname`, `groupIds`, `prefectures`, `page`, `pageSize`, `sort` |
139
- | `get_event_presentations` | 指定イベントの発表情報を取得 | `eventId` |
140
- | `search_groups` | グループをキーワードや所在地で検索 | `query`, `groupIds`, `country`, `prefecture`, `page`, `pageSize`, `sort` |
141
- | `search_users` | ニックネームなどでユーザーを検索 | `nickname`, `userIds`, `page`, `pageSize`, `sort` |
142
- | `get_user_groups` | 指定ユーザーが所属するグループ一覧 | `userId`, `limit`, `page` |
143
- | `get_user_attended_events` | 指定ユーザーが参加したイベント一覧 | `userId`, `limit`, `page`, `sort` |
144
- | `get_user_presenter_events` | 指定ユーザーが登壇したイベント一覧 | `userId`, `limit`, `page`, `sort` |
145
- | `get_my_upcoming_events` | 今日と指定期間内のイベントを取得(自分の ID を自動使用可能) | `userId`, `nickname`, `daysAhead`, `maxEvents`, `includePresentations` |
146
-
147
- ## シンプルな使い方
148
-
149
- ### イベント検索(例)
93
+ ### イベント検索
150
94
 
151
95
  ```json
152
96
  {
@@ -156,73 +100,52 @@ Examples:
156
100
  "from": "2025-11-01",
157
101
  "to": "2025-11-07",
158
102
  "prefectures": "東京都",
159
- "sort": "start-date-asc"
160
- }
161
- }
162
- ```
163
-
164
- - 日付は `"2025-11-01"` のような YYYY-MM-DD 形式、または `"20251101"` のような YYYYMMDD 形式で指定します。
165
- - `prefectures` や `on` は単一文字列でも配列でも指定可能です。
166
-
167
- ### グループ検索(例)
168
-
169
- ```json
170
- {
171
- "name": "search_groups",
172
- "arguments": {
173
- "query": "AI",
174
- "country": "JP",
175
- "sort": "most-members"
103
+ "sort": "start-date-asc",
104
+ "includeDetails": true
176
105
  }
177
106
  }
178
107
  ```
179
108
 
180
- ### ユーザーの登壇イベント取得(例)
109
+ ### スケジュール検索
181
110
 
182
111
  ```json
183
112
  {
184
- "name": "get_user_presenter_events",
113
+ "name": "search_schedule",
185
114
  "arguments": {
186
- "userId": 123456,
187
- "limit": 30,
188
- "sort": "newly-added"
115
+ "nickname": "kajidog",
116
+ "fromDate": "2025-11-01",
117
+ "toDate": "2025-11-07"
189
118
  }
190
119
  }
191
120
  ```
192
121
 
193
- ### 自分の今日・直近イベント取得(例)
122
+ ### イベント詳細取得
194
123
 
195
124
  ```json
196
125
  {
197
- "name": "get_my_upcoming_events",
126
+ "name": "get_event_detail",
198
127
  "arguments": {
199
- "nickname": "kajidog",
200
- "daysAhead": 10,
201
- "includePresentations": true
128
+ "eventId": 12345
202
129
  }
203
130
  }
204
131
  ```
205
132
 
206
- - `userId` を省略すると、`CONNPASS_DEFAULT_USER_ID` 環境変数が使われます。
207
- - `nickname` を指定すると、そのニックネームでユーザーを検索してイベントを取得します。`userId` と `nickname` の両方が指定された場合は `nickname` が優先されます。
208
- - `includePresentations` を有効にすると、各イベントの発表詳細を個別に取得します( Connpass API は 1 秒あたり 1 リクエストのレートリミットなので、イベント数が多いと時間がかかります)。省略時は `CONNPASS_INCLUDE_PRESENTATIONS_DEFAULT` の設定が利用されます。
209
-
210
- ## 返り値
211
-
133
+ ## 開発
212
134
 
213
- `CONNPASS_ENABLE_APPS_SDK_OUTPUT` を `true` にすると、MCP の `call_tool` 応答へ OpenAI Apps SDK が扱いやすい `structuredContent` を追加します。Apps SDK 側では `toolOutput` として同じペイロードが受け取れるため、カスタム UI でデータをレンダリングしやすくなります。既存のテキスト出力は変わりません。
135
+ ```bash
136
+ # 依存関係をインストール
137
+ pnpm install
214
138
 
215
- ### Apps SDK 向けウィジェット
139
+ # ビルド
140
+ pnpm --filter @kajidog/connpass-mcp-server build
216
141
 
217
- - `search_events` または `get_my_upcoming_events` の実行結果には、Inline 表示のカルーセルとフルスクリーン詳細を切り替えられるウィジェットを付与できます。
218
- - `CONNPASS_ENABLE_APPS_SDK_OUTPUT=true` を指定すると、`openai/outputTemplate` メタデータが `ui://connpass/widgets/events-carousel` を指し、Apps SDK 側で iframe がレンダリングされます。
219
- - ウィジェットの HTML は `packages/mcp-server/src/widgets/connpass-events.html` に置いており、`pnpm --filter @kajidog/connpass-mcp-server build` 実行時に `dist/widgets/` へコピーされます。
220
- - カルーセルでは参加者数バッジや Connpass への外部リンクを表示。`詳細を見る` ボタンを押すと `requestDisplayMode` API で全画面表示に切り替わり、イベント概要・発表セッション・外部リンクを閲覧できます。
221
- - サーバーをサブパスで公開する場合は `MCP_BASE_PATH` を設定してください(例: リバースプロキシで `/mcp` を `/` にリライトする場合は `MCP_BASE_PATH=/`)。`GET ${MCP_BASE_PATH}` が SSE ストリーム、`${MCP_BASE_PATH}/messages` が POST エンドポイントになります。
142
+ # 開発モード (stdio)
143
+ pnpm --filter @kajidog/connpass-mcp-server dev
222
144
 
223
- ## 開発補助
145
+ # 開発モード (HTTP)
146
+ pnpm --filter @kajidog/connpass-mcp-server dev:http
147
+ ```
224
148
 
225
- - 型チェック: `pnpm --filter @kajidog/connpass-mcp-server typecheck`
226
- - ウォッチビルド: `pnpm --filter @kajidog/connpass-mcp-server dev`
149
+ ## ライセンス
227
150
 
228
- ツールの追加や更新を行った際は、`pnpm build` 実行後に README も更新して最新の引数仕様を反映するようにしてください。
151
+ MIT
package/dist/index.d.ts CHANGED
@@ -1,3 +1 @@
1
1
  #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=index.d.ts.map