MCP osTicket实验室
通过构建人工智能支持票系统学习模型上下文协议(MCP)
此存储库为以下对象提供了一个完整的实践学习环境 模型上下文协议(MCP) 开发使用 奥斯蒂奇 作为现实世界的应用程序。您将学习从头开始构建MCP服务器,将其与AI助手集成,并创建生产就绪的工具。
______________________________________________________________________
🚀 一键快速启动
只需两个简单步骤,即可通过MCP集成在本地运行osTicket:
第一步:安装osTicket
.\install-local.cmd这将:
- 启动Docker容器(osTicket、MySQL、phpMyAdmin)
- 自动安装和配置osTicket
- 创建管理员帐户:
ostadmin/ChangeMe123!
步骤2:准备MCP集成
.\prepare-mcp-local.cmd这将:
- 验证osTicket安装
- 安装Python MCP依赖项
- 测试MCP服务器
- 使用VS代码注册
就是这样! 🎉 您现在拥有:
- ✅ osTicket正在运行http://localhost:8080
- ✅ 工作人员小组http://localhost:8080/scp
- ✅ PhpMyAdmin和http://localhost:8081
- ✅ MCP服务器已准备好进行VS代码复制
______________________________________________________________________
📚 学习实验室
两个全面的实验室轨道,包括练习、挑战和解决方案:
| 实验室 | 持续时间 | 级别 | 焦点 |
|---|---|---|---|
| 实验1:MCP基础 | 4-6小时 | 初级→ 高级 | MCP概念、工具、资源、测试 |
| 实验2:osTicket MCP开发 | 6-8小时 | 中级→ 高级 | 现实世界MCP服务器,Docker集成 |
快速参考:
______________________________________________________________________
🎯 你将学到什么
实验1:MCP基础
- ✅ 构建您的第一个MCP服务器(Hello World)
- ✅ 使用JSON模式验证定义工具
- ✅ 创建资源和提示
- ✅ 与VS代码副本集成
- ✅ 处理外部API(Weather API示例)
- ✅ 实施错误处理和测试
- ✅ 构建生产就绪的MCP解决方案
实验2:osTicket MCP开发
- ✅ 使用Docker在本地设置osTicket
- ✅ 了解osTicket架构和API
- ✅ 为osTicket构建PHP辅助脚本
- ✅ 创建用于票证操作的MCP服务器
- ✅ 端到端测试MCP集成
- ✅ 使用自定义工具和功能进行扩展
______________________________________________________________________
📋 先决条件
| 组件 | 版本 | 检查命令 |
|---|---|---|
| Docker 桌面版 | 最新消息 | docker --version |
| python | 3.10+ | python --version |
| VS Code | 最新消息 | code --version |
| Git | 任何 | git --version |
Python包:
pip install mcp>=1.0.0 httpx>=0.27.0查看完整要求: 需求指南
______________________________________________________________________
🏗️ 仓库结构
MCP-OS-Ticket-Lab/
├── README.md # This file
├── install-local.cmd # One-click osTicket setup
├── prepare-mcp-local.cmd # One-click MCP preparation
├── DOCKER_SETUP.md # Detailed Docker setup guide
│
├── labs/ # 📚 Learning Labs
│ ├── README.md # Lab index & learning path
│ ├── 01_MCP_FUNDAMENTALS_LAB.md # Lab 1: MCP basics to advanced
│ ├── 02_OSTICKET_MCP_LAB.md # Lab 2: osTicket MCP development
│ └── MCP_CHEAT_SHEET.md # Quick reference guide
│
├── mcp-server/ # 🔧 MCP Server Implementation
│ ├── server.py # Main MCP server
│ ├── test.py # MCP validation tests
│ └── requirements.txt # Python dependencies
│
├── mcp_*.php # PHP helper scripts for osTicket
├── docker-compose.yml # Docker orchestration
├── Dockerfile # osTicket container image
└── [osTicket core files] # osTicket application files______________________________________________________________________
🎓 学习路径
┌─────────────────────────────────────────────────────────────┐
│ START HERE: One-Click Setup │
│ .\install-local.cmd │
│ .\prepare-mcp-local.cmd │
└────────────────┬────────────────────────────────────────────┘
│
┌────────▼────────┐
│ Choose Path │
└────┬──────┬─────┘
│ │
┌────────▼──┐ │
│ Lab 1 │ │ Beginner? Start with MCP Fundamentals
│ MCP │ │ Learn concepts, build simple servers
│ Basics │ │
└────────┬──┘ │
│ │
│ ┌──▼──────┐
│ │ Lab 2 │ Intermediate? Jump to osTicket
│ │ osTicket│ Build real-world MCP server
│ │ MCP │
│ └────┬────┘
│ │
┌────▼───────▼─────┐
│ MCP Expert! 🎉 │
│ Build your own │
│ MCP projects │
└───────────────────┘______________________________________________________________________
🔧 MCP服务器功能
附带的MCP服务器为osTicket提供了以下工具:
| 工具 | 说明 |
|---|---|
create_ticket | 创建新的支持票 |
get_ticket | 按编号检索门票详细信息 |
reply_to_ticket | 添加回复或内部注释 |
create_user | 创建新的osTicket用户 |
get_osticket_status | 检查系统状态 |
在VS代码副本中测试它:
@mcp create a ticket from john@example.com about password reset
@mcp get details of ticket 123456
@mcp reply to ticket 123456 saying we've resolved the issue______________________________________________________________________
🐳 Docker快速参考
# Start osTicket
docker compose up -d
# Stop osTicket
docker compose down
# View logs
docker logs osTicket-osticket
# Restart containers
docker compose restart
# Access container shell
docker compose exec osticket bash______________________________________________________________________
🆘 故障排除
| 问题 | 解决方案 |
|---|---|
| 端口8080已在使用中 | 停止其他服务或编辑 docker-compose.yml |
| Docker无法启动 | 启用WSL2/H-V-,重新启动Docker桌面 |
| MySQL连接被拒绝 | 启动后等待30秒 |
| 在VS代码 | 重新加载窗口中找不到MCP服务器: Ctrl+Shift+P → “重新加载窗口” |
请参阅详细的故障排除:
______________________________________________________________________
📖 其他资源
- osTicket文档: https://docs.osticket.com
- MCP规范: https://modelcontextprotocol.io
- Python MCP SDK: https://github.com/modelcontextprotocol/python-sdk
- Docker文档: https://docs.docker.com
______________________________________________________________________
🤝 贡献
这是一个学习库。请随意:
- 添加新的实验练习
- 改进现有材料
- 修复错误或拼写错误
- 共享您的MCP服务器扩展
______________________________________________________________________
📜 许可证
- osTicket核心:GPL许可证(请参阅 LICENSE.txt)
- 实验材料:MIT许可证
- MCP服务器实现:MIT许可证
______________________________________________________________________
🙏 致谢
- osTicket团队 -对于优秀的开源帮助台系统
- Anthropic -对于模型上下文协议规范
- GitHub Copilot -MCP集成能力
______________________________________________________________________
准备好开始了吗? 跑 .\install-local.cmd 开始您的MCP之旅! 🚀
需求
- 运行Microsoft®IIS或Apache的HTTP服务器
- PHP版本8.2-8.4(建议使用8.4)
- PHP的mysqli扩展
- MySQL数据库5.5版(或更高版本)
建议
- ctype、fileinfo、gd、gettext、iconv、imap、intl、json、mbstring、,
PHP的Zend OPcache、phar、xml、xml-dom和zip扩展
- APCu模块已启用并配置为PHP
部署
osTicket现在支持最前沿的安装。最简单的方法 安装软件并跟踪更新是克隆公共存储库。 在您的web服务器上创建一个文件夹(使用任何有意义的方法 然后克隆存储库(文件夹必须为空!):
git clone https://github.com/osTicket/osTicket并将代码部署到服务器www根文件夹中的某个位置 例子
cd osTicket
php manage.php deploy --setup /var/www/htdocs/osticket/然后,如有必要,您可以配置服务器以提供该文件夹,以及 访问页面并像往常一样安装osTicket。继续,甚至删除 完成后,将setup/文件夹移出部署位置。然后, 稍后,您可以获取更新并部署它们(从您所在的文件夹 将git仓库克隆到)
git pull
php manage.php deploy -v /var/www/htdocs/osticket/升级
osTicket支持从1.6-rc1和更高版本升级。与任何 升级后,强烈建议备份附件文件、数据库和 在开始升级之前,使用osTicket代码库。请查看我们的 升级 指南 或 升级.txt文件 获取升级说明。
帮助
访问 文档 或 论坛如果你需要专业帮助 管理您的osTicket安装, 商业支持 可用。
贡献
创建自己的项目分支并使用 git流 以创建新功能。曾经 该功能已发布在您的fork中,请发送一个pull请求以开始 将新功能集成到osTicket的对话。
本地化

osTicket的接口现在完全可以翻译了。语言包 可在 下载页面如果你 在那里看不到你的语言,请加入 人群 项目和请求添加您的语言。达到100%的语言 翻译后的内容将在 osTicket下载页面。
该软件也可以在我们的 JIPT现场. 一旦你有了Crowdin帐户,登录并在浏览器中翻译软件!
在新代码中本地化字符串需要使用 少数规则.
许可证
osTicket根据GPL2许可证发布。请参阅随附的LICENSE.txt 通用公共许可证的血腥细节文件。
osTicket由几个神奇的开源项目支持,包括:
