Analyzes recent Bluesky posts about stocks by fetching content from Bluesky's public search API, filtering for stock-related posts, and providing sentiment analysis summaries with post details including author, engagement metrics, and timestamps
Uses Cloudflare Workers AI for sentiment analysis of social media posts, specifically leveraging the DistilBERT model to classify text sentiment and generate confidence scores for stock-related content analysis
MCP Bluesky Stock Sentiment
Analyze recent Bluesky posts about stocks and return a concise sentiment summary using Cloudflare Workers AI — exposed as an MCP server you can connect to from any MCP‑compatible client.
What you get
Cloudflare Worker with Hono, serving an MCP endpoint at
/mcp.Tool:
analyze_stock_posts— searches recent Bluesky posts, filters for stock‑related content, and runs sentiment via@cf/huggingface/distilbert-sst-2-int8.Simple JSON metadata on
/for quick health checks.
Quickstart
Prereqs: Node 18+, Cloudflare account, Wrangler auth (
npx wrangler login).Install:
npm installDev:
npm run dev(serves onhttp://localhost:8787)Deploy:
npm run deployTypegen:
npm run cf-typegen(optional; syncs Worker bindings types)
MCP Endpoint
Local:
http://localhost:8787/mcpProd:
<your-workers-subdomain>.workers.dev/mcpServer name:
bluesky-stock-sentiment(seesrc/index.ts).
Available Tool
analyze_stock_postsInput:
{ count?: number }— number of posts to analyze (1–10, default 2)Behavior: Fetches recent posts from Bluesky’s public search API, filters to stock‑related text, analyzes each with Workers AI, and returns a textual summary (totals, percentages, average confidence, and per‑post details with author, likes, reposts, timestamp, and URI).
Config and Extensibility
Sentiment model:
src/lib/sentiment.tsDefault:
@cf/huggingface/distilbert-sst-2-int8Swap to any Workers AI text‑classification model if you prefer.
Stock filtering:
src/lib/stock-filter.tsUpdate the keyword list to fine‑tune what counts as a “stock post”.
Bluesky search:
src/lib/bluesky-api.tsUses the public unauthenticated search API and basic heuristics to avoid duplicates.
Firehose (optional):
src/lib/firehose.tsExample collector that connects to Bluesky’s firehose via WebSocket and filters in real time. This is not wired into the Worker route; use it as a reference for server/runtime environments that support outbound WebSocket connections.
Endpoints
GET /— returns service metadata (name, version, description, available tools).ALL /mcp— MCP over HTTP transport (viamcp-lite). Point your MCP client here.
Notes
You must bind Workers AI in Wrangler (already configured in
wrangler.jsoncunderai.binding = "AI").Bluesky’s public search API may rate‑limit or change behavior; the tool is resilient but results vary over time.
Project Layout
src/index.ts— Hono app, MCP server wiring, routes.src/mcp/tools.ts—analyze_stock_poststool registration and handler.src/lib/*— sentiment analysis, filtering, Bluesky integrations.
License
Provided as‑is; add a license if you plan to distribute.
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Analyzes recent Bluesky posts about stocks and provides sentiment analysis using Cloudflare Workers AI. Searches for stock-related content on Bluesky and returns sentiment summaries with confidence scores and post details.