google-trends: fix broken MCP handshake and RSS articles (v2 / 1.1.0)

The server never implemented `initialize`, so every MCP client got
-32601 to its opening request and aborted before listing a tool. Also
missing: `notifications/initialized` and `ping`; `tools/list` returned a
bare array instead of {"tools": [...]}; notifications (no `id`) got a
full response written to stdout.

Rewritten to the shape the other local connectors already use (TOOLS
manifest + TOOL_DISPATCH, `_text_result` with isError, handle_request
returning None for notifications).

Also fixed:
- include_articles always returned nothing: trendspyg emits
  `news_articles`, the mapper read `articles`. explore_link kept too.
- fn(**arguments) turned a bad argument into -32603; handlers now take
  an args dict and coerce/clamp.
- errors were returned as successful results; now isError: true, with
  trendspyg's typed exceptions translated into actionable messages.
- browser calls could run ~100s (10 retries x 8s); capped at ~25s.
- verify.py shipped but connector.json declared no `verify` block; wired
  it and upgraded the script to a real RSS fetch.
- explore mutated trendspyg's ExploreEnvelope; dropped the no-op
  output_format param; trendspyg pinned >=1.6.0 and imported defensively.
This commit is contained in:
Daniele
2026-08-24 17:29:36 +01:00
parent 0c04ba2e4c
commit 5e4c41183c
7 changed files with 401 additions and 311 deletions
+10 -10
View File
@@ -1046,9 +1046,9 @@
"type": "none"
},
"folder": "google-trends",
"version": 1,
"version_string": "1.0.0",
"version_release_date": "2026-07-22",
"version": 2,
"version_string": "1.1.0",
"version_release_date": "2026-08-24",
"tools": [
{
"name": "status",
@@ -1070,13 +1070,13 @@
"files": [
{
"path": "connector.json",
"sha256": "0f50383fa3d664e6f487983645c56a57a076353a8fea337d121826210ebd3a8a",
"size": 1191
"sha256": "3b14d898ecec79a75239903db07b0fb78781858583f11056fe70223885a8bab7",
"size": 1363
},
{
"path": "google_trends_mcp.py",
"sha256": "5404eb7c81e82180a3b9e3052a4793e80a361ae60156d598d8e62e36b21dea8a",
"size": 13552
"sha256": "987d3d63f5b4b560e5571f0bbb53f7a9a7d4051945152281d92792a5b64d22d4",
"size": 15718
},
{
"path": "icon_lg.png",
@@ -1090,13 +1090,13 @@
},
{
"path": "requirements.txt",
"sha256": "8b13038b5c79cff2680a9b482491b969ac83ce4efa396f408bfca97385d00621",
"sha256": "7bb5d1d66068a94a518c4bf13e05a074558233b902522b9c1fc983dfd3f20168",
"size": 17
},
{
"path": "verify.py",
"sha256": "adbae57fc109c06c5d61ff50b67faaf62e1fa493a18cbfdacbc73f24d51ba9b8",
"size": 831
"sha256": "a9ed69ddaefe285bf6c418bdcf8ec788531bfab02b0a44effe281431648e50b4",
"size": 1585
}
]
},