Santiment
by santiment · remote · no sign-in to list tools · v1.0.0 · published by GitHub user santiment
Crypto market intelligence: social sentiment, on-chain, trending narratives & analyst insights.
8 tools: 1 do something that can't be undone, 2 change things and 5 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone1Claude Code: ask: see these tools
- Changes things2Claude Code: ask: see these tools
- Only reads5Claude Code: allow: see these tools
7 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http santiment https://api.santiment.net/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "assets_by_metric_tool" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.
The description contains "every other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...ighter per-tool rate-limit sub-cap than every other tool. If only trending stories are needed, c..."
The description contains "any other tool", wording about other tools or servers.
What this check looks forMatched text
description: "..."metric/slug not supported" error from any other tool. ## When not to use - Actual metric v..."
The description is 3,612 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...ccumulate enough. In such scenarios use a longer time window like 1 day or more."
The description is 2,851 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...`documents_summary` - AI-generated summary of related social media discussions."
The description is 2,736 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...nt: 0` means nothing was published in the window — a valid result, not an error."
Show 1 more findingShow fewer
The description is 3,908 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...iss metric names (`price_uds` -> `price_usd`), so retry with the suggested name."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
8 tools
Can't be undone 1Claude Code: ask
assets_by_metric_toolA powerful metrics-based project filtering and sorting tool that works with cryptocurrency assets based on their metrics and allows for ordered, paginated results.2 findings
Why it is in this group
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Info
The description is 3,612 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...ccumulate enough. In such scenarios use a longer time window like 1 day or more."
- Warn
The server marks "assets_by_metric_tool" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- openWorldHint: false
- readOnlyHint: true
- title: Screen Assets by Metric
Changes things 2Claude Code: ask
combined_trends_toolCombined trends tool that fetches trending words, stories, and documents in parallel.2 findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The description contains "every other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...ighter per-tool rate-limit sub-cap than every other tool. If only trending stories are needed, c..."
- Info
The description is 2,851 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...`documents_summary` - AI-generated summary of related social media discussions."
Description, as the server wrote it 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 10). Defaults to 10. Only the 2 most recent trend periods are returned, whatever `time_period` is. A period is 1 hour for time_period up to 1d, 6 hours up to 7d, and 1 day beyond that, so e.g. '2d' returns only the last 12 hours. When older periods are dropped, `metadata.notice` says so and `metadata.returned_since` gives the start of the oldest period returned. - `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.
Annotations the server declares
- destructiveHint: false
- openWorldHint: true
- readOnlyHint: true
- title: Combined Trends
metrics_and_assets_discovery_toolCatalog lookup: which metrics and which crypto assets (slugs) Santiment supports, and whether a given metric exists for a given asset.2 findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The description contains "any other tool", wording about other tools or servers.
What this check looks forMatched text
description: "..."metric/slug not supported" error from any other tool. ## When not to use - Actual metric v..."
- Info
The description is 3,908 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...iss metric names (`price_uds` -> `price_usd`), so retry with the suggested name."
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- openWorldHint: false
- readOnlyHint: true
- title: Metrics and Assets Discovery
Only reads 5Claude Code: allow
fetch_insights_toolFetch full text content for specific santiment crypto insights IDsNo findings
Why it is in this group
- The name "fetch_insights_tool" says "fetch": a word for reading.
Description, as the server wrote it Fetch full text content for specific santiment crypto insights IDs
Annotations the server declares
- destructiveHint: false
- openWorldHint: false
- readOnlyHint: true
- title: Fetch Insights
fetch_metric_data_toolFetch metric timeseries for one metric and one or many slugs, or for a text search term.No findings
Why it is in this group
- The name "fetch_metric_data_tool" says "fetch": a word for reading.
Description, as the server wrote it Fetch metric timeseries for one metric and one or many slugs, or for a text search term. Defaults: last 30 days (time_period="30d"), interval="1d". Pass `text` instead of `slugs` to get a social metric for any word or phrase (e.g. how often "sold" was mentioned), not just for an asset. 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`.
Annotations the server declares
- destructiveHint: false
- openWorldHint: false
- readOnlyHint: true
- title: Fetch Metric Data
insight_discovery_toolList Santiment insights (analyst-written crypto articles) published in a lookback window.1 finding
Why it is in this group
- The description's first verb is "list": a word for reading.
Findings
- Info
The description is 2,736 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...nt: 0` means nothing was published in the window — a valid result, not an error."
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- openWorldHint: false
- readOnlyHint: true
- title: Discover Insights
show_chartRender a Santiment chart with an asset's price (OHLC) plus an optional overlay metric in a second pane.No findings
Why it is in this group
- The name "show_chart" says "show": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- openWorldHint: false
- readOnlyHint: true
- title: Show Chart
trending_stories_toolFetch 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…No findings
Why it is in this group
- The description's first verb is "fetch": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- openWorldHint: false
- readOnlyHint: true
- title: Trending Stories
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http santiment https://api.santiment.net/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__santiment__fetch_insights_tool",
"mcp__santiment__fetch_metric_data_tool",
"mcp__santiment__insight_discovery_tool",
"mcp__santiment__show_chart",
"mcp__santiment__trending_stories_tool"
],
"ask": [
"mcp__santiment__assets_by_metric_tool",
"mcp__santiment__combined_trends_tool",
"mcp__santiment__metrics_and_assets_discovery_tool"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as santiment. Review it before you use it.
