io.github.santiment/santiment-mcp
name:io.github.santiment/santiment-mcp
Crypto market intelligence: social sentiment, on-chain, trending narratives & analyst insights.
- transport:
- remote
- credential class:
- gated
Owner verification
Not yet verified. Verifying proves you control this server and is free, permanently — it never changes a published score.
Start verification →Tools
- assets_by_metric_toolshallow
A powerful metrics-based project filtering and sorting tool that works with cryptocurrency assets based on their metrics and allows for ordered, paginated results. The tool allows for filtering assets by a metric and sorting them according to that same metric in ascending or descending metric, or just to sort the assets by a metric without filtering. This tool allows you to discover projects that meet specific criteria by analyzing their metrics over time periods. You can filter projects by absolute values (greater_than/less_than thresholds) or by percentage changes, or just sort projects by some metric. ## When to use vs other metric tools This tool scans the whole asset universe and returns one aggregated value per matching asset — use it for "which assets satisfy X" and "top N by X". It never returns a timeseries: for the values of a metric over time for already-known slugs use `fetch_metric_data_tool`. To check that a metric exists (or fix a mistyped metric/slug) use `metrics_and_assets_discovery_tool`. ## Use Cases - Get top 10 assets by marketcap, sorted in descending order - Get top 50 assets with highest dev_activity_1d - Find assets with price more than $10 - Discover tokens whose price increased by more than 50% in the last 30 days - Screen for projects with market cap less than $100M - Identify assets that have dev_activity_1d decline by more than 20% in the past month ## Examples - Get projects that have a price_usd in the last 24 hours and it's greater_than $500. Get the first 20 ordered by price_usd in descending order `{metric: "price_usd", operator: :greater_than, threshold: 500.0, from: "utc_now-24h", to: "utc_now", sort: "desc, page: 1, page_size: 20}` - Find projects whose price_usd today is 25% higher than 7 days ago, sorted by the highest percent increase in descending order. Get the first 100. `{metric: "price_usd", operator: :percent_up, threshold: 25.0, from: "utc_now-7d", to: "utc_now", sort: "desc", page: 1, page_size: 100}` - Projects with current market cap less_than $50M. Get 100 such projects, ordered by marketcap in descending order. `{metric: "marketcap_usd", operator: :less_than, threshold: 50000000.0, from: "utc_now-1d", to: "utc_now", sort: "desc", page: 1, page_size: 100}` Here is how the filtering works: - For absolute value operators - `greater_than` and `less_than` - fetch the `metric` for each asset in the interval `from`-`to`, aggregting it using the specified `aggregation` method (defaulting to the metric's default). - For percent change operators - `percent_up` and `percent_down` - fetch the `metric` for each asset in the interval `from-`to`, as well as in the same length interval immediately before `from`. The two resulting values are compared to calculate the percentage change. Some metrics like price_usd and marketcap_usd are aggregated with `LAST` aggregation by default, meaning that the last known value in the queried interval is used. For percent change, this means that the tool compares the last known price immediately before `from` and the last known price before `to`. Other metrics like transaction_volume_usd and social_volume_total (and most other volume metrics) are aggregated by default with SUM aggregation, meaning that the total combined sum in the queried interval is used. For these metrics length of the time window is vital. A common mistake is to try to check if the social_total_total for the last 5 minutes is greater_than some threshold. Five minutes is not enough for social volume to accumulate enough. In such scenarios use a longer time window like 1 day or more.
- combined_trends_toolshallow
Combined trends tool that fetches trending words, stories, and documents in parallel. This tool provides a unified view of all trending data - words with their documents and stories - in a single response across all crypto projects. ## When to use vs `trending_stories_tool` This is a superset of `trending_stories_tool`: same stories, plus trending words, their context and AI-generated bull/bear summaries. It calls an LLM, so it is slower and has a tighter per-tool rate-limit sub-cap than every other tool. If only trending stories are needed, call `trending_stories_tool` instead; set `include_words: false` / `include_stories: false` to drop a half that is not needed. Do not call both tools for the same question. ## Parameters - `time_period` - Time period for trending data (e.g., '1h', '6h', '1d', '7d'). Defaults to '1h' (last hour). - `size` - Number of items per category to return (max 30). Defaults to 10. - `include_stories` - Include trending stories in response. Defaults to true. - `include_words` - Include trending words in response. Defaults to true. ## Response - `trends` - Combined trending data containing stories and words. - `metadata` - Request metadata including time period, size, and included data types. - `errors` - Any non-fatal errors encountered during data fetching. ## Trending Data Structure ### Stories - `title` - Title of the trending story. - `summary` - Summary of the story. - `score` - Trending score. - `query` - Search query used to find the story. - `related_tokens` - List of related crypto tokens (format: "BTC_bitcoin"). - `bullish_sentiment_ratio` - Bullish sentiment ratio. - `bearish_sentiment_ratio` - Bearish sentiment ratio. ### Words - `word` - The trending word. - `score` - Trending score. - `slug` - Associated project slug (if word is project-related). - `summary` - AI-generated summary of discussions. - `bullish_summary` - Summary of bullish sentiment. - `bearish_summary` - Summary of bearish sentiment. - `positive_sentiment_ratio` - Positive sentiment ratio. - `negative_sentiment_ratio` - Negative sentiment ratio. - `neutral_sentiment_ratio` - Neutral sentiment ratio. - `positive_bb_sentiment_ratio` - Positive bull/bear sentiment ratio. - `negative_bb_sentiment_ratio` - Negative bull/bear sentiment ratio. - `neutral_bb_sentiment_ratio` - Neutral bull/bear sentiment ratio. - `context` - Related words that appear with this trending word. - `documents_summary` - AI-generated summary of related social media discussions.
- fetch_insights_toolshallow
Fetch full text content for specific santiment crypto insights IDs
- fetch_metric_data_toolshallow
Fetch metric timeseries for one metric and one or many slugs. Defaults: last 30 days (time_period="30d"), interval="1d". Use this when the assets are already known and the values over time matter. For the opposite direction — "which assets satisfy X" / "top N by X", one aggregated value per asset across the whole universe — use `assets_by_metric_tool`. To confirm a metric exists for a slug first, use `metrics_and_assets_discovery_tool`; to draw the result, use `show_chart`.
- insight_discovery_toolshallow
List Santiment insights (analyst-written crypto articles) published in a lookback window. Returns metadata only — id, title, tags, author, link, published_at, prediction — never the article body. ## When to use - The user asks what Santiment analysts have written or published recently. - As step 1 of a two-step read: discover ids here, then pass them to `fetch_insights_tool` for the full text. ## When not to use - Full text of an insight — use `fetch_insights_tool` (it needs ids, so call this tool first). - What the market is talking about right now — use `trending_stories_tool` (stories only) or `combined_trends_tool` (stories + trending words). Insights are human-authored articles, not live social signal. - Numeric metric timeseries for an asset — use `fetch_metric_data_tool`. - Ranking or screening assets by a metric — use `assets_by_metric_tool`. ## Parameters - `time_period` (optional, default `"30d"`) — lookback window as `<integer><unit>`, unit one of `s`, `m`, `h`, `d`, `w`, `y` (e.g. `"12h"`, `"7d"`, `"90d"`, `"1y"`). The window is always `now - time_period` .. `now`; absolute dates and future ranges are not supported. An unparsable value returns an error, not a default. There is no tag, author, asset or full-text filter — filter the returned list yourself. ## Behavior - Read-only: no writes, no state change, nothing destructive. - Requires an authenticated Santiment account (API key or OAuth token); every call counts against the account plan's MCP rate limits. - Returns only published, moderator-approved insights, newest first, hard capped at 100 per call. A wide `time_period` can hit that cap and silently omit the oldest insights — if `total_count` is 100, narrow the window and call again. ## Response JSON object: { "insights": [ { "id": 1234, // integer, feed to fetch_insights_tool "title": "...", "tags": ["BTC", "bitcoin"], // asset tickers/slugs and topics "link": "https://app.santiment.net/insights/read/1234", "published_at": "2025-01-30T10:00:00Z", "author": "username", // "Anonymous" when unset "prediction": "semi_bullish" // heavy_bullish | semi_bullish | // semi_bearish | heavy_bearish | // none | unspecified | null } ], "time_period": "30d", "total_count": 1, "period_start": "2024-12-31T10:00:00Z", "period_end": "2025-01-30T10:00:00Z" } An empty `insights` list with `total_count: 0` means nothing was published in the window — a valid result, not an error.
- metrics_and_assets_discovery_toolshallow
Catalog lookup: which metrics and which crypto assets (slugs) Santiment supports, and whether a given metric exists for a given asset. Returns names and metadata only — it never returns metric values or timeseries. ## When to use - Resolve a name before any data call: turn "Ethereum" into the slug `ethereum`, or "active addresses" into the metric `daily_active_addresses`. - Check availability before calling `fetch_metric_data_tool`, `assets_by_metric_tool` or `show_chart`, so a bad slug/metric does not waste a data call. - Recover from a "metric/slug not supported" error from any other tool. ## When not to use - Actual metric values over time — use `fetch_metric_data_tool`. - Ranking, filtering or screening assets by a metric value — use `assets_by_metric_tool`. - Rendering a chart — use `show_chart`. - Trending words/stories or insights — use `combined_trends_tool` or `insight_discovery_tool`. Those data sets are not in this catalog. ## Parameters Both parameters are optional and the four combinations do four different things: | Arguments | Returns | |----------------------------|---------------------------------------------------| | `{}` | Every supported metric and every supported asset | | `{"slug": ...}` | All metrics available for that one asset | | `{"metric": ...}` | All assets that support that one metric | | `{"slug":..., "metric":...}`| Whether that exact pair is available (validation) | - `slug` — lowercase, hyphen-separated asset id: `"bitcoin"`, `"ethereum"`, `"avalanche"`. Not a ticker: use `"bitcoin"`, not `"BTC"`. One slug per call; lists are not accepted. - `metric` — lowercase snake_case metric id: `"price_usd"`, `"marketcap_usd"`, `"daily_active_addresses"`. One metric per call. Examples: {} {"slug": "ethereum"} {"metric": "price_usd"} {"slug": "bitcoin", "metric": "daily_active_addresses"} ## Behavior - Read-only: no writes, no state change, nothing destructive. - Requires an authenticated Santiment account (API key or OAuth token); every call counts against the account plan's MCP rate limits. - Results are cached server-side, so the catalog can lag a newly listed asset by a few minutes. - Large responses (notably `{}`, which covers ~500 assets) are truncated to stay under the client token limit. When that happens the response carries `"truncated": true` plus `"truncation_notice"`, and the counts are adjusted to what was actually returned — pass `slug` or `metric` to get a complete answer instead of a truncated one. ## Response Always a JSON object. Its shape depends on the arguments. `{}` — full catalog: { "metrics": [{"name": "price_usd", "description": "...", "unit": "USD", "supports_many_slugs": true, "min_interval": "1m", "default_aggregation": "last", "documentation_urls": [{"url": "..."}]}], "assets": [{"name": "Bitcoin", "slug": "bitcoin", "ticker": "BTC"}], "metrics_count": 120, "assets_count": 500, "description": "..." } `{"slug": ...}` — `{"slug", "metrics" (same metric objects as above), "metrics_count", "description"}`. `{"metric": ...}` — `{"metric", "assets" (same asset objects as above), "assets_count", "description"}`. `{"slug": ..., "metric": ...}` — on success `{"slug", "metric": <metric object>, "available": true, "description"}`. Unsupported input is reported inside a successful response, not as a tool error: an unknown `slug` yields `{"error": "...", "available_assets": [...]}`, an unknown `metric` yields `{"error": "...", "available_metrics": [...]}`. There is no `"available": false` — read `error`. Error messages include a fuzzy suggestion for near-miss metric names (`price_uds` -> `price_usd`), so retry with the suggested name.
- show_chartshallow
Render a Santiment chart with an asset's price (OHLC) plus an optional overlay metric in a second pane. The widget that consumes this tool is built on the Santiment chart library (lightweight-charts under the hood), so the response is render-ready — the client just feeds each `series` entry into the chart unchanged. ## Parameters - `slug` — asset slug (e.g. `bitcoin`, `ethereum`). Defaults to `bitcoin`. - `primary` — what goes into the main pane. - `"price"` (default) — OHLC candlestick. - any metric name from the catalog — line/area instead of candles. - `overlay` — optional metric name to render in a second pane. Allowed values are listed below. - `range` — `24h`, `7d`, `30d`, `90d`, `1y`. Defaults to `30d`. ## Available overlay metrics (catalog) social_volume_total, social_dominance_total, sentiment_balance_total, sentiment_weighted_total, daily_active_addresses, network_growth, transaction_volume_usd, velocity, mvrv_usd, nvt, realized_value_usd, mvrv_long_short_diff_usd, exchange_balance, whale_transaction_count_100k_usd_to_inf, top_holders_held_supply_percent, dev_activity, github_activity, volume_usd, marketcap_usd, funding_rate_perp.
- trending_stories_toolshallow
Fetch current trending crypto stories with sentiment analysis ## When to use vs `combined_trends_tool` Prefer this tool when only stories are needed: it is the cheap, fast path and has no per-tool rate-limit sub-cap. `combined_trends_tool` is a superset — same stories plus trending words, their context and AI-generated bull/bear summaries — but it calls an LLM, so it is slower and capped much lower per plan. Use it only when trending *words* or those summaries are actually needed, and never call both for the same question. ## Parameters - `time_period` - Time period for trending stories (e.g., '1h', '6h', '1d', '7d'). Defaults to '1h' (last hour). - `size` - Number of trending stories to return (max 10). Defaults to 10. ## Response - `trending_stories` - List of trending stories. - `time_period` - Time period for trending stories. - `size` - Number of trending stories to return. - `period_start` - Start time of the time period. - `period_end` - End time of the time period. - `total_time_periods` - Total number of time periods. ## Trending stories - `title` - Title of the story. - `summary` - Summary of the story. - `bearish_sentiment_ratio` - Bearish sentiment ratio. - `bullish_sentiment_ratio` - Bullish sentiment ratio. - `score` - Score of the story. - `query` - Query used to find the story. - `related_tokens` - List of related tokens. They have the format `BTC_bitcoin` - first part is the ticker, second part is the slug in Sanbase.
Embed this server’s score
Tool count and median score across every tool in this server’s corpus — honest in a way a single cherry-picked tool’s badge wouldn’t be.
[](https://vouch.tools/servers/41dbe179-b524-4070-8edb-c77bb5b3086c)