🚀 Fortnox MCP Server
Fortnox MCP Serverは、Fortnoxのスウェーデン会計システムと統合するためのMCP(Model Context Protocol)サーバーです。このサーバーにより、LLMがFortnoxとやり取りして、請求書、顧客、仕入先、注文、勘定科目、伝票の管理や、ビジネスインテリジェンス分析を行うことができます。
🚀 クイックスタート
2つの利用方法
| モード |
最適なユーザー |
セットアップ方法 |
| リモートモード |
エンドユーザー |
URLを追加し、ブラウザで認証するだけ |
| ローカルモード |
開発者、セルフホスト |
環境変数を設定する |
リモートモード(推奨)
Fortnox MCPを使用する最も簡単な方法です。資格情報は不要で、ブラウザで認証するだけです。
オプションA: Claude.ai (Web)に追加
- claude.aiにアクセスします。
- 設定 → 統合 → 統合を追加 を選択します。
- URL
https://fortnox-mcp.vercel.app/mcp を入力します。
- 読み込みが完了したら、接続をクリックしてアクセスを承認します。
オプションB: Claude Desktopに追加
Claude Desktopの設定ファイルを開きます。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
以下の設定を追加します。
{
"mcpServers": {
"fortnox": {
"url": "https://fortnox-mcp.vercel.app/mcp"
}
}
}
Claude Desktopを再起動します。ClaudeにFortnoxに関する操作を依頼すると、ブラウザウィンドウが開き、Fortnoxアカウントへのアクセスを承認するように求められます。承認すると、すぐに使用できます。
ローカルモード(セルフホスト)
サーバーをローカルで実行したい開発者や、独自のFortnoxアプリ資格情報を使用したい場合に適しています。
1. Fortnoxの資格情報を取得する
- Fortnox Developer Portalで登録します。
- アプリケーションを作成して、クライアントID と クライアントシークレット を取得します。
- OAuth2フローを完了して、リフレッシュトークン を取得します。
2. Claude Desktopに追加
Claude Desktopの設定ファイルを開きます。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
以下の設定を追加します。
{
"mcpServers": {
"fortnox": {
"command": "npx",
"args": ["-y", "fortnox-mcp-server"],
"env": {
"FORTNOX_CLIENT_ID": "your-client-id",
"FORTNOX_CLIENT_SECRET": "your-client-secret",
"FORTNOX_REFRESH_TOKEN": "your-refresh-token"
}
}
}
}
3. Claude Desktopを再起動する
これで完了です!ClaudeにFortnoxの請求書、顧客などの管理を依頼することができます。
✨ 主な機能
顧客管理
fortnox_list_customers - 顧客を一覧表示し、検索する
fortnox_get_customer - 顧客の詳細を取得する
fortnox_create_customer - 新しい顧客を作成する
fortnox_update_customer - 顧客情報を更新する
fortnox_delete_customer - 顧客を削除する
請求書管理
fortnox_list_invoices - 請求書をフィルタリングして一覧表示する
fortnox_get_invoice - 請求書の詳細と明細行を取得する
fortnox_create_invoice - 新しい請求書を作成する
fortnox_update_invoice - 下書き請求書を更新する
fortnox_bookkeep_invoice - 請求書を記帳する
fortnox_cancel_invoice - 請求書をキャンセルする
fortnox_credit_invoice - クレジットノートを作成する
fortnox_send_invoice_email - 請求書を電子メールで送信する
仕入先管理
fortnox_list_suppliers - 仕入先を一覧表示し、検索する
fortnox_get_supplier - 仕入先の詳細を取得する
fortnox_create_supplier - 新しい仕入先を作成する
fortnox_update_supplier - 仕入先情報を更新する
fortnox_delete_supplier - 仕入先を削除する
仕入先請求書管理
fortnox_list_supplier_invoices - 仕入先請求書をフィルタリングして一覧表示する
fortnox_get_supplier_invoice - 仕入先請求書の詳細を取得する
fortnox_approve_supplier_invoice - 仕入先請求書を支払い承認する
fortnox_payables_report - 買掛金の経過報告を取得する
注文管理
fortnox_list_orders - 販売注文をフィルタリングして一覧表示する
fortnox_list_offers - 見積り/見積書をフィルタリングして一覧表示する
勘定科目管理
fortnox_list_accounts - 勘定科目表を一覧表示する
fortnox_get_account - 勘定科目の詳細を取得する
fortnox_create_account - 新しい勘定科目を作成する
fortnox_update_account - 勘定科目を更新する
fortnox_delete_account - 勘定科目を削除する
伝票管理
fortnox_list_vouchers - 伝票(仕訳帳エントリ)を一覧表示する
fortnox_get_voucher - 伝票の詳細と行を取得する
fortnox_create_voucher - 手動伝票を作成する
fortnox_list_voucher_series - 利用可能な伝票シリーズを一覧表示する
fortnox_account_activity - 特定の勘定科目の活動を取得する
fortnox_search_vouchers - 伝票を説明、勘定科目、または金額で検索する
会社情報
fortnox_get_company_info - 会社の詳細を取得する
fortnox_list_financial_years - 会社の会計年度を一覧表示する
分析
fortnox_invoice_summary - 期間別の請求書統計を取得する
fortnox_top_customers - 収益別のトップ顧客を取得する
fortnox_unpaid_report - 未払い請求書の詳細報告を取得する
ビジネスインテリジェンス
fortnox_cash_flow_forecast - 請求書と買掛金に基づいてキャッシュフローを予測する
fortnox_order_pipeline - 販売注文パイプラインを分析する
fortnox_sales_funnel - 見積りから請求書までの販売ファネルを分析する
fortnox_product_performance - 製品/商品のパフォーマンスを分析する
fortnox_period_comparison - 期間を跨いで財務指標を比較する
fortnox_customer_growth - 顧客獲得と成長を分析する
fortnox_project_profitability - プロジェクトの収益性を分析する(プロジェクトを使用する場合)
fortnox_cost_center_analysis - コストセンター別にコストを分析する
fortnox_expense_analysis - カテゴリ別に経費を分析する
fortnox_yearly_comparison - 前年比のパフォーマンスを比較する
fortnox_gross_margin_trend - 粗利益率のトレンドを経時的に追跡する
📦 インストール
npxを使用する(推奨)
インストールは必要ありません!上記の設定をClaude Desktopに追加するだけです。
手動インストール
npm install -g fortnox-mcp-server
ソースからインストール
git clone https://github.com/jakobwennberg/fortnox-mcp.git
cd fortnox-mcp
npm install
npm run build
🔧 設定
環境変数
ローカルモード(デフォルト)
| 変数 |
必須 |
説明 |
FORTNOX_CLIENT_ID |
はい |
FortnoxアプリのクライアントID |
FORTNOX_CLIENT_SECRET |
はい |
Fortnoxアプリのクライアントシークレット |
FORTNOX_REFRESH_TOKEN |
はい |
OAuth2のリフレッシュトークン |
FORTNOX_ACCESS_TOKEN |
いいえ |
現在のアクセストークン(自動更新) |
TRANSPORT |
いいえ |
stdio(デフォルト)または http |
PORT |
いいえ |
HTTPポート(デフォルト: 3000) |
リモートモード(AUTH_MODE=remote)
| 変数 |
必須 |
説明 |
AUTH_MODE |
はい |
remote に設定 |
SERVER_URL |
はい |
サーバーのパブリックURL |
JWT_SECRET |
はい |
JWTトークンを署名するためのシークレット |
FORTNOX_CLIENT_ID |
はい |
FortnoxアプリのクライアントID |
FORTNOX_CLIENT_SECRET |
はい |
Fortnoxアプリのクライアントシークレット |
UPSTASH_REDIS_REST_URL |
はい* |
トークンを保存するためのUpstash Redis URL |
UPSTASH_REDIS_REST_TOKEN |
はい* |
Upstash Redisトークン |
PORT |
いいえ |
HTTPポート(デフォルト: 3000) |
*提供されない場合はメモリ内ストレージにフォールバックします(本番環境では推奨されません)
OAuth資格情報の取得
- Fortnox Developer Portalで開発者として登録します。
- 新しいアプリケーションを作成して、クライアントIDとクライアントシークレットを取得します。
- OAuth2認証フローを完了して、リフレッシュトークンを取得します。
- 環境変数を設定します。
💻 使用例
Claude Desktopでの使用
上記の クイックスタート を参照してください。
HTTPサーバーとしての使用
TRANSPORT=http PORT=3000 node dist/index.js
その後、http://localhost:3000/mcp に接続します。
ツールの使用例
未払い請求書の一覧表示
{
"tool": "fortnox_list_invoices",
"arguments": {
"filter": "unpaid",
"limit": 20
}
}
請求書の作成
{
"tool": "fortnox_create_invoice",
"arguments": {
"customer_number": "1001",
"rows": [
{
"description": "Consulting services",
"quantity": 10,
"price": 1000
}
]
}
}
伝票の作成
{
"tool": "fortnox_create_voucher",
"arguments": {
"voucher_series": "A",
"description": "Office supplies",
"transaction_date": "2025-01-24",
"rows": [
{ "account_number": 6110, "debit": 500 },
{ "account_number": 1910, "credit": 500 }
]
}
}
レート制限
Fortnox APIは5秒間に25回のリクエストを許可しています。このサーバーには、この制限を超えないように自動的なレート制限が組み込まれています。
開発
npm run dev
npm run build
npm run clean
公開と配布
このサーバーは、簡単なインストールのために複数のレジストリに公開されています。
動作原理
- ユーザーがClaude Desktopに設定を追加する
npx fortnox-mcp-server を使用して
- Claude Desktopがサーバーを起動する npxを介して(npmから最新バージョンをダウンロード)
- サーバーが認証する 環境変数からのOAuth2資格情報を使用してFortnoxと認証
- Claudeがツールを使用できるようになる
fortnox_list_invoices、fortnox_create_customer などのツールを使用できるようになります。
- サーバーがAPI呼び出しを処理する FortnoxへのAPI呼び出しを処理し、自動的なトークン更新とレート制限を行います。
新しいバージョンのリリース
新しいバージョンをリリースするには、リリーススクリプトを使用します。
npm run release:patch
npm run release:minor
npm run release:major
リリーススクリプトは自動的に以下のことを行います。
package.json のバージョンを更新する
- MCPレジストリ用の
server.json を更新する
- プロジェクトをビルドする
- リリースをコミットし、タグ付けする
- npmに公開する
- MCPレジストリに公開する
- GitHubにプッシュする
リリースの前提条件:
npm login - npmにログインする
mcp-publisher login github - MCPレジストリにログインする
- クリーンなgitワーキングディレクトリ
ユーザーは自動的に更新を取得する
新しいバージョンを公開すると、npx -y fortnox-mcp-server を実行しているユーザーは、次にClaude Desktopを再起動したときに自動的に最新バージョンを取得します。
独自のリモートサーバーをデプロイする
Fortnox MCPサーバーの独自インスタンスをホストしたい場合は、以下の手順に従ってください。
Vercelにデプロイする

1. 前提条件
2. 環境変数を設定する
Vercelプロジェクトの設定で、以下の環境変数を追加します。
| 変数 |
説明 |
AUTH_MODE |
remote に設定 |
SERVER_URL |
VercelのデプロイURL(例: https://your-app.vercel.app) |
JWT_SECRET |
トークンを署名するためのランダムなシークレット文字列(openssl rand -hex 32 で生成) |
FORTNOX_CLIENT_ID |
FortnoxアプリのクライアントID |
FORTNOX_CLIENT_SECRET |
Fortnoxアプリのクライアントシークレット |
UPSTASH_REDIS_REST_URL |
Upstash Redis REST URL |
UPSTASH_REDIS_REST_TOKEN |
Upstash Redis RESTトークン |
3. Fortnox OAuthコールバックを設定する
Fortnoxアプリの設定で、以下のリダイレクトURIを追加します。
https://your-app.vercel.app/oauth/fortnox/callback
4. デプロイする
vercel --prod
サーバーエンドポイント
| エンドポイント |
説明 |
GET /health |
ヘルスチェック |
GET /.well-known/oauth-authorization-server |
OAuthメタデータ |
POST /authorize |
OAuthフローを開始する |
POST /token |
コードをトークンに交換する |
GET /oauth/fortnox/callback |
Fortnox OAuthコールバック |
POST /mcp |
保護されたMCPエンドポイント |
アーキテクチャ
┌─────────────────────────────────────────────────────────────┐
│ fortnox-mcp-server │
├─────────────────────────────────────────────────────────────┤
│ Mode: AUTH_MODE=local | remote │
├─────────────────────────────────────────────────────────────┤
│ │
│ LOCAL MODE REMOTE MODE │
│ ─────────── ─────────── │
│ • Env var tokens • OAuth flow │
│ • Single user • Multi-user │
│ • stdio or HTTP • HTTP only │
│ • Token storage (Redis) │
│ │
└─────────────────────────────────────────────────────────────┘
📄 ライセンス
MIT