使用说明
Fortnox MCP服务器
用于与Fortnox瑞典会计系统集成的MCP(模型上下文协议)服务器。此服务器使LLM能够与Fortnox交互,以管理发票、客户、供应商、订单、账户、凭证,并提供商业智能分析。
两种使用方法
| 模式 | 最适合 | 设置 |
|---|---|---|
| 远程模式 | 最终用户 | 只需添加URL,在浏览器中授权 |
| 本地模式 | 开发人员,自托管 | 配置环境变量 |
快速入门:远程模式(推荐)
使用Fortnox MCP的最简单方法-无需凭据,只需在浏览器中授权即可。
选项A:添加到Claude.ai(Web)
- 首选 claude.ai
- 导航至 设置 → 集成 → 添加集成
- 输入URL:
https://fortnox-mcp.vercel.app/mcp - 等待加载,然后单击连接授权访问
选项B:添加到Claude桌面
打开您的Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
添加此配置:
{
"mcpServers": {
"fortnox": {
"url": "https://fortnox-mcp.vercel.app/mcp"
}
}
}
重新启动克劳德桌面。当您第一次要求Claude使用Fortnox时,将打开一个浏览器窗口,让您授权访问您的Fortnox帐户。一旦获得授权,您就一切就绪!
快速入门:本地模式(自托管)
适用于希望在本地运行服务器或使用自己的Fortnox应用程序凭据的开发人员。
1.获取您的Fortnox证书
- 注册于 Fortnox开发者门户
- 创建一个应用程序来获取您的 客户端ID 和 客户端密钥
- 完成OAuth2流以获得 刷新令牌
2.添加到克劳德桌面
打开您的Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%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管理您的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=远程)
| 变量 | 必填 | 描述 |
|---|---|---|
AUTH_MODE |
是 | 设置为 remote |
SERVER_URL |
是 | 服务器的公共URL |
JWT_SECRET |
是 | 签署JWT代币的秘密 |
FORTNOX_CLIENT_ID |
是 | 您的Fortnox应用程序客户端ID |
FORTNOX_CLIENT_SECRET |
是 | 您的Fortnox应用程序客户端密码 |
UPSTASH_REDIS_REST_URL |
是* | 用于令牌存储的升级Redis URL |
UPSTASH_REDIS_REST_TOKEN |
是* | 升级Redis令牌 |
PORT |
无 | HTTP端口(默认值:3000) |
*如果没有提供,则回退到内存存储(不建议用于生产)
获取OAuth凭据
- 注册成为开发者 Fortnox开发者门户
- 创建新应用程序以获取客户端ID和客户端密钥
- 完成OAuth2授权流程以获取刷新令牌
- 设置环境变量
用法
使用克劳德桌面
看 快速开始 上面。
作为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 | 目的 |
|---|---|---|
| npm | npmjs.com/package/fortnox-mcp-server | 通过以下方式分发包裹 npx |
| MCP注册表 | register.modelcontextprotocol.io | 官方MCP服务器发现 |
| GitHub | github/雅科布温伯格/fortnox-mcp | 源代码 |
运作原理
- 用户添加配置 使用克劳德桌面
npx fortnox-mcp-server - Claude Desktop启动服务器 通过npx(从npm下载最新版本)
- 服务器身份验证 Fortnox使用来自环境变量的OAuth2凭据
- Claude现在可以使用工具了 喜欢
fortnox_list_invoices,fortnox_create_customer等等。 - 服务器处理API调用 Fortnox,包括自动令牌刷新和速率限制
令牌持久性(本地模式)
Fortnox刷新令牌是一次性使用的——每次令牌刷新都会返回一个新的令牌。服务器会自动将最新刷新令牌持久化到 ~/.fortnox-mcp/tokens.json 因此,它可以在进程重启时幸存下来,而不需要手动更新配置。
- 首次运行时,服务器读取
FORTNOX_REFRESH_TOKEN从您的环境/config - 每次令牌刷新后,新的刷新令牌将保存到
~/.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
发布脚本会自动执行:
- 将版本插入
package.json - 更新
server.json对于MCP注册表 - 构建项目
- 提交并标记发布
- 发布到npm
- 发布到MCP注册表
- 推送到GitHub
发布的先决条件:
npm login-登录到npmmcp-publisher login github-已登录MCP注册表- 清理git工作目录
用户自动获取更新
发布新版本时,用户运行 npx -y fortnox-mcp-server 下次重新启动Claude Desktop时,将自动获取最新版本。
部署您自己的远程服务器
想托管自己的Fortnox MCP服务器实例吗?遵循这些说明。
部署到Vercel
1.先决条件
- A. 维塞尔 账户
- 一 升级Redis 数据库(用于令牌存储)
- A. Fortnox开发人员 已创建应用程序的帐户
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 |
更新Redis REST URL |
UPSTASH_REDIS_REST_TOKEN |
Uptash 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 │
│ • Auto-persisted tokens • Token storage (Redis) │
│ (~/.fortnox-mcp/) │
│ │
└─────────────────────────────────────────────────────────────┘
许可证
麻省理工学院