企业费用自动化系统

一个基于Model Context Protocol (MCP)和自然语言处理的企业费用自动化系统,用于通过自然语言对话管理公司费用、员工、部门和绩效。

  • by Surya-KF
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 Surya-KF/MCP--ExpenseTracker_For-Company

使用说明

🏢使用MCP和NLP的企业费用自动化系统

一个专业的模型上下文协议(MCP)服务器,用于通过与Claude Desktop的自然语言对话来跟踪公司开支、员工、部门和绩效。

✨ 特性

  • 12个MCP工具 用于完成CRUD操作
  • 自然语言接口 通过克劳德桌面聊天机器人
  • 员工管理 具有唯一的员工编号(EMP0001、EMP0002等)
  • 费用跟踪 分类和部门分配
  • 绩效管理 带有评级和评论
  • AI驱动的分析 使用谷歌Gemini 2.0 Flash(最新2025型号)
  • 重复检测 自动清理
  • 安全删除操作 具有级联支持

🏗️ 系统架构

该架构显示了从Claude Desktop通过MCP服务器到SQLite数据库的完整流程,并通过Google Gemini进行人工智能分析。

📊 数据库模式

departments         employees              expenses              performance
├── id             ├── id                 ├── id                ├── id
├── name           ├── employee_number    ├── date              ├── employee_id
└── description    ├── name               ├── amount            ├── rating
                   ├── role               ├── category          ├── month
                   ├── department_id      ├── note              └── comments
                   ├── salary             └── department_id
                   └── join_date

当前数据:

  • 4个部门(行政、人力资源、技术、业务流程外包)
  • 18名员工拥有唯一的员工编号
  • 34费用记录
  • 20性能评级

🚀 快速开始

先决条件

  • Python 3.11或更高版本
  • UV包管理器或pip
  • Claude桌面应用程序
  • Google Gemini API密钥

安装

  1. 创建虚拟环境
cd "C:\Users\VH0000812\Desktop\Expense Tracker"
uv venv
.\.venv\Scripts\activate
  1. 安装依赖项
uv pip install -r requirements.txt
  1. 设置环境变量

创建 .env 文件:

GEMINI_API_KEY=your_google_gemini_api_key_here
  1. 使用示例数据初始化数据库
python scripts\populate_data.py
  1. 配置Claude桌面

添加到 %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "company-expense-tracker": {
      "command": "C:\\Users\\VH0000812\\Desktop\\Expense Tracker\\.venv\\Scripts\\python.exe",
      "args": [
        "C:\\Users\\VH0000812\\Desktop\\Expense Tracker\\main.py"
      ],
      "env": {
        "GEMINI_API_KEY": "your_api_key_here"
      }
    }
  }
}
  1. 重新启动克劳德桌面

🛠️ MCP工具(共12个)

➕ 创建操作(4)

工具 说明 示例
add_department 创建新部门 “创建营销部门”
add_employee 添加具有自动员工编号的员工 “以10万美元的价格聘请约翰担任技术开发人员”
add_expense 按部门跟踪费用 “将500美元的AWS费用添加到技术中”
add_performance 添加绩效评级 “本月给爱丽丝5颗星”

🗑️ 删除操作(4)

工具 说明 示例
delete_employee 按编号/姓名删除员工 “删除员工EMP0015”
delete_expense 删除费用记录 “删除费用ID 45”
delete_department 删除部门(强制模式可用) “强制删除所有数据的营销”
delete_duplicate_employees 自动检测并删除重复项 “删除所有重复的员工”

📋 查询操作(3)

工具 说明 示例
list_employees 查看员工(全部或按部门) “显示所有人力资源员工”
list_expenses 列出带过滤器的费用 “显示过去30天的技术费用”
get_department_summary 综合部门统计 “给我人力资源摘要”

🤖 人工智能分析(1)

工具 说明 示例
analyze_company_with_ai 通过Gemini获得人工智能驱动的见解 “哪个部门花费最多?”

💬 使用示例

员工管理

✅ "Hire Sarah as Marketing Manager in Admin at $75,000"
✅ "Show me all Tech department employees"
✅ "Delete employee EMP0017"
✅ "Find and remove all duplicate employees"

费用跟踪

✅ "Add $1,500 office furniture expense to Admin"
✅ "Show all expenses from last month"
✅ "Delete expense ID 32"

性能与分析

✅ "Give John Smith a 5-star rating with comment 'Excellent work'"
✅ "Show me complete HR department summary"
✅ "Which department has highest salary burden?"
✅ "Analyze expense trends across departments"

📁 项目结构

Expense Tracker/
├── src/                      # Source code modules
│   ├── operations/           # Business logic
│   ├── ai/                   # AI integration
│   ├── tools/                # MCP tool definitions
│   ├── database.py           # Database config
│   └── __init__.py
├── tests/                    # All test files
│   ├── test_tools.py
│   ├── test_delete_functions.py
│   └── test_employee_numbers.py
├── scripts/                  # Utility scripts
│   ├── populate_data.py      # Initialize data
│   ├── migrate_employee_numbers.py
│   └── db_viewer.py          # Interactive viewer
├── docs/                     # Documentation
│   ├── QUICK_REFERENCE.md
│   ├── DELETE_TOOLS.md
│   └── COMPLETE_SUMMARY.md
├── config/                   # Configuration
│   └── departments.json
├── data/                     # Database
│   └── company.db
├── main.py                   # Entry point
├── requirements.txt
├── .env
├── .gitignore
└── README.md

🧪 测试

运行测试:

python tests\test_tools.py
python tests\test_delete_functions.py
python tests\test_employee_numbers.py

交互式数据库查看器:

python scripts\db_viewer.py

🔧 配置

费用类别

  • 基础设施、软件许可证、培训
  • 办公用品、公用事业、工资
  • 招聘、活动、设备、维护

员工编号格式

  • 自动生成: EMP0001, EMP0002等等。
  • 每个员工的唯一标识符
  • 用于快速查找和操作

🔒 安全功能

  • ✅ 环境变量中的API键
  • ✅ 数据库中的外键约束
  • ✅ 所有操作的输入验证
  • ✅ 安全删除模式(级联需要强制标记)
  • ✅ 重复检测和预防

🆘 故障排除

Claude Desktop未显示工具

  1. 重新启动Claude Desktop(右键单击托盘图标→ Quit)
  2. 检查中的配置路径 claude_desktop_config.json
  3. 验证数据库是否存在于 data/company.db

数据库错误

# Migrate employee numbers
python scripts\migrate_employee_numbers.py

# Reinitialize database
python scripts\populate_data.py

导入错误

# Reinstall dependencies
uv pip install -r requirements.txt

# Check Python version (must be 3.11+)
python --version

📚 文档

🎯 路线图

  • []更新/编辑员工和费用的操作
  • []批量导入/导出功能
  • []生成月度和年度报告
  • []带有警报的预算跟踪
  • []按技能/角色搜索员工
  • []费用审批工作流程
  • []部门预算管理
  • []API端点版本

📈 统计

🏢 Departments:        4 (Admin, HR, Tech, BPO)
👥 Employees:          18 (with unique employee numbers)
💰 Total Salary:       $1,288,000 annually
💳 Expense Records:    34 tracked
⭐ Performance:        20 ratings (avg 4.2/5.0)

🤝 发展

添加新工具

  1. 在适当的模块中定义功能
  2. 在中添加MCP工具包装 main.py
  3. 测试用 tests/test_*.py
  4. 更新文档

代码的风格

  • 遵循PEP 8指南
  • 使用类型提示
  • 将文档字符串添加到所有函数中
  • 包括错误处理

📝 许可证

仅供内部使用-公司费用跟踪器


版本: 1.0.0
最后更新:2025年10月15日
状态: ✅ 生产就绪
由维护:公司开发团队

有关支持或问题,请参阅 docs/COMPLETE_SUMMARY.md