金融API工具生成器

FinIQ MCP Server是一个基于Model Context Protocol (MCP)的服务器,能够将FinIQ金融管理API的端点自动转换为AI助手可直接调用的工具,适用于金融操作和数据管理。

  • by SCom-82
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 SCom-82/finiq-mcp-server

使用说明

FinIQ MCP服务器

MCP服务器 FinIQ 财务管理API-自动生成器 克劳德 OpenAPI/Swagger的工具。

建立在 模型上下文协议 (MCP),该服务器将FinIQ API端点公开为人工智能助手可以直接调用的工具。将其指向任何FinIQ实例,即可获得200多个用于金融操作的现成工具。

特性

  • 全面财务会计 --会计科目表、日记账分录、交易文件、过账/取消过账
  • 参考数据 --交易对手、合同、项目、员工、部门、组织
  • 财政部 --银行账户、现金账户、资金、银行对账单导入
  • 销售 --会议、报价(商业提案)、销售合同、文档生成
  • 计算器 --带有BOM(物料清单)、价格表、折扣的计算器
  • 报告 --损益表、总账、账户卡、资金余额、现金流、项目报告
  • 3种工具模式 — all (每个端点), grouped (选定的服务), dynamic (元工具)
  • Docker就绪 --多阶段构建,非根执行
  • Swagger缓存 --首次获取后脱机工作

快速开始

环境变量

变量 必填 描述
FINIQ_BASE_URL 是 FinIQ服务器URL
FINIQ_API_KEY 是 API身份验证密钥
FINIQ_TOOL_MODE 没有 all (默认), grouped,或 dynamic
FINIQ_ENABLED_GROUPS 否 逗号分隔的服务组(用于 grouped 模式)
FINIQ_SWAGGER_PATH 否 OpenAPI规范路径(默认: /swagger/v1/swagger.json)
FINIQ_LOCAL_SWAGGER 否 本地swagger.json文件的路径

克劳德代码(npx)

// .mcp.json
{
  "mcpServers": {
    "finiq": {
      "command": "npx",
      "args": ["-y", "@finiq/mcp-server"],
      "env": {
        "FINIQ_BASE_URL": "https://your-finiq-instance.com",
        "FINIQ_API_KEY": "your-api-key"
      }
    }
  }
}

克劳德代码(Docker)

// .mcp.json
{
  "mcpServers": {
    "finiq": {
      "command": "docker",
      "args": ["run", "-i", "--rm",
        "-e", "FINIQ_BASE_URL",
        "-e", "FINIQ_API_KEY",
        "finiq/mcp-server:latest"
      ],
      "env": {
        "FINIQ_BASE_URL": "https://your-finiq-instance.com",
        "FINIQ_API_KEY": "your-api-key"
      }
    }
  }
}

克劳德桌面版

添加到您的Claude桌面配置(%APPDATA%\Claude\claude_desktop_config.json 在Windows上, ~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "finiq": {
      "command": "npx",
      "args": ["-y", "@finiq/mcp-server"],
      "env": {
        "FINIQ_BASE_URL": "https://your-finiq-instance.com",
        "FINIQ_API_KEY": "your-api-key"
      }
    }
  }
}

游标/其他MCP客户端

使用相同 .mcp.json 格式为Claude Code——大多数兼容MCP的编辑器都支持它。

CLI参数

环境变量也可以作为CLI参数传递:

finiq-mcp --base-url https://your-finiq-instance.com --api-key ABC123 --tool-mode grouped --enabled-groups warehouse,project

工具模式

all (默认)

每个API端点都成为一个单独的MCP工具(约200多个工具)。当您的客户能够很好地处理大型工具列表时,最适合完全访问。

grouped

仅显示选定服务组中的工具。集 FINIQ_ENABLED_GROUPS 以逗号分隔的列表:

FINIQ_ENABLED_GROUPS=warehouse,project,counterparty,transactionDocument

dynamic

仅公开了3个用于按需发现的元工具:

工具 说明
listServices 列出可用的API服务及其终结点
getEndpointSchema 获取特定端点的输入模式
callEndpoint 执行API调用

当您希望最小化工具占用空间并更喜欢在运行时发现端点时,这是最好的选择。

码头工人

构建

docker build -t finiq/mcp-server .

跑

docker run -i --rm \
  -e FINIQ_BASE_URL=https://your-finiq-instance.com \
  -e FINIQ_API_KEY=your-api-key \
  finiq/mcp-server

Docker Compose

FINIQ_BASE_URL=https://your-finiq-instance.com \
FINIQ_API_KEY=your-api-key \
docker compose up

本地Swagger文件

挂载一个本地swagger.json以避免从服务器获取:

docker run -i --rm \
  -e FINIQ_BASE_URL=https://your-finiq-instance.com \
  -e FINIQ_API_KEY=your-api-key \
  -e FINIQ_LOCAL_SWAGGER=/data/swagger.json \
  -v ./swagger.json:/data/swagger.json:ro \
  finiq/mcp-server

发展

# Install dependencies
npm install

# Build
npm run build

# Run locally
npm start

# Watch mode (rebuild on changes)
npm run dev

# Run tests
npm test

# Type check
npm run lint

要求: Node.js>=18.0.0

运作原理

  1. 启动时,从FinIQ实例获取OpenAPI/Swagger规范(或读取本地文件)
  2. 将规范和过滤器解析为ABP应用程序服务端点(/api/app/*)
  3. 从OpenAPI操作模式生成具有JSON模式的MCP工具定义
  4. 应用所选工具模式(全部/分组/动态)
  5. 通过stdio传输启动MCP服务器

工具名称遵循以下模式 {service}_{action}:

  • GET /api/app/warehouse → warehouse_getList
  • GET /api/app/warehouse/{id} → warehouse_get
  • POST /api/app/warehouse → warehouse_create
  • PUT /api/app/warehouse/{id} → warehouse_update
  • DELETE /api/app/warehouse/{id} → warehouse_delete

技术栈

  • TypeScript --严格模式,ES2022目标
  • MCP-SDK — @modelcontextprotocol/sdk
  • 萨德 --配置验证
  • 维测试 --测试
  • Node.js 18+ --本机获取、ES模块

许可证

麻省理工学院