narikiri-mcp 0.2.2 → 0.3.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 (3) hide show
  1. package/README.md +12 -3
  2. package/dist/index.js +30 -6
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -19,14 +19,14 @@ MCPプロンプトとしてペルソナ(口調)を配信し、AIアシスタ
19
19
 
20
20
  ## 必要なもの
21
21
 
22
- - **Node.js** v18 以上([公式サイト](https://nodejs.org/)からインストール)
22
+ - **Node.js**([公式サイト](https://nodejs.org/)からインストール)
23
23
  - **npm**(Node.js に同梱)
24
24
  - **MCP Prompts 対応クライアント**([対応クライアント一覧](#対応クライアント)を参照)
25
25
 
26
26
  確認方法:
27
27
 
28
28
  ```bash
29
- node -v # v18.0.0 以上であること
29
+ node -v # バージョンが表示されればOK
30
30
  npm -v # 表示されればOK
31
31
  ```
32
32
 
@@ -162,7 +162,7 @@ claude
162
162
 
163
163
  ### オリジナルキャラクターを作る
164
164
 
165
- `/` から「キャラクター作成」を選ぶと、会話しながらオリジナルのキャラクターを作れる。作ったキャラクターは `~/.narikiri/personas/` に保存され、すぐに使える。
165
+ `/` から「キャラクター作成」を選ぶと、会話しながらオリジナルのキャラクターを作れる。作ったキャラクターは `~/.narikiri/personas/` に保存され、すぐに使える。どのプロジェクトでも共通で表示される。
166
166
 
167
167
  ### 注意事項
168
168
 
@@ -204,6 +204,15 @@ narikiri-mcp は MCP Prompts を使用するため、Prompts 対応のクライ
204
204
  | Cline | 非対応(Tools のみ) |
205
205
  | ChatGPT | 非対応(Tools のみ) |
206
206
 
207
+ ### 動作確認済み環境
208
+
209
+ | 項目 | 確認済み |
210
+ |---|---|
211
+ | OS | macOS |
212
+ | クライアント | Claude Code |
213
+
214
+ Windows / Linux および Claude Desktop 等の他クライアントでも動作する想定ですが、現時点では未検証です。問題があれば [Issue](https://github.com/ogurash/narikiri-mcp/issues) で報告してください。
215
+
207
216
  ## 技術スタック
208
217
 
209
218
  - Runtime: Node.js
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@ import * as z from "zod/v4";
10
10
  const CUSTOM_DIR = path.join(os.homedir(), ".narikiri", "personas");
11
11
  const server = new McpServer({
12
12
  name: "narikiri-mcp",
13
- version: "0.2.2",
13
+ version: "0.3.0",
14
14
  });
15
15
  /** ペルソナをプロンプトとしてサーバーに登録する */
16
16
  function registerPersona(persona) {
@@ -174,6 +174,17 @@ tone パラメータには以下のフォーマットで渡してください:
174
174
  ],
175
175
  }));
176
176
  import * as readline from "node:readline";
177
+ /** Claude Desktop の設定ファイルパスを OS ごとに返す */
178
+ function getClaudeDesktopConfigPath() {
179
+ switch (process.platform) {
180
+ case "win32":
181
+ return path.join(os.homedir(), "AppData", "Roaming", "Claude", "claude_desktop_config.json");
182
+ case "darwin":
183
+ return path.join(os.homedir(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
184
+ default:
185
+ return path.join(os.homedir(), ".config", "Claude", "claude_desktop_config.json");
186
+ }
187
+ }
177
188
  const MCP_ENTRY = {
178
189
  persona: {
179
190
  command: "npx",
@@ -196,6 +207,11 @@ function addMcpConfig(filepath) {
196
207
  return `${filepath} には既に persona が設定されています。そのまま使えます!`;
197
208
  }
198
209
  }
210
+ // 親ディレクトリが存在しない場合(Claude Desktop 未インストール等)
211
+ const dir = path.dirname(filepath);
212
+ if (!fs.existsSync(dir)) {
213
+ return `${dir} が見つかりません。対象のアプリがインストールされているか確認してください。`;
214
+ }
199
215
  // mcpServers がなければ作る
200
216
  if (!config.mcpServers) {
201
217
  config.mcpServers = {};
@@ -206,7 +222,7 @@ function addMcpConfig(filepath) {
206
222
  }
207
223
  /** 対話式セットアップ */
208
224
  function interactiveSetup() {
209
- const version = "0.2.2";
225
+ const version = "0.3.0";
210
226
  console.log(`
211
227
  narikiri-mcp v${version} — AIの口調を着せ替えるMCPペルソナサーバー
212
228
  `);
@@ -215,8 +231,9 @@ narikiri-mcp v${version} — AIの口調を着せ替えるMCPペルソナサー
215
231
  output: process.stdout,
216
232
  });
217
233
  console.log("セットアップ方法を選んでください:");
218
- console.log(" [1] 全プロジェクト共通で使う(おすすめ)");
219
- console.log(" [2] このプロジェクトだけで使う");
234
+ console.log(" [1] Claude Code — 全プロジェクト共通(おすすめ)");
235
+ console.log(" [2] Claude Code — このプロジェクトだけ");
236
+ console.log(" [3] Claude Desktop");
220
237
  console.log("");
221
238
  rl.question("> ", (answer) => {
222
239
  rl.close();
@@ -225,17 +242,24 @@ narikiri-mcp v${version} — AIの口調を着せ替えるMCPペルソナサー
225
242
  const filepath = path.join(os.homedir(), ".claude.json");
226
243
  const result = addMcpConfig(filepath);
227
244
  console.log(`\n${result}`);
245
+ console.log("\nClaude Code を起動(または /mcp → Reconnect)して、/ を入力するとペルソナが選べます。");
228
246
  }
229
247
  else if (choice === "2") {
230
248
  const filepath = path.join(process.cwd(), ".mcp.json");
231
249
  const result = addMcpConfig(filepath);
232
250
  console.log(`\n${result}`);
251
+ console.log("\nClaude Code を起動(または /mcp → Reconnect)して、/ を入力するとペルソナが選べます。");
252
+ }
253
+ else if (choice === "3") {
254
+ const filepath = getClaudeDesktopConfigPath();
255
+ const result = addMcpConfig(filepath);
256
+ console.log(`\n${result}`);
257
+ console.log("\nClaude Desktop を再起動すると、ペルソナが使えるようになります。");
233
258
  }
234
259
  else {
235
- console.log("\n1 または 2 を入力してください。");
260
+ console.log("\n1, 2, または 3 を入力してください。");
236
261
  process.exit(1);
237
262
  }
238
- console.log("\nClaude Code を起動(または /mcp → Reconnect)して、/ を入力するとペルソナが選べます。");
239
263
  });
240
264
  }
241
265
  async function main() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "narikiri-mcp",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
4
  "description": "AIの口調を着せ替えるMCPペルソナサーバー",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",