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.
- package/README.md +12 -3
- package/dist/index.js +30 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -19,14 +19,14 @@ MCPプロンプトとしてペルソナ(口調)を配信し、AIアシスタ
|
|
|
19
19
|
|
|
20
20
|
## 必要なもの
|
|
21
21
|
|
|
22
|
-
- **Node.js
|
|
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 #
|
|
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.
|
|
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.
|
|
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 または
|
|
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() {
|