LunarCrush MCP server for AI agents

Live

OAUTH 2.1

SOCIAL ANALYTICS

Analytics

LunarCrush MCP gives your agent social analytics on crypto, stocks, and any topic: social metrics, top posts, creator insights, and historical time series.

  • Per-user credentials: each call uses the actual user's token, never a shared bot.
  • Encrypted per-tenant vault: AES-256, resolved at request time, never in LLM context.
  • Scoped before every call: pre-call scope check, 90-day SIEM-exportable audit chain.
LunarCrush MCP
agent · Acme Q3
Run
Which cryptocurrencies lead on social metrics right now?
S
lunarcrushmcp_cryptocurrencies
131ms
Market research agent
Bitcoin, Ethereum, and Solana lead the list on social metrics. Solana moved up 2 places since yesterday.
Sources: LunarCrush cryptocurrencies list, top 10
lunarcrushmcp
10 assets
18:29
Message Claude...

Tools your market research agent reaches for on LunarCrush, scoped per user.

CALL ANY TOOL
15 read-only tools for social analytics: rank cryptocurrencies and stocks by social metrics, pull top posts, and track topics, keywords, and creators over time.
lunarcrushmcp_auth
Auth
Check subscription and rate limit information for the current API key, or test an alternate API key.
Parameters
Name
Type
Required
Description
apiKey
string
Optional
Optional alternate API key to use for this request.
lunarcrushmcp_creator
Creator
lunarcrushmcp_creator_posts
Creator posts
lunarcrushmcp_creator_time_series
Creator time series
lunarcrushmcp_cryptocurrencies
Cryptocurrencies
lunarcrushmcp_fetch
Fetch
lunarcrushmcp_keyword_posts
Keyword posts
lunarcrushmcp_keyword_time_series
Keyword time series
lunarcrushmcp_list
List
lunarcrushmcp_post
Post
lunarcrushmcp_search
Search
lunarcrushmcp_stocks
Stocks
lunarcrushmcp_topic
Topic
lunarcrushmcp_topic_posts
Topic posts
lunarcrushmcp_topic_time_series
Topic time series
Build your Agent
Same auth pattern across LangChain, OpenAI, Anthropic, and Google ADK.
Python · LlamaIndex
import { ScalekitClient } from "@scalekit-sdk/node";
import { createReactAgent } from "@langchain/langgraph/prebuilt";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);

// LunarCrush MCP tools scoped to this user
const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["lunarcrushmcp"], toolNames: [
    "lunarcrushmcp_cryptocurrencies",
    "lunarcrushmcp_topic",
    "lunarcrushmcp_topic_posts",
    "lunarcrushmcp_topic_time_series"] },
  pageSize: 100,
});

const agent = createReactAgent({ llm, tools });
await agent.invoke({ messages: [{ role: "user", content: "Which cryptocurrencies lead on social metrics right now?" }] });
import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const openai = new OpenAI();

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["lunarcrushmcp"] }, pageSize: 100,
});

const res = await openai.chat.completions.create({
  model: "gpt-5",
  messages: [{ role: "user", content: "Which cryptocurrencies lead on social metrics right now?" }],
  tools,
});

// Execute the tool call with the user's vaulted LunarCrush token
await sk.tools.executeTool(res.choices[0].message.tool_calls[0], "user_123");
import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const anthropic = new Anthropic();

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["lunarcrushmcp"] }, pageSize: 100,
});

const msg = await anthropic.messages.create({
  model: "claude-sonnet-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Which cryptocurrencies lead on social metrics right now?" }],
  tools,
});

// Tool call runs with the user's vaulted LunarCrush token
await sk.tools.executeTool(msg.content, "user_123");
import { Agent } from "@google/adk/agents";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["lunarcrushmcp"] }, pageSize: 100,
});

const agent = new Agent({
  name: "market_research_agent",
  model: "gemini-2.5-pro",
  instruction: "LunarCrush MCP tools scoped to this user",
  tools,
});

await agent.run("Which cryptocurrencies lead on social metrics right now?");
Try these prompts
Copy any prompt into your agent. Each maps directly to a LunarCrush MCP tool. Click to copy, paste into your agent, done.
Crypto and stocks
Copy the prompt
Copied
List the top 10 cryptocurrencies by social metrics.
Copy the prompt
Copied
Rank technology sector stocks by social metrics.
Copy the prompt
Copied
Show DeFi coins sorted by social activity.
Topics and keywords
Copy the prompt
Copied
Give me a social snapshot of the bitcoin topic.
Copy the prompt
Copied
Show the top posts about Solana from the last 24 hours.
Copy the prompt
Copied
Chart social metrics for the keyword ETF approval over the past month.
Creators and posts
Copy the prompt
Copied
Summarize social metrics for this creator by screen name.
Copy the prompt
Copied
Get the top posts from this creator.
Copy the prompt
Copied
Show this creator's social metrics over the last 30 days.
SEE HOW AUTH WORKS
Each user signs in to LunarCrush once; Scalekit stores and refreshes their tokens. Every call is scope checked, and every action is logged.
1
Authorize
Your user connects
LunarCrush MCP
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
LunarCrush MCP
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
LunarCrush MCP
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
LunarCrush MCP
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
See the same per-user auth pattern across other analytics and market data connectors.
GTM and RevOps Teams
Competitive intelligence briefing agent
Scans Gong calls for competitor mentions, matches each one to its Notion battlecard, and DMs every affected rep a single Slack digest per cycle. Every call runs as the PMM who owns the briefing, never a shared bot.
GTM and RevOps Teams
Revenue forecast commentary
Pulls open pipeline from Salesforce and HubSpot, calculates coverage against quota, flags at-risk stages, posts commentary to Slack, and logs every snapshot to Google Sheets.
Engineering Teams
Slack triage
Polls Slack for new messages, classifies bugs and support requests with a LangGraph router, files GitHub issues or Zendesk tickets, and confirms in the thread.
Support and Ops Teams
Meeting prep
Pulls agenda, participant context, and open action items before every meeting.
Test other agents
See the same per-user auth pattern across other analytics and market data connectors.
GTM
Competitive intelligence briefing agent
Scan Gong calls for competitor mentions, match each one to its Notion battlecard, and DM every affected rep a single Slack digest.
GTM
Revenue forecast agent
Score pipeline coverage against quota across Salesforce and HubSpot, post forecast commentary to Slack, log snapshots to Sheets.
ENGINEERING
Slack triage agent
Classify new Slack messages as bugs or support requests, file the GitHub issue or Zendesk ticket, and reply in the thread.
OPS
Meeting prep agent
Assemble the agenda, HubSpot attendee history, and open action items from Gmail before every meeting on the calendar.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
01.
Shared tokens break per-user analytics
A shared LunarCrush token looks fine in a demo. In production every social query looks like one service account, and you cannot tell which user triggered it. Scalekit resolves the credential of the actual user who triggered the agent, never a shared bot.
// shared token
audit → bot_service_account

// scalekit
audit → user_abc ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
LunarCrush today. Ten connectors tomorrow.
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Does the agent access LunarCrush as the user or through a shared account?
As the user. Each user signs in to LunarCrush once, and Scalekit stores and refreshes their tokens. Audit logs attribute every social analytics query to that user, not a shared service account.
Where is the LunarCrush OAuth token stored?
In Scalekit's managed AES-256 token vault, namespaced per tenant. Refresh is automatic. Revocation is a single dashboard action. Credentials never appear in prompts, logs, or LLM context.
Can I limit what the agent does in LunarCrush?
Yes. Filter by tool name in listScopedTools, for example only the topic and time series tools for a trend monitoring agent. Scalekit also enforces scope checks before every API call.
What happens when a user revokes LunarCrush access?
The connection is invalidated on the next tool call. Subsequent requests for that user fail closed with a clear error. Other users in the tenant remain unaffected. The event is logged for audit.
What can the agent look up in LunarCrush?
Social metrics and top posts for cryptocurrencies, stocks, topics, keywords, and individual social accounts. All 15 tools are read-only: lunarcrushmcp_search finds topics, creators, and assets, lunarcrushmcp_topic returns a snapshot, and the time series tools return historical metrics.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""lunarcrushmcp"": {
""url"": ""https://mcp.scalekit.com/lunarcrushmcp"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.lunarcrushmcp]
url = ""https://mcp.scalekit.com/lunarcrushmcp""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""lunarcrushmcp"": {
""url"": ""https://mcp.scalekit.com/lunarcrushmcp"",
""type"": ""http""
}
}
}