@frihet/mcp Server について
@frihet/mcp Serverは、MCP対応クライアントをFrihetに接続し、請求書、経費、顧客、見積もりなどの業務記録を管理します。ローカル接続とホスト型接続を選べます。
主な機能
- 01請求書と見積もりの作成・照会
- 02業務経費の記録と確認
- 03顧客とCRM活動の管理
- 04製品および業務記録の操作
- 05税務および電子請求書への対応
活用シーン
- 01顧客とサービス内容から請求書を下書き
- 02経費を記録して支出を確認
- 03顧客情報の更新とやり取りの記録
- 04見積もりの作成と保留中業務の確認
MCP 対応
Frihetの業務管理操作をMCPツールとして公開し、ローカルプロファイルではリソースとプロンプトも提供します。クライアントはAPIキーまたはOAuthで、ローカルnpmパッケージかホスト型エンドポイントに接続できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.frihet.io/mcpclaude mcp add --transport http frihet https://mcp.frihet.io/mcp{"mcpServers":{"frihet":{"type":"http","url":"https://mcp.frihet.io/mcp"}}}Cursor で開く{"servers":{"frihet":{"type":"http","url":"https://mcp.frihet.io/mcp"}}}VS Code で開く{"mcpServers":{"frihet":{"type":"http","url":"https://mcp.frihet.io/mcp"}}}{"mcpServers":{"frihet":{"serverUrl":"https://mcp.frihet.io/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
ビジネス管理向けのAIネイティブなMCPサーバー。
AIネイティブなビジネス管理向けMCPサーバー。
Claude · ChatGPT · Cursor · Windsurf · Cline · Antigravity · Codex · Copilot · Gemini CLIに対応 — MCP互換クライアントならどれでも利用できます。
配布
| チャネル | 状態 | インストール |
|---|---|---|
| npm | 公開中 | npx @frihet/mcp-server |
| リモートエンドポイント | 公開中 | https://mcp.frihet.io/mcp(インストール不要、OAuth または API キー) |
| Smithery | 公開中 | smithery.ai/servers/frihet/frihet-mcp |
| MCP Registry | 公開中 | registry.modelcontextprotocol.io |
| GitHub MCP Registry | 公開中 | github.com/mcp/io.frihet/erp |
| Glama | 公開中 | glama.ai/mcp/servers/Frihet-io/frihet-mcp |
| mcp.so | 自動インデックス(未検証) | mcp.so — npm と GitHub からインデックスを作成 |
| PulseMCP | 自動インデックス(未検証) | pulsemcp.com — npm と GitHub からインデックスを作成 |
| Cursor Marketplace | 近日公開 | cursor.com/marketplace |
| ChatGPT Apps | 近日公開 | chatgpt.com |
| Anthropic Claude Directory | 近日公開 | claude.ai/settings/connectors |
実際の提供内容: カタログには156個の正規オペレーションが含まれています。ローカルのフルプロファイルでは161個のツール名、11個のリソース、10個のプロンプトが提供されます(156個の正規オペレーションと5個の財務エイリアス)。ホスト型のグループ化プロファイルでは164個のツール名、7個のリソース、10個のプロンプトが提供されます(同じツール名に検出用ツール3個を追加し、API 連携リソースはローカル専用のままです)。個別にレビューされた OpenAI プロファイルでは33個のツール名、0個のリソース、0個のプロンプトが提供されます。カタログに含まれているからといって、すべてのワークスペースで対応する API が有効になっているとは限りません。
これは何ですか
AI アシスタントをFrihetに接続する MCP サーバーです。話しかけるだけで請求書を作成できます。自然言語で経費を検索できます。IDE からビジネス全体を管理できます。
You: "Create an invoice for TechStart SL, 40 hours of consulting at 75 EUR/hour, due March 1st"
Claude: Done. Invoice INV-2026-089 created. Total: 3,000.00 EUR + 21% IVA = 3,630.00 EUR.
156個の正規オペレーション。5個の財務エイリアス。10個のプロンプト。ローカルパッケージでは11個のリソースを提供し、ホスト型 Worker では静的リソース7個のみを意図的に提供します。API 連携されたワークスペースリソースはローカルプロファイル専用です。
すぐに試す(サインアップ不要)
設定不要で、すぐに試せます。アカウントも API キーも必要ありません。
FRIHET_DEMO=1 npx -y @frihet/mcp-server
デモモードでは、サーバーは現実的なサンプルデータ(IVA/IGIC 対応のスペインの請求書、経費、クライアント、商品、銀行口座など)を使用して応答します。各レコードの ID にはdemo_が付き、起動時にサーバーはDEMO MODEのバナーを表示します。データは一切保存されず、ネットワーク呼び出しも行われません。書き込みはシミュレーションされ、電子請求書、VeriFactu、TicketBAI、FACe、給与計算などの税務処理は、シミュレーションであることが明記された結果を返します。税務当局への実際の送信は行われません。
実際のデータを使う準備ができたら、フラグを外してキーを追加してください(app.frihet.io → Settings → API keys)。下記のインストールをご覧ください。
AI エージェント向け
このリポジトリをページではなくエージェントとして読んでいる場合、必要な情報はすべて実行中のサーバーから生成され、機械可読形式で提供されています。この README を解析する必要はありません。
| 内容 | 場所 |
|---|---|
| オンボーディング契約:クライアントごとのクイックスタート、認証、安全なワークフロー、人間の権限が必要なツール一覧、エラーからの復旧 | docs/agent-onboarding.json — npm パッケージにも同梱 |
ツールごとの機能情報:callability、writesFrihet、externalInteraction、externalSideEffects | tools/list のすべてのエントリーにある _meta["io.frihet/capability"] |
| 接続後の動作方法 | initialize が返す instructions 文字列 — クライアントから自動的に渡されます |
この契約に含まれるルールを、3つにまとめると次のとおりです。
- 行動する前に状況を把握します。
get_business_contextとfrihet://tax/ratesリソースを使って、適切な税務処理を判断します。スペインの税率を記憶に頼ってはいけません。 - 下書きを作成し、提示して、そこで止めます。
create_invoice、create_quote、create_credit_noteは、すべてデフォルトでstatus=draftです。税務番号もハッシュもなく、税務当局にも何も送信されません。下書きを提示して、判断を人に委ねます。 - 人間の権限を自分のものと見なしてはいけません。
externalSideEffectsが空でないツールは、クライアントの受信トレイ、Webhook、資金、または AEAT/VeriFactu/TicketBAI/FACe に影響します。さらに、confirm=trueも指定するツールがいくつかあります。このフラグは人間の決定を記録するためのものです。自分の計画を実行するために設定してはいけません。
docs/agent-onboarding.json は npm run generate:agent-onboarding によって稼働中のサーバーの情報から再生成され、CI では npm run gate:agent-onboarding によって検証されるため、ツール一覧や件数がサーバーと食い違うことはありません。
インストール
ローカルの npm/stdio インストールには、2026年10月の Node セキュリティ修正に対応した Node 22.23.4+(22.x)、24.22.1+(24.x)、または 26.12.1+(26.x) が必要です。Node 20 はサポート終了です。サーバーを起動する前に、MCP クライアントが使用する Node ランタイムをアップグレードしてください。CI では Node 22.23.4 を使用しています。
このソースの変更によって、公開済みの npm パッケージメタデータやユーザーがインストール済みの Node ランタイムが更新されることはありません。パッケージメタデータの更新には別途 npm リリースが必要ですが、ユーザーは今すぐランタイムをアップグレードできます。リモートの Cloudflare Worker には、独立したランタイムとリリースプロセスがあります。
ワンライナー(Claude Code、Cursor、Copilot、Codex、Windsurf、Gemini CLI など)
npx skills add Frihet-io/frihet-mcp
Claude Code プラグイン(スキルと MCP サーバーをまとめてインストール)
このリポジトリは Claude Code プラグイン(frihet-erp)でもあります。インストールすると、業務管理スキルと MCP サーバーの両方が設定されます。
# Try it locally
claude --plugin-dir /path/to/frihet-mcp
マーケットプレイスでの提供は準備中です。今すぐ接続するには、上記のローカルプラグインコマンド、または下記の Claude Code MCP コマンドを使用してください。
スキルの呼び出し:/frihet-erp:frihet-mcp。同梱の .mcp.json は npx 経由で @frihet/mcp-server を起動します。環境に FRIHET_API_KEY を設定してください(app.frihet.io → Settings → API keys で取得できます)。
Claude プラグインのポータブルプレビューには、既存の公開リモート MCP と連携する、実際の売掛金、書類作成、月次レビューのスキルが同梱されています。Claude Code で plugins/claude/frihet-erp を読み込むか、チャット/Cowork にそのフォルダーの ZIP をアップロードしてください。スキルは動作をガイドしますが、ホストされたカタログをフィルタリングしたり、Directory の承認を得たりするものではありません。上記のルートのローカル MCP 設定では、従来の API キー設定が引き続き使用されます。
Claude Code — ワンコマンド
claude mcp add frihet -s user -e FRIHET_API_KEY=fri_your_key_here -- npx -y @frihet/mcp-server
claude mcp list # verify: frihet ✓ Connected
設定ファイルは CLI が管理するため、手作業で編集する必要はなく、パスを間違えることもありません。(ユーザースコープでは ~/.claude/mcp.json ではなく ~/.claude.json に書き込みます。)
Codex CLI — ワンコマンド
codex mcp add frihet --env FRIHET_API_KEY=fri_your_key_here -- npx -y @frihet/mcp-server
codex mcp list # verify
Codex の設定形式は JSON ではなく TOML です。codex mcp add は次の内容を書き込みます。
[mcp_servers.frihet]
command = "npx"
args = ["-y", "@frihet/mcp-server"]
[mcp_servers.frihet.env]
FRIHET_API_KEY = "fri_your_key_here"
JSON の
mcpServersブロックを~/.codex/config.tomlに貼り付けると、TOML の解析エラーが発生し、このサーバーだけでなく Codex の設定全体が使えなくなります。上記のコマンドを使用してください。
Claude Desktop、Cursor、Windsurf、Cline — JSON 設定
{
"mcpServers": {
"frihet": {
"command": "npx",
"args": ["-y", "@frihet/mcp-server"],
"env": {
"FRIHET_API_KEY": "fri_your_key_here"
}
}
}
}
| ツール | 設定ファイル |
|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Cursor | .cursor/mcp.json or ~/.cursor/mcp.json |
| Windsurf | ~/.windsurf/mcp.json |
| Cline | VS Code settings or .cline/mcp.json |
上記の JSON はこの 4 つのクライアントで同一です。異なるのはファイルパスだけです。Claude Code と Codex はこの表には含まれていません。上記に示した CLI コマンドを使って、それぞれ独自の設定を管理します。
リモート(インストール不要)
ホストされたエンドポイント mcp.frihet.io を使用します。ローカルの依存関係は不要で、Cloudflare Workers 上で動作します。
API キーを使用する場合:
{
"mcpServers": {
"frihet": {
"type": "streamable-http",
"url": "https://mcp.frihet.io/mcp",
"headers": {
"Authorization": "Bearer fri_your_key_here"
}
}
}
}
OAuth 2.0 + PKCE を使用する場合(ブラウザーでログイン、API キーは不要):
OAuth に対応しているクライアント(Claude Desktop、Smithery など)は、https://mcp.frihet.io/mcp に直接接続し、ブラウザーで認証できます。サーバーは、PKCE を用いた OAuth 2.1 の認可コードフロー全体を実装しています。
API キーを取得する
- app.frihet.io にログインします
- Settings > API に移動します
- Create API key をクリックします
- キー(
fri_で始まります)をコピーします。一度しか表示されません
できること
ERP と対話できます。以下は宣伝文句ではなく、実際のプロンプトです。
請求書
"Show me all unpaid invoices"
"Create an invoice for Acme SL with 10h of consulting at 95/hour"
"Mark invoice abc123 as paid"
"How much has ClientName been invoiced this year?"
経費
"Log a 59.99 EUR expense for Adobe Creative Cloud, category: software, tax-deductible"
"List all expenses from January"
"What did I spend on travel last quarter?"
クライアント
"Add a new client: TechStart SL, NIF B12345678, email [email protected]"
"Show me all my clients"
"Update ClientName's address to Calle Mayor 1, Madrid 28001"
CRM
"Add a contact to Acme SL: Ana Garcia, CTO, [email protected]"
"Log a call with TechStart: discussed Q2 proposal, they're interested in upgrade"
"Add a note to ClientName: prefers invoices in English, payment NET 30"
"Show me all activities for Acme SL"
見積もり
"Create a quote for Design Studio: logo design (2000 EUR) + brand guidelines (3500 EUR)"
"Show me all pending quotes"
Webhook
"Set up a webhook to notify https://my-app.com/hook when invoices are paid"
"List all my active webhooks"
期待できること
この MCP は構造化データインターフェースです。自然言語で実行したいことを伝えると、AI が Frihet の業務記録を作成、検索、または変更します。156 件の標準操作の大半は REST API を介した CRUD 操作で、残りは読み取り専用の概要と、税務・電子請求書関連の操作です。別名と検出名は個別に数えられています。
優れた機能:
"Create an invoice for TechStart SL, 40h consulting at 75 EUR/h" --> creates the invoice
"Show unpaid invoices over 1,000 EUR" --> queries and filters
"Log a 120 EUR expense for the Madrid train, category: travel" --> records the expense
"Update client Acme's email to [email protected]" --> modifies the record
対応していない機能:
- OCR や PDF のスキャン — 請求書の画像をアップロードして読み取らせることはできません
- ファイルのアップロードや添付ファイルの処理
- あらゆる種類の画像処理
紙の請求書や領収書をデジタル化する必要がある場合は、まずデータを抽出します(例:Claude Vision API、専用の OCR サービス、または手動入力)。その後、MCP を使って記録を作成します。
1. Scan/photograph the invoice
2. Use Claude Vision: "Read this invoice image and extract the vendor, items, amounts, and dates"
3. Then: "Create an expense in Frihet for [extracted data]"
カタログの操作(156)
請求書(12)
| ツール | 機能 |
|---|---|
list_invoices | ページネーションを使用して請求書を一覧表示します |
get_invoice | ID を指定して請求書の全詳細を取得します |
create_invoice | 明細項目を含む新しい請求書を作成します |
update_invoice | 請求書の任意の項目を更新します |
delete_invoice | 下書きの請求書を削除します。送信済みまたは支払い済みの請求書は削除されず、キャンセルされます(confirm=true が必要) |
search_invoices | クライアント名、日付、またはステータスで請求書を検索します |
send_invoice | 請求書をメールでクライアントに送信します(PDF 添付)— 第三者に届くため、confirm=true が必要です |
mark_invoice_paid | オプションで支払日を指定して、請求書を支払い済みにします |
get_invoice_pdf | 上限付きの請求書 PDF バイト列を Base64 形式で取得します |
get_invoice_einvoice | 請求書の上限付き XML または Factur-X PDF バイト列を取得します |
create_credit_note | 既存の請求書に紐付いたクレジットノートを作成します |
apply_late_fee | 支払期限を過ぎた請求書に遅延手数料を適用します |
経費(5)
| ツール | 機能 |
|---|---|
list_expenses | ページネーションを使用して経費を一覧表示します |
get_expense | 経費の詳細を取得します |
create_expense | 新しい経費を記録します |
update_expense | 経費を変更します |
delete_expense | 経費を削除します |
クライアント(5)
| ツール | 機能 |
|---|---|
list_clients | すべてのクライアントを一覧表示します |
get_client | クライアントの詳細を取得します |
create_client | 新しいクライアントを登録します |
update_client | クライアント情報を更新します |
delete_client | クライアントを削除します |
CRM:連絡先(3)
| ツール | 機能 |
|---|---|
list_client_contacts | クライアントのすべての連絡先を一覧表示します |
create_client_contact | クライアントに担当者を追加します |
delete_client_contact | クライアントから連絡先を削除します |
CRM:アクティビティ(2)
| ツール | 説明 |
|---|---|
list_client_activities | CRM アクティビティ(通話、メール、会議、タスク)を一覧表示します |
log_client_activity | クライアントとの通話、メール、会議、タスクを記録します |
CRM:メモ(3)
| ツール | 説明 |
|---|---|
list_client_notes | クライアントのすべてのメモを一覧表示します |
create_client_note | クライアントに自由形式のメモを追加します |
delete_client_note | クライアントのメモを削除します |
製品(5)
| ツール | 説明 |
|---|---|
list_products | 製品とサービスを一覧表示します |
get_product | 製品の詳細を取得します |
create_product | 製品またはサービスを追加します |
update_product | 価格または詳細を更新します |
delete_product | 製品を削除します |
見積書(6)
| ツール | 説明 |
|---|---|
list_quotes | すべての見積書を一覧表示します |
get_quote | 見積書の詳細を取得します |
create_quote | 新しい見積書の下書きを作成します |
update_quote | 見積書を変更します |
delete_quote | 配信、返信、添付ファイル、または変換の証拠がない、問題のない下書きのみを削除します。保護対象の下書きは拒否し、下書き以外はキャンセルします(confirm=true が必要) |
send_quote | クライアントに見積書をメールで送信し、承認を求めます |
Webhook(6)
| ツール | 説明 |
|---|---|
list_webhooks | 設定済みの Webhook を一覧表示します |
get_webhook | Webhook の詳細を取得します |
create_webhook | 新しい Webhook エンドポイントを登録します |
update_webhook | イベントまたは URL を変更します |
delete_webhook | Webhook を削除します |
test_webhook | 設定済みの Webhook エンドポイントにテスト用ペイロードを送信します |
インテリジェンス(4)
| ツール | 説明 |
|---|---|
get_business_context | 全体のスナップショット:プロフィール、プラン、最近のアクティビティ、上位クライアント、当月の情報 |
get_monthly_summary | 月次損益:収益、経費、利益、納税額、収益別の上位クライアント |
get_quarterly_taxes | 四半期の税務準備:Modelo 303/130 の項目、徴収額と控除可能額、納税額 |
duplicate_invoice | 請求書を複製して定期請求に使用します(項目、クライアント、税をコピーし、下書きとして作成) |
電子請求書(10)
| ツール | 説明 |
|---|---|
send_einvoice | 11 種類の形式(XRechnung、Factur-X、FatturaPA、PEPPOL、Facturae、UBL、CII)で、メール/Chorus Pro/SDI/PEPPOL/ダウンロード経由で請求書を送信します |
get_einvoice_status | 成功または失敗するまで Hatchet ワークフローの実行状態をポーリングします。ackId、XML URL、PDF/A-3 URL を返します |
validate_einvoice_xml | 生の XML を形式スキーマおよび Schematron ルール(KOSIT/Mustang/XSD/Schematron)に照らして検証します |
export_datev | CP1252 エンコーディングの DATEV EXTF(Buchungsstapel/Debitoren/Kreditoren)として会計データをエクスポートします |
einvoice_export | アーカイブまたは統合向けに、機械可読形式(JSON/XML)で電子請求書データをエクスポートします |
face_submit | 請求書を FACe(スペインの企業間取引向け政府電子請求書プラットフォーム)に送信します |
face_status | 送信済み請求書の FACe での送信状態をポーリングします |
ticketbai_submit | TicketBAI の税務記録をバスク地方の税務当局(Hacienda)に送信します |
ticketbai_status | バスク地方の税務当局における TicketBAI の送信状態をポーリングします |
ksef_submit | NOT_DEPLOYED — 請求書を KSeF(ポーランド)に送信します — スタブ:Frihet-ERP では転送機能がインフラレベルで準備されていますが、稼働中のエンドポイントとしてはまだ公開されていません(本番環境での利用は KSeF 証明書の取得が条件です)。有効化されるまでは「利用不可」と明記したエラーを返します |
時間追跡(6)
| ツール | 説明 |
|---|---|
list_time_entries | ユーザー、プロジェクト、期間、請求対象かどうかで絞り込んで時間記録を一覧表示します |
get_time_entry | ID を指定して、単一の時間記録の詳細を取得します |
create_time_entry | プロジェクトの作業時間を記録します(請求対象フラグ、説明、日付) |
update_time_entry | 既存の時間記録の任意の項目を更新します(PATCH セマンティクス) |
delete_time_entry | 時間記録を論理削除します(confirm=true が必要) |
get_time_summary | 期間の合計時間、請求対象時間、請求対象外時間を集計します。必要に応じて groupBy(ユーザー/プロジェクト/日)を指定できます |
定期請求書(8)
| ツール | 機能 |
|---|---|
list_recurring_invoices | 定期請求書テンプレートをすべて一覧表示します(有効/一時停止で絞り込み可能) |
get_recurring_invoice | IDを指定して、定期請求書テンプレートの詳細を取得します |
create_recurring_invoice | 定期請求書テンプレートを新規作成します(日次/週次/月次/四半期ごと/年次) |
update_recurring_invoice | テンプレートの項目を更新します。変更は今後生成される請求書にのみ反映されます |
pause_recurring_invoice | 有効なテンプレートを一時停止します。一時停止中は請求書が生成されません |
resume_recurring_invoice | 一時停止中のテンプレートを再開します。次回の請求書は、次の予定サイクルに生成されます |
delete_recurring_invoice | テンプレートを完全に削除します(confirm=true が必要です) |
run_recurring_now | 全体モードおよびグループモードで、明示的に confirm=true を指定して次の定期請求書を生成します。ワークスペースの設定によっては、税務上の発行、提出、Webhook が実行される場合があります |
チーム管理(4)
| ツール | 機能 |
|---|---|
list_team_members | 有効なメンバーと保留中の招待を一覧表示します(オーナーを除く) |
invite_team_member | メールアドレスとロール(admin/editor/accountant/viewer)を指定して、新しいメンバーを招待します |
update_team_member_role | 既存メンバーのロール(admin/editor/accountant/viewer)を変更します |
remove_team_member | ワークスペースからメンバーを削除します(confirm=true が必要です) |
Gestoria — 会計士(5)
| ツール | 機能 |
|---|---|
gestoria_message_send | コンテキストに応じたスレッド(documentRequest/filingItem/obligation)にメッセージを送信します |
gestoria_messages_list | スレッド内のメッセージを新しい順に一覧表示します。before を使って過去にさかのぼってページネーションできます |
gestoria_template_create | 変数と期限日のオフセットを指定して、再利用可能な書類依頼テンプレートを作成します |
gestoria_template_bulk_send | 1回の呼び出しで、最大500件のクライアントワークスペースにテンプレートを一括送信します |
gestoria_aging_consolidated | クライアント横断の売掛金滞留レポート(区分、ワークスペース別の内訳、期限超過額の上位項目)を取得します |
監査 GL(3)
| ツール | 機能 |
|---|---|
frihet_gl_entry_approve | GL仕訳を承認します(gestor/admin のみ — TRUST AREA) |
frihet_gl_entry_reject | GL仕訳を必須の理由とともに却下します(TRUST AREA) |
frihet_gl_entry_audit_log | GL仕訳の完全な監査証跡を取得します |
ホワイトラベルポータルのドメイン(3)
| ツール | 機能 |
|---|---|
frihet_portal_domain_add | クライアントポータルにカスタムドメインを追加します(DNS CNAME レコードを返します) |
frihet_portal_domain_verify | カスタムポータルドメインの DNS 伝播を検証します |
frihet_portal_domain_remove | カスタムポータルドメインを削除します(デフォルトの Frihet サブドメインに戻ります) |
セルフオンボーディングと VIES(2)
| ツール | 機能 |
|---|---|
frihet_portal_onboard_link_generate | クライアント候補者向けに、有効期限付きのセルフオンボーディングリンクを生成します |
frihet_tax_id_vies_lookup | VIES を通じて EU VAT 番号(CIF intracomunitario)を検証します |
IGIC — カナリア諸島の間接税(4)
| ツール | 機能 |
|---|---|
frihet_modelo_415_summary | M415 年間取引(€3,005超。M347に相当するカナリア諸島の申告) — 未デプロイのため、NOT_DEPLOYED を返します |
frihet_modelo_425_summary | カナリア諸島の事業者向け M425 年間 IGIC 概要 — 未デプロイのため、NOT_DEPLOYED を返します |
frihet_modelo_418_summary | 企業グループ特別制度における M418 月次個別 IGIC 申告 — 未デプロイのため、NOT_DEPLOYED を返します |
frihet_aiem_calculate | カナリア諸島向け AIEM(輸入税)の計算 — 未デプロイのため、NOT_DEPLOYED を返します |
Impuesto sobre Sociedades — 法人税(2)
| ツール | 機能 |
|---|---|
frihet_modelo_200_summary | Modelo 200 年次 IS 申告 — 未デプロイのため、NOT_DEPLOYED を返します |
frihet_modelo_202_summary | Modelo 202 分割納付(1P/2P/3P) — 未デプロイのため、NOT_DEPLOYED を返します |
銀行のカテゴリ分類ルール(2)
| ツール | 内容 |
|---|---|
frihet_bank_rules_list | 銀行の自動カテゴリ分類ルール(条件+アクション+ステータス)をすべて一覧表示します |
frihet_bank_rule_create | 摘要、金額、取引先に基づいて取引を自動カテゴリ分類する新しいルールを作成します |
入金(7)
| ツール | 内容 |
|---|---|
list_deposits | ページネーションを使用して入金を一覧表示します |
get_deposit | ID を指定して入金の詳細を取得します |
create_deposit | クライアントからの新しい入金を記録します |
update_deposit | 入金のフィールドを更新します |
delete_deposit | 入金を削除します(confirm=true が必要です) |
apply_deposit | 入金残高を請求書に充当します |
refund_deposit | confirm=true を指定して、Frihet の帳簿に入金の返金を記録します。任意の amount を指定するとその金額分を記録し、省略すると返金可能な残額を記録します。送金は行いません |
仕入先(5)
| ツール | 内容 |
|---|---|
list_vendors | すべての仕入先/サプライヤーを一覧表示します |
get_vendor | 仕入先の詳細を取得します |
create_vendor | 新しい仕入先を追加します |
update_vendor | 仕入先情報を更新します |
delete_vendor | 仕入先を削除します |
銀行取引(5)
| ツール | 内容 |
|---|---|
list_bank_accounts | 接続済みの銀行口座を一覧表示します |
get_bank_account | 銀行口座の詳細を取得します |
list_transactions | フィルターを使用して銀行取引を一覧表示します |
categorize_transaction | 取引にカテゴリと費用/収入の種別を割り当てます |
match_transaction_to_invoice | 銀行取引を既存の請求書に紐付けます |
税務 — スペインの税務モデル(7)
| ツール | 内容 |
|---|---|
get_modelo_303_summary | 四半期ごとの IVA 申告(Modelo 303)— 受領分と控除可能分、納付純額 |
get_modelo_130_summary | 自営業者向け四半期ごとの IRPF 予定納税(Modelo 130) |
get_modelo_390_summary | 年次 IVA サマリー(Modelo 390) |
get_modelo_180_summary | 賃貸に関する年次源泉徴収サマリー(Modelo 180)— デプロイされていません。NOT_DEPLOYED を返します |
get_modelo_347_summary | 3,005€ を超える第三者との年間取引(Modelo 347) |
verifactu_status | 税務記録の VeriFactu 送信ステータスを取得します |
verifactu_resubmit | 却下された VeriFactu 税務記録を再送信します |
ticketbai_status | TicketBAI の送信ステータスを確認します — 電子請求(10)からの相互参照。このセクションの 7 には含まれません |
バケーションレンタル/宿泊(5)
| ツール | 内容 |
|---|---|
list_reservations | フィルターを使用してレンタル予約を一覧表示します |
get_reservation | 予約の詳細を取得します |
create_reservation | 新しい予約を作成します |
list_properties | すべてのレンタル物件を一覧表示します |
sync_channel | OTA チャネルの同期を開始します(Airbnb、Booking.com など) |
POS — 販売時点管理(4)
| ツール | 内容 |
|---|---|
list_terminals | 登録済みの POS 端末を一覧表示します |
get_sale | POS の販売取引の詳細を取得します |
list_sales | ページネーションを使用して POS の売上を一覧表示します |
refund_sale | POS の販売取引を返金します |
キッチン/レストラン(6)
| ツール | 内容 |
|---|---|
list_kitchen_tickets | ステータスまたは担当ステーションで絞り込み、ライブボード用のキッチン注文チケットを一覧表示します |
get_kitchen_ticket | ID を指定して、すべての品目と各品目のステータスを含む単一のキッチンチケットを取得します |
update_kitchen_ticket | チケットのステータスを次の段階に進めます(queued → preparing → ready → served)。または、別のステーションに再割り当てします |
list_kitchen_stations | ID、名前、アクティブ状態を含むすべてのキッチンステーションを一覧表示します |
list_menu_items | フリーテキスト検索とアクティブ/非アクティブのフィルターを使用して、キッチンメニューのカタログを一覧表示します |
kitchen_flow_summary | 遅延しているステーションを検出します。ステーションごとに未完了チケットを集計し、ボトルネックを特定します |
HR — 人事(9)
| ツール | 内容 |
|---|---|
leave_request_create | 休暇申請(休暇、病気休暇、私用休暇)を作成します |
leave_approve | 保留中の休暇申請を承認します |
leave_reject | 理由を添えて休暇申請を却下します |
leave_cancel | 承認済みまたは保留中の休暇申請を取り消します |
leave_list | フィルター(ユーザー、ステータス、期間)を指定して休暇申請を一覧表示します |
attendance_clock_in | 従業員の出勤を記録します |
attendance_clock_out | 従業員の退勤を記録します |
overtime_report | 選択した YYYY または YYYY-MM の記録をもとに計算された、日次・週次の残業時間、合計分数・時間、コンプライアンス警告を読み取ります |
anomaly_list | 勤怠の異常(打刻漏れ、過度な残業)を一覧表示します |
給与計算(2)
| ツール | 内容 |
|---|---|
payroll_export | 給与計算に対応した形式に正規化された従業員データを読み取ります。format の値は出力先のラベルをそのまま返すものであり、ファイルは生成されません |
payroll_checklist | 給与支払い対象の従業員を、給与プロフィールの準備状況、未入力項目、月次レビューの状態とともに一覧表示します |
オンボーディング — #124 により取り下げ
onboarding_status および onboarding_persona_set ツールは、今回のリリース時点で Frihet-ERP の /v1/onboarding/* 系統が存在しないため、取り下げられました。監査と前例については、issue #124 を参照してください(src/tools/igic.ts には、バックエンドの API がまだ提供されていない系統で使用するインラインの NOT_DEPLOYED スタブのパターンが示されています。オンボーディングでは、稼働中のハンドラーがないツールをカタログで過大に約束すべきではないため、代わりに全面的な取り下げが選択されました)。
今後の Frihet-ERP リリースでこの系統が提供された場合は、src/tools/onboarding.ts、src/tools/shared.ts の onboardingStatusOutput/onboardingPersonaResultOutput スキーマ、IFrihetClient の getOnboardingStatus/setOnboardingPersona メソッド、および src/tools/register-all.ts での登録を復元してください(src/__tests__/d4b-hr-payroll-onboarding-tools.test.ts の Onboarding tools — withdrawn via #124 テストがゲートとなり、失敗して次のメンテナーに以前の内容を知らせます)。
権限(2)
| ツール | 内容 |
|---|---|
permissions_matrix | 文書化された RBAC モデルのスナップショットを取得します(実行時の認可を保証するものではありません) |
permissions_me | RBAC モデルのフィールドを、実際の API キーのスコープおよび既知のスコープ拒否と比較します(網羅的ではありません) |
期間締め(3)
| ツール | 内容 |
|---|---|
period_close_status | 現在または選択した YYYY 会計年度の期間、開閉状態、null 許容の締め処理詳細を取得します |
period_close | 会計期間を締めます(gestor/管理者のみ — 信頼領域) |
period_reopen | 必須の理由を指定して、締め済みの期間を再開します(信頼領域) |
すべての正規操作(およびそのエイリアス)は、outputSchema を介して構造化出力を返します。生テキストではなく、型付き JSON です。一覧レスポンスの形式は API 系統に準拠します。すべての一覧エンドポイントがページネーションに対応しているわけではありません。
機能と副作用の明示
すべての MCP サーフェスで、各 tools/list エントリーには _meta["io.frihet/capability"] が含まれます。
registeredは、このサーバービルドに名前とハンドラーが存在することを意味します。callabilityはapi_dependent(ハンドラーが API を呼び出します。デプロイ状況、ワークスペースでの有効化、認可によって引き続き実行可否が決まります)、runtime_checked(ハンドラーがバックエンドの不在とデータが空である状態を明示的に区別します)、deferred、unavailable、またはlocalのいずれかです。「利用可能」と無条件に主張することはありません。writesFrihet、externalInteraction、externalSideEffectsは、状態の変更や外部のエンティティ/プロバイダーへの呼び出しを区別します。- MCP のアクション注釈は、読み取り専用、破壊的、冪等、オープンワールドに関するヒントを示す標準的な情報源として引き続き使用されます。
ChatGPT/OpenAI ホストは、個別にレビューされたサーフェスです。完全な説明を備えたビジネス操作がちょうど 33 件、検出用メタツールが 0 件、プロンプトが 0 件、リソースが 0 件あります。17 件の読み取り操作と 16 件の書き込み操作は意図的に範囲を限定しており、すべての書き込み操作でリテラルの confirm=true が必要です。10 件の書き込み操作では、ワークスペースの所有者が事前に設定した有効なエンドポイントへ、完全なビジネスイベントを送信する場合があります。Webhook の管理自体は対象外です。直接のメール送信、従来の月次サマリー、生の請求書 PDF、請求書のライフサイクル遷移、既存の見積書の更新、規制対象の申告、クライアントの親レコードの削除、関連ファイルとともに経費を削除する操作、製品の削除、ベンダーの削除も対象外です。このサーフェスの内容を、カタログ全体にも当てはまるものと推測してはいけません。
リソース
AI がより適切な判断を下せるよう、読み取り可能なコンテキストを提供します。
ローカルパッケージは、静的リファレンス 7 件と API 連携ワークスペースリソース 4 件の、合計 11 件のリソースを提供します。ホスト型 Worker は静的リソース 7 件を提供します。OpenAI レビュー済みホストが提供するリソースは 0 件です。
静的(参照データ。API 呼び出しはありません):
| リソース | URI | 提供内容 |
|---|---|---|
| API スキーマ | frihet://api/schema | OpenAPI の概要:エンドポイント、認証、レート制限、ページネーション、エラーコード |
| 税率 | frihet://tax/rates | スペインの税区分別の税率:IVA、IGIC、IPSI、EU のリバースチャージ、IRPF |
| 税務カレンダー | frihet://tax/calendar | 記載されているスペインの税務モデルに関する四半期ごとおよび年間の申告期限 |
| 経費カテゴリ | frihet://config/expense-categories | 損金算入ルール、IVA の取り扱い、償却を含む 8 カテゴリ |
| 請求書のステータス | frihet://config/invoice-statuses | ステータスのフロー(draft > sent > paid/overdue > cancelled)、遷移ルール、Webhook イベント |
| 通貨 | frihet://config/currencies | ISO コード、記号、小数点以下の桁数、ロケール別書式を含む、サポート対象の 40 通貨 |
| 国 | frihet://config/countries | 税区分、既定税率、通貨、請求書のプレフィックスを含む、サポート対象の 61 か国 |
動的(アカウントのライブデータ):
| リソース | URI | 提供内容 |
|---|---|---|
| ビジネスプロフィール | frihet://business-profile | 事業情報、プラン、既定値、最近のアクティビティ、主要クライアント |
| 月次スナップショット | frihet://monthly-snapshot | 当月の損益、収益、経費、納税額 |
| 期限超過の請求書 | frihet://overdue-invoices | 支払期限を過ぎたすべての請求書(最大 100 件) |
| プランの上限 | frihet://status/plan-limits | ライブのプラン階層、使用量カウンター、月あたりの請求書数、API レート制限 |
プロンプト(10)
AI がガイド付きの複数ステップの操作として実行できる、事前構築済みのワークフローです。
| プロンプト | 内容 | 引数 |
|---|---|---|
monthly-close | 月次締めを行います:未払い請求書の確認、経費の分類、税務上の義務の確認、サマリーの作成 | month?(YYYY-MM) |
onboard-client | 所在地に応じた適切な税率で新規クライアントを設定し、必要に応じてウェルカム見積書を作成します | clientName、country?、region? |
quarterly-tax-prep | 四半期の税務申告を準備します:IVA/IGIC の計算、控除対象の特定、Modelo 303/130/420 のプレビュー | quarter?、fiscalZone? |
overdue-followup | 支払期限を過ぎた請求書を探し、フォローアップメッセージの下書きを作成し、支払いのリマインダーを提案します | -- |
new-client-invoice | 税率を調べながら、1 つのワークフローでクライアントと最初の請求書を作成します | clientName、country? |
expense-report | 控除対象の合計を含む、カテゴリー別の経費レポートを作成します | month?(YYYY-MM) |
year-end-close | 年次締めを一通り行います:四半期の確認、未払い請求書の確認、未分類経費の確認、年末チェックリスト | year(YYYY) |
cash-flow-forecast | 今後数か月のキャッシュフローを予測します:定期収入、経費、支払期限超過の売掛金、納税期限 | months?(デフォルト:3) |
invoice-aging-review | 売掛金の滞留期間を分析します:未払い請求書を期間別(0~30/31~60/61~90/90 日超)に分類し、上位の債務者と回収アクションを確認します | -- |
expense-batch | 経費を一括処理します:分類、税率の適用、領収書の不足のフラグ付け | fiscalZone? |
仕組み
graph LR
AI["Your AI assistant"]
MCP["frihet-mcp"]
API["api.frihet.io"]
DB["Frihet ERP"]
AI -- "create_invoice()" --> MCP
MCP -- "POST /v1/invoices" --> API
API --> DB
DB -- "201 + invoice data" --> API
API -- "structured JSON" --> MCP
MCP -- "typed response + suggestions" --> AI
style AI fill:#09090b,stroke:#4ade80,color:#fafafa
style MCP fill:#09090b,stroke:#fafafa,color:#fafafa
style API fill:#09090b,stroke:#3f3f46,color:#a1a1aa
style DB fill:#09090b,stroke:#3f3f46,color:#a1a1aa
サーバーはツール呼び出しを REST API リクエストに変換します。認証、レート制限(429 の場合はバックオフ付きで自動再試行)、ページネーション、エラーのマッピングを処理します。
トランスポートは 2 種類です:
- stdio(ローカル) --
FRIHET_API_KEYを指定してnpx @frihet/mcp-server - Streamable HTTP(リモート) -- Bearer トークンまたは OAuth 2.0+PKCE を使用して
https://mcp.frihet.io/mcp
環境変数
| 変数 | 必須 | デフォルト |
|---|---|---|
FRIHET_API_KEY | はい(stdio) | -- |
FRIHET_API_URL | いいえ | https://api.frihet.io/v1 |
FRIHET_TOOL_MODE | いいえ | full |
FRIHET_CLAUDE_MODE | いいえ(未リリースのローカル候補版) | false |
ソースのみの Claude 候補版を使用するには、このチェックアウトをビルドして
dist/index.js を実行する必要があります。既存の npm リリースがこのフラグに対応しているとは限りません。
候補版の対象範囲、除外事項、確認項目を参照してください。
FRIHET_OPENAI_MODE=true と併用することはできず、デプロイ済み Worker では有効になっていません。
ツール公開:必要に応じて詳細を提供
Frihetの差別化要因は網羅性です。ES/EUの税務を全面的にカバーし、コンプライアンス(VeriFactu、TicketBAI、Facturae/FACe、KSeFはポーランドのインフラ対応済み・有効化待ち)、銀行、CRM、人事・給与、宿泊施設/PMS、POSにネイティブ対応しています。しかし、すべてのツールをフラットな一覧としてエージェントのコンテキストにあらかじめ読み込むと、2026年におけるコンテキスト肥大化の問題を招きます。タスクに使える余地が狭まり、作業を始める前からツールの選択精度が低下します。
FRIHET_TOOL_MODEで、この網羅性の公開方法を選択できます。
| モード | 動作 |
|---|---|
full(デフォルト) | 標準ツールと税務上のエイリアスを、完全な説明とスキーマとともに公開します。公開用ディスクリプターには、保守的な呼び出し可否と副作用に関する正確な情報が追加されます。操作名、スキーマ、ハンドラーは変更されません。 |
grouped | **段階的な開示。**各ツールの説明は[group] summary — full schema via describe_tool('name')という1行にまとめられ、軽量な探索ツールが3つ追加されます。エージェントは、実際に必要なツールの詳細だけを読み込みます。 |
groupedモードでも、操作名、入力スキーマ、ハンドラーは変更されません。ディスクリプターには、fullプロファイルと同じ保守的な機能情報とアクション情報も公開されます。探索には、次の3つのメタツールを使用します。
list_tool_groups()— ドメインの一覧(請求書、経費、税務/コンプライアンス、銀行、CRM、人事/給与、宿泊施設/PMS、POS、インテリジェンス、製品、プラットフォーム)。各ドメインについて、1行の説明とツール数を返します。search_tools(query)— ツール名、タイトル、概要、グループを対象にしたフリーテキスト検索です。一致したツールについて、グループ、概要、読み取り専用フラグ、入力フィールドを返します。groupによる絞り込みとlimitを指定できます。describe_tool(name)— 1つのツールについて、呼び出す前に必要に応じて、元の完全な説明と入力フィールドを返します。
// claude_desktop_config.json — opt in to grouped mode
{
"mcpServers": {
"frihet": {
"command": "npx",
"args": ["@frihet/mcp-server"],
"env": {
"FRIHET_API_KEY": "fri_...",
"FRIHET_TOOL_MODE": "grouped"
}
}
}
}
grouped公開は説明の情報密度を変えるものであり、操作の動作は変えません。バージョン管理されたOpenAIレビュー済みプロファイルは別途構成され、独立したゲートによって管理されます。
API制限
| 制限 | 値 |
|---|---|
| 1分あたりのリクエスト数 | APIキーごとに100 |
| 1ページあたりの結果数 | 最大100(デフォルト50) |
| リクエスト本文 | 最大1 MB |
| Webhookペイロード | 最大100 KB |
| アカウントあたりのWebhook数 | 最大20 |
レート制限には、指数バックオフが自動的に適用されます。
Claude Codeスキル
生のMCPツールに加えて、このリポジトリにはビジネスコンテキストを補うClaude Codeスキルが含まれています。スペインの税法、ワークフローのレシピ、財務レポート、自然言語コマンドを利用できます。
スキルをインストールする
git clone https://github.com/Frihet-io/frihet-mcp.git
ln -s "$(pwd)/frihet-mcp/skills/frihet-mcp" ~/.claude/skills/frihet-mcp
ユニバーサルインストーラーを使用する場合:
npx skills add Frihet-io/frihet-mcp
このスキルは、リクエストをFrihet MCPツール(請求書、見積書、経費、クライアント、月次レビュー)に振り分け、書き込みを行う前に確認を求めるタイミングをエージェントに伝えます。単独で使える/frihetサブコマンドは追加されず、VAT税率や控除ルールも含まれません。税額などの数値はスキルではなく、Frihetのデータから取得されます。
詳しいドキュメント:docs.frihet.io/desarrolladores/skill-claude-code
開発
git clone https://github.com/Frihet-io/frihet-mcp.git
cd frihet-mcp
npm install
npm run build
ローカルで実行する:
FRIHET_API_KEY=fri_xxx node dist/index.js
MCP Inspectorでテストする:
npx @modelcontextprotocol/inspector node dist/index.js
貢献
貢献を歓迎します。変更したい内容について、まずIssueを作成してご相談ください。
git clone https://github.com/Frihet-io/frihet-mcp.git
cd frihet-mcp
npm install
npm run build # must pass before submitting
現在の制限事項
- OCRとファイルのアップロードには対応していません -- MCPが扱うのは構造化データであり、画像やPDFではありません。
- 1社のみ対応 -- 1つのAPIキーは、1つのFrihetワークスペースに紐づきます。
- Frihetアカウントが必要です -- app.frihet.ioの有効なアカウントと、APIキー(
fri_で始まる)が必要です。
エコシステム
| パッケージ | 概要 |
|---|---|
@frihet/mcp-server | この MCP サーバー(156 個の標準操作と 5 個の別名、11 個のローカルリソース、10 個のプロンプト) |
@frihet/sdk | TypeScript SDK(frihet.invoices.create()) |
frihet | CLI(frihet invoices list --status overdue) |
n8n-nodes-frihet | ワークフロー自動化向けの n8n コミュニティノード |
| REST API | api.frihet.io/v1 の OpenAPI 3.1 |
| リモート MCP | Cloudflare Workers 上のホスト型エンドポイント(インストール不要) |
| ウェブフック | HMAC-SHA256 によるリアルタイムイベント |
リンク
- Frihet -- 製品
- ドキュメント -- ドキュメント一式
- API リファレンス -- REST API
- MCP サーバーのドキュメント -- セットアップガイド、トラブルシューティング
- npm -- パッケージレジストリ
- Smithery -- Smithery マーケットプレイス
- MCP Registry -- Model Context Protocol の公式レジストリ
- GitHub MCP Registry -- GitHub 上の Frihet の掲載ページ
- リモートエンドポイント -- ホスト型 MCP サーバー(Cloudflare Workers)
- OpenAPI 仕様 -- 機械可読な API 定義
- セキュリティポリシー -- 脆弱性を非公開で報告する方法
ライセンス
MIT。LICENSE を参照してください。
Frihet が開発しました。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。