feat: v3.7.0 — Coolify MCP plugin (30 tools)
New plugin: Coolify deployment management (applications, deployments, servers). 10 plugins, 596 tools, 686 tests passing. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
95
docs/prompts/next-session-coolify-f17.md
Normal file
95
docs/prompts/next-session-coolify-f17.md
Normal file
@@ -0,0 +1,95 @@
|
||||
# Next Session — F.17 Coolify MCP Plugin (MVP)
|
||||
|
||||
> Session prompt. Copy and paste into a new Claude Code conversation.
|
||||
|
||||
---
|
||||
|
||||
## Prompt:
|
||||
|
||||
```
|
||||
از مهارت project-ops برای آشنایی با محیط استفاده کن. حافظه و فایلهای مرجع را بررسی کن.
|
||||
|
||||
## فایلهای مرجع
|
||||
- docs/plans/2026-04-02-coolify-mcp-plugin-design.md (mcphub-internal) ← طرح کامل پلاگین
|
||||
- docs/plans/2026-03-25-v4-development-cycle.md (mcphub-internal, branch Phase-1) ← فاز F.17
|
||||
- CLAUDE.md (mcphub-internal)
|
||||
- plugins/gitea/ (mcphub-internal) ← الگوی مرجع (آخرین پلاگین ساختهشده)
|
||||
- plugins/base.py (mcphub-internal) ← BasePlugin interface
|
||||
|
||||
## وضعیت فعلی
|
||||
- MCPHub: v3.6.0 — 566 ابزار، 5 پلاگین عمومی
|
||||
- FastMCP: >=3.0.0,<4.0.0
|
||||
- CI سبز
|
||||
- طرح Coolify: نوشته شده — ~68 ابزار در 6 handler
|
||||
|
||||
## ریپازیتوری
|
||||
- MCPHub (internal): `/config/workspace/mcphub-internal` (branch Phase-1)
|
||||
|
||||
## هدف session: F.17 Phase 1 — Coolify MVP
|
||||
|
||||
### پیشنیاز اول: Coolify API Token
|
||||
- [ ] در داشبورد Coolify، بخش Keys & Tokens، یک API token بساز
|
||||
- [ ] تست اتصال: `curl -s https://COOLIFY_URL/api/v1/version -H "Authorization: Bearer TOKEN"`
|
||||
- [ ] اگر URL و TOKEN مشخص نبود، از کاربر بپرس
|
||||
|
||||
### مرحله ۱: ساختار اولیه پلاگین
|
||||
- [ ] `plugins/coolify/__init__.py` (خالی)
|
||||
- [ ] `plugins/coolify/client.py` — CoolifyClient با Bearer Token auth
|
||||
- الگو از `plugins/gitea/client.py` بگیر
|
||||
- متدها: `request()`, `get()`, `post()`, `patch()`, `delete()`
|
||||
- Error handling + retry مشابه Gitea client
|
||||
- [ ] `plugins/coolify/plugin.py` — CoolifyPlugin(BasePlugin)
|
||||
- الگو از `plugins/gitea/plugin.py` بگیر
|
||||
- `get_tool_specifications()` باید ابزارهای handler ها رو جمع کنه
|
||||
- [ ] `plugins/coolify/handlers/__init__.py`
|
||||
- [ ] `plugins/coolify/schemas/__init__.py`
|
||||
- [ ] `plugins/coolify/schemas/common.py` — مدلهای مشترک (UUID, pagination)
|
||||
|
||||
### مرحله ۲: Handler — Applications (18 ابزار)
|
||||
- [ ] `plugins/coolify/handlers/applications.py`
|
||||
- [ ] ابزارها (از طرح):
|
||||
- list_applications, get_application
|
||||
- create_application_public, create_application_dockerfile, create_application_docker_image, create_application_compose
|
||||
- update_application, delete_application
|
||||
- start_application, stop_application, restart_application
|
||||
- get_application_logs
|
||||
- list_application_envs, create_application_env, update_application_env, update_application_envs_bulk, delete_application_env
|
||||
- [ ] schemas/application.py — Pydantic models
|
||||
|
||||
### مرحله ۳: Handler — Deployments (5 ابزار)
|
||||
- [ ] `plugins/coolify/handlers/deployments.py`
|
||||
- [ ] ابزارها: list_deployments, get_deployment, cancel_deployment, deploy, list_app_deployments
|
||||
|
||||
### مرحله ۴: Handler — Servers (8 ابزار)
|
||||
- [ ] `plugins/coolify/handlers/servers.py`
|
||||
- [ ] ابزارها: list_servers, get_server, create_server, update_server, delete_server, get_server_resources, get_server_domains, validate_server
|
||||
- [ ] schemas/server.py
|
||||
|
||||
### مرحله ۵: ثبت پلاگین و تنظیمات
|
||||
- [ ] در `plugins/__init__.py` اضافه کن: `from plugins.coolify.plugin import CoolifyPlugin` + `registry.register("coolify", CoolifyPlugin)`
|
||||
- [ ] در `env.example` اضافه کن: `COOLIFY_URL`, `COOLIFY_TOKEN`
|
||||
- [ ] پلاگین فعلا admin-only باشد (به ENABLED_PLUGINS اضافه نشود)
|
||||
|
||||
### مرحله ۶: تست
|
||||
- [ ] `tests/test_coolify.py` — Unit tests با mocked HTTP
|
||||
- الگو از `tests/test_gitea*.py` بگیر
|
||||
- حداقل: test_list_applications, test_get_application, test_deploy, test_list_servers
|
||||
- [ ] `pytest tests/test_coolify.py -v`
|
||||
- [ ] اگر API Token موجود بود: integration test با Coolify واقعی
|
||||
|
||||
### مرحله ۷: تست نهایی و commit
|
||||
- [ ] `uvx --python 3.12 black .`
|
||||
- [ ] `uvx ruff check --fix .`
|
||||
- [ ] `pytest` (همه تستها سبز)
|
||||
- [ ] Commit: `feat(F.17): add Coolify MCP plugin — Phase 1 MVP (~31 tools)`
|
||||
- [ ] Push to Phase-1
|
||||
|
||||
## قوانین
|
||||
- اول پلن بده، بدون تایید شروع نکن
|
||||
- از Gitea plugin به عنوان الگوی اصلی استفاده کن (آخرین و تمیزترین پلاگین)
|
||||
- هر مرحله commit شود
|
||||
- tool specifications باید دقیقا مطابق فرمت BasePlugin باشند (name, method_name, description, schema, scope)
|
||||
- scope ها: read, write, admin — مطابق جدول در طرح
|
||||
- حافظه آپدیت شود بعد از اتمام
|
||||
- ایمیل git داخلی: mcphub.dev@gmail.com
|
||||
```
|
||||
Reference in New Issue
Block a user