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
|
||||
```
|
||||
77
docs/prompts/next-session-coolify-test.md
Normal file
77
docs/prompts/next-session-coolify-test.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# Next Session — Coolify MCP Plugin Testing & Next Steps
|
||||
|
||||
> Session prompt. Copy and paste into a new Claude Code conversation.
|
||||
|
||||
---
|
||||
|
||||
## Prompt:
|
||||
|
||||
```
|
||||
از مهارت project-ops برای آشنایی با محیط استفاده کن. حافظه و فایلهای مرجع را بررسی کن.
|
||||
|
||||
## هدف: تست پلاگین Coolify MCP و مراحل بعدی
|
||||
|
||||
### پیشنیاز
|
||||
- MCPHub redeploy شده و سایت Coolify اضافه شده
|
||||
- MCP endpoint `mcphub-coolify` در `.claude.json` تنظیم شده
|
||||
- پلاگین 30 ابزار دارد (17 application + 5 deployment + 8 server)
|
||||
|
||||
### مرحله ۱: تأیید اتصال MCP
|
||||
- [ ] لیست ابزارهای coolify را از MCP بگیر (باید 30 ابزار باشد)
|
||||
- [ ] اگر ابزار coolify در لیست نبود، `.claude.json` و `settings.json` را بررسی کن
|
||||
|
||||
### مرحله ۲: تست ابزارهای read
|
||||
- [ ] `coolify_list_servers` — لیست سرورها
|
||||
- [ ] `coolify_list_applications` — لیست اپلیکیشنها
|
||||
- [ ] `coolify_list_deployments` — لیست دیپلویمنتهای در حال اجرا
|
||||
- [ ] `coolify_get_server_resources(uuid=SERVER_UUID)` — منابع سرور
|
||||
- [ ] `coolify_get_server_domains(uuid=SERVER_UUID)` — دامنههای سرور
|
||||
- [ ] یک اپلیکیشن انتخاب کن و:
|
||||
- [ ] `coolify_get_application(uuid=APP_UUID)` — جزئیات
|
||||
- [ ] `coolify_get_application_logs(uuid=APP_UUID, lines=50)` — لاگها
|
||||
- [ ] `coolify_list_application_envs(uuid=APP_UUID)` — متغیرهای محیطی
|
||||
- [ ] `coolify_list_app_deployments(uuid=APP_UUID)` — تاریخچه دیپلوی
|
||||
|
||||
### مرحله ۳: تست ابزارهای write (با احتیاط)
|
||||
- [ ] از کاربر بپرس آیا مجاز است یک env var تست ایجاد/حذف کند
|
||||
- [ ] اگر بله:
|
||||
- [ ] `coolify_create_application_env(uuid=APP_UUID, key="TEST_VAR", value="test123")`
|
||||
- [ ] `coolify_delete_application_env(uuid=APP_UUID, env_uuid=...)`
|
||||
|
||||
### مرحله ۴: گزارش نتایج
|
||||
- [ ] خلاصه نتایج تست (چند ابزار کار کرد، مشکلات)
|
||||
- [ ] مقایسه با ابزارهای Gitea و Supabase MCP (کیفیت پاسخها)
|
||||
|
||||
### مرحله ۵: اگر تست موفق بود — Sync به نسخه عمومی
|
||||
- [ ] `python3.11 scripts/community-build/sync.py --output ../mcphub/`
|
||||
- [ ] `cd /config/workspace/mcphub && uvx --python 3.12 black . && uvx ruff check --fix .`
|
||||
- [ ] تستها: `python3.11 -m pytest tests/ -q`
|
||||
- [ ] Commit و push نسخه عمومی
|
||||
|
||||
### مرحله ۶: آپدیتها
|
||||
- [ ] mcp-skills/skills/coolify/SKILL.md — از planned به active تغییر کرده (بررسی شود)
|
||||
- [ ] حافظه آپدیت شود
|
||||
|
||||
## پیشنهاد مراحل بعدی (بعد از تست)
|
||||
|
||||
### فوری
|
||||
1. **F.17 Phase 2**: اضافه کردن databases (16 ابزار) + services (13 ابزار) → ~59 ابزار کل
|
||||
2. **F.17 Phase 3**: projects (8 ابزار) → ~67 ابزار کل — تکمیل طرح اصلی
|
||||
|
||||
### میانمدت
|
||||
3. **Coolify Workflow Skill**: مهارت اختصاصی برای عملیات متداول (deploy all, backup all, health check all)
|
||||
4. **Integration Test**: تست خودکار با Coolify واقعی (pytest mark integration)
|
||||
5. **F.14a**: ثبت MCPHub در Smithery + Official MCP Registry
|
||||
|
||||
### بلندمدت
|
||||
6. **Blog Post**: نوشتن مقاله درباره "Self-hosted MCP Hub with Coolify Integration"
|
||||
7. **F.5a**: Base64 media upload برای WordPress
|
||||
8. **F.6**: Claude Code skills بومی
|
||||
|
||||
## قوانین
|
||||
- اول ابزارهای read تست شوند، بعد write
|
||||
- قبل از هر عملیات write از کاربر تأیید بگیر
|
||||
- نتایج تست دقیق گزارش شود (UUID ها، خطاها، زمان پاسخ)
|
||||
- حافظه آپدیت شود بعد از اتمام
|
||||
- ایمیل git داخلی: mcphub.dev@gmail.com
|
||||
```
|
||||
93
docs/prompts/next-session.md
Normal file
93
docs/prompts/next-session.md
Normal file
@@ -0,0 +1,93 @@
|
||||
# Next Session — Registry + MCP Skills + Infrastructure
|
||||
|
||||
> Session prompt. Copy and paste into a new Claude Code conversation.
|
||||
|
||||
---
|
||||
|
||||
## Prompt:
|
||||
|
||||
```
|
||||
از مهارت project-ops برای آشنایی با محیط استفاده کن. حافظه و فایلهای مرجع را بررسی کن.
|
||||
|
||||
## فایلهای مرجع
|
||||
- docs/plans/2026-03-25-v4-development-cycle.md (mcphub-internal, branch Phase-1)
|
||||
- CLAUDE.md (mcphub-internal)
|
||||
- CHANGELOG.md (mcphub-internal)
|
||||
|
||||
## وضعیت فعلی
|
||||
- MCPHub: v3.6.0 — 567 ابزار، 5 پلاگین عمومی (WordPress, WooCommerce, Supabase, OpenPanel, Gitea)
|
||||
- FastMCP: >=3.0.0,<4.0.0
|
||||
- CI سبز
|
||||
|
||||
## MCP Endpoints فعال
|
||||
- mcphub-supabase: 70 ابزار Supabase (DB, auth, storage)
|
||||
- mcphub-gitea: 58 ابزار Gitea (repos, issues, PRs, webhooks)
|
||||
|
||||
## ریپازیتوریها
|
||||
### GitHub (airano-ir)
|
||||
- mcphub (public) → /config/workspace/mcphub
|
||||
- mcphub (private, Phase-1) → /config/workspace/mcphub-internal
|
||||
- mcp-skills (private, خالی) → /config/workspace/mcp-skills
|
||||
- skillhub-internal → /config/workspace/skillhub-internal
|
||||
- skillhub (public) → /config/workspace/skillhub
|
||||
|
||||
### Gitea (atlatl @ gitea.example.com)
|
||||
- polymarket (private) → /config/workspace/polymarket
|
||||
- polymarket-skill (private) → /config/workspace/polymarket-skill
|
||||
- project-ops (private) → مهارت در /config/.claude/skills/project-ops/
|
||||
|
||||
## اهداف این session (به ترتیب اولویت)
|
||||
|
||||
### 1. Registry Submissions (F.14a)
|
||||
وضعیت فعلی:
|
||||
- Glama: ثبت شده (Score: A)، glama.json اضافه شده
|
||||
- awesome-mcp-servers: PR #2147 باز — badge SVG + tool count اصلاح شده، منتظر merge
|
||||
- Smithery.ai: ثبت نشده → از smithery.ai/new ثبت کن (نیاز به public HTTPS URL: mcp.example.com)
|
||||
- Official MCP Registry: ثبت نشده → بررسی `mcp-publisher` CLI
|
||||
کارها:
|
||||
- [ ] وضعیت PR #2147 چک شود — اگر feedback جدید دارد رفع شود
|
||||
- [ ] ثبت در Smithery.ai
|
||||
- [ ] بررسی Official MCP Registry submission process
|
||||
|
||||
### 2. MCP Skills — اولین مهارتها (github:airano-ir/mcp-skills)
|
||||
ریپازیتوری خالی ساخته شده. ساختار:
|
||||
```
|
||||
mcp-skills/skills/
|
||||
├── wordpress/ ← اولین مهارت
|
||||
├── supabase/
|
||||
├── gitea/
|
||||
├── woocommerce/
|
||||
├── openpanel/
|
||||
└── coolify/ ← آینده
|
||||
```
|
||||
کارها:
|
||||
- [ ] از SkillHub بهترین مهارتهای مرتبط را جستجو کن: `npx skillhub search "wordpress mcp" --sort aiScore`
|
||||
- [ ] اگر مهارت با کیفیت بالا (aiScore > 70) پیدا نشد، با skill-creator مهارت جدید بساز
|
||||
- [ ] اولین مهارت: WordPress content workflow (استفاده از MCP endpoint مستقیم)
|
||||
- [ ] هر مهارت باید SKILL.md + اسکریپتهای عملی داشته باشد
|
||||
- [ ] بعد از تست، commit و push به github:airano-ir/mcp-skills
|
||||
|
||||
### 3. Project-Ops Sync با Gitea
|
||||
- [ ] محتوای `/config/.claude/skills/project-ops/SKILL.md` را به `gitea:atlatl/project-ops` push کن
|
||||
- [ ] مطمئن شو backup در Gitea up-to-date است
|
||||
|
||||
### 4. Blog Workspace Setup
|
||||
- [ ] WordPress MCP endpoint اضافه کن از داشبورد mcp.example.com (blog.example.com)
|
||||
- [ ] یک پست تست با MCP WordPress tools بنویس
|
||||
- [ ] اگر API مشکلی داشت، در mcphub-internal fix کن
|
||||
|
||||
### 5. بررسی Coolify MCP (F.17)
|
||||
- [ ] API documentation کولیفای را بررسی کن
|
||||
- [ ] بررسی آیا Coolify API در دسترس است از این محیط
|
||||
- [ ] یک طرح اولیه از tools مورد نیاز بنویس
|
||||
- [ ] نتیجه را در docs/plans/ ذخیره کن
|
||||
|
||||
## قوانین
|
||||
- اول پلن بده، بدون تایید شروع نکن
|
||||
- هر مرحله commit شود
|
||||
- حافظه و project-ops در صورت نیاز آپدیت شود
|
||||
- از SkillHub برای پیدا کردن بهترین مهارتها استفاده کن (aiScore بالاترین)
|
||||
- اگر مهارتی بررسی نشده، با auto-review بررسی کن
|
||||
- ایمیل git عمومی: hi.airano@gmail.com
|
||||
- ایمیل git داخلی: mcphub.dev@gmail.com
|
||||
```
|
||||
Reference in New Issue
Block a user