cosense-mcp-server
toolの誘導はこの記述が参考になりそう
https://github.com/ryoppippi/sitemcp/blob/v0.5.9/src/server.ts#L95
ほかのtoolをまず使うよう誘導する
https://zenn.dev/ryoppippi/articles/1eb7fbe9042a88#トークン数を削減できる可能性がある
ページ書き込み
他のmcpのやり方を参考にする
https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem#tools
正規表現で特定した箇所に書き込む
https://github.com/MarkusPfundstein/mcp-obsidian/blob/4aac5c2b874a219652e783b13fde2fb89e9fb640/src/mcp_obsidian/tools.py#L231
markdownの構造を基準に相対的に書き込む
Github Copilotの組み込みMCPはUnified formatを入力させていた
https://github.com/copilot/share/c80f41ba-0060-8ca2-9102-840100f22915
現在の方針
入力
Unified formatのdiff
conflictしたときの挙動
mergeを試みて、成功しなかったらエラーを返す
mergeせずエラーを返す
エラーはconflictしたときの>>>みたいな文字列が入っているのを返す
flow
get_raw_pageで生の文字列を読みとらせ、そのあとwrite_pageを実行させる
server側でget_raw_pageを実行したときのlinesとcommitIdを保持する
これにpatchを当てるという想定で組む
これなら気合マージも使えるかも?
statefull serverの立て方
#2025-08-19 21:14:29
#2025-08-18 21:52:41
#2025-08-14 09:53:33
#2025-08-08 14:22:58