owner-clone-ai-mcp 2.1.4 → 2.1.7

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.
@@ -179,7 +179,7 @@ text_content(自由テキスト)か、content(カテゴリ別の構造化
179
179
  操作(operations 配列・複数可・上から順に適用。1つでも失敗したら全体を保存しない=安全):
180
180
  • replace_text {find, replace}: 完全一致置換。既定は「全体で1件のみ一致」が条件(複数一致はエラー=誤置換防止。全て置換するときだけ replace_all:true)
181
181
  • replace_after {anchor, new_text}: anchor はそのまま残し、その直後から末尾までを差し替え
182
- • replace_between {from_anchor, to_anchor, new_text}: 両anchorは残し、間だけを差し替え
182
+ • replace_between {from_anchor, to_anchor, new_text}: 両anchorは残し、間だけを差し替え(new_text は replace という名前でも受理。未指定はエラー・削除は "" を明示)
183
183
  • append {text}: 末尾に追記(field 省略時は body)
184
184
  • set_field {field, value}: 指定フィールドの値だけ差し替え(他フィールドは無改変)
185
185
  各操作に field(対象フィールド名)を指定可。省略時は本文系の全文字列フィールドを横断して検索します。画像・資料・配列フィールド(images/files/services等)は対象外(update_knowledge を使用)。
@@ -397,9 +397,37 @@ text_content(自由テキスト)か、content(カテゴリ別の構造化
397
397
  },
398
398
  },
399
399
  },
400
+ {
401
+ name: 'list_knowledge_revision_notes',
402
+ description: `ナレッジに付けられた修正指示(人間が画面で入れた指摘)の一覧を取得します。
403
+ quote=該当箇所の引用・para_index=段落位置・instruction=指示本文・author_name=誰が・status=open/resolved。
404
+ 反映した指示は resolve_knowledge_revision_note で解決済みにしてください。quoteが本文に見つからない場合は整形記号を無視して照合し、それでも不一致なら未解決のまま理由を報告します(黙って無視しない)。`,
405
+ annotations: { readOnlyHint: true },
406
+ inputSchema: { type: 'object', properties: { knowledge_id: { type: 'string', description: '対象ナレッジのID' } }, required: ['knowledge_id'] },
407
+ },
408
+ {
409
+ name: 'resolve_knowledge_revision_note',
410
+ description: '修正指示を反映済み(resolved)にします【書き込み権限付きキーが必要】。新規バージョン作成モードでは applied_knowledge_id に作成した新ナレッジIDを渡してください。',
411
+ annotations: { destructiveHint: false, idempotentHint: true },
412
+ inputSchema: { type: 'object', properties: {
413
+ note_id: { type: 'string' },
414
+ applied_knowledge_id: { type: 'string', description: '反映先の新ナレッジID(任意)' },
415
+ }, required: ['note_id'] },
416
+ },
400
417
  ];
401
418
 
402
419
  const handlers = {
420
+ async list_knowledge_revision_notes(args) {
421
+ const d = await callApi(`/knowledge/${args.knowledge_id}/revision-notes`);
422
+ const lines = (d.notes || []).map((n, i) =>
423
+ `${i + 1}. [${n.status}] (${n.target_type}${n.quote ? `|引用:「${String(n.quote).slice(0, 60)}」` : n.para_index != null ? `|段落${n.para_index + 1}` : ''}) ${n.instruction}|👤${n.author_name || '-'}|id:${n.id}`);
424
+ return `✍️ 修正指示 ${lines.length}件\n${lines.join('\n') || '(指示はありません)'}\n\n${d.guide || ''}`;
425
+ },
426
+ async resolve_knowledge_revision_note(args) {
427
+ const body = args.applied_knowledge_id ? { applied_knowledge_id: args.applied_knowledge_id } : {};
428
+ await callApi(`/knowledge/revision-notes/${args.note_id}/resolve`, { method: 'POST', body: JSON.stringify(body) });
429
+ return `✅ 修正指示 ${args.note_id} を解決済みにしました`;
430
+ },
403
431
  async search_knowledge(args) {
404
432
  const data = await callApi('/knowledge/search', {
405
433
  method: 'POST',
@@ -30,7 +30,8 @@ Chatwork連携が設定されている場合は、設定名とルームIDも返
30
30
  • color: 管理画面での表示カラー(例: #3b82f6)(省略可)
31
31
  • status: active(進行中)/ completed(完了)/ archived(アーカイブ)。デフォルト: active
32
32
  • due_date: プロジェクトの期限日。ISO8601形式(省略可)
33
- • approval_notify_setting_id: 承認タスク発生時にChatwork通知するための設定ID(省略可)`,
33
+ • approval_notify_setting_id: 承認タスク発生時にChatwork通知するための設定ID(省略可)
34
+ • root_goal: プロジェクトOSのルートゴール {title, purpose, done_criteria}。指定すると分解(plan_project_goals)まで一撃で進められる(省略可)`,
34
35
  annotations: { destructiveHint: false, idempotentHint: false },
35
36
  inputSchema: {
36
37
  type: 'object',
@@ -41,6 +42,7 @@ Chatwork連携が設定されている場合は、設定名とルームIDも返
41
42
  status: { type: 'string', enum: ['active', 'completed', 'archived'], description: '進行状況: active(デフォルト)/ completed / archived' },
42
43
  due_date: { type: 'string', description: '期限日 ISO8601形式(例: 2026-12-31)省略可' },
43
44
  approval_notify_setting_id: { type: 'string', description: '承認通知先ChatworkのID(list_chatwork_settingsで確認)省略可' },
45
+ root_goal: { type: 'object', description: 'ルートゴール {title(必須), purpose, done_criteria}。指定するとプロジェクトOSで分解可能な状態まで一撃で作成', properties: { title: { type: 'string' }, purpose: { type: 'string' }, done_criteria: { type: 'string' } } },
44
46
  },
45
47
  required: ['name'],
46
48
  },
@@ -122,7 +124,7 @@ const handlers = {
122
124
 
123
125
  async create_project(args) {
124
126
  const body = {};
125
- const pFields = ['name', 'description', 'color', 'status', 'due_date', 'approval_notify_setting_id'];
127
+ const pFields = ['name', 'description', 'color', 'status', 'due_date', 'approval_notify_setting_id', 'root_goal'];
126
128
  pFields.forEach(f => { if (args[f] !== undefined) body[f] = args[f]; });
127
129
  const data = await callApi('/projects', { method: 'POST', body: JSON.stringify(body) });
128
130
  return `✅ ${data.message}\nID: ${data.id}\n名前: ${data.name}\nステータス: ${data.status}` +
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "owner-clone-ai-mcp",
3
- "version": "2.1.4",
3
+ "version": "2.1.7",
4
4
  "description": "MCP server for Owner Clone AI — exposes knowledge and agent presets to Claude Code",
5
5
  "main": "index.js",
6
6
  "bin": {