GLPI集成服务器

GLPI集成服务器提供OAuth 2.1认证和文档处理功能,支持合同、发票和工单管理,并与AI文档解析集成。

  • by gokushan
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 gokushan/mcp-server

使用说明

GLPI MCP服务器

MCP服务器,用于GLPI集成OAuth 2.1身份验证和文档处理功能。

特性

  • 🔐 OAuth 2.1身份验证 使用PKCE进行安全的API访问
  • 📄 文档处理 合同和发票(PDF/Word)
  • 🔧 GLPI集成 用于合同、发票和票证
  • 🤖 人工智能驱动的提取 使用LLM解析文档
  • 📊 MCP资源 用于查询GLPI数据
  • 🔄 工作流提示 用于制导作战

安装

先决条件

  • Python 3.10或更高版本
  • GLPI实例
  • API访问LLM(OpenAI、Anthropic或本地Ollama)

设置

  1. 克隆存储库:
cd /home/gokushan/proyectos-mcp/glpi-mcp/server
  1. 安装依赖项:
pip install -e .
  1. 配置环境变量:
cp .env.example .env
# Edit .env with your configuration
  1. 在GLPI中配置OAuth 2.1:
    • 前往“设置”>“常规”>“API”
    • 启用OAuth 2.1
    • 创建新的OAuth客户端
    • 将客户端ID和客户端密钥复制到.env

配置

编辑 .env 使用您的设置文件:

# GLPI OAuth 2.1
OAUTH_CLIENT_ID=your-client-id
OAUTH_CLIENT_SECRET=your-client-secret
OAUTH_AUTHORIZATION_URL=https://your-glpi.example.com/oauth/authorize
OAUTH_TOKEN_URL=https://your-glpi.example.com/oauth/token

# GLPI API
GLPI_API_URL=https://your-glpi.example.com/apirest.php
GLPI_APP_TOKEN=your-app-token

# LLM Provider
LLM_PROVIDER=openai
OPENAI_API_KEY=your-api-key

用法

运行服务器

glpi-mcp-server

或者用Python:

python -m glpi_mcp_server.server

与Claude Desktop一起使用

添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "glpi": {
      "command": "python",
      "args": ["-m", "glpi_mcp_server.server"],
      "env": {
        "GLPI_API_URL": "https://your-glpi.example.com/apirest.php",
        "OAUTH_CLIENT_ID": "your-client-id"
      }
    }
  }
}

可用工具

文档处理

  • process_contract -从合同文件中提取数据
  • process_invoice -从发票文档中提取数据

合同管理

  • create_glpi_contract -在GLPI中创建新合同
  • update_glpi_contract -更新现有合同
  • get_contract_status_by_id -按ID查询合同明细
  • search_contracts -按名称或编号搜索合同
  • delete_glpi_contract -删除合同及其文件
  • attach_document_to_contract -将文件附加到现有合同

发票管理

  • create_glpi_invoice -在GLPI中创建新发票
  • update_glpi_invoice -更新现有发票
  • get_invoice_status -查询发票明细

票务管理

  • create_ticket -创建支持票
  • update_ticket -更新工单或添加跟进
  • get_ticket_status -查询机票详细信息

文件夹和批处理操作

  • list_folders -列出允许根目录内的目录(支持路径转换)
  • read_path_allowed -在允许的路径中列出文件(支持路径转换)
  • tool_batch_contracts -批量处理多个合同

可用资源

  • glpi://contracts/{id} -合同详细信息(JSON)
  • glpi://contracts/list -所有有效合同列表
  • glpi://invoices/{id} -发票明细
  • glpi://invoices/list -发票清单
  • glpi://tickets/{id} -门票详细信息
  • glpi://tickets/list -门票列表

可用提示

  • process-and-create-contract -提取和创建合同的工作流
  • process-and-create-invoice -提取和创建发票的工作流
  • update-contract-from-document -指导更新现有合同
  • find-contract -搜索和检索合同信息
  • create-ticket-workflow -引导支持票创建
  • process-batch-contracts -协调文件夹的批处理
  • delete-contract -安全删除流程(带确认)

文档

有关更多详细信息,请参阅以下指南:

发展

运行测试

pytest tests/ -v

代码质量

# Format code
black src/

# Lint code
ruff check src/

# Type checking
mypy src/

建筑

服务器遵循SOLID原则,明确分离关注点:

  • auth/ -OAuth 2.1身份验证
  • 处理器/ -文档解析和AI提取
  • glpi/ -GLPI API客户端和模型
  • 工具/ -MCP工具实现
  • 资源/ -MCP资源实现
  • 提示/ -MCP提示实现
  • config/ -配置管理

安全

  • OAuth 2.1,使用PKCE进行授权
  • 加密的安全令牌存储
  • 自动令牌刷新
  • API请求验证
  • 输入净化

许可证

MIT许可证

支持

有关问题和疑问,请在GitHub上打开问题。