Quellcode durchsuchen

docs: update get_capabilities for detect_emerging_topics params

- Tool card: show timeframe, topic, around parameters with examples
- Recipe: updated steps and notes with velocity/source_count guidance
- Example chains: added 'heating up around entity' chain, updated
  'Find what is emerging' with new params
- Agent tips: added tip on using timeframe/around/velocity
- Guidance: added emerging topics guidance to capabilities output
Lukas Goldschmidt vor 1 Woche
Ursprung
Commit
5a47a7e580
1 geänderte Dateien mit 14 neuen und 5 gelöschten Zeilen
  1. 14 5
      news_mcp/mcp_server_fastmcp.py

+ 14 - 5
news_mcp/mcp_server_fastmcp.py

@@ -222,12 +222,12 @@ NEWS_COMPOSITION_RECIPES = [
     {
         "name": "emerging-signal",
         "steps": [
-            "detect_emerging_topics(limit=...)",
-            "choose a topic/entity",
+            "detect_emerging_topics(limit=..., timeframe=..., topic=..., around=...)",
+            "choose a topic/entity from the results",
             "get_events_for_entity(entity=...)",
             "get_news_sentiment(entity=...)",
         ],
-        "notes": ["Use timeframe to control lookback, topic to scope to a category, around to find what's emerging near a specific entity. Good for trend scouting and risk mapping."],
+        "notes": ["Use timeframe to control lookback (e.g. \"4h\" for what's hot right now, \"3d\" for weekly trends), topic to scope to a category, around to find what's emerging near a specific entity. Check velocity and source_count to distinguish real spikes from noise."],
     },
 ]
 
@@ -238,7 +238,8 @@ NEWS_AGENT_TIPS = [
     "Treat cluster_id as an internal cursor, not user-facing output; use it only for follow-up tool calls.",
     "When describing clusters, keep sources and timestamps visible so the user can assess recency and provenance.",
     "Prefer a short chain of tools over many parallel calls unless you are building a neighborhood map or comparison table.",
-    "For tricky names, rely on the server’s resolver instead of inventing alias rules in the client.",
+    "For tricky names, rely on the server's resolver instead of inventing alias rules in the client.",
+    "Use detect_emerging_topics with timeframe=\"4h\" for what's hot right now, timeframe=\"3d\" for weekly trends. Use topic= to scope to a category, around= to find what's emerging near a specific entity. Check velocity to distinguish accelerating signals from steady-state ones.",
 ]
 
 
@@ -268,10 +269,17 @@ NEWS_EXAMPLE_CHAINS = [
     {
         "task": "Find what is emerging",
         "chain": [
-            "detect_emerging_topics(limit=...)",
+            "detect_emerging_topics(limit=..., timeframe=..., topic=..., around=...) with optional scoping",
             "get_events_for_entity(entity=...) on one or two emerging terms",
         ],
     },
+    {
+        "task": "What's heating up around a specific entity",
+        "chain": [
+            "detect_emerging_topics(around=\"<entity>\", timeframe=\"4h\")",
+            "get_events_for_entity(entity=...) on the top emerging neighbor",
+        ],
+    },
 ]
 
 
@@ -845,6 +853,7 @@ async def get_capabilities():
             "Use get_latest_events for a tail, get_events_for_entity for entity deep dives, and get_related_recent_entities for neighborhood expansion.",
             "Prefer normalized/canonical entities when possible, but the server will resolve common aliases and MIDs for you.",
             "When presenting results to users, summarize the cluster; avoid exposing internal IDs unless they are needed for follow-up tool calls.",
+            "For emerging topics, use detect_emerging_topics with timeframe and around parameters to scope your query. High velocity + high source_count = strong emerging signal.",
         ],
     }