fodda-mcp 1.38.0 → 1.46.97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. package/README.md +14 -91
  2. package/dist/agents/fodda-researcher/skills.d.ts +1 -1
  3. package/dist/agents/fodda-researcher/skills.d.ts.map +1 -1
  4. package/dist/agents/fodda-researcher/skills.js +1 -1
  5. package/dist/brandTemplate.d.ts +1 -1
  6. package/dist/brandTemplate.d.ts.map +1 -1
  7. package/dist/brandTemplate.js +278 -83
  8. package/dist/brandTemplate.js.map +1 -1
  9. package/dist/catalogCache.d.ts +39 -0
  10. package/dist/catalogCache.d.ts.map +1 -1
  11. package/dist/catalogCache.js +293 -22
  12. package/dist/catalogCache.js.map +1 -1
  13. package/dist/coverageRelevance.d.ts +251 -0
  14. package/dist/coverageRelevance.d.ts.map +1 -0
  15. package/dist/coverageRelevance.js +1857 -0
  16. package/dist/coverageRelevance.js.map +1 -0
  17. package/dist/editorialFill.d.ts +5 -0
  18. package/dist/editorialFill.d.ts.map +1 -1
  19. package/dist/editorialFill.js +1 -1
  20. package/dist/editorialFill.js.map +1 -1
  21. package/dist/enrichment.d.ts +26 -0
  22. package/dist/enrichment.d.ts.map +1 -1
  23. package/dist/enrichment.js +442 -29
  24. package/dist/enrichment.js.map +1 -1
  25. package/dist/errorHandling.d.ts +35 -7
  26. package/dist/errorHandling.d.ts.map +1 -1
  27. package/dist/errorHandling.js +225 -155
  28. package/dist/errorHandling.js.map +1 -1
  29. package/dist/index.d.ts +25 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +411 -106
  32. package/dist/index.js.map +1 -1
  33. package/dist/pricingCache.d.ts.map +1 -1
  34. package/dist/pricingCache.js +55 -3
  35. package/dist/pricingCache.js.map +1 -1
  36. package/dist/queryCache.d.ts.map +1 -1
  37. package/dist/queryCache.js +2 -0
  38. package/dist/queryCache.js.map +1 -1
  39. package/dist/reportBriefing.d.ts +89 -0
  40. package/dist/reportBriefing.d.ts.map +1 -0
  41. package/dist/reportBriefing.js +662 -0
  42. package/dist/reportBriefing.js.map +1 -0
  43. package/dist/searchTemplate.d.ts.map +1 -1
  44. package/dist/searchTemplate.js +65 -53
  45. package/dist/searchTemplate.js.map +1 -1
  46. package/dist/services/graphRouter.d.ts +7 -0
  47. package/dist/services/graphRouter.d.ts.map +1 -0
  48. package/dist/services/graphRouter.js +7 -0
  49. package/dist/services/graphRouter.js.map +1 -0
  50. package/dist/services/notifications.d.ts +2 -2
  51. package/dist/services/notifications.js +3 -3
  52. package/dist/services/notifications.js.map +1 -1
  53. package/dist/sessionTracker.d.ts +42 -3
  54. package/dist/sessionTracker.d.ts.map +1 -1
  55. package/dist/sessionTracker.js +261 -14
  56. package/dist/sessionTracker.js.map +1 -1
  57. package/dist/skillClient.d.ts.map +1 -1
  58. package/dist/skillClient.js +11 -6
  59. package/dist/skillClient.js.map +1 -1
  60. package/dist/svgVisuals.d.ts +17 -19
  61. package/dist/svgVisuals.d.ts.map +1 -1
  62. package/dist/svgVisuals.js +189 -233
  63. package/dist/svgVisuals.js.map +1 -1
  64. package/dist/systemPrompt.d.ts +7 -2
  65. package/dist/systemPrompt.d.ts.map +1 -1
  66. package/dist/systemPrompt.js +153 -81
  67. package/dist/systemPrompt.js.map +1 -1
  68. package/dist/telemetry.d.ts.map +1 -1
  69. package/dist/telemetry.js +15 -0
  70. package/dist/telemetry.js.map +1 -1
  71. package/dist/test_adjacent_trends_polymorphic.d.ts +2 -0
  72. package/dist/test_adjacent_trends_polymorphic.d.ts.map +1 -0
  73. package/dist/test_adjacent_trends_polymorphic.js +154 -0
  74. package/dist/test_adjacent_trends_polymorphic.js.map +1 -0
  75. package/dist/test_book_a_call_live.d.ts +2 -0
  76. package/dist/test_book_a_call_live.d.ts.map +1 -0
  77. package/dist/test_book_a_call_live.js +161 -0
  78. package/dist/test_book_a_call_live.js.map +1 -0
  79. package/dist/test_brand_intelligence_endpoint.js +2 -2
  80. package/dist/test_byo_mcp_submission_clarity.d.ts +2 -0
  81. package/dist/test_byo_mcp_submission_clarity.d.ts.map +1 -0
  82. package/dist/test_byo_mcp_submission_clarity.js +142 -0
  83. package/dist/test_byo_mcp_submission_clarity.js.map +1 -0
  84. package/dist/test_capabilities_guidance.d.ts +2 -0
  85. package/dist/test_capabilities_guidance.d.ts.map +1 -0
  86. package/dist/test_capabilities_guidance.js +372 -0
  87. package/dist/test_capabilities_guidance.js.map +1 -0
  88. package/dist/test_client_provenance.d.ts +2 -0
  89. package/dist/test_client_provenance.d.ts.map +1 -0
  90. package/dist/test_client_provenance.js +77 -0
  91. package/dist/test_client_provenance.js.map +1 -0
  92. package/dist/test_connection_surface_cleanup.d.ts +2 -0
  93. package/dist/test_connection_surface_cleanup.d.ts.map +1 -0
  94. package/dist/test_connection_surface_cleanup.js +203 -0
  95. package/dist/test_connection_surface_cleanup.js.map +1 -0
  96. package/dist/test_consult_routing.d.ts +2 -0
  97. package/dist/test_consult_routing.d.ts.map +1 -0
  98. package/dist/test_consult_routing.js +86 -0
  99. package/dist/test_consult_routing.js.map +1 -0
  100. package/dist/test_consult_split.d.ts +2 -0
  101. package/dist/test_consult_split.d.ts.map +1 -0
  102. package/dist/test_consult_split.js +30 -0
  103. package/dist/test_consult_split.js.map +1 -0
  104. package/dist/test_coverage_relevance.d.ts +12 -0
  105. package/dist/test_coverage_relevance.d.ts.map +1 -0
  106. package/dist/test_coverage_relevance.js +162 -0
  107. package/dist/test_coverage_relevance.js.map +1 -0
  108. package/dist/test_coverage_replay.d.ts +2 -0
  109. package/dist/test_coverage_replay.d.ts.map +1 -0
  110. package/dist/test_coverage_replay.js +170 -0
  111. package/dist/test_coverage_replay.js.map +1 -0
  112. package/dist/test_dcr_and_legacy_deprecation.d.ts +2 -0
  113. package/dist/test_dcr_and_legacy_deprecation.d.ts.map +1 -0
  114. package/dist/test_dcr_and_legacy_deprecation.js +143 -0
  115. package/dist/test_dcr_and_legacy_deprecation.js.map +1 -0
  116. package/dist/test_demand_signal_logging.d.ts +2 -0
  117. package/dist/test_demand_signal_logging.d.ts.map +1 -0
  118. package/dist/test_demand_signal_logging.js +92 -0
  119. package/dist/test_demand_signal_logging.js.map +1 -0
  120. package/dist/test_earnings_activity_scope.d.ts +5 -0
  121. package/dist/test_earnings_activity_scope.d.ts.map +1 -0
  122. package/dist/test_earnings_activity_scope.js +101 -0
  123. package/dist/test_earnings_activity_scope.js.map +1 -0
  124. package/dist/test_earnings_divergence_live.d.ts +5 -0
  125. package/dist/test_earnings_divergence_live.d.ts.map +1 -0
  126. package/dist/test_earnings_divergence_live.js +135 -0
  127. package/dist/test_earnings_divergence_live.js.map +1 -0
  128. package/dist/test_earnings_hygiene_and_binding.d.ts +5 -0
  129. package/dist/test_earnings_hygiene_and_binding.d.ts.map +1 -0
  130. package/dist/test_earnings_hygiene_and_binding.js +104 -0
  131. package/dist/test_earnings_hygiene_and_binding.js.map +1 -0
  132. package/dist/test_exec_quotes_render.d.ts +2 -0
  133. package/dist/test_exec_quotes_render.d.ts.map +1 -0
  134. package/dist/test_exec_quotes_render.js +86 -0
  135. package/dist/test_exec_quotes_render.js.map +1 -0
  136. package/dist/test_expert_intro.d.ts +2 -0
  137. package/dist/test_expert_intro.d.ts.map +1 -0
  138. package/dist/test_expert_intro.js +57 -0
  139. package/dist/test_expert_intro.js.map +1 -0
  140. package/dist/test_expert_layer.d.ts +11 -0
  141. package/dist/test_expert_layer.d.ts.map +1 -0
  142. package/dist/test_expert_layer.js +356 -0
  143. package/dist/test_expert_layer.js.map +1 -0
  144. package/dist/test_financial_snapshot_render.d.ts +2 -0
  145. package/dist/test_financial_snapshot_render.d.ts.map +1 -0
  146. package/dist/test_financial_snapshot_render.js +167 -0
  147. package/dist/test_financial_snapshot_render.js.map +1 -0
  148. package/dist/test_gap_alert.d.ts +12 -0
  149. package/dist/test_gap_alert.d.ts.map +1 -0
  150. package/dist/test_gap_alert.js +51 -0
  151. package/dist/test_gap_alert.js.map +1 -0
  152. package/dist/test_grok_offering_surfaces.d.ts +2 -0
  153. package/dist/test_grok_offering_surfaces.d.ts.map +1 -0
  154. package/dist/test_grok_offering_surfaces.js +155 -0
  155. package/dist/test_grok_offering_surfaces.js.map +1 -0
  156. package/dist/test_human_agent_live.d.ts +2 -0
  157. package/dist/test_human_agent_live.d.ts.map +1 -0
  158. package/dist/test_human_agent_live.js +48 -0
  159. package/dist/test_human_agent_live.js.map +1 -0
  160. package/dist/test_identity_gap.d.ts +2 -0
  161. package/dist/test_identity_gap.d.ts.map +1 -0
  162. package/dist/test_identity_gap.js +171 -0
  163. package/dist/test_identity_gap.js.map +1 -0
  164. package/dist/test_intelligence_and_verifier.d.ts +17 -0
  165. package/dist/test_intelligence_and_verifier.d.ts.map +1 -0
  166. package/dist/test_intelligence_and_verifier.js +162 -0
  167. package/dist/test_intelligence_and_verifier.js.map +1 -0
  168. package/dist/test_latency_mcp_brief5.d.ts +12 -0
  169. package/dist/test_latency_mcp_brief5.d.ts.map +1 -0
  170. package/dist/test_latency_mcp_brief5.js +200 -0
  171. package/dist/test_latency_mcp_brief5.js.map +1 -0
  172. package/dist/test_limit_and_credit_card_capture.d.ts +21 -0
  173. package/dist/test_limit_and_credit_card_capture.d.ts.map +1 -0
  174. package/dist/test_limit_and_credit_card_capture.js +216 -0
  175. package/dist/test_limit_and_credit_card_capture.js.map +1 -0
  176. package/dist/test_list_graphs_topics.js +1 -1
  177. package/dist/test_list_graphs_topics.js.map +1 -1
  178. package/dist/test_live_deployed_mcp_search.d.ts +2 -0
  179. package/dist/test_live_deployed_mcp_search.d.ts.map +1 -0
  180. package/dist/test_live_deployed_mcp_search.js +85 -0
  181. package/dist/test_live_deployed_mcp_search.js.map +1 -0
  182. package/dist/test_live_deployed_split.d.ts +2 -0
  183. package/dist/test_live_deployed_split.d.ts.map +1 -0
  184. package/dist/test_live_deployed_split.js +72 -0
  185. package/dist/test_live_deployed_split.js.map +1 -0
  186. package/dist/test_live_endpoint_runner.js +2 -2
  187. package/dist/test_live_endpoint_runner.js.map +1 -1
  188. package/dist/test_live_mcp.js +1 -1
  189. package/dist/test_live_mcp.js.map +1 -1
  190. package/dist/test_live_neil_widget.d.ts +2 -0
  191. package/dist/test_live_neil_widget.d.ts.map +1 -0
  192. package/dist/test_live_neil_widget.js +84 -0
  193. package/dist/test_live_neil_widget.js.map +1 -0
  194. package/dist/test_longpoll_status.d.ts +2 -0
  195. package/dist/test_longpoll_status.d.ts.map +1 -0
  196. package/dist/test_longpoll_status.js +117 -0
  197. package/dist/test_longpoll_status.js.map +1 -0
  198. package/dist/test_mcp_find_expert_and_vocabulary_routing.d.ts +2 -0
  199. package/dist/test_mcp_find_expert_and_vocabulary_routing.d.ts.map +1 -0
  200. package/dist/test_mcp_find_expert_and_vocabulary_routing.js +130 -0
  201. package/dist/test_mcp_find_expert_and_vocabulary_routing.js.map +1 -0
  202. package/dist/test_next_moves.d.ts +2 -0
  203. package/dist/test_next_moves.d.ts.map +1 -0
  204. package/dist/test_next_moves.js +714 -0
  205. package/dist/test_next_moves.js.map +1 -0
  206. package/dist/test_next_moves_transcripts.d.ts +2 -0
  207. package/dist/test_next_moves_transcripts.d.ts.map +1 -0
  208. package/dist/test_next_moves_transcripts.js +495 -0
  209. package/dist/test_next_moves_transcripts.js.map +1 -0
  210. package/dist/test_on_request_caller_identity.d.ts +13 -0
  211. package/dist/test_on_request_caller_identity.d.ts.map +1 -0
  212. package/dist/test_on_request_caller_identity.js +131 -0
  213. package/dist/test_on_request_caller_identity.js.map +1 -0
  214. package/dist/test_on_request_intercept.d.ts +10 -0
  215. package/dist/test_on_request_intercept.d.ts.map +1 -0
  216. package/dist/test_on_request_intercept.js +95 -0
  217. package/dist/test_on_request_intercept.js.map +1 -0
  218. package/dist/test_onboarding_consent_and_errors.d.ts +2 -0
  219. package/dist/test_onboarding_consent_and_errors.d.ts.map +1 -0
  220. package/dist/test_onboarding_consent_and_errors.js +110 -0
  221. package/dist/test_onboarding_consent_and_errors.js.map +1 -0
  222. package/dist/test_onboarding_live_scenarios.d.ts +2 -0
  223. package/dist/test_onboarding_live_scenarios.d.ts.map +1 -0
  224. package/dist/test_onboarding_live_scenarios.js +189 -0
  225. package/dist/test_onboarding_live_scenarios.js.map +1 -0
  226. package/dist/test_referral_live.d.ts +2 -0
  227. package/dist/test_referral_live.d.ts.map +1 -0
  228. package/dist/test_referral_live.js +33 -0
  229. package/dist/test_referral_live.js.map +1 -0
  230. package/dist/test_referral_piers.d.ts +2 -0
  231. package/dist/test_referral_piers.d.ts.map +1 -0
  232. package/dist/test_referral_piers.js +33 -0
  233. package/dist/test_referral_piers.js.map +1 -0
  234. package/dist/test_report_editorial_briefing.d.ts +21 -0
  235. package/dist/test_report_editorial_briefing.d.ts.map +1 -0
  236. package/dist/test_report_editorial_briefing.js +356 -0
  237. package/dist/test_report_editorial_briefing.js.map +1 -0
  238. package/dist/test_search_graph_quality.d.ts +2 -0
  239. package/dist/test_search_graph_quality.d.ts.map +1 -0
  240. package/dist/test_search_graph_quality.js +493 -0
  241. package/dist/test_search_graph_quality.js.map +1 -0
  242. package/dist/test_service_to_service_auth.d.ts +2 -0
  243. package/dist/test_service_to_service_auth.d.ts.map +1 -0
  244. package/dist/test_service_to_service_auth.js +199 -0
  245. package/dist/test_service_to_service_auth.js.map +1 -0
  246. package/dist/test_session_next_moves_telemetry.d.ts +2 -0
  247. package/dist/test_session_next_moves_telemetry.d.ts.map +1 -0
  248. package/dist/test_session_next_moves_telemetry.js +100 -0
  249. package/dist/test_session_next_moves_telemetry.js.map +1 -0
  250. package/dist/test_sources_live.d.ts +2 -0
  251. package/dist/test_sources_live.d.ts.map +1 -0
  252. package/dist/test_sources_live.js +30 -0
  253. package/dist/test_sources_live.js.map +1 -0
  254. package/dist/test_specialist_and_analyst_tiers.d.ts +2 -0
  255. package/dist/test_specialist_and_analyst_tiers.d.ts.map +1 -0
  256. package/dist/test_specialist_and_analyst_tiers.js +155 -0
  257. package/dist/test_specialist_and_analyst_tiers.js.map +1 -0
  258. package/dist/test_v2_2_visual_hardening.d.ts +5 -0
  259. package/dist/test_v2_2_visual_hardening.d.ts.map +1 -0
  260. package/dist/test_v2_2_visual_hardening.js +333 -0
  261. package/dist/test_v2_2_visual_hardening.js.map +1 -0
  262. package/dist/test_verify_deprecate_render_spec.d.ts +2 -0
  263. package/dist/test_verify_deprecate_render_spec.d.ts.map +1 -0
  264. package/dist/test_verify_deprecate_render_spec.js +217 -0
  265. package/dist/test_verify_deprecate_render_spec.js.map +1 -0
  266. package/dist/test_verify_neil_demo.d.ts +2 -0
  267. package/dist/test_verify_neil_demo.d.ts.map +1 -0
  268. package/dist/test_verify_neil_demo.js +149 -0
  269. package/dist/test_verify_neil_demo.js.map +1 -0
  270. package/dist/test_waitable_research_and_grounded_links.d.ts +2 -0
  271. package/dist/test_waitable_research_and_grounded_links.d.ts.map +1 -0
  272. package/dist/test_waitable_research_and_grounded_links.js +129 -0
  273. package/dist/test_waitable_research_and_grounded_links.js.map +1 -0
  274. package/dist/test_widget_guards.d.ts +2 -0
  275. package/dist/test_widget_guards.d.ts.map +1 -0
  276. package/dist/test_widget_guards.js +229 -0
  277. package/dist/test_widget_guards.js.map +1 -0
  278. package/dist/test_zero_retention_alerts.d.ts +14 -0
  279. package/dist/test_zero_retention_alerts.d.ts.map +1 -0
  280. package/dist/test_zero_retention_alerts.js +76 -0
  281. package/dist/test_zero_retention_alerts.js.map +1 -0
  282. package/dist/toolHandlers.d.ts +38 -1
  283. package/dist/toolHandlers.d.ts.map +1 -1
  284. package/dist/toolHandlers.js +4290 -711
  285. package/dist/toolHandlers.js.map +1 -1
  286. package/dist/tools.d.ts +22 -1
  287. package/dist/tools.d.ts.map +1 -1
  288. package/dist/tools.js +29 -4
  289. package/dist/tools.js.map +1 -1
  290. package/dist/verify_tools_endpoint.js +19 -5
  291. package/dist/verify_tools_endpoint.js.map +1 -1
  292. package/dist/widgetShell.d.ts +2 -2
  293. package/dist/widgetShell.d.ts.map +1 -1
  294. package/dist/widgetShell.js +1 -1
  295. package/dist/widgetShell.js.map +1 -1
  296. package/package.json +1 -1
  297. package/server.json +3 -31
  298. package/dist/debug_tools.d.ts +0 -2
  299. package/dist/debug_tools.d.ts.map +0 -1
  300. package/dist/debug_tools.js +0 -19
  301. package/dist/debug_tools.js.map +0 -1
  302. package/dist/inspect_list_graphs.d.ts +0 -2
  303. package/dist/inspect_list_graphs.d.ts.map +0 -1
  304. package/dist/inspect_list_graphs.js +0 -25
  305. package/dist/inspect_list_graphs.js.map +0 -1
  306. package/dist/scratch_test.d.ts.map +0 -1
  307. package/dist/scripts/simulate_gemini.d.ts +0 -2
  308. package/dist/scripts/simulate_gemini.d.ts.map +0 -1
  309. package/dist/scripts/simulate_gemini.js +0 -100
  310. package/dist/scripts/simulate_gemini.js.map +0 -1
  311. package/dist/scripts/verify_registry.d.ts +0 -2
  312. package/dist/scripts/verify_registry.d.ts.map +0 -1
  313. package/dist/scripts/verify_registry.js +0 -77
  314. package/dist/scripts/verify_registry.js.map +0 -1
  315. package/dist/src/index.d.ts +0 -2
  316. package/dist/src/index.d.ts.map +0 -1
  317. package/dist/src/index.js +0 -332
  318. package/dist/src/index.js.map +0 -1
  319. package/dist/src/tools.d.ts +0 -12
  320. package/dist/src/tools.d.ts.map +0 -1
  321. package/dist/src/tools.js +0 -104
  322. package/dist/src/tools.js.map +0 -1
  323. package/dist/src/types.d.ts +0 -44
  324. package/dist/src/types.d.ts.map +0 -1
  325. package/dist/src/types.js +0 -2
  326. package/dist/src/types.js.map +0 -1
  327. package/dist/src/verify.d.ts +0 -2
  328. package/dist/src/verify.d.ts.map +0 -1
  329. package/dist/src/verify.js +0 -47
  330. package/dist/src/verify.js.map +0 -1
  331. package/dist/src/verify_hmac.d.ts +0 -2
  332. package/dist/src/verify_hmac.d.ts.map +0 -1
  333. package/dist/src/verify_hmac.js +0 -106
  334. package/dist/src/verify_hmac.js.map +0 -1
  335. package/dist/src/verify_tools_endpoint.d.ts +0 -2
  336. package/dist/src/verify_tools_endpoint.d.ts.map +0 -1
  337. package/dist/src/verify_tools_endpoint.js +0 -40
  338. package/dist/src/verify_tools_endpoint.js.map +0 -1
  339. package/dist/test-waverunner-response.d.ts +0 -2
  340. package/dist/test-waverunner-response.d.ts.map +0 -1
  341. package/dist/test-waverunner-response.js +0 -20
  342. package/dist/test-waverunner-response.js.map +0 -1
  343. package/dist/test_coverage_r2.d.ts +0 -2
  344. package/dist/test_coverage_r2.d.ts.map +0 -1
  345. package/dist/test_coverage_scratch.d.ts +0 -2
  346. package/dist/test_coverage_scratch.d.ts.map +0 -1
package/dist/tools.d.ts CHANGED
@@ -2,9 +2,12 @@
2
2
  * Tool Metadata — version constants for the Fodda MCP server.
3
3
  *
4
4
  * The actual tool registrations live in toolHandlers.ts.
5
+ * Research and consult tools return clean data payloads accompanied by
6
+ * structured `next_moves` recommendations (thread, specific, shelf, scope)
7
+ * rather than imperative server-rendered closing blocks.
5
8
  * This file provides version strings used by index.ts and toolHandlers.ts.
6
9
  */
7
- export declare const MCP_SERVER_VERSION = "1.37.1";
10
+ export declare const MCP_SERVER_VERSION: string;
8
11
  export declare const TOOL_VERSIONS: {
9
12
  list_graphs: string;
10
13
  search_graph: string;
@@ -82,13 +85,31 @@ export declare const TOOL_VERSIONS: {
82
85
  deep_research_topic: string;
83
86
  read_url: string;
84
87
  list_analysts: string;
88
+ find_expert: string;
89
+ request_expert_intro: string;
85
90
  consult_analyst: string;
91
+ consult_human_agent: string;
86
92
  toggle_graph_preference: string;
87
93
  get_company_earnings: string;
88
94
  get_validated_trends: string;
89
95
  get_capabilities: string;
90
96
  expert_onboarding_research: string;
97
+ get_domain_intelligence: string;
98
+ get_specialist_intelligence: string;
99
+ get_expert_intelligence: string;
100
+ get_report_intelligence: string;
91
101
  draft_linkedin_post: string;
92
102
  draft_linkedin_article: string;
103
+ begin_expert_onboarding: string;
104
+ submit_basic_info: string;
105
+ submit_mcp_source: string;
106
+ finalize_byo_mcp_onboarding: string;
107
+ submit_expertise_analysis: string;
108
+ get_detected_themes: string;
109
+ confirm_themes: string;
110
+ get_onboarding_status: string;
111
+ schedule_interview: string;
112
+ verify_market_claim: string;
113
+ get_intelligence_dossier: string;
93
114
  };
94
115
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2FzB,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,eAAO,MAAM,kBAAkB,EAAE,MAAoB,CAAC;AAEtD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8GzB,CAAC"}
package/dist/tools.js CHANGED
@@ -2,9 +2,15 @@
2
2
  * Tool Metadata — version constants for the Fodda MCP server.
3
3
  *
4
4
  * The actual tool registrations live in toolHandlers.ts.
5
+ * Research and consult tools return clean data payloads accompanied by
6
+ * structured `next_moves` recommendations (thread, specific, shelf, scope)
7
+ * rather than imperative server-rendered closing blocks.
5
8
  * This file provides version strings used by index.ts and toolHandlers.ts.
6
9
  */
7
- export const MCP_SERVER_VERSION = "1.37.1";
10
+ import { createRequire } from 'module';
11
+ const require = createRequire(import.meta.url);
12
+ const pkg = require('../package.json');
13
+ export const MCP_SERVER_VERSION = pkg.version;
8
14
  export const TOOL_VERSIONS = {
9
15
  list_graphs: "1.4.0",
10
16
  search_graph: "1.4.0",
@@ -13,7 +19,7 @@ export const TOOL_VERSIONS = {
13
19
  get_node: "1.0.0",
14
20
  get_label_values: "1.2.0",
15
21
  psfk_overview: "1.0.0",
16
- discover_adjacent_trends: "1.0.0",
22
+ discover_adjacent_trends: "1.1.0",
17
23
  brand_tracker: "1.0.0",
18
24
  get_census_retail_snapshot: "1.0.0",
19
25
  get_census_demographics_snapshot: "1.1.0",
@@ -86,15 +92,34 @@ export const TOOL_VERSIONS = {
86
92
  update_user_profile: "1.0.0",
87
93
  deep_research_topic: "1.0.0",
88
94
  read_url: "1.0.0",
89
- list_analysts: "1.0.0",
95
+ list_analysts: "1.2.0",
96
+ find_expert: "1.1.0",
97
+ request_expert_intro: "1.0.0",
90
98
  consult_analyst: "1.0.0",
99
+ consult_human_agent: "1.2.0",
91
100
  toggle_graph_preference: "1.0.0",
92
101
  get_company_earnings: "1.0.0",
93
102
  get_validated_trends: "1.0.0",
94
103
  get_capabilities: "1.0.0",
95
- expert_onboarding_research: "1.0.0",
104
+ expert_onboarding_research: "1.2.0",
105
+ get_domain_intelligence: "1.0.0",
106
+ get_specialist_intelligence: "1.0.0",
107
+ get_expert_intelligence: "1.0.0",
108
+ get_report_intelligence: "1.1.0",
96
109
  // v1.33.0 — LinkedIn content tools (evidence engine heads)
97
110
  draft_linkedin_post: "1.0.0",
98
111
  draft_linkedin_article: "1.0.0",
112
+ // Expert Onboarding tools
113
+ begin_expert_onboarding: "1.1.0",
114
+ submit_basic_info: "1.2.0",
115
+ submit_mcp_source: "1.1.0",
116
+ finalize_byo_mcp_onboarding: "1.1.0",
117
+ submit_expertise_analysis: "1.1.0",
118
+ get_detected_themes: "1.2.0",
119
+ confirm_themes: "1.2.0",
120
+ get_onboarding_status: "1.2.0",
121
+ schedule_interview: "1.1.0",
122
+ verify_market_claim: "1.0.0",
123
+ get_intelligence_dossier: "1.0.0",
99
124
  };
100
125
  //# sourceMappingURL=tools.js.map
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
@@ -2,16 +2,30 @@ import { spawn } from 'child_process';
2
2
  import axios from 'axios';
3
3
  import { MCP_SERVER_VERSION } from './tools.js';
4
4
  async function runTest() {
5
- console.log('Starting Fodda MCP server verification for /health endpoint...');
5
+ const testPort = process.env.TEST_PORT || '3099';
6
+ console.log(`Starting Fodda MCP server verification for /health endpoint on port ${testPort}...`);
6
7
  const mcp = spawn('node', ['dist/index.js'], {
7
- env: { ...process.env, PORT: '3000' }
8
+ env: { ...process.env, PORT: testPort }
8
9
  });
9
10
  mcp.stdout.on('data', (data) => console.log(`[Server]: ${data}`));
10
11
  mcp.stderr.on('data', (data) => console.error(`[Server Error]: ${data}`));
11
- // Allow server time to start
12
- await new Promise(resolve => setTimeout(resolve, 3000));
12
+ // Poll /health with retries up to 30s to allow async catalog loading
13
+ let response = null;
14
+ const startTime = Date.now();
15
+ while (Date.now() - startTime < 30000) {
16
+ try {
17
+ response = await axios.get(`http://127.0.0.1:${testPort}/health`, { timeout: 1500 });
18
+ if (response && response.status === 200)
19
+ break;
20
+ }
21
+ catch {
22
+ await new Promise(resolve => setTimeout(resolve, 400));
23
+ }
24
+ }
13
25
  try {
14
- const response = await axios.get('http://localhost:3000/health');
26
+ if (!response) {
27
+ throw new Error(`Server did not respond with HTTP 200 within 30 seconds on port ${testPort}`);
28
+ }
15
29
  console.log('✅ Response Code:', response.status);
16
30
  console.log('✅ Health Status:', response.data.status);
17
31
  console.log('✅ Server Version:', response.data.version);
@@ -1 +1 @@
1
- {"version":3,"file":"verify_tools_endpoint.js","sourceRoot":"","sources":["../src/verify_tools_endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,KAAK,UAAU,OAAO;IAClB,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAC9E,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE;QACzC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;KACxC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;IAClE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,CAAC;IAE1E,6BAA6B;IAC7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAExD,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAExD,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;YAC/C,OAAO,CAAC,KAAK,CAAC,gCAAgC,kBAAkB,SAAS,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;YAAS,CAAC;QACP,GAAG,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;AACL,CAAC;AAED,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IAClB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"verify_tools_endpoint.js","sourceRoot":"","sources":["../src/verify_tools_endpoint.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,12 @@
4
4
  * Shared wrapper for all Fodda widget responses.
5
5
  * Provides consistent branding: logo, header, footer, base CSS.
6
6
  */
7
- export declare const FODDA_LOGO_URL = "https://cdn.jsdelivr.net/gh/piers-fawkes/fodda-demo@main/public/fodda-mini-logo-claude.png";
7
+ export declare const FODDA_LOGO_URL = "https://app.fodda.ai/fodda-mini-logo-claude.png";
8
8
  export declare const PLAYFAIR_LINK = "";
9
9
  declare function esc(s: string): string;
10
10
  export { esc };
11
11
  export declare const FODDA_SHELL_CSS = "\n:root{--p:#663399;--pl:#F5F0FF;--pm:#9B72CC;--pl-on:#663399;--font-display:var(--font-serif);}\n@media(prefers-color-scheme:dark){:root{--p:#9B72CC;--pl:rgba(155,114,204,0.14);--pm:#663399;--pl-on:#C4A7E8;}}\n.w{border:1px solid var(--p);border-top:3px solid var(--p);border-radius:6px;padding:1.25rem;font-family:var(--font-mono);}\n.hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:.5px solid var(--color-border-tertiary);}\n.logo{display:flex;align-items:center;gap:10px;}\n.logo img{height:24px;width:auto;display:block;}\n.lt{font-size:13px;font-weight:500;}.ls{font-size:10px;color:var(--color-text-secondary);}\n.bfolio{font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--color-text-secondary);}\n.gf{display:flex;gap:5px;flex-wrap:wrap;margin-top:1.5rem;padding-top:1rem;border-top:.5px solid var(--color-border-tertiary);align-items:center;}\n.gfl{font-size:10px;color:var(--color-text-secondary);margin-right:2px;}\n.gp{font-size:10px;padding:2px 9px;border-radius:20px;background:var(--pl);color:var(--pl-on);border:.5px solid var(--pm);}\n.note{font-size:10px;color:var(--color-text-secondary);margin-bottom:1.25rem;}\n.sl2{font-size:13px;font-weight:500;color:var(--color-text-primary);margin:1.25rem 0 8px;}.sl2:first-child{margin-top:0;}\n.eyebrow{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:6px;display:flex;gap:8px;align-items:baseline;}\n.eyebrow .sep{color:var(--color-border-tertiary);}\n.eyebrow.brand{color:var(--p);}\n.stamp{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;padding:3px 8px;border:1px solid currentColor;border-radius:2px;background:transparent;color:var(--color-text-secondary);}\n.stamp.brand{color:var(--p);}\n.stamp.success{color:var(--color-text-success);}\n.stamp.warning{color:var(--color-text-warning);}\n.editors-note{background:var(--pl);border:1px solid var(--p);border-left-width:3px;border-radius:4px;padding:14px 16px;color:var(--color-text-primary);}\n.editors-note::before{content:\"Editor's note\";display:block;font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--p);margin-bottom:6px;}\n";
12
12
  export declare function wrapWidget(subtitle: string, contentHtml: string, sources: string[], extraCss?: string): string;
13
- export declare const FODDA_COMPONENT_GUIDE = "\n\u2500\u2500 FODDA COMPONENT LIBRARY \u2500\u2500\nWhen rendering Fodda data via show_widget, ALWAYS use the branded shell below.\n\nDESIGN LANGUAGE: editorial briefing. Mono base, italic serif accent. No gradients on surfaces. Lines, not lifts \u2014 no box-shadows. Paper, not pillow.\n\nSHELL: 1px border + 3px top spine. Folio timestamp top-right. 6px radius (not 12).\nBRANDING: ALWAYS include the Fodda logo (<img src=\"https://cdn.jsdelivr.net/gh/piers-fawkes/fodda-demo@main/public/fodda-mini-logo-claude.png\" height=\"24\" width=\"24\"/>) and \"Fodda\" wordmark in the header. The logo+wordmark must appear in every widget \u2014 it's the first thing the user sees.\n\nTYPOGRAPHY:\n- Display (brand name, stat values, insight blocks): var(--font-display) italic 400\n- Body/cards: system sans\n- UI chrome/tabs/pills: var(--font-mono)\n\nAVAILABLE COMPONENTS:\nCards: .card{border:1px solid var(--color-border-tertiary);border-radius:4px;padding:1rem 1.25rem;margin-bottom:8px;}\nEyebrow: .eyebrow{font-mono 10px 700 uppercase 0.18em tracking} \u2014 above every card title: \"[GRAPH] \u00B7 [STAGE]\"\nStamp badges: .stamp{border:1px solid currentColor;radius:2px;9px mono uppercase} \u2014 for status/stage/category (not source pills)\nSource pills: .gp{radius:20px;bg:var(--pl);color:var(--pl-on)} \u2014 keep rounded, navigational\nEditors note: .editors-note{bg:var(--pl);border-left:3px solid var(--p);radius:4px} \u2014 for LLM-authored insight/analysis\nStat grid: .sg .sk \u2014 same as before. .skv{font-family:var(--font-display);font-style:italic;font-size:22px;}\nBar rows: .br .brl .brt .brf \u2014 same as before\nTabs: .tb .t \u2014 same as before\n\nCOLORS: var(--p) primary (auto-switches: #663399 light, #9B72CC dark). var(--pl) light bg (auto-switches). var(--pl-on) text-on-light-bg.\nDARK MODE RULE: Always use var(--pl-on) for text on var(--pl) backgrounds. Never hardcode #663399 for dark-mode text.\nRULES: <12KB HTML, no CDN (except Google Fonts), graph attribution on every card, never say \"the Fodda graph\"\n";
13
+ export declare const FODDA_COMPONENT_GUIDE = "\n\u2500\u2500 FODDA COMPONENT LIBRARY \u2500\u2500\nWhen rendering Fodda data via show_widget, ALWAYS use the branded shell below.\n\nDESIGN LANGUAGE: editorial briefing. Mono base, italic serif accent. No gradients on surfaces. Lines, not lifts \u2014 no box-shadows. Paper, not pillow.\n\nSHELL: 1px border + 3px top spine. Folio timestamp top-right. 6px radius (not 12).\nBRANDING: ALWAYS include the Fodda logo (<img src=\"https://app.fodda.ai/fodda-mini-logo-claude.png\" height=\"24\" width=\"24\"/>) and \"Fodda\" wordmark in the header. The logo+wordmark must appear in every widget \u2014 it's the first thing the user sees.\n\nTYPOGRAPHY:\n- Display (brand name, stat values, insight blocks): var(--font-display) italic 400\n- Body/cards: system sans\n- UI chrome/tabs/pills: var(--font-mono)\n\nAVAILABLE COMPONENTS:\nCards: .card{border:1px solid var(--color-border-tertiary);border-radius:4px;padding:1rem 1.25rem;margin-bottom:8px;}\nEyebrow: .eyebrow{font-mono 10px 700 uppercase 0.18em tracking} \u2014 above every card title: \"[GRAPH] \u00B7 [STAGE]\"\nStamp badges: .stamp{border:1px solid currentColor;radius:2px;9px mono uppercase} \u2014 for status/stage/category (not source pills)\nSource pills: .gp{radius:20px;bg:var(--pl);color:var(--pl-on)} \u2014 keep rounded, navigational\nEditors note: .editors-note{bg:var(--pl);border-left:3px solid var(--p);radius:4px} \u2014 for LLM-authored insight/analysis\nStat grid: .sg .sk \u2014 same as before. .skv{font-family:var(--font-display);font-style:italic;font-size:22px;}\nBar rows: .br .brl .brt .brf \u2014 same as before\nTabs: .tb .t \u2014 same as before\n\nCOLORS: var(--p) primary (auto-switches: #663399 light, #9B72CC dark). var(--pl) light bg (auto-switches). var(--pl-on) text-on-light-bg.\nDARK MODE RULE: Always use var(--pl-on) for text on var(--pl) backgrounds. Never hardcode #663399 for dark-mode text.\nRULES: <12KB HTML, no CDN (except Google Fonts), graph attribution on every card, never say \"the Fodda graph\"\n";
14
14
  export declare function getShellTemplate(subtitle?: string, sources?: string[]): string;
15
15
  //# sourceMappingURL=widgetShell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"widgetShell.d.ts","sourceRoot":"","sources":["../src/widgetShell.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,eAAO,MAAM,cAAc,+FAA+F,CAAC;AAG3H,eAAO,MAAM,aAAa,KAAK,CAAC;AAKhC,iBAAS,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9B;AAED,OAAO,EAAE,GAAG,EAAE,CAAC;AAKf,eAAO,MAAM,eAAe,u5EAuB3B,CAAC;AAKF,wBAAgB,UAAU,CACtB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,GAAE,MAAW,GACtB,MAAM,CAqCR;AAKD,eAAO,MAAM,qBAAqB,ugEA2BjC,CAAC;AAMF,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAgC9E"}
1
+ {"version":3,"file":"widgetShell.d.ts","sourceRoot":"","sources":["../src/widgetShell.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,eAAO,MAAM,cAAc,oDAAoD,CAAC;AAGhF,eAAO,MAAM,aAAa,KAAK,CAAC;AAKhC,iBAAS,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9B;AAED,OAAO,EAAE,GAAG,EAAE,CAAC;AAKf,eAAO,MAAM,eAAe,u5EAuB3B,CAAC;AAKF,wBAAgB,UAAU,CACtB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,GAAE,MAAW,GACtB,MAAM,CAqCR;AAKD,eAAO,MAAM,qBAAqB,49DA2BjC,CAAC;AAMF,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAgC9E"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  // Logo (CDN-hosted — saves ~5KB per widget)
8
8
  // ---------------------------------------------------------------------------
9
- export const FODDA_LOGO_URL = 'https://cdn.jsdelivr.net/gh/piers-fawkes/fodda-demo@main/public/fodda-mini-logo-claude.png';
9
+ export const FODDA_LOGO_URL = 'https://app.fodda.ai/fodda-mini-logo-claude.png';
10
10
  // Playfair Display italic — brand display font (removed, using Claude's built-in serif)
11
11
  export const PLAYFAIR_LINK = '';
12
12
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"widgetShell.js","sourceRoot":"","sources":["../src/widgetShell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widgetShell.js","sourceRoot":"","sources":["../src/widgetShell.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fodda-mcp",
3
- "version": "1.38.0",
3
+ "version": "1.46.97",
4
4
  "mcpName": "ai.fodda/mcp-server",
5
5
  "description": "Fodda MCP Server for accessing knowledge graph insights.",
6
6
  "keywords": [
package/server.json CHANGED
@@ -15,43 +15,15 @@
15
15
  ]
16
16
  }
17
17
  ],
18
- "version": "1.37.1",
18
+ "version": "1.46.90",
19
19
  "repository": {
20
20
  "url": "https://github.com/piers-fawkes/fodda-mcp",
21
21
  "source": "github"
22
22
  },
23
23
  "remotes": [
24
24
  {
25
- "transportType": "streamable-http",
26
- "url": "https://mcp.fodda.ai/mcp",
27
- "authorizationServerMetadataUrl": "https://mcp.fodda.ai/.well-known/oauth-authorization-server",
28
- "clientAuthentication": {
29
- "type": "oauth2"
30
- }
31
- }
32
- ],
33
- "packages": [
34
- {
35
- "registryType": "npm",
36
- "identifier": "fodda-mcp",
37
- "version": "1.37.1",
38
- "transport": {
39
- "type": "stdio"
40
- },
41
- "environmentVariables": [
42
- {
43
- "name": "FODDA_API_KEY",
44
- "description": "Your Fodda API key",
45
- "isRequired": true,
46
- "isSecret": true
47
- },
48
- {
49
- "name": "FODDA_API_URL",
50
- "description": "Upstream Fodda API URL",
51
- "isRequired": false,
52
- "default": "https://api.fodda.ai"
53
- }
54
- ]
25
+ "type": "streamable-http",
26
+ "url": "https://mcp.fodda.ai/mcp"
55
27
  }
56
28
  ]
57
29
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=debug_tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug_tools.d.ts","sourceRoot":"","sources":["../src/debug_tools.ts"],"names":[],"mappings":""}
@@ -1,19 +0,0 @@
1
- import { createServer } from './toolHandlers.js';
2
- import { OFFERING_SCOPED_TOOLS } from './index.js';
3
- async function test() {
4
- const dummyFoddaReq = async () => ({});
5
- const dummyWaverunnerReq = async () => ({});
6
- const dummyStoreWidget = () => 'id';
7
- const dummyGetServiceUrl = () => 'http://localhost';
8
- const allowed = OFFERING_SCOPED_TOOLS['brand-intelligence'];
9
- console.log('Allowed array:', allowed);
10
- const server = await createServer('sk_test', 'user_test', dummyFoddaReq, dummyWaverunnerReq, dummyStoreWidget, dummyGetServiceUrl, '', undefined, allowed);
11
- const reg = server._registeredTools || {};
12
- const enabledNames = Object.entries(reg)
13
- .filter(([, t]) => t.enabled)
14
- .map(([name]) => name);
15
- console.log('Enabled tools count:', enabledNames.length);
16
- console.log('Enabled tool names:', enabledNames);
17
- }
18
- test().catch(console.error);
19
- //# sourceMappingURL=debug_tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug_tools.js","sourceRoot":"","sources":["../src/debug_tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,KAAK,UAAU,IAAI;IACf,MAAM,aAAa,GAAQ,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5C,MAAM,kBAAkB,GAAQ,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;IACpC,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,kBAAkB,CAAC;IAEpD,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,MAAM,YAAY,CAC7B,SAAS,EACT,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,EAAE,EACF,SAAS,EACT,OAAO,CACV,CAAC;IAEF,MAAM,GAAG,GAAI,MAAc,CAAC,gBAAgB,IAAI,EAAE,CAAC;IACnD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;SACnC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAEhC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AACrD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=inspect_list_graphs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inspect_list_graphs.d.ts","sourceRoot":"","sources":["../src/inspect_list_graphs.ts"],"names":[],"mappings":""}
@@ -1,25 +0,0 @@
1
- import { Client } from '@modelcontextprotocol/sdk/client/index.js';
2
- import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
3
- async function inspect() {
4
- const BASE_URL = process.env.TEST_URL || 'https://mcp.fodda.ai';
5
- const transport = new StreamableHTTPClientTransport(new URL(`${BASE_URL}/mcp?api_key=sk_live_test_verifier`));
6
- const client = new Client({ name: 'verifier-client', version: '1.0.0' });
7
- await client.connect(transport);
8
- const res = await client.callTool({
9
- name: 'list_graphs',
10
- arguments: {}
11
- });
12
- const data = JSON.parse(res.content[0].text);
13
- console.log('Top level keys in list_graphs response:', Object.keys(data));
14
- if (Array.isArray(data)) {
15
- console.log('Data is array! Total length:', data.length);
16
- console.log('Sample item:', data[0]);
17
- }
18
- else {
19
- console.log('Sample data keys:', Object.keys(data));
20
- console.log('Sample:', JSON.stringify(data).slice(0, 300));
21
- }
22
- await client.close();
23
- }
24
- inspect().catch(console.error);
25
- //# sourceMappingURL=inspect_list_graphs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inspect_list_graphs.js","sourceRoot":"","sources":["../src/inspect_list_graphs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAEnG,KAAK,UAAU,OAAO;IAClB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,sBAAsB,CAAC;IAChE,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAC/C,IAAI,GAAG,CAAC,GAAG,QAAQ,oCAAoC,CAAC,CAC3D,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACzE,MAAM,MAAM,CAAC,OAAO,CAAC,SAAgB,CAAC,CAAC;IAEvC,MAAM,GAAG,GAAQ,MAAM,MAAM,CAAC,QAAQ,CAAC;QACnC,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,EAAE;KAChB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scratch_test.d.ts","sourceRoot":"","sources":["../src/scratch_test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=simulate_gemini.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simulate_gemini.d.ts","sourceRoot":"","sources":["../../scripts/simulate_gemini.ts"],"names":[],"mappings":""}
@@ -1,100 +0,0 @@
1
- import { Client } from "@modelcontextprotocol/sdk/client/index.js";
2
- import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
3
- import { CallToolResultSchema } from "@modelcontextprotocol/sdk/types.js";
4
- import path from "path";
5
- import { fileURLToPath } from "url";
6
- const __filename = fileURLToPath(import.meta.url);
7
- const __dirname = path.dirname(__filename);
8
- async function runSimulation() {
9
- console.log("--- Starting Gemini Tool Invocation Simulation ---");
10
- // Scenario 1: Direct Tool Call (Echo Mode)
11
- // We want to verify that if we send a tool call with `_meta: { test_mode: 'gemini_echo' }`,
12
- // we get the expected echo response without hitting the real API.
13
- // Start the MCP Server using StdioClientTransport which spawns the process
14
- console.log("Starting MCP Server via StdioClientTransport...");
15
- // Sanitize env to ensure all values are strings
16
- const sanitizedEnv = Object.fromEntries(Object.entries(process.env)
17
- .filter(([_, v]) => v !== undefined)
18
- .map(([k, v]) => [k, v]));
19
- const transport = new StdioClientTransport({
20
- command: "node",
21
- args: [path.join(__dirname, "../dist/index.js")],
22
- env: { ...sanitizedEnv, PORT: "", NODE_ENV: "development" }
23
- });
24
- const client = new Client({
25
- name: "gemini-simulator",
26
- version: "1.0.0",
27
- }, {
28
- capabilities: {},
29
- });
30
- try {
31
- await client.connect(transport);
32
- console.log("Connected to MCP Server via Stdio.");
33
- // List Tools to verify connection
34
- const toolsList = await client.listTools();
35
- console.log(`Found ${toolsList.tools.length} tools.`);
36
- // Test Case 1: psfk_overview with Simulation Mode
37
- console.log("\nTesting 'psfk_overview' in Simulation Mode...");
38
- const toolName = "psfk_overview";
39
- const toolArgs = {
40
- industry: "Retail",
41
- sector: "Technology"
42
- };
43
- console.log("Sending raw JSON-RPC request with _meta...");
44
- // Use client.request allowing us to inject _meta at the params level
45
- const result = await client.request({
46
- method: "tools/call",
47
- params: {
48
- name: toolName,
49
- arguments: toolArgs,
50
- _meta: {
51
- test_mode: "gemini_echo",
52
- authorization: "Bearer dummy-test-key"
53
- }
54
- }
55
- }, CallToolResultSchema);
56
- console.log("Result received:");
57
- console.log(JSON.stringify(result, null, 2));
58
- // Verification
59
- if (result.content && result.content[0]) {
60
- const content = result.content[0];
61
- if (content.type === "text") {
62
- try {
63
- const data = JSON.parse(content.text);
64
- // Check if it returned the tool call structure (Echo)
65
- if (data.tool_calls && data.tool_calls[0].name === toolName) {
66
- console.log("✅ PASSED: Server correctly echoed the tool call.");
67
- }
68
- else {
69
- console.log("❌ FAILED: Response was not an echo.");
70
- }
71
- }
72
- catch (e) {
73
- console.log("❌ FAILED: Response text is not valid JSON.");
74
- }
75
- }
76
- else {
77
- console.log("❌ FAILED: Unexpected content type.");
78
- }
79
- }
80
- else {
81
- console.log("❌ FAILED: No content in result.");
82
- }
83
- }
84
- catch (error) {
85
- console.error("Simulation failed:", error);
86
- }
87
- finally {
88
- // Cleanup
89
- try {
90
- await transport.close();
91
- console.log("Transport closed.");
92
- }
93
- catch (e) {
94
- console.error("Error closing transport:", e);
95
- }
96
- process.exit(0);
97
- }
98
- }
99
- runSimulation();
100
- //# sourceMappingURL=simulate_gemini.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simulate_gemini.js","sourceRoot":"","sources":["../../scripts/simulate_gemini.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=verify_registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify_registry.d.ts","sourceRoot":"","sources":["../../scripts/verify_registry.ts"],"names":[],"mappings":""}
@@ -1,77 +0,0 @@
1
- import { spawn } from 'child_process';
2
- import { setTimeout } from 'timers/promises';
3
- const PORT = 8083; // Use different port
4
- const BASE_URL = `http://localhost:${PORT}`;
5
- async function run() {
6
- console.log("--- Starting Tool Registry Verification ---");
7
- // Start Server
8
- const server = spawn('npx', ['tsx', 'src/index.ts'], {
9
- cwd: '../Fodda MCP',
10
- env: { ...process.env, PORT: String(PORT) },
11
- stdio: 'inherit'
12
- });
13
- console.log(`Server spawning on port ${PORT}...`);
14
- // Wait for server
15
- let attempts = 0;
16
- while (attempts < 20) {
17
- try {
18
- const res = await fetch(`${BASE_URL}/mcp/tools`);
19
- if (res.ok) {
20
- console.log("Server is up and endpoint is reachable.");
21
- break;
22
- }
23
- }
24
- catch (e) {
25
- await setTimeout(1000);
26
- attempts++;
27
- }
28
- }
29
- if (attempts === 20) {
30
- console.error("Server failed to start.");
31
- server.kill();
32
- process.exit(1);
33
- }
34
- try {
35
- console.log("Fetching Registry...");
36
- const res = await fetch(`${BASE_URL}/mcp/tools`);
37
- const data = await res.json();
38
- // Validation
39
- if (!data.tools || !Array.isArray(data.tools)) {
40
- throw new Error("Invalid response format: 'tools' array missing.");
41
- }
42
- console.log(`Found ${data.tools.length} tools.`);
43
- const searchTool = data.tools.find((t) => t.name === 'search_graph');
44
- if (!searchTool)
45
- throw new Error("search_graph tool not found.");
46
- console.log("Checking 'search_graph' metadata...");
47
- if (searchTool.isDeterministic === false) {
48
- console.log("✅ PASSED: search_graph is marked as non-deterministic.");
49
- }
50
- else {
51
- console.log(`❌ FAILED: search_graph isDeterministic = ${searchTool.isDeterministic}`);
52
- }
53
- const nodeTool = data.tools.find((t) => t.name === 'get_node');
54
- if (nodeTool.isDeterministic === true) {
55
- console.log("✅ PASSED: get_node is marked as deterministic.");
56
- }
57
- else {
58
- console.log(`❌ FAILED: get_node isDeterministic = ${nodeTool.isDeterministic}`);
59
- }
60
- if (data.version) {
61
- console.log(`✅ PASSED: Server version reported as ${data.version}`);
62
- }
63
- else {
64
- console.log("❌ FAILED: Server version missing.");
65
- }
66
- }
67
- catch (e) {
68
- console.error("Test failed:", e);
69
- }
70
- finally {
71
- server.kill();
72
- console.log("Server stopped.");
73
- process.exit(0);
74
- }
75
- }
76
- run();
77
- //# sourceMappingURL=verify_registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify_registry.js","sourceRoot":"","sources":["../../scripts/verify_registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,qBAAqB;AACxC,MAAM,QAAQ,GAAG,oBAAoB,IAAI,EAAE,CAAC;AAE5C,KAAK,UAAU,GAAG;IACd,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAE3D,eAAe;IACf,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE;QACjD,GAAG,EAAE,cAAc;QACnB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;QAC3C,KAAK,EAAE,SAAS;KACnB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,KAAK,CAAC,CAAC;IAElD,kBAAkB;IAClB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,OAAO,QAAQ,GAAG,EAAE,EAAE,CAAC;QACnB,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,YAAY,CAAC,CAAC;YACjD,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACT,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;gBACvD,MAAM;YACV,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;YACvB,QAAQ,EAAE,CAAC;QACf,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,YAAY,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAS,CAAC;QAErC,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;QAEjD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QAC1E,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAEjE,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,IAAI,UAAU,CAAC,eAAe,KAAK,KAAK,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,4CAA4C,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACpE,IAAI,QAAQ,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,wCAAwC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,wCAAwC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACrD,CAAC;IAEL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;YAAS,CAAC;QACP,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAED,GAAG,EAAE,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}