diff --git a/SKALD.md b/SKALD.md index 96b2239..4cb81d1 100644 --- a/SKALD.md +++ b/SKALD.md @@ -96,6 +96,9 @@ Non ha hash di sé stesso — in futuro potrà essere firmato digitalmente. ] }, "folder": "gmail", + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19", "files": [ | `auth` | per OAuth | Oggetto con `type`, `provider`, `scopes` per badge UI (NO `deliver` qui, è nel manifest) | @@ -124,6 +127,9 @@ Non ha hash di sé stesso — in futuro potrà essere firmato digitalmente. | `requires` | ✅ | Array di enum requisiti | | `tags` | ✅ | Array di tag per filtraggio | | `folder` | ✅ | Nome della cartella del connector | +| `version` | ✅ | Intero per-connector, +1 a ogni modifica dei file | +| `version_string` | ✅ | Semver (solo display) | +| `version_release_date` | ✅ | Data ISO 8601 YYYY-MM-DD (solo display) | | `files` | ✅ | Array di file con sha256 (NO self-hash) | ## Schema — connector.json (per cartella) @@ -134,7 +140,9 @@ Configurazione tecnica per l'attivazione del connector. { "id": "gmail", "name": "Gmail", - "version": "1.0.0", + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19", "type": "mcp_local", "scope": "user", "launch_command": "python3 gmail_mcp_server.py", @@ -186,7 +194,9 @@ Configurazione tecnica per l'attivazione del connector. |-------|-------------|-------------| | `id` | ✅ | Identificatore unico (match con folder name) | | `name` | ✅ | Nome visualizzato | -| `version` | ✅ | SemVer | +| `version` | ✅ | Intero per-connector, +1 a ogni modifica dei file | +| `version_string` | ✅ | Semver (solo display) | +| `version_release_date` | ✅ | Data ISO 8601 YYYY-MM-DD (solo display) | | `type` | ✅ | `mcp_remote` o `mcp_local` | | `scope` | ✅ | `global` o `user` | | `requires` | ✅ | Array di enum requisiti | diff --git a/connectors/connectors.json b/connectors/connectors.json index e9b9466..178e916 100644 --- a/connectors/connectors.json +++ b/connectors/connectors.json @@ -28,7 +28,15 @@ ] }, "folder": "gmail", + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19", "files": [ + { + "path": "connector.json", + "sha256": "128a7bf96a9d06f63453a2810738289617b6210cd64b76772261fb8aced85a99", + "size": 1637 + }, { "path": "gmail_mcp_server.py", "sha256": "e96568dda3d0198be0a34092458dac2aaafee4a7e282a3fb427923f517e536e3", @@ -77,7 +85,15 @@ ] }, "folder": "gcal", + "version": 1, + "version_string": "0.3.0", + "version_release_date": "2026-07-19", "files": [ + { + "path": "connector.json", + "sha256": "b3d88d9d24c13cdc5ac325d378b1e3e66243b2f36bdaf99ab8753f75eb9fd342", + "size": 1480 + }, { "path": "gcal_mcp_server.py", "sha256": "c526751c8891a8d97ba37d14da282d223be7cd061eb67c76cea6a12672921db0", @@ -105,7 +121,6 @@ } ] }, - { "id": "email", "name": "Email (IMAP/SMTP)", @@ -113,7 +128,7 @@ "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.", + "user_description": "Read, search, organize, and send email over IMAP/SMTP \u2014 any provider, no OAuth. Real-time push notifications on new mail.", "requires": [ "PYTHON" ], @@ -128,7 +143,15 @@ "type": "password" }, "folder": "email", + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19", "files": [ + { + "path": "connector.json", + "sha256": "a68f44932e9df6dc949fa7e034da4a428d945d99be6d0d192f5fa62ed7f4f7da", + "size": 4652 + }, { "path": "email_mcp_server.py", "sha256": "e8e0efc7d07be0d743f73ae80b15c924a763e57fc19000b1ef1e98237465da0f", @@ -162,15 +185,38 @@ "requires": [ "NODE" ], - "tags": ["scraping", "crawling", "search", "mcp", "local", "browser", "research"], + "tags": [ + "scraping", + "crawling", + "search", + "mcp", + "local", + "browser", + "research" + ], "auth": { "type": "api_key" }, "folder": "firecrawl", + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19", "files": [ - {"path": "connector.json", "sha256": "4045efdef62b89e124043051f34a43d09b9ad6665dc683583e8f2a7355379b16", "size": 2441}, - {"path": "icon_sm.png", "sha256": "3a4be30d4c16ce93a1d132e063dfdffb8bd27b6c97715c9f3b12414439aaeb01", "size": 6858}, - {"path": "icon_lg.png", "sha256": "3a4be30d4c16ce93a1d132e063dfdffb8bd27b6c97715c9f3b12414439aaeb01", "size": 6858} + { + "path": "connector.json", + "sha256": "39002ac49f6ebd93aabb9f80c1fa33c0298344f5e3a734151a6ea1e4d00639b9", + "size": 2600 + }, + { + "path": "icon_sm.png", + "sha256": "3a4be30d4c16ce93a1d132e063dfdffb8bd27b6c97715c9f3b12414439aaeb01", + "size": 6858 + }, + { + "path": "icon_lg.png", + "sha256": "3a4be30d4c16ce93a1d132e063dfdffb8bd27b6c97715c9f3b12414439aaeb01", + "size": 6858 + } ] }, { @@ -184,15 +230,38 @@ "requires": [ "NODE" ], - "tags": ["http", "fetch", "mcp", "local", "free", "scraping", "youtube"], + "tags": [ + "http", + "fetch", + "mcp", + "local", + "free", + "scraping", + "youtube" + ], "auth": { "type": "none" }, "folder": "http-fetch", + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19", "files": [ - {"path": "connector.json", "sha256": "f8aeb07f8485d39d47b5ccf6852197e8299feea6e7add0c6aaf446185df7a2cc", "size": 1122}, - {"path": "icon_sm.svg", "sha256": "fa32e634744d8cba369f6d8ba45746166124f7d3507cefd9a1f96180c787e1a8", "size": 380}, - {"path": "icon_lg.svg", "sha256": "3e5496d949062678ae44cd74430b29232bbfe28a7600038deb3159c4b26adee1", "size": 382} + { + "path": "connector.json", + "sha256": "67d44752fddca27f6093193264963c6658d66ce36917591eba7bde9e904389f2", + "size": 1259 + }, + { + "path": "icon_sm.svg", + "sha256": "fa32e634744d8cba369f6d8ba45746166124f7d3507cefd9a1f96180c787e1a8", + "size": 380 + }, + { + "path": "icon_lg.svg", + "sha256": "3e5496d949062678ae44cd74430b29232bbfe28a7600038deb3159c4b26adee1", + "size": 382 + } ] }, { @@ -202,7 +271,7 @@ "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.", + "user_description": "Full SSH remote server access \u2014 files, commands, systemd, upload/download. Aliases manage host config; auth via key/agent or elicited password.", "requires": [ "PYTHON" ], @@ -218,7 +287,15 @@ "type": "none" }, "folder": "ssh", + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19", "files": [ + { + "path": "connector.json", + "sha256": "fb54c2bf6226e601ed445aee2b47527dca0a9646fb8d809477ce05282bf4496f", + "size": 4112 + }, { "path": "ssh_mcp_server.py", "sha256": "fbd7aa9dfad0da57f4b3d9d437c76fd978145c8364ed5fdfdfc3ba7ccfaf117b", @@ -249,16 +326,24 @@ "icon_small": "tavily/icon_sm.png", "icon_large": "tavily/icon_lg.png", "user_description": "Web search API for LLMs \u2014 real-time results, news, and content extraction.", - "auth": { - "type": "api_key" - }, "tags": [ "search", "mcp", "remote" ], + "auth": { + "type": "api_key" + }, "folder": "tavily", + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19", "files": [ + { + "path": "connector.json", + "sha256": "40f191b9112f6e05e906836ead22db4c96a73c89a68db9c0ac5820473edcaad0", + "size": 1072 + }, { "path": "icon_lg.png", "sha256": "92962ea1d49f272665262d55ecdea929972d3efab5261fc6ffea632803fceaf8", @@ -284,17 +369,47 @@ "icon_small": "weather/icon_sm.svg", "icon_large": "weather/icon_lg.svg", "user_description": "Global weather, forecast, and air quality via Open-Meteo \u2014 free, no API key required.", + "tags": [ + "weather", + "mcp", + "local", + "free", + "forecast", + "air-quality" + ], "auth": { "type": "none" }, - "tags": ["weather", "mcp", "local", "free", "forecast", "air-quality"], "folder": "weather", + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19", "files": [ - {"path": "weather_mcp_server.py", "sha256": "5927333dee45ec5db1134034ee5af51d9e2fd95b6d128834de9a882e499b0ce4", "size": 29865}, - {"path": "connector.json", "sha256": "1dd58ebe8c83036fb9e2fe245fe691ca28466d64d74a4820e2f377154a925760", "size": 1165}, - {"path": "requirements.txt", "sha256": "bff057979879bf8d16acdc64317c6f2ac3dba4f1c4cd8df5ccd2a592fa804c95", "size": 14}, - {"path": "icon_sm.svg", "sha256": "23ad1eaf8370e97bea7928ff4aebff8c09563092d00d05662df34b4661643b4c", "size": 308}, - {"path": "icon_lg.svg", "sha256": "b1a16c5da95783d79e06388e5a18bc6c8291875335e8ac48665edeff5aeafca7", "size": 372} + { + "path": "weather_mcp_server.py", + "sha256": "5927333dee45ec5db1134034ee5af51d9e2fd95b6d128834de9a882e499b0ce4", + "size": 29865 + }, + { + "path": "connector.json", + "sha256": "5dd9852857eb2eb6236e34708c1436a835cbf49466fd575052c24dd1f6db973d", + "size": 1278 + }, + { + "path": "requirements.txt", + "sha256": "bff057979879bf8d16acdc64317c6f2ac3dba4f1c4cd8df5ccd2a592fa804c95", + "size": 14 + }, + { + "path": "icon_sm.svg", + "sha256": "23ad1eaf8370e97bea7928ff4aebff8c09563092d00d05662df34b4661643b4c", + "size": 308 + }, + { + "path": "icon_lg.svg", + "sha256": "b1a16c5da95783d79e06388e5a18bc6c8291875335e8ac48665edeff5aeafca7", + "size": 372 + } ] }, { @@ -308,17 +423,46 @@ "requires": [ "NODE" ], - "tags": ["messaging", "mcp", "local", "whatsapp", "qr"], + "tags": [ + "messaging", + "mcp", + "local", + "whatsapp", + "qr" + ], "auth": { "type": "qr" }, "folder": "whatsapp", + "version": 1, + "version_string": "2.0.1", + "version_release_date": "2026-07-19", "files": [ - {"path": "connector.json", "sha256": "716452f48594a4d9d960de85c0bd4d4f08c33673c6386959b1ef64afc53a6544", "size": 1163}, - {"path": "index.js", "sha256": "1627f115a1bfb5a954abd412dba76c38f7202640258d3cbc08c313c00446a14a", "size": 21668}, - {"path": "package.json", "sha256": "b99a9dccfd286b59e8482076129f2e40f7b339eba6c3db2a744887d65bd4964e", "size": 302}, - {"path": "icon_sm.png", "sha256": "1128f198b2a07041f2e0c8c330fc998d29c310ec3225f866073b9e921aa59b5f", "size": 74223}, - {"path": "icon_lg.png", "sha256": "1128f198b2a07041f2e0c8c330fc998d29c310ec3225f866073b9e921aa59b5f", "size": 74223} + { + "path": "connector.json", + "sha256": "2a5d0514a88bd9053699aa5625aa1e89d09deeb1edf294c8596bce621eaac3dc", + "size": 1286 + }, + { + "path": "index.js", + "sha256": "1627f115a1bfb5a954abd412dba76c38f7202640258d3cbc08c313c00446a14a", + "size": 21668 + }, + { + "path": "package.json", + "sha256": "b99a9dccfd286b59e8482076129f2e40f7b339eba6c3db2a744887d65bd4964e", + "size": 302 + }, + { + "path": "icon_sm.png", + "sha256": "1128f198b2a07041f2e0c8c330fc998d29c310ec3225f866073b9e921aa59b5f", + "size": 74223 + }, + { + "path": "icon_lg.png", + "sha256": "1128f198b2a07041f2e0c8c330fc998d29c310ec3225f866073b9e921aa59b5f", + "size": 74223 + } ] }, { @@ -329,18 +473,48 @@ "icon_small": "wikipedia/icon_sm.svg", "icon_large": "wikipedia/icon_lg.svg", "user_description": "Search and read Wikipedia articles \u2014 free, no API key required.", + "tags": [ + "wikipedia", + "mcp", + "local", + "free", + "reference", + "research" + ], "auth": { "type": "none" }, - "tags": ["wikipedia", "mcp", "local", "free", "reference", "research"], "folder": "wikipedia", + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19", "files": [ - {"path": "wikipedia_mcp_server.py", "sha256": "e8dcf08a23c2b61c366acc1f46ca2d18332438b8a1d832d46d7b680641b68c59", "size": 12110}, - {"path": "connector.json", "sha256": "ee71337fe0f9c4a10b26223f00747d98691204d0f10f1ca307c8e57cf303877b", "size": 1055}, - {"path": "requirements.txt", "sha256": "bff057979879bf8d16acdc64317c6f2ac3dba4f1c4cd8df5ccd2a592fa804c95", "size": 14}, - {"path": "icon_sm.svg", "sha256": "4110f6b49f5953f124099e99c1616aff63855215ceffa87d12800d2d413ddda2", "size": 286}, - {"path": "icon_lg.svg", "sha256": "f9a8dde47baf3842331534ddc4333024b195c53b5f3bda40b0b99cea3daa9a96", "size": 285} + { + "path": "wikipedia_mcp_server.py", + "sha256": "e8dcf08a23c2b61c366acc1f46ca2d18332438b8a1d832d46d7b680641b68c59", + "size": 12110 + }, + { + "path": "connector.json", + "sha256": "dc24727a2a6931e6567ef32a27c99eb6687e1001ea47fe6f0fdb8ff19f02a505", + "size": 1168 + }, + { + "path": "requirements.txt", + "sha256": "bff057979879bf8d16acdc64317c6f2ac3dba4f1c4cd8df5ccd2a592fa804c95", + "size": 14 + }, + { + "path": "icon_sm.svg", + "sha256": "4110f6b49f5953f124099e99c1616aff63855215ceffa87d12800d2d413ddda2", + "size": 286 + }, + { + "path": "icon_lg.svg", + "sha256": "f9a8dde47baf3842331534ddc4333024b195c53b5f3bda40b0b99cea3daa9a96", + "size": 285 + } ] } ] -} \ No newline at end of file +} diff --git a/connectors/email/connector.json b/connectors/email/connector.json index 510c6fd..429e94b 100644 --- a/connectors/email/connector.json +++ b/connectors/email/connector.json @@ -1,7 +1,6 @@ { "id": "email", "name": "Email (IMAP/SMTP)", - "version": "1.0.0", "type": "mcp_local", "launch_command": "python3 email_mcp_server.py", "transport": "stdio", @@ -88,7 +87,7 @@ "docs": [ { "lang": "en", - "description": "Generic email connector over IMAP + SMTP. Works with any provider (Gmail, Outlook/Office 365, iCloud, Yahoo, Fastmail, self-hosted, corporate) using standard protocols and an app password — no Google Cloud Console, no OAuth. Read, search, organise and send mail, download attachments, and receive real-time push notifications when new mail arrives (IMAP IDLE, with polling fallback). Standard library only, zero dependencies.", + "description": "Generic email connector over IMAP + SMTP. Works with any provider (Gmail, Outlook/Office 365, iCloud, Yahoo, Fastmail, self-hosted, corporate) using standard protocols and an app password \u2014 no Google Cloud Console, no OAuth. Read, search, organise and send mail, download attachments, and receive real-time push notifications when new mail arrives (IMAP IDLE, with polling fallback). Standard library only, zero dependencies.", "llm_short_description": "Email MCP server (IMAP/SMTP, any provider). Config via env vars. Tools: status, list_messages, get_message, get_thread, list_folders, modify_message, send_message, get_profile, create_folder, download_attachments. Emits event/new_email push notifications on new INBOX mail." } ], @@ -125,5 +124,8 @@ ], "auth": { "type": "password" - } + }, + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19" } diff --git a/connectors/firecrawl/connector.json b/connectors/firecrawl/connector.json index 170a95e..bcf2d29 100644 --- a/connectors/firecrawl/connector.json +++ b/connectors/firecrawl/connector.json @@ -1,36 +1,44 @@ { "id": "firecrawl", "name": "Firecrawl", - "version": "1.0.0", "type": "mcp_local", "launch_command": "npx -y firecrawl-mcp", "transport": "stdio", - "requires": ["NODE"], + "requires": [ + "NODE" + ], "dependencies": [], - "env": [{ - "name": "FIRECRAWL_API_KEY", - "label": "Firecrawl API key", - "description": "Create one at https://www.firecrawl.dev (dashboard \u2192 API Keys).", - "required": true, - "secret": true, - "example": "fc-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" - }], + "env": [ + { + "name": "FIRECRAWL_API_KEY", + "label": "Firecrawl API key", + "description": "Create one at https://www.firecrawl.dev (dashboard \u2192 API Keys).", + "required": true, + "secret": true, + "example": "fc-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + } + ], "setup_instructions": [ "Ensure Node.js is installed.", "Get an API key from https://www.firecrawl.dev/app/api-keys.", "No pip install needed \u2014 Firecrawl MCP runs via npx." ], - "docs": [{ - "lang": "en", - "description": "Web scraping, crawling, search, deep research, and autonomous browsing \u2014 extract content from any website via Firecrawl. Scrape single URLs into clean Markdown, map site structures, crawl entire domains with scheduling, search the web, extract structured data with LLM-powered extraction, and run autonomous research agents. Includes monitoring for crawl changes.", - "llm_short_description": "Scrape, crawl, search, research and extract web data via Firecrawl. 26 tools. Requires API key + Node.js." - }], + "docs": [ + { + "lang": "en", + "description": "Web scraping, crawling, search, deep research, and autonomous browsing \u2014 extract content from any website via Firecrawl. Scrape single URLs into clean Markdown, map site structures, crawl entire domains with scheduling, search the web, extract structured data with LLM-powered extraction, and run autonomous research agents. Includes monitoring for crawl changes.", + "llm_short_description": "Scrape, crawl, search, research and extract web data via Firecrawl. 26 tools. Requires API key + Node.js." + } + ], "auth": { "type": "api_key" }, "mcp_config": { "command": "npx", - "args": ["-y", "firecrawl-mcp"], + "args": [ + "-y", + "firecrawl-mcp" + ], "env": { "FIRECRAWL_API_KEY": "{SECRET:FIRECRAWL_API_KEY}" } @@ -43,5 +51,16 @@ "icon_small": "icon_sm.png", "icon_large": "icon_lg.png", "scope": "global", - "tags": ["scraping", "crawling", "search", "mcp", "local", "browser", "research"] + "tags": [ + "scraping", + "crawling", + "search", + "mcp", + "local", + "browser", + "research" + ], + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19" } diff --git a/connectors/gcal/connector.json b/connectors/gcal/connector.json index 62ad2d1..08b10f8 100644 --- a/connectors/gcal/connector.json +++ b/connectors/gcal/connector.json @@ -1,13 +1,20 @@ { "id": "gcal", "name": "Google Calendar", - "version": "0.3.0", "type": "mcp_local", "scope": "user", "launch_command": "python3 gcal_mcp_server.py", "transport": "stdio", - "requires": ["OAUTH", "PYTHON"], - "tags": ["calendar", "mcp", "local", "google"], + "requires": [ + "OAUTH", + "PYTHON" + ], + "tags": [ + "calendar", + "mcp", + "local", + "google" + ], "dependencies": [ "google-api-python-client>=2.150.0", "google-auth>=2.35.0" @@ -19,7 +26,7 @@ { "lang": "en", "description": "Read, create, update, delete, and respond to Google Calendar events. Supports push notifications for new events created by others.", - "llm_short_description": "Google Calendar MCP connector — full CRUD + RSVP + push polling." + "llm_short_description": "Google Calendar MCP connector \u2014 full CRUD + RSVP + push polling." } ], "auth": { @@ -36,7 +43,9 @@ }, "mcp_config": { "command": "python3", - "args": ["gcal_mcp_server.py"] + "args": [ + "gcal_mcp_server.py" + ] }, "verify": { "command": "python3 verify.py", @@ -44,5 +53,8 @@ }, "homepage": "https://calendar.google.com", "icon_small": "icon_sm.svg", - "icon_large": "icon_lg.svg" + "icon_large": "icon_lg.svg", + "version": 1, + "version_string": "0.3.0", + "version_release_date": "2026-07-19" } diff --git a/connectors/gmail/connector.json b/connectors/gmail/connector.json index 800520c..61b6f70 100644 --- a/connectors/gmail/connector.json +++ b/connectors/gmail/connector.json @@ -1,7 +1,6 @@ { "id": "gmail", "name": "Gmail", - "version": "1.0.0", "type": "mcp_local", "launch_command": "python3 gmail_mcp_server.py", "transport": "stdio", @@ -51,5 +50,8 @@ "format": "google_authorized_user", "env": "GMAIL_CREDS_JSON" } - } -} \ No newline at end of file + }, + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19" +} diff --git a/connectors/http-fetch/connector.json b/connectors/http-fetch/connector.json index 6fbf339..9936e72 100644 --- a/connectors/http-fetch/connector.json +++ b/connectors/http-fetch/connector.json @@ -1,31 +1,48 @@ { "id": "http-fetch", "name": "HTTP Fetch", - "version": "1.0.0", "type": "mcp_local", "launch_command": "npx -y mcp-fetch-server", "transport": "stdio", - "requires": ["NODE"], + "requires": [ + "NODE" + ], "dependencies": [], "setup_instructions": [ "Ensure Node.js is installed.", "No configuration needed \u2014 HTTP Fetch is a free tool with no API key." ], - "docs": [{ - "lang": "en", - "description": "Fetch any URL and convert it to HTML, Markdown, plain text, JSON, or YouTube transcripts \u2014 free, no API key required, no rate limits, no cost. Prefer this over Exa or Firecrawl for simple URL fetching. Supports YouTube video transcripts via fetch_youtube_transcript.", - "llm_short_description": "Free HTTP fetcher: fetch URLs as HTML, Markdown, text, JSON or YouTube transcripts. No API key, no cost." - }], + "docs": [ + { + "lang": "en", + "description": "Fetch any URL and convert it to HTML, Markdown, plain text, JSON, or YouTube transcripts \u2014 free, no API key required, no rate limits, no cost. Prefer this over Exa or Firecrawl for simple URL fetching. Supports YouTube video transcripts via fetch_youtube_transcript.", + "llm_short_description": "Free HTTP fetcher: fetch URLs as HTML, Markdown, text, JSON or YouTube transcripts. No API key, no cost." + } + ], "auth": { "type": "none" }, "mcp_config": { "command": "npx", - "args": ["-y", "mcp-fetch-server"] + "args": [ + "-y", + "mcp-fetch-server" + ] }, "homepage": "", "icon_small": "icon_sm.svg", "icon_large": "icon_lg.svg", "scope": "global", - "tags": ["http", "fetch", "mcp", "local", "free", "scraping", "youtube"] + "tags": [ + "http", + "fetch", + "mcp", + "local", + "free", + "scraping", + "youtube" + ], + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19" } diff --git a/connectors/ssh/connector.json b/connectors/ssh/connector.json index 992cc1b..67ac4c2 100644 --- a/connectors/ssh/connector.json +++ b/connectors/ssh/connector.json @@ -1,7 +1,6 @@ { "id": "ssh", "name": "SSH Remote Access", - "version": "1.0.0", "type": "mcp_local", "launch_command": "python3 ssh_mcp_server.py", "transport": "stdio", @@ -76,7 +75,7 @@ "docs": [ { "lang": "en", - "description": "Full SSH remote server access: read/write files, grep, execute commands, manage systemd services, upload/download files and directories, and probe system info — all over SFTP and SSH with the same output format as Skald's native tools. Aliases manage host config (hostname, port, user, auth method, sudo policy). Login passwords and sudo passwords are elicited on demand and kept only in RAM with configurable TTL. No OAuth, no API keys, no secrets on disk.", + "description": "Full SSH remote server access: read/write files, grep, execute commands, manage systemd services, upload/download files and directories, and probe system info \u2014 all over SFTP and SSH with the same output format as Skald's native tools. Aliases manage host config (hostname, port, user, auth method, sudo policy). Login passwords and sudo passwords are elicited on demand and kept only in RAM with configurable TTL. No OAuth, no API keys, no secrets on disk.", "llm_short_description": "SSH MCP server: 13 tools (list/add/remove_alias, read_file, list_files, grep_files, edit_file, replace_lines, exec, upload, download, sysinfo, systemd). Auth via key/agent or elicited password. Sudo via nopasswd or elicited password. Connection pooling with lazy TTL eviction." } ], @@ -109,5 +108,8 @@ ], "auth": { "type": "none" - } + }, + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19" } diff --git a/connectors/tavily/connector.json b/connectors/tavily/connector.json index a2df064..1ff1db2 100644 --- a/connectors/tavily/connector.json +++ b/connectors/tavily/connector.json @@ -1,7 +1,6 @@ { "id": "tavily", "name": "Tavily", - "version": "1.0.0", "type": "mcp_remote", "mcp_config": { "url": "https://mcp.tavily.com/mcp/?tavilyApiKey={SECRET:tavilyApiKey}", @@ -11,25 +10,36 @@ "command": "python3 verify.py", "timeout_secs": 15 }, - "docs": [{ - "lang": "en", - "description": "Real-time web search and page extraction via Tavily.", - "llm_short_description": "Search the web and extract page content through Tavily." - }], + "docs": [ + { + "lang": "en", + "description": "Real-time web search and page extraction via Tavily.", + "llm_short_description": "Search the web and extract page content through Tavily." + } + ], "auth": { "type": "api_key" }, - "env": [{ - "name": "tavilyApiKey", - "label": "Tavily API key", - "description": "Create one at https://app.tavily.com (your account dashboard).", - "required": true, - "secret": true, - "example": "tvly-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" - }], + "env": [ + { + "name": "tavilyApiKey", + "label": "Tavily API key", + "description": "Create one at https://app.tavily.com (your account dashboard).", + "required": true, + "secret": true, + "example": "tvly-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + } + ], "homepage": "https://tavily.com", "icon_small": "icon_sm.png", "icon_large": "icon_lg.png", "scope": "global", - "tags": ["search", "mcp", "remote"] + "tags": [ + "search", + "mcp", + "remote" + ], + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19" } diff --git a/connectors/weather/connector.json b/connectors/weather/connector.json index 4479d52..c4b8bd8 100644 --- a/connectors/weather/connector.json +++ b/connectors/weather/connector.json @@ -1,28 +1,39 @@ { "id": "weather", "name": "Weather (Open-Meteo)", - "version": "1.0.0", "type": "mcp_local", "launch_command": "python3 weather_mcp_server.py", "transport": "stdio", "dependencies": [ "httpx>=0.27.0" ], - "docs": [{ - "lang": "en", - "description": "Global weather, forecast, and air quality via Open-Meteo — free, no API key required. Get current conditions (temperature, humidity, wind, UV, visibility), multi-day forecasts (min/max temps, rain probability, sunrise/sunset), and air quality (European & US AQI, PM2.5, PM10, NO\u2082, O\u2083, CO, SO\u2082, NH\u2083) for any city worldwide.", - "llm_short_description": "Weather & air quality MCP: current conditions, 16-day forecast, AQI, pollutants. Free, no API key." - }], + "docs": [ + { + "lang": "en", + "description": "Global weather, forecast, and air quality via Open-Meteo \u2014 free, no API key required. Get current conditions (temperature, humidity, wind, UV, visibility), multi-day forecasts (min/max temps, rain probability, sunrise/sunset), and air quality (European & US AQI, PM2.5, PM10, NO\u2082, O\u2083, CO, SO\u2082, NH\u2083) for any city worldwide.", + "llm_short_description": "Weather & air quality MCP: current conditions, 16-day forecast, AQI, pollutants. Free, no API key." + } + ], "auth": { "type": "none" }, "setup_instructions": [ "Install dependencies: pip install -r requirements.txt", - "No configuration needed — Open-Meteo is a free public API with no API key." + "No configuration needed \u2014 Open-Meteo is a free public API with no API key." ], "homepage": "https://open-meteo.com", "icon_small": "icon_sm.svg", "icon_large": "icon_lg.svg", "scope": "global", - "tags": ["weather", "mcp", "local", "free", "forecast", "air-quality"] + "tags": [ + "weather", + "mcp", + "local", + "free", + "forecast", + "air-quality" + ], + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19" } diff --git a/connectors/whatsapp/connector.json b/connectors/whatsapp/connector.json index a932bd9..7b3587e 100644 --- a/connectors/whatsapp/connector.json +++ b/connectors/whatsapp/connector.json @@ -1,13 +1,20 @@ { "id": "whatsapp", "name": "WhatsApp", - "version": "2.0.1", "type": "mcp_local", "scope": "user", "launch_command": "node index.js", "transport": "stdio", - "requires": ["NODE"], - "tags": ["messaging", "mcp", "local", "whatsapp", "qr"], + "requires": [ + "NODE" + ], + "tags": [ + "messaging", + "mcp", + "local", + "whatsapp", + "qr" + ], "dependencies": [ "@whiskeysockets/baileys>=6.7.9", "qrcode>=1.5.4" @@ -17,20 +24,27 @@ "Open the connector in Skald and scan the QR code with your WhatsApp phone.", "The session is persisted and survives restarts." ], - "docs": [{ - "lang": "en", - "description": "Send and read WhatsApp messages from your own linked account. Uses Baileys multi-device protocol \u2014 no browser, no Chromium needed. Link via QR code.", - "llm_short_description": "Read and send WhatsApp messages, list chats and search contacts on the user\u2019s linked WhatsApp." - }], + "docs": [ + { + "lang": "en", + "description": "Send and read WhatsApp messages from your own linked account. Uses Baileys multi-device protocol \u2014 no browser, no Chromium needed. Link via QR code.", + "llm_short_description": "Read and send WhatsApp messages, list chats and search contacts on the user\u2019s linked WhatsApp." + } + ], "auth": { "type": "qr" }, "mcp_config": { "command": "node", - "args": ["index.js"], + "args": [ + "index.js" + ], "transport": "stdio" }, "homepage": "https://github.com/WhiskeySockets/Baileys", "icon_small": "icon_sm.png", - "icon_large": "icon_lg.png" + "icon_large": "icon_lg.png", + "version": 1, + "version_string": "2.0.1", + "version_release_date": "2026-07-19" } diff --git a/connectors/wikipedia/connector.json b/connectors/wikipedia/connector.json index 8baaf23..244222a 100644 --- a/connectors/wikipedia/connector.json +++ b/connectors/wikipedia/connector.json @@ -1,28 +1,39 @@ { "id": "wikipedia", "name": "Wikipedia", - "version": "1.0.0", "type": "mcp_local", "launch_command": "python3 wikipedia_mcp_server.py", "transport": "stdio", "dependencies": [ "httpx>=0.27.0" ], - "docs": [{ - "lang": "en", - "description": "Search and read Wikipedia articles — free, no API key required. Search by keyword (returns titles, summaries, and URLs) or read the full text content of any Wikipedia article by title. Automatic redirect resolution and article truncation for long pages.", - "llm_short_description": "Wikipedia MCP: search articles and read full text. Free, no API key. Tools: search, readArticle." - }], + "docs": [ + { + "lang": "en", + "description": "Search and read Wikipedia articles \u2014 free, no API key required. Search by keyword (returns titles, summaries, and URLs) or read the full text content of any Wikipedia article by title. Automatic redirect resolution and article truncation for long pages.", + "llm_short_description": "Wikipedia MCP: search articles and read full text. Free, no API key. Tools: search, readArticle." + } + ], "auth": { "type": "none" }, "setup_instructions": [ "Install dependencies: pip install -r requirements.txt", - "No configuration needed — Wikipedia API is free and public." + "No configuration needed \u2014 Wikipedia API is free and public." ], "homepage": "https://www.wikipedia.org", "icon_small": "icon_sm.svg", "icon_large": "icon_lg.svg", "scope": "global", - "tags": ["wikipedia", "mcp", "local", "free", "reference", "research"] + "tags": [ + "wikipedia", + "mcp", + "local", + "free", + "reference", + "research" + ], + "version": 1, + "version_string": "1.0.0", + "version_release_date": "2026-07-19" }