-
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)
-
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 参照を削除(ツールログで既に記録済み)
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)
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)
c03aec1: OpenAPI スキーマ同期ワークフローを修正: Claude Code ステップを廃止しシェルスクリプトに置換、リファレンス再生成・README ファイル数テーブル自動更新ステップを追加 (#318)9237ba6: OpenAPI スキーマを最新版に同期 ( 6 files changed, 4397 insertions(+), 1922 deletions(-)) (#319)
-
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.js→bin/freee-mcp.js+bin/freee-remote-mcp.js(#306)
89a26b5: freee_server_info ツールを追加。サーバーの情報(バージョンなど)を取得できるようになりました。リリース時にスキル ZIP に VERSION.md を同梱し、スキルとサーバーのバージョン比較が可能に。 (#299)
0e194ff: package.json に prepare スクリプトを追加し、GitHub リポジトリから直接インストール時に自動ビルドが実行されるようにした (#296)a26ecfb:freee-mcp configure実行時のバナーにバージョン番号を表示するようにした (#295)
c7d55a3:configure --forceオプションを追加。保存済みのログイン情報(トークン・設定ファイル)をリセットして再設定できるようにした。 (#290)37edff1: 開発ツールチェーンを bun に移行: パッケージマネージャ (pnpm → bun)、バンドラ (esbuild → Bun.build)、スクリプト実行 (tsx → bun)。テストは vitest を維持。CI/CD を bun ベースに更新。 (#283)
6ca07dc: configure コマンドでポート番号に不正な値を入力した場合に、次回 configure が起動しなくなるバグを修正。入力時のバリデーション追加と、config.json の読み込み時に null 値を許容するよう修正。 (#291)5903d74: TokenStore インターフェースを導入。将来のリモートデプロイ(Redis 等)に向けた内部構造の改善で、stdio モードの動作変更はありません。 (#289)
f8873e4: エラーハンドリングの共通ヘルパー関数抽出とスキーマパス検証の regex キャッシュ化によるリファクタリング (#281)ff3e506: freee_api_delete が HTTP 204 No Content レスポンスで JSON パースエラーとなる問題を修正 (#284)83251cb: freee-api-skill の description に具体的な操作キーワードを追加してトリガー率を改善 (#280)fb11574: ESLint + Prettier を Biome に移行 (#286)
441d1e4: --remote オプションを追加。リモート MCP サーバーとして動作させる際にファイルアップロード機能を無効化 (#278)564777b: configure コマンドで会計 API から事業所一覧を取得できない場合に、人事労務 API へフォールバックするように改善。人事労務のみ利用しているユーザーでも事業所を選択できるようになりました。 (#277)
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)
78d94ed: Claude Desktop のスキルアップロード手順の UI パスを最新のものに更新 (#253)b94976d: Fixclaude plugin addtoclaude plugin installin README and publish workflow (#254)87abec4: Windows Store (MSIX) 版 Claude Desktop の設定ファイルパスに対応。Store 版のパッケージディレクトリが存在する場合、自動的に正しいパスを使用します。 (#247)
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、範囲外)の場合はデフォルトポートにフォールバックするようにした
806aa41: 各サービスの API ベース URL を環境変数で切り替え可能にする機能を追加。FREEEAPI_BASE_URL{SERVICE}(ACCOUNTING, HR, INVOICE, PM, SM)環境変数でサービスごとの接続先を上書きできます。
93222c3: スキルの docs/ ディレクトリを recipes/ にリネーム(ユースケースサンプル集であることを明確化)d615b70: README.md の skills インストーラー CLI の参照をadd-skillからskillsに更新
7d84fd6: 勤怠操作ガイド(hr-attendance-operations.md)を新設し、hr-operations.md を hr-employee-operations.md にリネーム・整理
1ea4571: npm publish を Trusted Publishing (OIDC) に移行し、NPM_TOKEN シークレットを不要に
3f3fe54: npm パッケージ名を @him0/freee-mcp から freee-mcp に変更したことに伴い、全ファイルの参照を更新
c47692c: configure 完了後に Skill インストールの案内を表示するように改善。Claude Code にはnpx add-skillコマンド、Claude Desktop には Releases から freee-skill.zip をダウンロードする手順を案内。
e91f75f: configure コマンドでコールバック URL を分かりやすく表示するように改善
a3766e0: OpenAPI スキーマを最新版に更新: 会計 API に経費申請制限事項とテンプレート ID フィールド追加、人事労務 API に所定休日労働時間フィールド追加、販売 API に案件更新・受注更新エンドポイント追加
-
d2147d3: freee API が name: null の事業所を返す場合に configure コマンドが失敗する問題を修正 -
d055c47: fix: トークン交換の失敗をブラウザに正しく表示トークン交換を待ってから結果に応じてブラウザに応答を返すように修正。エラー時は「認証エラー」(HTTP 500)を表示し、エラーがサイレントに無視されないようにした。
988121f: Add User-Agent header to OAuth token refresh and token exchange requests
74a2f5b: fix: エラーメッセージ内の誤ったツール名を修正 (freee_set_company → freee_set_current_company, 旧ツール名 → freee_api_get)
8b27a9f: freee-agent パッケージを private に設定し、npm publish 対象から除外
-
9ab8bc6: 0.6.2 リリース: 1/17 以降の変更を含むこのリリースには以下の改善が含まれています(CHANGELOG 0.6.1 に既に記載済みの内容):
- 外部 API へのリクエストに User-Agent ヘッダーを追加
- 外部 API レスポンスの Zod バリデーション追加
- OAuth コールバックサーバーのエラーハンドリング改善
- 403 エラーのハンドリング改善(レートリミット対応)
- トークンエラーハンドリングの改善(Result 型パターン)
- OAuth コールバックサーバーのオンデマンド起動
- ポート使用中時のエラーメッセージ改善
-
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: ポートが使用中の場合にフォールバックせず、具体的な解決方法を含むエラーメッセージを表示するように変更