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,transactionDocumentdynamic
仅公开了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-serverDocker 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
运作原理
- 启动时,从FinIQ实例获取OpenAPI/Swagger规范(或读取本地文件)
- 将规范和过滤器解析为ABP应用程序服务端点(
/api/app/*) - 从OpenAPI操作模式生成具有JSON模式的MCP工具定义
- 应用所选工具模式(全部/分组/动态)
- 通过stdio传输启动MCP服务器
工具名称遵循以下模式 {service}_{action}:
GET /api/app/warehouse→warehouse_getListGET /api/app/warehouse/{id}→warehouse_getPOST /api/app/warehouse→warehouse_createPUT /api/app/warehouse/{id}→warehouse_updateDELETE /api/app/warehouse/{id}→warehouse_delete
技术栈
- TypeScript --严格模式,ES2022目标
- MCP-SDK —
@modelcontextprotocol/sdk - 萨德 --配置验证
- 维测试 --测试
- Node.js 18+ --本机获取、ES模块
