Skip to content

Latest commit

 

History

History
507 lines (301 loc) · 40.3 KB

File metadata and controls

507 lines (301 loc) · 40.3 KB

freee-mcp

0.26.0

Minor Changes

  • cf85553: serve モードの環境変数バリデーションを zod ベースで強化し、RATE_LIMIT_ENABLED をデフォルト true(secure-by-default)に変更 (#426)

    • BREAKING: 明示的に RATE_LIMIT_ENABLED=false / SIGN_RATE_LIMIT_ENABLED=false を設定しない限り rate limit が有効化される
    • 必須環境変数 (ISSUER_URL / JWT_SECRET / FREEE_CLIENT_ID / FREEE_CLIENT_SECRET 等) が未設定・URL 形式不正・LOG_LEVEL 不正値の場合に起動時失敗
    • 起動時に解決済み設定をログ出力(jwtSecret / clientSecret はマスク)
  • 06c4f32: ヘルスチェックエンドポイントを /livez (liveness) と /readyz (readiness) に分離 (#427)

    • /livez: プロセス生存のみを確認。外部依存 (Redis 等) をチェックしないため、Redis の一時的な不調で Pod が再起動されない
    • /readyz: Redis 到達性を確認し、未到達時は 503 を返してトラフィックを切り離す
    • /health: 後方互換のため残し、/readyz と同じ挙動

Patch Changes

  • e21c2bd: リモート (HTTP) モードでリクエスト認証コンテキストが欠落している場合に、ローカル単一ユーザー用の FileTokenStore へフォールバックせず InvalidTokenError を投げて失敗するよう修正(fail-closed)。 (#428)

    • マルチテナント環境で他テナントのトークンが流用される潜在的なリスクを排除
    • stdio モードではこれまで通りローカルファイルストアへのフォールバックを維持

0.25.5

Patch Changes

  • 70a7dae: ローカル開発用途で loopback の CIMD URL を受け入れるオプションを追加。 (#429)

    • dev/test 環境かつ Kubernetes Pod 外でのみ、http://localhost / 127.0.0.1 / [::1]client_id を許可
    • 同条件で loopback の https:// self-signed cert も受け入れ(mkcert 等のローカル検証向け)
    • それ以外(production / NODE_ENV 未設定 / Kubernetes Pod 内 / プライベート IP / 公開 HTTP)は引き続き拒否
    • 運用注意: Kubernetes 以外で本番運用する場合は NODE_ENV=production を必ず明示すること
  • 2680500: OAuth トークン/取消エンドポイントが HTTP Basic 認証を受理するよう修正 (RFC 6749 §2.3.1 準拠) (#418)

    • /.well-known/oauth-authorization-servertoken_endpoint_auth_methods_supported / revocation_endpoint_auth_methods_supportedclient_secret_basic を追加
    • Authorization: Basic ヘッダー付きトークン要求を受理。失敗時は 401 + WWW-Authenticate: Basic ...
    • ヘッダーとリクエストボディの両方に資格情報がある場合は 400 invalid_request で拒否(RFC 6749 §2.3)
  • 3571649: canonical log line の top-level に company_id を追加。tools/list のように外向き API call を発火しないリクエストでも company コンテキストが残るようになり、Datadog の @company_id:<id> facet で 1 ログ行から検索可能になる。 (#425)

  • db90b31: JWT access token に aud claim を追加 (RFC 8707 Resource Indicators 準拠) (#421)

    • signAccessToken / verifyAccessToken に audience 引数を追加
    • MCP_JWT_AUDIENCE / MCP_JWT_AUDIENCE_ENFORCE env で grace period 制御 (default は enforce=false)
  • 213185c: freee API の 429 (rate limit) レスポンスを明示ハンドリング (#423)

    • makeApiRequest に 429 専用分岐を追加し canonical log line に error_type: 'rate_limit' を記録
    • Retry-After をエラーメッセージに含める
    • 自動 retry/backoff は別 PR で検討
  • e3abfa6: OAuth callback の redirect_uri 検証を fail-closed に変更 (深層防御) (#422)

    • clientStore.getClient 等の例外発生時に 400 を返すよう変更
    • これまでは catch 節で warn ログのみで処理継続 (fail-open) だった
  • b8c1b3f: src/server/client-auth-basic.tsreject401 / reject400 ヘルパーシグネチャを整理 (PR #418 のフォローアップ整理、外部動作変更なし) (#420)

    • errorTypeForLog 引数を削除: ヘルパー本体でハードコードする error フィールド (invalid_client / invalid_request) と常に同値だったため、構造的に重複していた
    • reject401errorName をデフォルト値 'InvalidClientError' に変更 (動的値が必要な catch ブロックのみ明示指定)
    • reject400errorName ('InvalidRequestError') は固定でハードコード化
    • req.body への重複キャストを named local reqBody に集約

    レスポンスコード / WWW-Authenticate ヘッダー / JSON 本文 / canonical log の shape はすべて PR #418 マージ直後と同一。テストファイルの修正なし、669 件すべて green。

0.25.4

Patch Changes

  • 8fde431: Remote モードで W3C traceparent を抽出して上流ゲートウェイの trace に server span を接続するようにし、SSE と JSON-RPC を区別できる観測ラベルを追加。 (#416)

    • middleware で propagation.extract を呼び、サーバー span を上流(Envoy/Istio)の child として紐付け
    • span 名を http.server.request に変更(Datadog operation 命名に整合)
    • http.transport (sse | jsonrpc)、http.response.close_reason (completed | client_disconnect) を span attribute と canonical log に追加
    • 新ヒストグラム mcp.sse.connection.duration を追加 — SSE 接続寿命を専用バケットで観測
    • propagator を CompositePropagator([W3CTraceContext, W3CBaggage]) に拡張、resource に deployment.environment を付与

0.25.3

Patch Changes

  • 76b03c0: freee_api_* の query/body が JSON 文字列で届いた場合に、先頭の UTF-8 BOM が含まれていれば BOM 検出専用のエラーメッセージを返すようにした(OS によって挙動が分かれないよう自動除去はしない)。それ以外のパース不能ケースのエラーメッセージはペイロード本体を含めず文字列長のみを含む形にし、業務データが応答やログに漏れないようにした。 (#414)
  • 0df88e0: OpenAPI スキーマを最新版に同期 ( 2 files changed, 20 insertions(+), 12 deletions(-)) (#411)

0.25.2

Patch Changes

  • cce0c0d: Remote モードで期限切れアクセストークンが 500 ではなく 401 を返すように修正 (#398)

    • jose のトークン検証例外を InvalidTokenError に変換し、WWW-Authenticate: Bearer error="invalid_token" 付き HTTP 401 を返す
    • これにより RFC 6750 準拠クライアント(Anthropic Managed Agents Vault など)の refresh_token 自動再発行が動作するようになる

0.25.1

Patch Changes

  • d6bc31c: freee API のベース URL を環境変数 FREEE_API_BASE_URL で上書きできるように対応。OAuth コールバック内で利用される API URL もこの環境変数を参照する。 (#407)

0.25.0

Minor Changes

  • 4aa21b1: freee_file_upload ツールに company_id 必須引数を追加。通常の freee_api_* ツールと同様にコンテキストで解決された事業所 ID と一致しない場合はエラーを返し、誤った事業所へのファイルアップロードを防止。 (#401)
  • f7f0553: Sign Remote MCP サーバー(freee-sign-remote-mcp)を追加。freee 本体と同一構成で OAuth 2.1 AS + Streamable HTTP transport + Redis トークンストア + canonical log line + OTel tracing をサポート。sign_api_* ツールの path を /v1/ 始まりに制限し SSRF / path traversal を防止。 (#395)

Patch Changes

  • b7ffe3c: GitHub CLI の gh skill コマンド(v2.90.0 以降)経由でのスキルインストールをサポート (#397)
  • 25acba0: Microsoft の Agent Package Manager (APM) による配布に対応。apm install freee/freee-mcp/skills/freee-api-skill でインストール可能 (#396)
  • 20a6ec9: Sign Remote MCP の Redis 既定 DB 番号指定を撤廃。Valkey 分離方式を「DB 番号」から「key prefix + RBAC」に変更(cluster mode 互換性のため) (#403)
  • ca1a324: リリース時に skills/freee-api-skill/apm.ymlversion フィールドを package.json に自動追従させるよう publish ワークフローを拡張 (#402)

0.24.0

Minor Changes

  • 186ffec: Remote モードの canonical log line を Datadog の status マッピングと整合するよう改善。HTTP status に応じて pino log level を info/warn/error に分岐し、Datadog Status Remapper が追加設定なしで認識できるよう変更。synthetic error にも stack trace を付与。 (#390)

  • 06c5d06: Remote モードの canonical log payload を http / mcp / api の 3 セクション構成に整理。tool / HTTP method / inbound HTTP route 別の比率を指定できる head-based custom sampler RuleBasedSampler を追加。 (#391)

    BREAKING (Datadog ログ検索のみ): @api_calls.* / @api_call_count / @mcp.tool_calls.api_method 等を facet している既存ダッシュボードは @api.calls.* / @api.call_count / @api.calls.method への移行が必要。

Patch Changes

  • 40dd52c: Canonical log の errors[] が 4xx/5xx 応答で空になる問題を修正。flush() の universal fallback で source: "response" の placeholder ErrorInfo を合成し、Datadog でドリルダウン情報を確保。 (#392)

0.23.0

Minor Changes

  • a38d2be: Remote モードのロギングを canonical log line パターンに再構成。1 HTTP リクエスト = 1 ログ行 = 1 trace の形式で request_id / http / mcp.tool_calls / api_calls / errors を 1 本の JSON に集約。query 値や request body などユーザー入力はログに含めない(型システムと pino.redact で強制)。 (#385)

Patch Changes

  • a38d2be: canonical log line に inbound user_agent フィールドを追加し、外部 freee API への outbound User-Agent に transport mode (stdio / remote) を含めた。Datadog で MCP クライアント別の分析が可能に。 (#385)

0.22.1

Patch Changes

  • 9883703: freee-api-skill の SKILL.md にカラールールセクションを追加 (#383)

0.22.0

Minor Changes

  • 2a75c12: 試算表・総勘定元帳の操作レシピを追加し、未承認仕訳(approval_flow_status)の確認フローを導入 (#380)

0.21.1

Patch Changes

  • 61c0168: OpenAPI スキーマを最新版に同期 ( 5 files changed, 2950 insertions(+), 753 deletions(-)) (#378)

0.21.0

Minor Changes

  • 160b717: freee サイン(電子契約)の MCP サーバーサポートを追加。freee-sign-mcp コマンドでサイン専用 MCP サーバーを起動し、OAuth2 認証・文書 CRUD などのサイン Public API を MCP 経由で操作可能に。 (#375)

0.20.0

Minor Changes

  • 4b1306e: freee-api-skill の改善と reference 自動生成の修正 (#369)

    • SKILL.md にワークフローの WHY 補足と概要の価値提案追加、description の undertrigger 防止
    • レシピにメモタグ「freee-mcp」の付与ガイドを追加(freee-mcp-tag.md を新規作成)
    • 取引・経費申請・請求書などの作成例に tag_ids を追加
    • レシピの重複内容を削減し reference への参照に置き換え
    • レシピのマスタ ID ハードコードを事前取得の指示に置き換え
    • reference 自動生成の改善(空の概要フォールバック、壊れたリンク除去、description の改行改善)

0.19.1

Patch Changes

  • 1eba6fc: OpenAPI スキーマを最新版に同期 ( 3 files changed, 2013 insertions(+), 1 deletion(-)) (#366)

0.19.0

Minor Changes

  • 799e201: OAuth 認証完了時にデフォルト事業所を自動設定するようにした。初回認証後に current company が未設定(ID: 0)の場合、会計 API(または HR API)から事業所一覧を取得し、最初の事業所を自動で設定する。 (#362)

Patch Changes

  • 546273e: MCP クライアントがオブジェクト型パラメータ(query/body)を JSON 文字列として送信した場合にバリデーションエラーになる問題を修正 (#364)

0.18.0

Minor Changes

  • 03c661f: OpenTelemetry 分散トレーシングサポートを追加 (#357)

    • OTEL_ENABLED=true で有効化、globalThis.fetch パッチで自動計測
    • Express リクエスト/Redis 操作の span を生成
    • W3C traceparent ヘッダー伝搬
    • ParentBasedSampler によるサンプリングレート制御
    • Jaeger を docker compose で利用可能
  • d13c0c5: ロガーの強化: API リクエスト・MCP ツール実行の構造化ログを追加 (#355)

    • API リクエスト成功時に method/path/status/duration_ms/user_id/company_id をログ出力
    • MCP ツール呼び出し時に tool 名/service/path/duration_ms/user_id をログ出力
    • エラー時の HTTP ステータスコードとエラー種別(error_type)を構造化ログに追加
    • sanitizePath()によりクエリパラメータ値・ユーザー入力データはログに記録しない
  • caa2db2: OpenTelemetry メトリクス計測を追加(HTTP リクエスト duration/エラー、MCP ツール duration/エラー)。開発環境に OTel Collector + Prometheus + Grafana を追加。 (#359)

  • 6879a2a: MCP ツール実行に OpenTelemetry span を追加(mcp.tool {toolName} として Jaeger で可視化) (#358)

Patch Changes

  • b267666: Ctrl+C 終了時に ioredis の"Connection is closed"エラーが出る問題を修正。 (#354)

    • シャットダウン関数に再入防止フラグを追加し、SIGINT が複数回発火しても二重実行を防止
    • シャットダウン順序を変更:HTTP サーバーを先にクローズしてから Redis をクローズすることで、処理中リクエストが閉じた接続を参照しないよう対応
    • closeRedisClient に quit 失敗時の disconnect フォールバックを追加
  • 4228b9e: TokenContext に companyId キャッシュを追加し Redis 重複呼び出しを最適化 (#356)

    • resolveCompanyId() ヘルパーで companyId を TokenContext にキャッシュ
    • 同一リクエスト内での重複 Redis GET 呼び出しを排除
    • アクセスログから company_id Redis 参照を削除(ツールログで既に記録済み)

0.17.1

Patch Changes

  • ab41118: MCP SDK 1.28.0 の registerTool で引数なしツールの extra が正しく渡らない問題を修正 (#344)

0.17.0

Minor Changes

  • 97baa3c: MCP ツール定義に tool annotations を追加 (#330)
  • 8177270: バイナリレスポンスを MIME タイプに応じて適切な MCP コンテンツタイプで返却するように改善。画像(JPEG/PNG/GIF/WebP)は ImageContent、PDF は EmbeddedResource、CSV はテキスト、その他はエラーメッセージを返却。 (#334)
  • 18371be: プラグイン名を freee-mcp に変更し、Remote MCP サーバーをプラグインに追加 (#341)
  • 04f9425: バイナリレスポンスをファイル保存せず MCP ImageContent (base64) としてインライン返却 (#331)
  • aa8097b: @modelcontextprotocol/sdk を 1.28.0 にアップデートし、deprecated な server.tool() を server.registerTool() に移行。全ツールに title フィールドを追加。 (#335)

Patch Changes

  • 60cd954: HTTP モードのエラーレスポンス (500/503) ログにアクセスログと同じセキュリティ関連フィールド (source_ip, session_id, company_id, user_id, method, path) を追加 (#333)
  • e216516: freee_list_companies で事業所名が null の場合にバリデーションエラーになる問題を修正 (#332)
  • e178099: README の Claude Code プラグインインストール手順を修正(marketplace 追加 → プラグインインストールの 2 段階手順に更新) (#340)
  • f21ae2d: Remote モードで freee_authenticate ツールを非表示にする (#338)
  • 0d98ca3: freee_server_info にトランスポート情報(remote/stdio)を追加 (#336)
  • 2e09352: Agent Skill のドキュメントを Remote MCP 対応に更新 (#337)

0.16.0

Minor Changes

  • f552919: HTTP モードの /mcp エンドポイントに構造化アクセスログを追加(source_ip, session_id, company_id, user_id) (#327)

0.15.2

Patch Changes

  • 2e3d530: MCP セッションをステートレス化し、マルチ Pod 環境での 404 エラーを解消 (#325)

0.15.1

Patch Changes

  • c03aec1: OpenAPI スキーマ同期ワークフローを修正: Claude Code ステップを廃止しシェルスクリプトに置換、リファレンス再生成・README ファイル数テーブル自動更新ステップを追加 (#318)
  • 9237ba6: OpenAPI スキーマを最新版に同期 ( 6 files changed, 4397 insertions(+), 1922 deletions(-)) (#319)

0.15.0

Minor Changes

  • 6c128fb: リモート MCP サーバー機能を追加(実験的) (#302)

    • freee-mcp --remote で Express ベースの StreamableHTTP MCP サーバーを起動可能に
    • MCP OAuth 2.1 AS 統合: mcpAuthRouter による /.well-known/*, /authorize, /token, /register, /revoke エンドポイント
    • JWT 署名・検証モジュール(jose + HS256)、requireBearerAuth による /mcp エンドポイント保護
    • Redis ベース OAuth 状態管理(セッション、認可コード、リフレッシュトークン)とマルチテナントトークン管理
    • クライアントストア(CIMD + DCR デュアルサポート)
    • freee OAuth コールバックハンドラー(/oauth/freee-callback)
    • プロダクション強化: Redis 接続復元力、セキュリティヘッダー (helmet)、CORS、レート制限、リクエストタイムアウト、構造化ログ (pino)
    • Dockerfile、compose.yaml 追加

    注意: この機能は実験的であり、今後のリリースで破壊的変更が入る可能性があります。

  • e947547: stdio モードと HTTP リモートサーバーモードのバイナリを分離: bin/cli.jsbin/freee-mcp.js + bin/freee-remote-mcp.js (#306)

0.14.0

Minor Changes

  • 89a26b5: freee_server_info ツールを追加。サーバーの情報(バージョンなど)を取得できるようになりました。リリース時にスキル ZIP に VERSION.md を同梱し、スキルとサーバーのバージョン比較が可能に。 (#299)

0.13.1

Patch Changes

  • 0e194ff: package.json に prepare スクリプトを追加し、GitHub リポジトリから直接インストール時に自動ビルドが実行されるようにした (#296)
  • a26ecfb: freee-mcp configure 実行時のバナーにバージョン番号を表示するようにした (#295)

0.13.0

Minor Changes

  • c7d55a3: configure --force オプションを追加。保存済みのログイン情報(トークン・設定ファイル)をリセットして再設定できるようにした。 (#290)
  • 37edff1: 開発ツールチェーンを bun に移行: パッケージマネージャ (pnpm → bun)、バンドラ (esbuild → Bun.build)、スクリプト実行 (tsx → bun)。テストは vitest を維持。CI/CD を bun ベースに更新。 (#283)

Patch Changes

  • 6ca07dc: configure コマンドでポート番号に不正な値を入力した場合に、次回 configure が起動しなくなるバグを修正。入力時のバリデーション追加と、config.json の読み込み時に null 値を許容するよう修正。 (#291)
  • 5903d74: TokenStore インターフェースを導入。将来のリモートデプロイ(Redis 等)に向けた内部構造の改善で、stdio モードの動作変更はありません。 (#289)

0.12.1

Patch Changes

  • f8873e4: エラーハンドリングの共通ヘルパー関数抽出とスキーマパス検証の regex キャッシュ化によるリファクタリング (#281)
  • ff3e506: freee_api_delete が HTTP 204 No Content レスポンスで JSON パースエラーとなる問題を修正 (#284)
  • 83251cb: freee-api-skill の description に具体的な操作キーワードを追加してトリガー率を改善 (#280)
  • fb11574: ESLint + Prettier を Biome に移行 (#286)

0.12.0

Minor Changes

  • 441d1e4: --remote オプションを追加。リモート MCP サーバーとして動作させる際にファイルアップロード機能を無効化 (#278)
  • 564777b: configure コマンドで会計 API から事業所一覧を取得できない場合に、人事労務 API へフォールバックするように改善。人事労務のみ利用しているユーザーでも事業所を選択できるようになりました。 (#277)

Patch Changes

  • 42255f2: configure コマンドの事業所選択プロンプトに操作ヒント(↑↓ で選択、Enter で確定)を追加し、表現を「操作対象の事業所」に統一 (#273)

0.11.2

Patch Changes

  • bc135be: API 要望の案内先を freee サポートページから freee Public API リクエストフォームに変更 (#270)

0.11.1

Patch Changes

  • 8c964bf: API の機能制限に関する問い合わせを freee プロダクトのフィードバックに誘導するガイダンスを SKILL とトラブルシューティングに追加 (#268)

0.11.0

Minor Changes

  • 32fab73: 工数管理レシピの拡充: 全 PM エンドポイントのカバレッジ追加と、PM・HR 連携による安全な工数登録ワークフローレシピの新規追加 (#262)

Patch Changes

  • cc24426: MCP サーバーに instructions を追加し、全ツールの description に freee-api-skill skill へのガイド参照を追加 (#257)
  • ace37e0: PM/SM API 操作レシピを追加し company_id 指定方法を明記、取引 URL フォーマットを修正 (#259)
  • cc24426: publish workflow の skill zip ファイル名を freee-api-skill.zip に修正 (#257)
  • cc24426: サーバーバージョンをハードコードから package.json の値に同期するよう変更 (#257)

0.10.0

Minor Changes

  • d93e78b: ファイルボックスへのファイルアップロード用カスタムツール (freee_file_upload) を追加 (#252)

Patch Changes

  • 78d94ed: Claude Desktop のスキルアップロード手順の UI パスを最新のものに更新 (#253)
  • b94976d: Fix claude plugin add to claude plugin install in README and publish workflow (#254)
  • 87abec4: Windows Store (MSIX) 版 Claude Desktop の設定ファイルパスに対応。Store 版のパッケージディレクトリが存在する場合、自動的に正しいパスを使用します。 (#247)

0.9.1

Patch Changes

  • 69622a3: スキルドキュメントを整理し company_id の扱いを明確化 (#242)

0.9.0

Minor Changes

  • 3fb6f22: 人事労務(有給申請)・工数管理・販売 API のリファレンスドキュメントを追加し、リファレンス生成スクリプトを改善 (#240)

Patch Changes

  • dab48e3: ツールの説明文や使用例から invoice API の例示を deal 一覧取得の例に置き換え (#239)

0.8.1

Patch Changes

  • 62e8483: CSV レスポンスが JSON として処理される不整合を修正。isBinaryContentType に text/csv を追加し、CSV レスポンスが正しくファイルとして保存されるようにしました。 (#229)
  • aa42fef: refresh_token が欠落している場合に空文字列を保存する代わりにエラーを返すようにし、再認証を促すメッセージを表示するようにした (#230)
  • cb2e717: 環境変数の部分設定(FREEE_CLIENT_ID または FREEE_CLIENT_SECRET の片方のみ)でエラーを返すように修正 (#231)
  • 3a3346e: FREEE_CALLBACK_PORT の値検証を追加し、不正な値(NaN、範囲外)の場合はデフォルトポートにフォールバックするようにした

0.8.0

Minor Changes

  • 806aa41: 各サービスの API ベース URL を環境変数で切り替え可能にする機能を追加。FREEEAPI_BASE_URL{SERVICE}(ACCOUNTING, HR, INVOICE, PM, SM)環境変数でサービスごとの接続先を上書きできます。

Patch Changes

  • 93222c3: スキルの docs/ ディレクトリを recipes/ にリネーム(ユースケースサンプル集であることを明確化)
  • d615b70: README.md の skills インストーラー CLI の参照を add-skill から skills に更新

0.7.3

Patch Changes

  • 7d84fd6: 勤怠操作ガイド(hr-attendance-operations.md)を新設し、hr-operations.md を hr-employee-operations.md にリネーム・整理

0.7.2

Patch Changes

  • 1ea4571: npm publish を Trusted Publishing (OIDC) に移行し、NPM_TOKEN シークレットを不要に

0.7.1

Patch Changes

  • 3f3fe54: npm パッケージ名を @him0/freee-mcp から freee-mcp に変更したことに伴い、全ファイルの参照を更新

0.7.0

Minor Changes

  • c47692c: configure 完了後に Skill インストールの案内を表示するように改善。Claude Code には npx add-skill コマンド、Claude Desktop には Releases から freee-skill.zip をダウンロードする手順を案内。

Patch Changes

  • e91f75f: configure コマンドでコールバック URL を分かりやすく表示するように改善

0.6.7

Patch Changes

  • a3766e0: OpenAPI スキーマを最新版に更新: 会計 API に経費申請制限事項とテンプレート ID フィールド追加、人事労務 API に所定休日労働時間フィールド追加、販売 API に案件更新・受注更新エンドポイント追加

0.6.6

Patch Changes

  • d2147d3: freee API が name: null の事業所を返す場合に configure コマンドが失敗する問題を修正

  • d055c47: fix: トークン交換の失敗をブラウザに正しく表示

    トークン交換を待ってから結果に応じてブラウザに応答を返すように修正。エラー時は「認証エラー」(HTTP 500)を表示し、エラーがサイレントに無視されないようにした。

0.6.5

Patch Changes

  • 988121f: Add User-Agent header to OAuth token refresh and token exchange requests

0.6.4

Patch Changes

  • 74a2f5b: fix: エラーメッセージ内の誤ったツール名を修正 (freee_set_company → freee_set_current_company, 旧ツール名 → freee_api_get)

0.6.3

Patch Changes

  • 8b27a9f: freee-agent パッケージを private に設定し、npm publish 対象から除外

0.6.2

Patch Changes

  • 9ab8bc6: 0.6.2 リリース: 1/17 以降の変更を含む

    このリリースには以下の改善が含まれています(CHANGELOG 0.6.1 に既に記載済みの内容):

    • 外部 API へのリクエストに User-Agent ヘッダーを追加
    • 外部 API レスポンスの Zod バリデーション追加
    • OAuth コールバックサーバーのエラーハンドリング改善
    • 403 エラーのハンドリング改善(レートリミット対応)
    • トークンエラーハンドリングの改善(Result 型パターン)
    • OAuth コールバックサーバーのオンデマンド起動
    • ポート使用中時のエラーメッセージ改善

0.6.1

Patch Changes

  • 4b941b6: 外部 API へのリクエストに User-Agent ヘッダーを追加し、MCP サーバーからのリクエストであることを識別可能に

  • a803a3e: Add Zod validation for external API responses to prevent silent failures from invalid response formats

  • f79175d: fix: improve error handling for OAuth callback server startup failures

    • Add explicit error messages when OAuth callback server fails to start
    • Log when server is already running instead of silently returning
    • Clean up server state properly on error
  • a6b4a4c: fix: 403 エラーのハンドリングを改善し、レートリミットの可能性を示すメッセージを追加

  • 230cbf8: fix: improve token error handling with Result type pattern

    • Replace safeParseJson with parseJsonResponse that returns a Result type, preserving error context instead of silently returning empty object
    • Propagate token refresh errors in getValidAccessToken instead of returning null, allowing callers to understand failure reasons
    • Add comprehensive tests for parseJsonResponse and token refresh failure scenarios
  • b2ac012: OAuth コールバックサーバーを MCP サーバー起動時ではなく、認証時にオンデマンドで起動するように変更

  • d4f96c0: ポートが使用中の場合にフォールバックせず、具体的な解決方法を含むエラーメッセージを表示するように変更