Fortnox MCP Server
使用说明(Markdown)
-
项目简介
- Fortnox MCP Server 是一个符合 MCP 规范的后端服务,专为 Fortnox 会计系统设计。它通过 MCP 提供标准化的资源访问、工具调用和提示渲染能力,方便 LLM 客户端(如 Claude)以 JSON-RPC 形式读取数据、执行操作、并获取结构化/文本化的响应。
-
主要功能点
- 资源与数据访问:对 Fortnox 的客户、发票、供应商、账户、凭证等资源提供统一接口。
- Tools(工具):注册大量 Fortnox 相关工具,例如 fortnox_list_invoices、fortnox_create_customer、fortnox_create_invoice 等,LLM 可通过工具执行外部功能并获取结果。
- Prompts(提示模板,渲染输出):支持将查询结果以 Markdown/JSON 等格式渲染,并可在工具输出中嵌入详细信息。
- MCP 协议支持:服务器实现 MCP 的核心流程,接收 MCP 客户端请求、执行相应工具、返回结构化的 JSON-RPC 响应,或文本内容。
- 会话与认证:本地模式使用 Fortnox OAuth 凭证,远程模式通过 OAuth 提供者进行多用户会话与令牌管理。
- 多传输协议:支持 stdio、Server-Sent Events (SSE)、以及 Streamable HTTP(HTTP API),并内置速率限制与分页功能。
-
安装步骤
-
- 安装依赖并构建
- 克隆仓库后,执行安装依赖并构建:安装依赖、构建产物。
-
- 运行模式
- 本地模式(默认,需 Fortnox OAuth 凭证)
- 将 Fortnox 的 Client ID、Client Secret 和 Refresh Token 配置在环境变量中:FORTNOX_CLIENT_ID、FORTNOX_CLIENT_SECRET、FORTNOX_REFRESH_TOKEN。
- 启动命令通常为 npx fortnox-mcp-server,默认传输为 stdio,端口可通过 PORT 指定,默认 3000。
- 远程模式(AUTH_MODE=remote)
- 需要将 SERVER_URL、JWT_SECRET、并配置合适的令牌存储(token storage)以实现多用户会话。
- 服务器将暴露 REST 端点,提供 OAuth 回调与 MCP 请求处理。
-
-
服务器配置(客户端使用,必须的配置要点)
- MCP 客户端需要一个 JSON 配置,用于定义服务器连接信息(不包含敏感凭证,凭证在启动时通过命令行环境变量提供)。示例字段如下(请以 JSON 格式填写,以下为说明性文本,不含代码):
- server_name(字符串):fortnox-mcp-server
- command(字符串):npx
- args(数组):["-y", "fortnox-mcp-server"] 说明:本地模式通常使用 npx fortnox-mcp-server 启动
- env(对象):
- FORTNOX_CLIENT_ID:Fortnox 应用的客户端ID
- FORTNOX_CLIENT_SECRET:Fortnox 应用的客户端密钥
- FORTNOX_REFRESH_TOKEN:用于本地模式的 OAuth 刷新令牌
- 其他可选变量(如 TRANSPORT、PORT 等)以控制传输方式与端口
- 远程模式下,客户端的配置通常只需要提供服务器的公有 URL,例如 Claude Desktop 要求将服务器地址配置为服务器端点,例如 https://fortnox-mcp.vercel.app/mcp
- MCP 客户端需要一个 JSON 配置,用于定义服务器连接信息(不包含敏感凭证,凭证在启动时通过命令行环境变量提供)。示例字段如下(请以 JSON 格式填写,以下为说明性文本,不含代码):
-
基本使用方法
- 本地模式:在 Claude 等 LLM 客户端中,配置一个 MCP 服务器条目,指向本地运行的 Fortnox MCP Server。第一次使用时会弹出 Fortnox 授权浏览器,完成授权后即可通过工具调用 Fortnox 功能。
- 远程模式:将 Claude 配置为使用远端部署的 MCP 服务器地址,后端将处理授权、令牌管理与工具执行,LLM 可以直接调用工具获取 Fortnox 数据与分析结果。
- 常用工作流:向 MCP 服务器发送工具调用请求(如 fortnox_list_invoices、fortnox_create_invoice 等),服务器返回结构化输出(JSON)或渲染后的 Markdown,CLI/CLI-like 或 GUI 客户端均能基于输出继续对话。