問題の概要
freee請求書API(/invoicesなど)にリクエストを送信する際、company_idがクエリパラメータとして自動的に追加されないため、401エラー(company_not_found)が発生します。
再現手順
- freee-mcpを設定し、認証を完了する
- freee会計APIは正常に動作することを確認(例:
/api/1/companies)
- freee請求書APIにアクセスする:
freee_api_get { "service": "invoice", "path": "/invoices" }
期待される動作
現在設定されているcompany_idが自動的にクエリパラメータとして追加され、請求書一覧が取得できる。
実際の動作
以下のエラーが返される:
{
"status_code": 401,
"errors": [
{
"codes": ["company_not_found"],
"type": "status",
"messages": ["アクセス権限がありません。", "存在しないかすでに削除された事業所です。"]
}
]
}
回避策
明示的にcompany_idをクエリパラメータとして渡すと正常に動作します:
freee_api_get { "service": "invoice", "path": "/invoices", "query": {"company_id": 11730956} }
原因の推測
dist/openapi/minimal/invoice.jsonを確認すると、freee請求書APIの各エンドポイントはcompany_idを必須のクエリパラメータとして要求しています(例: /invoicesのGETリクエスト)。
しかし、APIリクエスト処理(L関数)では、company_idがクエリパラメータやボディに既に含まれている場合のバリデーションは行っていますが、自動的に追加する処理がありません。
freee会計APIではリクエストヘッダーやセッションから事業所が認識されるようですが、freee請求書APIではクエリパラメータとして明示的に渡す必要があるようです。
提案
freee請求書API(および他のサービス)へのリクエスト時に、必須のcompany_idパラメータを自動的に追加する処理を実装することを提案します。
環境
- freee-mcp: npx経由で最新版を使用
- OS: macOS
問題の概要
freee請求書API(
/invoicesなど)にリクエストを送信する際、company_idがクエリパラメータとして自動的に追加されないため、401エラー(company_not_found)が発生します。再現手順
/api/1/companies)期待される動作
現在設定されている
company_idが自動的にクエリパラメータとして追加され、請求書一覧が取得できる。実際の動作
以下のエラーが返される:
{ "status_code": 401, "errors": [ { "codes": ["company_not_found"], "type": "status", "messages": ["アクセス権限がありません。", "存在しないかすでに削除された事業所です。"] } ] }回避策
明示的に
company_idをクエリパラメータとして渡すと正常に動作します:原因の推測
dist/openapi/minimal/invoice.jsonを確認すると、freee請求書APIの各エンドポイントはcompany_idを必須のクエリパラメータとして要求しています(例:/invoicesのGETリクエスト)。しかし、APIリクエスト処理(
L関数)では、company_idがクエリパラメータやボディに既に含まれている場合のバリデーションは行っていますが、自動的に追加する処理がありません。freee会計APIではリクエストヘッダーやセッションから事業所が認識されるようですが、freee請求書APIではクエリパラメータとして明示的に渡す必要があるようです。
提案
freee請求書API(および他のサービス)へのリクエスト時に、必須の
company_idパラメータを自動的に追加する処理を実装することを提案します。環境