Skip to content

NeNe カタログパターン

docs/api/openapi.yamldocs/mcp/tools.json に映射するときの NeNe 固有の規約。nene-mcp に NeNe 専用コードはありません。

パスパラメータ(id_{param}

NeNe は OpenAPI の {param} だけでなく key-value 形式のパス を使うことがあります。

OpenAPI pathカタログ pathtools/call 引数
/todo/item/id_{id}/todo/item/id_{id}{ "id": "42" } → HTTP /todo/item/id_42

nene-mcp は path 内の {name} を引数で URL エンコードして置換します。

よくある誤り: 汎用 OpenAPI 風の /todo/item/{id} をそのまま使う → NeNe は id_{id} を期待するため 405

ベース URL と URI_ROOT

NENE_MCP_API_BASE_URL は NeNe が HTTP を提供する オリジン + デプロイ prefix。カタログ path が後ろに付きます。

NeNe デプロイNENE_MCP_API_BASE_URLカタログ path
ルートhttp://localhost:8080/health/index
URI_ROOT=/mybiz/http://localhost:8080/mybiz/health/index

不一致の症状: health や業務 API が 404isError: true)— NeNe の URI_ROOT とリバースプロキシ prefix を確認。

NeNe OpenAPI は /todo/*sessionCookie を宣言 — Bearer ではありません。

nene-mcp は現状:

  • NENE_MCP_BEARER_TOKEN があるとき Authorization: Bearer … を送信
  • MCP 呼び出し間で Set-Cookie を保持しない(ステートレス HTTP)

そのため login → listTodos → createTodo の多段フローは、標準 NeNe サンプルだけでは MCP 上 完結しません

目的現実的な方法
health 等の公開 readドキュメント通り MCP で可
NeNe TODO を MCP 化NeNe 側で Bearer 対応を追加、または Bearer 前提の API を使う

CSRF(X-CSRF-Token

NeNe の TODO 書き込みは OpenAPI 上 csrfToken 必須。login 応答の Data.csrfTokenX-CSRF-Token ヘッダ で送る(session cookie とセット)。

nene-mcp は CSRF ヘッダを送れないし、login 応答の token を次の HTTP に載せられません。Cookie 問題に加え、書き込みは CSRF でも失敗します。NeNe #380 参照。

書き込みツールと login ブートストラップ

safety: write は env に Bearer 必須(fail-closed)。NeNe /session/login は未認証 POST 可だが、カタログ上 login ツールも Bearer なしでは HTTP 前に拒否されます。Cookie ホストでは プレースホルダ Bearer で fail-closed を満たす運用があります。

MCP 引数の資格情報: user_id / user_pass はエージェント transcript に残ります。dev 専用アカウントを使い、git に載せないでください。

関連

MIT ライセンスの下で公開されています。