hamravesh-mcp
MCP server to manage Hamravesh (Darkube) apps via the console's internal API, supporting read and write operations like listing apps, viewing logs, restarting, scaling, and updating environment variables.
README
hamravesh-mcp
کنترلِ کنسولِ همروش / دارکوب از داخلِ هر کلاینتِ MCP (مثل Claude) — بدونِ پنل، بدونِ کلیک. Control the Hamravesh / Darkube console from any MCP client (Claude, etc.) — no panel, no clicking.
سرورِ MCP که به دستیارِ هوشِ مصنوعی اجازه میدهد اپهای همروش (دارکوب) را مستقیم از طریقِ API داخلیِ کنسول مدیریت کند: دیدن و بررسیِ اپها، لاگ، ریاستارت، دیپلوی، اسکیل، تغییرِ env، مدیریتِ دیتابیس/رجیستری/صورتحساب — و صدا زدنِ هر endpointِ دیگر.
A Model Context Protocol server that lets an AI assistant manage your Hamravesh (Darkube) apps directly via the console's internal API: list & inspect apps, view logs, restart, redeploy, scale, edit env vars, manage databases, registries, billing — and call any other endpoint.
⚠️ غیررسمی. این ابزار از API داخلیِ کنسولِ همروش (
api.hamravesh.com) استفاده میکند که عمومی/مستند نیست و ممکن است بدونِ اطلاع تغییر کند. Unofficial. Uses Hamravesh's internal console API (api.hamravesh.com), which is not a public/documented API and may change without notice.
فارسی
امکانات
- 🔑 دو روشِ ورود — یا کلید API (هدرِ
Authorization: Api-Key …، توصیهشده) یا ایمیل/رمز (JWT با تمدیدِ خودکار). - 🧰 ۲۱ ابزار — خواندنی (اپها، لاگ، کانتینرها، منیفست، بیلدها، دیتابیس، رجیستری، صورتحساب، کلیدها)، نوشتنی (ریاستارت، دیپلوی، اسکیل، روشن/خاموش، تغییرِ env، ساخت/حذفِ اپ، ساخت/حذفِ کلید) و یک ابزارِ جوکر بهنامِ
hamravesh_requestبرای هر endpoint. - 🔒 پیشفرض امن — نوشتن و حذف تا وقتی خودت روشن نکنی خاموشاند. ابزارِ جوکر روی میزبانِ همروش قفل است (بدونِ SSRF) و رازها از پیامِ خطا پاک میشوند.
- 📦 بدونِ build، یک وابستگی — ESMِ ساده، فقط
@modelcontextprotocol/sdk.
گرفتنِ کلید API
در پنلِ همروش: تنظیماتِ سازمان ← امنیت ← API Keys ← یک کلید بساز. (یا بهجایش ایمیل/رمز بده — جدولِ پایین.)
شروعِ سریع
با Claude، Cursor، VS Code، Windsurf و هر کلاینتِ MCP کار میکند. نیازی به نصبِ سراسری نیست — npx خودش موقعِ اجرا دانلودش میکند.
🪄 روشِ A — بدونِ کدنویسی (بذار Claude خودش انجامش دهد). اگر همهکارت را با Claude انجام میدهی، فقط بگو:
«MCP همروش (
hamravesh-mcp) را برایم نصب و تنظیم کن. کلیدِ APIم این است:…و سازمانم….»
Claude خودش نصب و تنظیمش میکند. تمام.
⌨️ روشِ B — Claude Code، یک خط:
claude mcp add hamravesh --env HAMRAVESH_API_KEY=کلیدت --env HAMRAVESH_ORG=سازمانت -- npx -y hamravesh-mcp
📝 روشِ C — فایلِ پیکربندی (claude_desktop_config.json یا .mcp.jsonِ پروژه):
{
"mcpServers": {
"hamravesh": {
"command": "npx",
"args": ["-y", "hamravesh-mcp"],
"env": {
"HAMRAVESH_API_KEY": "کلیدِ تو",
"HAMRAVESH_ORG": "نامِ سازمان"
}
}
}
}
متغیرهای محیطی
| متغیر | لازم؟ | توضیح |
|---|---|---|
HAMRAVESH_API_KEY |
یکی از این دو | کلید API (توصیهشده). |
HAMRAVESH_EMAIL + HAMRAVESH_PASSWORD |
یکی از این دو | ایمیل/رمز (JWT). اگر 2FA داری HAMRAVESH_OTP. |
HAMRAVESH_ORG |
توصیهشده | سازمانِ پیشفرض (مثل wgcup)؛ در هر ابزار قابلِ تغییر. |
HAMRAVESH_BASE |
نه | پیشفرض https://api.hamravesh.com. |
HAMRAVESH_ALLOW_WRITE |
نه | 1 برای فعالکردنِ ابزارهای نوشتن (پیشفرض خاموش). |
HAMRAVESH_ALLOW_DELETE |
نه | 1 برای فعالکردنِ ابزارهای حذف (پیشفرض خاموش). |
ایمنی
بهصورتِ پیشفرض فقط خواندن مجاز است؛ هیچ تغییری روی سرویسِ زنده رخ نمیدهد. برای تغییر/حذف باید فلگهای بالا را روی 1 بگذاری. این یعنی امکان ندارد دستیار اشتباهی چیزی را خراب کند.
ابزارها
خواندنی (همیشه روشن): hamravesh_whoami، hamravesh_list_apps، hamravesh_get_app، hamravesh_app_containers، hamravesh_app_logs، hamravesh_app_manifests، hamravesh_app_builds، hamravesh_list_databases، hamravesh_list_registries، hamravesh_billing، hamravesh_list_apikeys
نوشتنی (نیازمندِ ALLOW_WRITE=1): hamravesh_restart_app، hamravesh_redeploy_app، hamravesh_scale_app، hamravesh_set_app_enabled، hamravesh_update_app_envs، hamravesh_create_app، hamravesh_create_apikey، و hamravesh_delete_app/hamravesh_delete_apikey (نیازمندِ ALLOW_DELETE=1)
جوکر: hamravesh_request — هر متد/مسیر (GET آزاد؛ نوشتن/حذف تابعِ فلگها).
مرجع
ENDPOINTS.md— کاتالوگِ دستهبندیشده.WRITE-ENDPOINTS.md— شکلِ بدنهٔ همهٔ ۱۶۲ درخواستِ نوشتنی.LIVE-STATUS.md— وضعیتِ زندهٔ هر endpoint با حسابِ admin.ENDPOINTS-RAW.txt— لیستِ خامِ همهٔ ۵۷۸ آدرس (متد+مسیر).
توسعه
npm ci
npm test # بدونِ شبکه: ابزارها و محافظِ نوشتن را چک میکند
English
Features
- 🔑 Two auth modes — a stable API key (
Authorization: Api-Key …, recommended) or email/password (JWT with auto-refresh). - 🧰 21 tools — read (apps, logs, containers, manifests, builds, databases, registries, billing, api-keys), write (restart, redeploy, scale, enable/disable, update env, create/delete app, create/delete api-key), plus a generic
hamravesh_requestescape hatch for any endpoint. - 🔒 Safe by default — write and delete operations are disabled unless you explicitly turn them on. The generic tool is host-locked (no SSRF) and secrets are redacted from error messages.
- 📦 Zero build, one dependency — plain ESM, only
@modelcontextprotocol/sdk.
Get an API key
In the Hamravesh panel: Organization settings → Security → API Keys → create one. (Or use email/password instead — see the table below.)
Quick start
Works with Claude, Cursor, VS Code, Windsurf and any MCP client. No global install — npx fetches it on demand.
🪄 Option A — No coding (let Claude do it). If you do everything through Claude, just tell it:
"Set up the
hamravesh-mcpMCP server for me. My Hamravesh API key is…and my org is…."
Claude installs it and writes the config for you. Done.
⌨️ Option B — Claude Code, one line:
claude mcp add hamravesh --env HAMRAVESH_API_KEY=your-key --env HAMRAVESH_ORG=your-org -- npx -y hamravesh-mcp
📝 Option C — config file (Claude Desktop claude_desktop_config.json, or a project .mcp.json):
{
"mcpServers": {
"hamravesh": {
"command": "npx",
"args": ["-y", "hamravesh-mcp"],
"env": {
"HAMRAVESH_API_KEY": "your-api-key",
"HAMRAVESH_ORG": "your-org-name"
}
}
}
}
Environment variables
| Variable | Required | Description |
|---|---|---|
HAMRAVESH_API_KEY |
one of these | API key (recommended). |
HAMRAVESH_EMAIL + HAMRAVESH_PASSWORD |
one of these | Email/password (JWT). HAMRAVESH_OTP if 2FA. |
HAMRAVESH_ORG |
recommended | Default organization (e.g. wgcup); per-call overridable. |
HAMRAVESH_BASE |
no | Defaults to https://api.hamravesh.com. |
HAMRAVESH_ALLOW_WRITE |
no | 1 to enable write tools (default off). |
HAMRAVESH_ALLOW_DELETE |
no | 1 to enable delete tools (default off). |
Tools
Read (always on): hamravesh_whoami, hamravesh_list_apps, hamravesh_get_app, hamravesh_app_containers, hamravesh_app_logs, hamravesh_app_manifests, hamravesh_app_builds, hamravesh_list_databases, hamravesh_list_registries, hamravesh_billing, hamravesh_list_apikeys
Write (need ALLOW_WRITE=1): hamravesh_restart_app, hamravesh_redeploy_app, hamravesh_scale_app, hamravesh_set_app_enabled, hamravesh_update_app_envs, hamravesh_create_app, hamravesh_create_apikey, hamravesh_delete_app/hamravesh_delete_apikey (need ALLOW_DELETE=1)
Generic: hamravesh_request — any method/path (GET free; write/delete follow the flags).
Reference
ENDPOINTS.md— categorized endpoint catalog.WRITE-ENDPOINTS.md— request-body shapes for all 162 write endpoints.LIVE-STATUS.md— live status of each endpoint with an admin account.ENDPOINTS-RAW.txt— raw list of all 578 method+path pairs.
Develop
npm ci
npm test # network-free: checks tools + write guard
مجوز / License
MIT © محمد باختری — Mohammad Bakhtari
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。