Skip to content

Commit bd04142

Browse files
RELEASING: Releasing 1 package(s) (#404)
Releases: freee-mcp@0.25.0 [skip ci] Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 20a6ec9 commit bd04142

8 files changed

Lines changed: 61 additions & 75 deletions

.changeset/add-gh-skill-support.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/apm-support.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/file-upload-company-id-validation.md

Lines changed: 0 additions & 11 deletions
This file was deleted.

.changeset/sign-redis-db-no-split.md

Lines changed: 0 additions & 13 deletions
This file was deleted.

.changeset/sign-remote-mcp.md

Lines changed: 0 additions & 35 deletions
This file was deleted.

.changeset/sync-apm-version.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,65 @@
11
# freee-mcp
22

3+
## 0.25.0
4+
5+
### Minor Changes
6+
7+
- [`4aa21b1`](https://github.com/freee/freee-mcp/commit/4aa21b15f0041dd8bb00676a58e63fb2e5d3ab76): `freee_file_upload` ツールに `company_id` 必須引数を追加 ([#401](https://github.com/freee/freee-mcp/pull/401))
8+
9+
通常の `freee_api_*` ツール (`src/api/client.ts``makeApiRequest`) と同様に、呼び出し側が渡した `company_id` とコンテキストで解決された事業所 ID を文字列比較で検証し、不一致時はエラーを返すようにした。誤った事業所へのファイルアップロードを防ぐガードレール。
10+
11+
- MCP ツール `freee_file_upload` の inputSchema に `company_id` を必須で追加 (`string | number`)
12+
- `uploadReceipt()` の 2 番目の引数として `requestedCompanyId` を追加
13+
- 認証チェック直後にバリデーションを実施し、通常ツールと同一の文言でエラーを throw
14+
15+
- [`f7f0553`](https://github.com/freee/freee-mcp/commit/f7f05538664cf886ce9f5aa9ef6df338dca5eaee): Sign Remote MCP サーバーを追加 ([#395](https://github.com/freee/freee-mcp/pull/395))
16+
17+
freee サイン用の Remote MCP サーバー(`freee-sign-remote-mcp`)を追加。freee 本体と同一構成で OAuth 2.1 Authorization Server + Streamable HTTP transport + Redis トークンストア + canonical log line + OTel tracing をサポート。
18+
19+
- 新規エントリポイント `bin/freee-sign-remote-mcp.js`(ポート 3002)
20+
- ninja-sign.com との OAuth 2.0 code exchange + MCP クライアント向け OAuth 2.1 AS の二層認証
21+
- Docker Compose に `freee-sign-mcp` サービス追加、`Dockerfile.sign` でビルド分離
22+
23+
## 共有 Valkey での分離
24+
25+
本番で Sign と freee 本体が共有する Valkey インスタンスの名前空間を以下で分離:
26+
27+
- Redis の DB (freee 本体 DB 0 / Sign DB 1) とキー prefix (`freee-sign-mcp:*`) で名前空間分離
28+
- rate-limit キーに `rl:sign:*` prefix を付与し freee 本体とカウンタ合算を防止
29+
30+
本番 Valkey は parameter group で `maxmemory-policy` 未設定のため Valkey デフォルト (`noeviction`) で稼働しており、cross-DB eviction は発生しない想定。
31+
32+
## ローカル開発環境の調整
33+
34+
`compose.yaml` / `otel-collector-config.yaml` を本番挙動と整合させる:
35+
36+
- Redis の `maxmemory-policy``noeviction` に変更し、本番 Valkey と同じ挙動でローカル検証できるようにする
37+
- OTel Collector に `memory_limiter` / `batch` processor を追加し、compose で Sign + freee が単一 collector を共有する開発環境の trace 欠落を防止(本番は Datadog Agent が Node 単位で OTLP を受ける構成のため該当しない)
38+
39+
## セキュリティ
40+
41+
- `sign_api_*` ツールの path を `/v1/` 始まりに制限し、絶対 URL 経由で Bearer トークンが外部ホストへ流出する SSRF 経路を遮断
42+
- path traversal (`..` / `%2e%2e`) を Zod と URL 組み立て後の pathname 再検証で拒否し、ninja-sign.com 内の `/v1/` 外エンドポイントへの到達を防止
43+
- Remote モードで認証コンテキストが取れない場合に local filesystem のトークンへ fallback する経路を禁止し、impersonation を防止
44+
- ninja-sign.com との通信エラー本文を先頭 200 文字に truncate して PII 漏洩を防止
45+
- `/v1/users/me` レスポンスを Zod schema で検証し、id の型不正による Redis キー衝突を防止
46+
47+
### Patch Changes
48+
49+
- [`b7ffe3c`](https://github.com/freee/freee-mcp/commit/b7ffe3cf8bce5dd945b9a2e6c7dc59e00d4648fb): GitHub CLI の `gh skill` コマンド(v2.90.0 以降)経由でのスキルインストールをサポート。`skills/freee-api-skill/SKILL.md` のフロントマターに `license``metadata` を追加し、README に `gh skill install freee/freee-mcp freee-api-skill` のインストール手順を記載。 ([#397](https://github.com/freee/freee-mcp/pull/397))
50+
- [`25acba0`](https://github.com/freee/freee-mcp/commit/25acba0adae6d6c612ab6f1609e079ed06c28877): Microsoft の [Agent Package Manager (APM)](https://github.com/microsoft/apm) による配布に対応。`skills/freee-api-skill/``apm.yml` を追加し、`apm install freee/freee-mcp/skills/freee-api-skill` コマンドでスキルをインストール可能にした。APM は対象プロジェクトに存在する `.github/``.claude/``.cursor/``.opencode/``.codex/` の各ディレクトリへスキルを自動デプロイする。 ([#396](https://github.com/freee/freee-mcp/pull/396))
51+
- [`20a6ec9`](https://github.com/freee/freee-mcp/commit/20a6ec9f555b1b86d64550c5084b2bbc3ea17673): Sign Remote MCP の Redis 既定 DB 番号指定を撤廃 ([#403](https://github.com/freee/freee-mcp/pull/403))
52+
53+
freee-mcp 本体と Sign Remote MCP で共有する Valkey (ElastiCache) の分離方式を「DB 番号による論理分離」から「`freee-sign-mcp:*` prefix + Valkey RBAC (IAM Role ACL)」に変更した。DB 分離は将来の cluster mode 移行を阻害するため採用しない。
54+
55+
本 PR は当該方針に合わせて、アプリ側のデフォルト値から DB 番号を外す対応:
56+
57+
- `compose.yaml`: `SIGN_REDIS_URL: redis://redis:6379/1``redis://redis:6379`
58+
- `src/sign/config.ts`: `SIGN_REDIS_URL` 未設定時の既定値を `redis://localhost:6379/1``redis://localhost:6379`
59+
- `src/sign/config.test.ts`: 既定値 assertion を追従
60+
61+
- [`ca1a324`](https://github.com/freee/freee-mcp/commit/ca1a3246b27c3d2bcdc6692bbf6a75ec4aef874a): リリース時に `skills/freee-api-skill/apm.yml``version` フィールドを `package.json` に自動追従させるよう publish ワークフローを拡張。既存の `.claude-plugin/plugin.json` / `marketplace.json` の同期ステップと同じコミットでまとめて push される。 ([#402](https://github.com/freee/freee-mcp/pull/402))
62+
363
## 0.24.0
464

565
### Minor Changes

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"type": "module",
33
"name": "freee-mcp",
4-
"version": "0.24.0",
4+
"version": "0.25.0",
55
"bin": {
66
"freee-mcp": "./bin/freee-mcp.js",
77
"freee-remote-mcp": "./bin/freee-remote-mcp.js",

0 commit comments

Comments
 (0)