drip
Registry code: b6e6a20ca45eb759
Use Drip to research premium financial newsletters and podcasts.
Try one of these prompts:
- endpoint
- https://dripstack.com/api/mcp
- protocol
- http-sse ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is drip live?
- Yes — it answered the hub's last check (checked 2h ago). It answered 100% of checks over the last 30 days.
- Is drip free to use?
- Partly — some of its tools are open, others need a key or payment.
- What tools does drip have?
- 21 tools: get_ticker_coverage, search_sources, list_credit_activity, get_source, get_extraction, list_unlocked_posts, search_posts, get_company, ….
- Is drip safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 99.3%· all time 99.4%
last good check
of 21 tools
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- topic
- finance & markets
- used for
- search financial newsletter posts
- get analyst stock picks
- browse financial podcasts
- unlock a premium post
- takes → gives
- text → text
- tools
- 12 reads2 moves money
Calls placed through this hub's router, from its own receipts, and USDC settlements on base into the address this listing's priced doors name, read off the chain. Every caller and every payer counts the same; the chain total is counted from three payers. The address also stands behind 1 other origin: the chain figures are the gateway's, not this listing's alone. How it is counted.
through this hub
successful
what callers paid
distinct
last 2026-11-08
shared-payto
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
quote_stock_picks reads open 19h ago
Free preflight price for a UTC day's stock-picks bundle; returns amountUsd before list_stock_picks.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "date": { "type": "string", "description": "UTC calendar day YYYY-MM-DD. Omit for the latest UTC day with picks." }, "limit": { "type": "integer", "maximum": 500, "minimum": 1, "description": "Max picks to return (1-500). Default 200." } } }arguments 16 linessearch_entities reads auth-required 26h ago
Find curated articles by entity or canonical author, optionally linked to stock picks, sorted by publish date (free). Cards only - unlock_post for text.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "sort": { "enum": [ "earliest", "latest" ], "type": "string", "description": "Publication order: latest (default) or earliest for the oldest matching article first." }, "limit": { "type": "integer", "maximum": 30, "minimum": 1, "description": "Number of article results to return (1-30). Default 10." }, "author": { "type": "string", "minLength": 2, "description": "Canonical source article/pick author, matched case-insensitively." }, "cursor": { "type": "string", "minLength": 1, "description": "Pass the previous response's nextCursor for the next page." }, "person": { "type": "string", "minLength": 2, "description": "Person name. Matches tagged persons, related companies/tickers, and titles." }, "ticker": { "type": "string", "pattern": "^[A-Za-z0-9.-]{1,8}$", "description": "Stock ticker (1-8 chars, letters/numbers/./-). Resolves a company card when known and expands to company-name tags." }, "company": { "type": "string", "minLength": 2, "description": "Company name to search for (case-insensitive substring match; also expands to related tickers when known)." }, "subject": { "type": "string", "minLength": 2, "description": "Theme/subject discussed in posts, matched against metadata themes." }, "organization": { "type": "string", "minLength": 2, "description": "Organization name (Fed, SEC, OpenAI). Matches companies and themes; expands to related companies/tickers when possible." }, "publishedAfter": { "type": "string", "format": "date", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", "description": "Inclusive UTC lower bound, YYYY-MM-DD." }, "stockPicksOnly": { "type": "boolean", "description": "When true, return only free article results linked to at least one stock pick." }, "publicationSlug": { "type": "string", "description": "Restrict results to one publication." }, "publishedBefore": { "type": "string", "format": "date", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", "description": "Inclusive UTC upper bound, YYYY-MM-DD." } } }arguments 75 linesquote_stock_picks_v2 reads auth-required 19h ago
Free preflight price for a stock-picks day or range (API V2) — returns amountUsd before list_stock_picks_v2. Plan callers are never charged and can skip it.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "to": { "type": "string", "description": "Range end (inclusive). Pro requests are clamped to today." }, "date": { "type": "string", "description": "UTC calendar day YYYY-MM-DD. Mutually exclusive with `from`/`to`." }, "from": { "type": "string", "description": "Range start (inclusive). Pro requests are clamped to the 7-day live window." }, "sort": { "enum": [ "newest", "oldest" ], "type": "string", "description": "Order by pick date. Default newest." }, "limit": { "type": "integer", "maximum": 500, "minimum": 1, "description": "Max pick rows per day (1-500). Default 200." }, "query": { "type": "string", "maxLength": 200, "description": "Case-insensitive substring over ticker, author, and publication title (Pro/Expert)." }, "author": { "type": "string", "maxLength": 100, "description": "Exact author name filter (Pro/Expert)." }, "cursor": { "type": "string", "description": "Range pagination: pass the previous response's `pagination.nextCursor` to fetch older days." }, "direction": { "enum": [ "LONG", "SHORT" ], "type": "string", "description": "Direction filter (Pro/Expert)." }, "limitDays": { "type": "integer", "maximum": 30, "minimum": 1, "description": "Max days per range page (1-30). Default 7." }, "includePrices": { "enum": [ "true", "false" ], "type": "string", "description": "Pass `false` to omit prices. Prices are returned only for resolved assets with verified provider metadata; missing prices must not be inferred from ticker alone." } } }arguments 68 linessearch_tickers auth-required 6h ago
Find covered tickers by fragment, ranked with prefix matches first then the most-traded names. Omit `q` for the top-trades board (free).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "q": { "type": "string", "maxLength": 10, "description": "Ticker fragment to match, e.g. NV or AAPL. Prefix matches rank first, then the most-traded names. Omit for the top-trades board." }, "limit": { "type": "integer", "maximum": 15, "minimum": 1, "description": "Results to return (1-15). Default 8." } } }arguments 17 linessearch_companies reads auth-required 6h ago
Look up a company profile by ticker, domain, qid, CIK, or name (free).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "cik": { "type": "string", "minLength": 1, "description": "SEC CIK, 1-10 digits." }, "qid": { "type": "string", "pattern": "^Q[0-9]+$", "description": "Company id, e.g. Q182477." }, "name": { "type": "string", "minLength": 2, "description": "Company name to search when no other identifier is known." }, "limit": { "type": "integer", "maximum": 10, "minimum": 1, "description": "Number of profiles to return (1-10). Default 5." }, "domain": { "type": "string", "minLength": 1, "description": "Company website host, e.g. nvidia.com." }, "ticker": { "type": "string", "pattern": "^[A-Za-z0-9.-]{1,8}$", "description": "Stock ticker to look up (1-8 chars, letters/numbers/./-)." } } }arguments 37 linesget_account reads auth-required 19h ago
Auth introspection for the current API key or OAuth token (no user ids).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": {} }arguments 5 linesget_subscription_upgrade_url reads auth-required 26h ago
Stock Picks subscription status for this account plus the upgrade URL. Use when a picks tool reports no plan; the plan takes effect immediately, no reconnect.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": {} }arguments 5 lineslist_sources auth-required 26h ago
List curated sources when the user wants to browse the catalog.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": {} }arguments 5 lineslist_stock_picks_v2 reads auth-required 55d ago
Stock Picks API V2: Pro/Expert served in-plan (no quote, no confirmSpend, call directly). Ranges, filters, pagination.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "to": { "type": "string", "description": "Range end (inclusive). Pro requests are clamped to today." }, "date": { "type": "string", "description": "UTC calendar day YYYY-MM-DD. Mutually exclusive with `from`/`to`." }, "from": { "type": "string", "description": "Range start (inclusive). Pro requests are clamped to the 7-day live window." }, "sort": { "enum": [ "newest", "oldest" ], "type": "string", "description": "Order by pick date. Default newest." }, "limit": { "type": "integer", "maximum": 500, "minimum": 1, "description": "Max pick rows per day (1-500). Default 200." }, "query": { "type": "string", "maxLength": 200, "description": "Case-insensitive substring over ticker, author, and publication title (Pro/Expert)." }, "author": { "type": "string", "maxLength": 100, "description": "Exact author name filter (Pro/Expert)." }, "cursor": { "type": "string", "description": "Range pagination: pass the previous response's `pagination.nextCursor` to fetch older days." }, "direction": { "enum": [ "LONG", "SHORT" ], "type": "string", "description": "Direction filter (Pro/Expert)." }, "limitDays": { "type": "integer", "maximum": 30, "minimum": 1, "description": "Max days per range page (1-30). Default 7." }, "confirmSpend": { "type": "boolean", "description": "Must be true after the user confirmed the credit charge (first unlock / stock-picks). Omit on unlock_post free re-reads when the post is already unlocked for this Drip user. Do not set without prior user approval when a charge applies." }, "includePrices": { "enum": [ "true", "false" ], "type": "string", "description": "Pass `false` to omit prices. Prices are returned only for resolved assets with verified provider metadata; missing prices must not be inferred from ticker alone." } } }arguments 72 linesget_ticker_coverage unknown 2h ago
Every analyst call on one ticker in a window, grouped by analyst, with a bull/bear summary and each mention's quote (free, 7-day delayed).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "ticker" ], "properties": { "to": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "End of the window, YYYY-MM-DD. Default: today." }, "from": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "Start of the window, YYYY-MM-DD. Default: 30 days before `to`." }, "sort": { "enum": [ "newest", "oldest" ], "type": "string", "description": "Mention order. Default `newest`." }, "limit": { "type": "integer", "maximum": 500, "minimum": 1, "description": "Max mentions (1-500). Default 200." }, "author": { "type": "array", "items": { "type": "string" }, "description": "Only mentions by these analysts. Repeatable." }, "guests": { "enum": [ "include", "exclude" ], "type": "string", "description": "Set to `exclude` to drop podcast-guest calls, which are not analyst coverage." }, "ticker": { "type": "string", "maxLength": 10, "minLength": 1, "description": "Ticker symbol, e.g. NVDA. Symbols come from search_tickers." }, "sentiment": { "type": "array", "items": { "enum": [ "BULLISH", "BEARISH", "NEUTRAL" ], "type": "string" }, "description": "Only mentions with these stances. Repeatable." } } }arguments 66 linessearch_sources unknown 2h ago
Find a publication by name, author, or site URL.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "q" ], "properties": { "q": { "type": "string", "minLength": 2, "description": "Search curated sources by slug, title, author, podcast show, newsletter, or site URL" }, "platform": { "enum": [ "SUBSTACK", "BEEHIIV", "GENERIC_RSS", "PODCAST_RSS", "EMAIL", "TWITTER", "BOOK", "YOUTUBE" ], "type": "string", "description": "Optional exact-match source type filter: SUBSTACK, BEEHIIV, GENERIC_RSS, PODCAST_RSS (podcasts), EMAIL, TWITTER, BOOK, YOUTUBE" } } }arguments 28 lineslist_credit_activity reads unknown never probed
Cursor-paginated credit ledger rows for the current account.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "type": "integer", "maximum": 50, "minimum": 1, "description": "Page size (1-50). Defaults to 20." }, "cursor": { "type": "string", "description": "Opaque cursor from a previous nextCursor." } } }arguments 16 linesget_source unknown 6h ago
Source metadata and recent posts by slug (free). Post cards only - use unlock_post for article text and list_stock_picks_v2 for analyst calls.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "sourceSlug" ], "properties": { "limit": { "type": "integer", "maximum": 100, "minimum": 1, "description": "Max recent posts to include (1-100). Omit for all ready posts." }, "sourceSlug": { "type": "string", "minLength": 1, "description": "Source slug (normalized host), e.g. bytesbeyondborders.substack.com" } } }arguments 20 linesget_extraction unknown 21h ago
Read one submitted extraction: status and, when done, the picks. Poll extract_picks with this until terminal. Advisory only.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "id" ], "properties": { "id": { "type": "string", "minLength": 1, "description": "Extraction id returned by extract_picks." } } }arguments 14 lineslist_unlocked_posts reads unknown never probed
Cursor-paginated posts this account already unlocked for lifetime access (metadata only; summaries stay on unlock_post).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "type": "integer", "maximum": 50, "minimum": 1, "description": "Page size (1-50). Defaults to 20." }, "cursor": { "type": "string", "description": "Opaque cursor from a previous nextCursor." } } }arguments 16 linessearch_posts reads unknown never probed
Search premium newsletter/podcast posts by topic; returns ranked post cards (titles and metadata only, no article text) for unlock_post. A full app also needs list_stock_picks_v2.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "q" ], "properties": { "q": { "type": "string", "minLength": 2, "description": "Natural-language search query for premium newsletter/podcast posts" }, "mode": { "enum": [ "hybrid", "fts" ], "type": "string", "description": "Search mode: hybrid (default) or fts (lexical only)" }, "limit": { "type": "integer", "maximum": 30, "minimum": 1, "description": "Number of article results to return (1-30). Default 10." }, "source": { "enum": [ "newsletter", "podcast", "all" ], "type": "string", "description": "Optional. Omit unless the user asked to restrict to newsletters or podcasts. Do not send `all`." }, "platform": { "enum": [ "substack", "beehiiv", "rss", "podcast", "email", "twitter" ], "type": "string", "description": "Optional. Omit unless the user asked to restrict to one platform: substack, beehiiv, rss, podcast, email, or twitter. Do not guess." }, "publishedAfter": { "type": "string", "format": "date", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", "description": "Optional. Omit unless the user asked for a date lower bound (YYYY-MM-DD)." }, "publicationSlug": { "type": "string", "description": "Optional. Omit unless the user named a specific Drip publication. Do not invent a slug from the topic (company names are not publication slugs)." }, "publishedBefore": { "type": "string", "format": "date", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", "description": "Optional. Omit unless the user asked for a date upper bound (YYYY-MM-DD)." } } }arguments 65 linesget_company reads unknown 2h ago
Get one company profile by id (free).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "id" ], "properties": { "id": { "type": "string", "minLength": 1, "description": "Company id from search_companies, e.g. Q182477." } } }arguments 14 linesget_credits_balance reads unknown never probed
Purchased credit balance plus topUpUrl / dashboardUrl (OAuth or API key).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": {} }arguments 5 linesunlock_post moves money unknown never probed
First pay unlocks forever; confirmSpend: true on first unlock, skip on free re-reads. Requires purchased credits (subscriptions do not cover article unlocks; x402/MPP wallets use REST API directly). Call get_credits_balance first; on insufficient credits send user to topUpUrl and stop. Article summary / podcast transcript. Errors: `401`/`403`/`404`/`429`/`503 summary_not_ready`.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "publicationSlug", "postSlug" ], "properties": { "postSlug": { "type": "string", "minLength": 1, "description": "Post slug from search items[].slug or get_source posts[].slug" }, "confirmSpend": { "type": "boolean", "description": "Must be true after the user confirmed the credit charge (first unlock / stock-picks). Omit on unlock_post free re-reads when the post is already unlocked for this Drip user. Do not set without prior user approval when a charge applies." }, "publicationSlug": { "type": "string", "minLength": 1, "description": "Source slug from search or get_source (e.g. example.substack.com)" } } }arguments 24 lineslist_stock_picks moves money unknown 55d ago
Spends credits for a UTC day's stock picks after quote_stock_picks + user confirm; requires confirmSpend: true (OAuth/API key). Errors: `401`/`403`/`404`/`429`.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "date": { "type": "string", "description": "UTC calendar day YYYY-MM-DD. Omit for the latest UTC day with picks." }, "limit": { "type": "integer", "maximum": 500, "minimum": 1, "description": "Max picks to return (1-500). Default 200." }, "confirmSpend": { "type": "boolean", "description": "Must be true after the user confirmed the credit charge (first unlock / stock-picks). Omit on unlock_post free re-reads when the post is already unlocked for this Drip user. Do not set without prior user approval when a charge applies." } } }arguments 20 linesextract_picks unknown never probed
Submit pasted text for stock-pick extraction; returns an id to poll with get_extraction. Quota: 5 per day for Personal subscribers, 10 per day for Enterprise. Advisory only.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "text" ], "properties": { "text": { "type": "string", "maxLength": 15000, "minLength": 1, "description": "The pasted article text to extract stock picks from." }, "title": { "type": "string", "maxLength": 200, "description": "Optional label for this extraction." } } }arguments 20 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's idb6e6a20ca45eb759.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/b6e6a20ca45eb759/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/b6e6a20ca45eb759?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.