mcpField
F

fortnox

ローカル
github.com/jakobwennberg金融データ4526 週間前に更新

fortnox について

Fortnox MCP サーバーは、スウェーデンの会計システム Fortnox の API に LLM を接続するサーバーです。請求書、顧客、仕入先、受注、勘定科目、伝票の管理に加え、経営分析にも対応します。リモートモードはブラウザでの認可のみで利用でき、ローカルモードでは自社の Fortnox アプリ認証情報を使ってセルフホストできます。

主な機能

  1. 01顧客、請求書、仕入先、伝票などの主要オブジェクトを網羅
  2. 02請求書の記帳、取消、貸方票の作成
  3. 03買掛金の年齢分析と未払い請求書のレポート
  4. 04キャッシュフロー予測と販売ファネルの分析ツール
  5. 05Fortnox API に合わせた組み込みのレート制限

活用シーン

  1. 01LLM に未払い請求書の一覧と督促文の作成を依頼
  2. 02自然言語による顧客請求書や手動伝票の作成
  3. 03期間ごとの売上、粗利率、経費の比較
  4. 04仕入先請求書の承認状況と買掛金の確認

MCP 対応

本サーバーはリモート MCP サーバーとして Claude に追加できるほか、stdio や HTTP でローカル実行もでき、Fortnox 関連のツールを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"jakobwennberg-fortnox": {
"command": "npx",
"args": [
"-y",
"fortnox-mcp-server"
],
"env": {
"FORTNOX_CLIENT_ID": "<FORTNOX_CLIENT_ID>",
"FORTNOX_CLIENT_SECRET": "<FORTNOX_CLIENT_SECRET>",
"FORTNOX_REFRESH_TOKEN": "<FORTNOX_REFRESH_TOKEN>"
}
}
}
}
起動コマンドnpx -y fortnox-mcp-server
設定が必要な環境変数
FORTNOX_CLIENT_IDシークレットYour Fortnox app client ID from developer.fortnox.se
FORTNOX_CLIENT_SECRETシークレットYour Fortnox app client secret
FORTNOX_REFRESH_TOKENシークレットOAuth2 refresh token obtained from Fortnox authorization flow

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmfortnox-mcp-server1.0.0

ツール

28

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
pageintegerいいえページ分割のページ番号
limitintegerいいえ返す結果の最大数(1-100)
filterenumいいえ顧客ステータスで絞り込みますactive | inactive
search_namestringいいえ名前で顧客を検索します(部分一致)
customer_numberstringいいえ指定した顧客番号で絞り込みます
response_formatenumいいえ出力形式:'markdown' または 'json'markdown | json
organisation_numberstringいいえ組織番号で絞り込みます

詳細

Fortnox MCP Server

Fortnox のスウェーデン会計システムと連携する MCP(Model Context Protocol)サーバーです。このサーバーを使うと、LLM が Fortnox と連携して請求書、顧客、仕入先、注文、勘定科目、伝票を管理できるほか、ビジネスインテリジェンス分析も利用できます。

2 つの利用方法

モード最適な利用者セットアップ
リモートモードエンドユーザーURL を追加して、ブラウザーで認証するだけです
ローカルモード開発者、セルフホストする方環境変数を設定します

クイックスタート:リモートモード(推奨)

Fortnox MCP を最も簡単に利用できる方法です。認証情報は不要で、ブラウザーで認証するだけです。

オプション A:Claude.ai(Web)に追加する
  1. claude.ai にアクセスします
  2. 設定 → インテグレーション → インテグレーションを追加 に移動します
  3. URL を入力します:https://fortnox-mcp.vercel.app/mcp
  4. 読み込みが完了するまで待ち、接続をクリックしてアクセスを許可します
オプション 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 を再起動します。Fortnox で何かするよう Claude に初めて依頼すると、Fortnox アカウントへのアクセスを許可するためのブラウザーウィンドウが開きます。認証が完了すれば、準備完了です!


クイックスタート:ローカルモード(セルフホスト)

サーバーをローカルで実行したい開発者や、自分の Fortnox アプリの認証情報を使いたい方に適しています。

1. Fortnox の認証情報を取得する
  1. Fortnox Developer Portal に登録します
  2. アプリケーションを作成して、Client ID と Client Secret を取得します
  3. OAuth2 フローを完了して、Refresh Token を取得します
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 認証情報の取得
  1. Fortnox Developer Portal で開発者として登録します
  2. 新しいアプリケーションを作成し、Client ID と Client Secret を取得します
  3. OAuth2 認可フローを完了して、リフレッシュトークンを取得します
  4. 環境変数を設定します

使用方法

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 件のリクエストが許可されています。このサーバーには、制限を超過しないよう自動レート制限機能が組み込まれています。

開発

# Run in development mode with auto-reload
npm run dev

# Build for production
npm run build

# Clean build artifacts
npm run clean

公開と配布

このサーバーは、簡単にインストールできるよう複数のレジストリで公開されています。

レジストリURL用途
npmnpmjs.com/package/fortnox-mcp-servernpx によるパッケージ配布
MCP Registryregistry.modelcontextprotocol.ioMCP サーバーの公式ディスカバリー
GitHubgithub.com/jakobwennberg/fortnox-mcpソースコード
動作の仕組み
  1. ユーザーが設定を追加し、Claude Desktop に npx fortnox-mcp-server を指定します
  2. Claude Desktop が npx 経由でサーバーを起動します(npm から最新バージョンをダウンロードします)
  3. サーバーが認証を行います。環境変数の OAuth2 認証情報を使用して Fortnox に接続します
  4. Claude がツールを使用できるようになります。たとえば、fortnox_list_invoices、fortnox_create_customer などです
  5. サーバーが Fortnox への API 呼び出しを処理します。トークンの自動更新とレート制限も含まれます
トークンの永続化(ローカルモード)

Fortnox のリフレッシュトークンは使い捨てです。トークンを更新するたびに新しいトークンが返されます。サーバーは最新のリフレッシュトークンを ~/.fortnox-mcp/tokens.json に自動的に永続化するため、手動で設定を更新しなくても、プロセスの再起動後も使用できます。

  • 初回起動時、サーバーは環境変数または設定から FORTNOX_REFRESH_TOKEN を読み込みます
  • トークンの更新後、新しいリフレッシュトークンが ~/.fortnox-mcp/tokens.json に保存されます
  • 以降の再起動では、永続化されたトークン(常に最新のもの)が使用されます
  • 永続化されたファイルが存在しない場合や破損している場合、サーバーは環境変数にフォールバックします

セキュリティのため、トークンファイルは制限付き権限(0600)で作成されます。

新しいバージョンのリリース

新しいバージョンをリリースするには、リリーススクリプトを使用します。

# Bug fixes (1.0.0 → 1.0.1)
npm run release:patch

# New features (1.0.0 → 1.1.0)
npm run release:minor

# Breaking changes (1.0.0 → 2.0.0)
npm run release:major

リリーススクリプトは次の処理を自動的に行います。

  1. package.json のバージョンを更新します
  2. MCP Registry 向けに server.json を更新します
  3. プロジェクトをビルドします
  4. リリースをコミットしてタグ付けします
  5. npm に公開します
  6. MCP Registry に公開します
  7. GitHub にプッシュします

リリースの前提条件:

  • npm login - npm にログイン済みであること
  • mcp-publisher login github - MCP Registry にログイン済みであること
  • Git の作業ディレクトリがクリーンであること
ユーザーは自動的に更新を受け取ります

新しいバージョンを公開すると、npx -y fortnox-mcp-server を実行しているユーザーは、次回 Claude Desktop を再起動したときに自動的に最新バージョンを取得します。


独自のリモートサーバーをデプロイする

Fortnox MCP サーバーの独自インスタンスをホストしたい場合は、以下の手順に従ってください。

Vercel にデプロイする

Vercel でデプロイ

1. 前提条件
2. 環境変数を設定する

Vercel プロジェクトの設定で、次の環境変数を追加します。

変数説明
AUTH_MODEremote に設定します
SERVER_URLVercel のデプロイ URL(例:https://your-app.vercel.app)
JWT_SECRETトークンへの署名に使用するランダムなシークレット文字列(openssl rand -hex 32 で生成します)
FORTNOX_CLIENT_IDFortnox アプリのクライアント ID
FORTNOX_CLIENT_SECRETFortnox アプリのクライアントシークレット
UPSTASH_REDIS_REST_URLUpstash Redis の REST URL
UPSTASH_REDIS_REST_TOKENUpstash 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-serverOAuth メタデータ
POST /authorizeOAuth フローを開始
POST /tokenコードをトークンと交換
GET /oauth/fortnox/callbackFortnox 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                 │
│   • Auto-persisted tokens       • Token storage (Redis)     │
│     (~/.fortnox-mcp/)                                       │
│                                                             │
└─────────────────────────────────────────────────────────────┘

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。