Compound Interesting — market intelligence
Source-backed US market signals: insider filings, Congress trades, institutions, consensus.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"market-intelligence": {
"url": "https://api.compoundinterest.ing/mcp"
}
}
}Remote endpoints
https://api.compoundinterest.ing/mcpstreamable-httpWhat it can do
Tool inventory
Tools (16)
🟢get_composite(ticker)
Everything the platform knows about one ticker in a single record: the cross-signal consensus, each contributing dimension with its direction and provenance, and risk flags. Start here for any question about a specific company.
Input Schema
{
"type": "object",
"properties": {
"ticker": {
"type": "string",
"description": "Ticker symbol, e.g. AAPL."
}
},
"required": [
"ticker"
],
"additionalProperties": false
}🟢get_demo_composite
A single fixed demo ticker, callable without an API key, so the data shape can be inspected before signing up. Returns only the demo ticker regardless of input. For real tickers use get_composite, which requires a free key.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢get_evidence(ticker)
The primary documents a ticker's signals were derived from — insider Form 4s, institutional holdings and macro series, each with the filing it came from. Use this to cite a claim rather than assert it. Paid keys only, and slower than the other tools because it is computed on demand. Congressional trades are not included: use list_congress_trades, which works on every key.
Input Schema
{
"type": "object",
"properties": {
"ticker": {
"type": "string",
"description": "Ticker symbol, e.g. AAPL."
}
},
"required": [
"ticker"
],
"additionalProperties": false
}🟢get_house_rating(ticker)
The platform's own buy/hold/sell rating for a ticker, with the reasoning behind it. A judgement about the stock, not a recommendation to any reader.
Input Schema
{
"type": "object",
"properties": {
"ticker": {
"type": "string",
"description": "Ticker symbol, e.g. AAPL."
}
},
"required": [
"ticker"
],
"additionalProperties": false
}🟢get_consensus(ticker)
Whether the independent actors this platform tracks — insiders, Congress, institutions, the model — agree on one ticker, with the per-dimension breakdown that produced the verdict.
Input Schema
{
"type": "object",
"properties": {
"ticker": {
"type": "string",
"description": "Ticker symbol, e.g. AAPL."
}
},
"required": [
"ticker"
],
"additionalProperties": false
}🟢rank_consensus(direction, min_agreement, min_signals, limit)
The names where independent actors agree most strongly, ranked. Use this to find candidates rather than to check one you already have in mind.
Input Schema
{
"type": "object",
"properties": {
"direction": {
"type": "string",
"enum": [
"bullish",
"bearish",
"mixed",
"neutral"
],
"description": "Restrict to one consensus direction."
},
"min_agreement": {
"type": "number",
"description": "Minimum agreement score, 0-1."
},
"min_signals": {
"type": "integer",
"description": "Minimum number of dimensions that voted."
},
"limit": {
"type": "integer",
"description": "How many rows to return."
}
},
"additionalProperties": false
}🟢screen(sector, rating, state, min_confidence, min_completeness, ...)
Filter the whole equity universe and return matching tickers with their scores. The bulk discovery tool: use it for questions of the form 'which companies have X'. To rank by cross-signal agreement instead, use rank_consensus.
Input Schema
{
"type": "object",
"properties": {
"sector": {
"type": "string",
"description": "Restrict to one sector."
},
"rating": {
"type": "string",
"description": "Restrict to one house rating, e.g. buy, hold, sell. Requires a paid key."
},
"state": {
"type": "string",
"description": "Restrict to one overall state."
},
"min_confidence": {
"type": "number",
"description": "Minimum model confidence, 0-1."
},
"min_completeness": {
"type": "number",
"description": "Minimum data completeness, 0-1."
},
"flagged": {
"type": "boolean",
"description": "Only entities carrying at least one risk flag."
},
"sort": {
"type": "string",
"enum": [
"confidence",
"data_completeness",
"consensus_strength",
"house_rating_confidence"
],
"description": "Sort column. Defaults to confidence. house_rating_confidence requires a paid key."
},
"order": {
"type": "string",
"enum": [
"asc",
"desc"
],
"description": "Sort direction."
},
"limit": {
"type": "integer",
"description": "How many rows to return."
}
},
"additionalProperties": false
}🟢get_monthly_activity(kind, month)
Rank ticker activity aggregated from available published filings by transaction date for the current UTC month through today. Includes coverage metadata and unknown-value counts; this is not total market activity. Congress: 10 names on every customer key. Insiders: free keys receive up to 10 names, paid keys up to 20.
Input Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"insiders",
"congress"
],
"description": "Which published filing activity to aggregate."
},
"month": {
"type": "string",
"description": "Optional YYYY-MM; only the current UTC month is supported. Defaults to the current UTC month."
}
},
"required": [
"kind"
],
"additionalProperties": false
}🟢list_insider_trades(ticker, limit, cursor, since)
Corporate insider buys and sells from SEC filings, newest first, each linked to the filing it came from.
Input Schema
{
"type": "object",
"properties": {
"ticker": {
"type": "string",
"description": "Restrict to one ticker, e.g. TSLA."
},
"limit": {
"type": "integer",
"description": "How many trades to return."
},
"cursor": {
"type": "string",
"description": "next_cursor from a previous call."
},
"since": {
"type": "string",
"description": "ISO date; only records on or after it."
}
},
"additionalProperties": false
}🟢list_congress_trades(ticker, limit, cursor, since)
Disclosed House and Senate trades, newest first, each linked to its disclosure. Committee overlap is reported as oversight, never as an accusation. Up to 20 rows per call on every customer key; page with next_cursor.
Input Schema
{
"type": "object",
"properties": {
"ticker": {
"type": "string",
"description": "Restrict to one ticker, e.g. TSLA."
},
"limit": {
"type": "integer",
"description": "How many trades to return."
},
"cursor": {
"type": "string",
"description": "next_cursor from a previous call."
},
"since": {
"type": "string",
"description": "ISO date; only records on or after it."
}
},
"additionalProperties": false
}🟢list_positioning(ticker, limit, cursor, since)
How large holders are positioned, newest first. Net figures can reflect hedges and cannot be read as a directional view on their own.
Input Schema
{
"type": "object",
"properties": {
"ticker": {
"type": "string",
"description": "Restrict to one ticker, e.g. TSLA."
},
"limit": {
"type": "integer",
"description": "How many records to return."
},
"cursor": {
"type": "string",
"description": "next_cursor from a previous call."
},
"since": {
"type": "string",
"description": "ISO date; only records on or after it."
}
},
"additionalProperties": false
}🟢get_historic_moves(ticker)
The historical distribution of 5-day and 1-month returns for a ticker, sampled over the last 5 years: mean, standard deviation, percentiles, a histogram, and the worst drawdowns with their dates. Use it to say whether a move is unusual FOR THIS NAME rather than in the abstract. Every number is a fraction: 0.0821 means 8.21%.
Input Schema
{
"type": "object",
"properties": {
"ticker": {
"type": "string",
"description": "Ticker symbol, e.g. AAPL."
}
},
"required": [
"ticker"
],
"additionalProperties": false
}🟢list_equity_perp(limit)
Funding rate and open interest for the ~51 US single names listed on a 24/7 perpetual futures venue, ranked by notional. This is the ONLY source here that moves outside US market hours, so it is what to check overnight and at weekends. High positive funding means longs are paying to hold — crowded, squeeze-fragile. The mark price is a venue mark, NOT the stock price.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"description": "How many names to return."
}
},
"additionalProperties": false
}🟢get_equity_perp(ticker)
Funding and open interest for a single name on the 24/7 perpetual venue. Most tickers are NOT listed there — only about 51 of ~5,400 — and a 'not listed' answer means no venue coverage, never that positioning is flat or zero.
Input Schema
{
"type": "object",
"properties": {
"ticker": {
"type": "string",
"description": "Ticker symbol, e.g. AAPL."
}
},
"required": [
"ticker"
],
"additionalProperties": false
}🟢search_tickers(query)
Resolve a company name or partial symbol to tickers the platform covers. Use this first when the user names a company rather than a symbol.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Company name or partial symbol."
}
},
"required": [
"query"
],
"additionalProperties": false
}🟢get_signal(name)
A whole-market gauge rather than a per-company one. 'macro' is the market-regime read, 'energy' the macro energy balance, 'crypto' crypto positioning and funding, 'rate_expectations' the market-implied path for policy rates. Use these for the backdrop a single name is trading against.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"enum": [
"macro",
"energy",
"crypto",
"rate_expectations"
]
}
},
"required": [
"name"
],
"additionalProperties": false
}Community
Evidence