|
@@ -26,30 +26,18 @@ Health:
|
|
|
|
|
|
|
|
## Tools (MCP)
|
|
## Tools (MCP)
|
|
|
|
|
|
|
|
-1) `get_latest_events(topic, limit)`
|
|
|
|
|
|
|
+1) `get_latest_events(topic, limit, include_articles=false)`
|
|
|
- `topic` is a coarse category: `crypto | macro | regulation | ai | other`
|
|
- `topic` is a coarse category: `crypto | macro | regulation | ai | other`
|
|
|
|
|
+- when `include_articles=true`, includes `articles[].url` + minimal fields per returned cluster
|
|
|
|
|
|
|
|
-Optional boolean:
|
|
|
|
|
-- `include_articles` (default: `false`) — when `true`, includes `articles[].url` + minimal fields per returned cluster.
|
|
|
|
|
-
|
|
|
|
|
-2) `get_events_for_entity(entity, limit)`
|
|
|
|
|
|
|
+2) `get_events_for_entity(entity, limit, include_articles=false)`
|
|
|
- substring, case-insensitive match over extracted `entities`
|
|
- substring, case-insensitive match over extracted `entities`
|
|
|
- uses a shallow recent scan first, then falls back to a wider historical scan if needed
|
|
- uses a shallow recent scan first, then falls back to a wider historical scan if needed
|
|
|
|
|
+- when `include_articles=true`, includes `articles[].url` + minimal fields per returned cluster
|
|
|
|
|
|
|
|
-Optional boolean:
|
|
|
|
|
-- `include_articles` (default: `false`) — when `true`, includes `articles[].url` + minimal fields per returned cluster.
|
|
|
|
|
-
|
|
|
|
|
-### Entity aliasing
|
|
|
|
|
-
|
|
|
|
|
-The server keeps a conservative alias map in `config/entity_aliases.json` for obvious shorthands
|
|
|
|
|
-like `btc -> Bitcoin`, `eth -> Ethereum`, and `ether -> Ethereum`. Keep this map tight; it is meant
|
|
|
|
|
-to reduce false misses, not to rewrite every possible name variant.
|
|
|
|
|
-
|
|
|
|
|
-3) `get_event_summary(event_id)`
|
|
|
|
|
|
|
+3) `get_event_summary(event_id, include_articles=false)`
|
|
|
- Groq-written compressed narrative for a given `cluster_id`
|
|
- Groq-written compressed narrative for a given `cluster_id`
|
|
|
-
|
|
|
|
|
-Optional boolean:
|
|
|
|
|
-- `include_articles` (default: `false`) — when `true`, includes the underlying `articles` list (with `url`) from the stored cluster.
|
|
|
|
|
|
|
+- when `include_articles=true`, includes the underlying `articles` list (with `url`) from the stored cluster
|
|
|
|
|
|
|
|
4) `detect_emerging_topics(limit)`
|
|
4) `detect_emerging_topics(limit)`
|
|
|
- derives “emerging” signals from recent cached clusters
|
|
- derives “emerging” signals from recent cached clusters
|
|
@@ -59,7 +47,13 @@ Optional boolean:
|
|
|
|
|
|
|
|
6) `get_related_entities(subject, timeframe, limit)`
|
|
6) `get_related_entities(subject, timeframe, limit)`
|
|
|
- entity-only co-occurrence neighborhood: for a given subject entity, returns related entities with aggregated
|
|
- entity-only co-occurrence neighborhood: for a given subject entity, returns related entities with aggregated
|
|
|
- `count`, `avg_importance`, and `sentiment`.
|
|
|
|
|
|
|
+ `count`, `avg_importance`, and `sentiment`
|
|
|
|
|
+
|
|
|
|
|
+### Entity aliasing
|
|
|
|
|
+
|
|
|
|
|
+The server keeps a conservative alias map in `config/entity_aliases.json` for obvious shorthands
|
|
|
|
|
+like `btc -> Bitcoin`, `eth -> Ethereum`, and `ether -> Ethereum`. Keep this map tight; it is meant
|
|
|
|
|
+to reduce false misses, not to rewrite every possible name variant.
|
|
|
|
|
|
|
|
## Configuration
|
|
## Configuration
|
|
|
|
|
|
|
@@ -139,6 +133,7 @@ mcporter --config "$CONFIG" call news.detect_emerging_topics limit=10
|
|
|
```bash
|
|
```bash
|
|
|
mcporter --config "$CONFIG" call news.get_news_sentiment entity=Bitcoin timeframe=24h
|
|
mcporter --config "$CONFIG" call news.get_news_sentiment entity=Bitcoin timeframe=24h
|
|
|
mcporter --config "$CONFIG" call news.get_news_sentiment entity=Ethereum timeframe=72h
|
|
mcporter --config "$CONFIG" call news.get_news_sentiment entity=Ethereum timeframe=72h
|
|
|
|
|
+```
|
|
|
|
|
|
|
|
### 6) Related entities (co-occurrence neighborhood)
|
|
### 6) Related entities (co-occurrence neighborhood)
|
|
|
|
|
|