feat(V2): migrazione sentiment completa (read-only, env ignored)
- exchanges/sentiment/{client,fetchers,tools}.py: SentimentClient wrapper stateless (cryptopanic_key, lunarcrush_key)
- routers/sentiment.py: 9 tool POST sotto /mcp-sentiment (news, social, funding, OI, liquidations, cointegration)
- exchanges/__init__.py: branch builder per sentiment (env ignored)
- tests/unit/exchanges/sentiment: migrato test_fetchers, scartato test_server_acl V1-only
- tests/unit/test_exchanges_builder.py: aggiunto test_build_client_sentiment_no_env_distinction
- fetchers.py: env var lookup allineato a LUNARCRUSH_KEY (con fallback LUNARCRUSH_API_KEY)
241 test passano.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -54,4 +54,13 @@ async def build_client(
|
||||
fred_api_key=settings.macro.fred_api_key.get_secret_value(),
|
||||
finnhub_api_key=settings.macro.finnhub_api_key.get_secret_value(),
|
||||
)
|
||||
if exchange == "sentiment":
|
||||
# Read-only data provider — env ignored (CryptoPanic, LunarCrush e
|
||||
# endpoint pubblici di funding/OI multi-exchange sono unici).
|
||||
from cerbero_mcp.exchanges.sentiment.client import SentimentClient
|
||||
|
||||
return SentimentClient(
|
||||
cryptopanic_key=settings.sentiment.cryptopanic_key.get_secret_value(),
|
||||
lunarcrush_key=settings.sentiment.lunarcrush_key.get_secret_value(),
|
||||
)
|
||||
raise ValueError(f"unsupported exchange: {exchange}")
|
||||
|
||||
Reference in New Issue
Block a user