Add Email (IMAP/SMTP) and SSH Remote Access connectors

- CLAUDE.md: developer guide for the marketplace repo
- email/: generic IMAP+SMTP connector (stdlib only, config via env)
  - env[] array, auth.type: password, verify.py (IMAP+SMTP probe)
- ssh/: SSH Remote Access connector ported from Skald, modified
  - ALIASES_FILE → ~/.ssh_aliases.json (was ./secrets/...)
  - optional env[] (TTL/timeout tunables)
  - auth.type: none (per-alias auth at runtime via elicitation)
- tavily/: restructured with env[] (tavilyApiKey), verify.py, auth block
- connectors.json: added email, ssh, and tavily verify.py entries
- SKALD.md: documented env[], verify, password auth, SSH connector
This commit is contained in:
2026-07-16 22:29:33 +01:00
parent dedd09d7c7
commit 1caba6946c
15 changed files with 3420 additions and 8 deletions
+91
View File
@@ -48,6 +48,92 @@
}
]
},
{
"id": "email",
"name": "Email (IMAP/SMTP)",
"type": "mcp_local",
"scope": "user",
"icon_small": "email/icon_sm.svg",
"icon_large": "email/icon_lg.svg",
"user_description": "Read, search, organize, and send email over IMAP/SMTP — any provider, no OAuth. Real-time push notifications on new mail.",
"requires": [
"PYTHON",
"ENV"
],
"tags": [
"email",
"mcp",
"local",
"imap",
"smtp"
],
"folder": "email",
"files": [
{
"path": "email_mcp_server.py",
"sha256": "e8e0efc7d07be0d743f73ae80b15c924a763e57fc19000b1ef1e98237465da0f",
"size": 54522
},
{
"path": "icon_lg.svg",
"sha256": "94128b8ab2a3e701d042b6294c46bf0581152a3fe066e2fb415433e964f6935b",
"size": 308
},
{
"path": "icon_sm.svg",
"sha256": "05b8d18f8233503bba4b6668dc6c83b2e5d65cb26cfc4901366e2fa43d90737a",
"size": 306
},
{
"path": "verify.py",
"sha256": "5bd16cf4c1e2fc8b5b58083d12be0999c06dcc48ab52c3db3a531025771f6ff7",
"size": 3395
}
]
},
{
"id": "ssh",
"name": "SSH Remote Access",
"type": "mcp_local",
"scope": "user",
"icon_small": "ssh/icon_sm.svg",
"icon_large": "ssh/icon_lg.svg",
"user_description": "Full SSH remote server access — files, commands, systemd, upload/download. Aliases manage host config; auth via key/agent or elicited password.",
"requires": [
"PYTHON"
],
"tags": [
"ssh",
"mcp",
"local",
"remote",
"server",
"sysadmin"
],
"folder": "ssh",
"files": [
{
"path": "ssh_mcp_server.py",
"sha256": "fbd7aa9dfad0da57f4b3d9d437c76fd978145c8364ed5fdfdfc3ba7ccfaf117b",
"size": 49764
},
{
"path": "requirements.txt",
"sha256": "fa65d44e3d3219c79e5272ef7123352b5d71a35871ede721e66422c897b94e0e",
"size": 14
},
{
"path": "icon_sm.svg",
"sha256": "57e9e5de2ec56548a8a3821bb29c7f75c8a02f45ae236c8ae3388bb0be9b4a81",
"size": 254
},
{
"path": "icon_lg.svg",
"sha256": "84dc85685be0fff4cae1c2554b5fe958dd94455e182117c7470838b3cfca6ba1",
"size": 432
}
]
},
{
"id": "tavily",
"name": "Tavily",
@@ -75,6 +161,11 @@
"path": "icon_sm.png",
"sha256": "92962ea1d49f272665262d55ecdea929972d3efab5261fc6ffea632803fceaf8",
"size": 24264
},
{
"path": "verify.py",
"sha256": "35a4f3b518c79363893c0438b1932b68e2dc5b4b61303037984488f6967b73a4",
"size": 2057
}
]
}