Twitter索引服务

为AI交易代理提供市场情报服务,通过爬取Twitter/X、索引推文到PostgreSQL数据库,并通过MCP服务提供社交信号,使AI消费者可以查询影响者活动、代币热议和市场情绪。

  • by 0xted97
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 0xted97/twitter-indexer-mcp

使用说明

Twitter索引器

为人工智能交易代理提供市场情报服务。抓取Twitter/X,在PostgreSQL中索引推文,并通过MCP提供社交信号,这样人工智能消费者就可以查询影响者活动、代币热度和市场情绪,而不需要自己的抓取器或凭证。

运作原理

Twitter/X  -->  Scraper  -->  PostgreSQL  -->  MCP Server  -->  AI Trading Agents
                  |                |
             Playwright       tsvector FTS
             (Cloudflare       (full-text
              bypass)           search)

刮痕 来自21位加密货币/政治影响者的推文和cron时间表上的代币关键字。 索引 它们具有全文搜索、标记提及提取和情感评分功能。 供应 通过MCP HTTP端点传输数据,任何AI助手都可以连接到该端点。

MCP工具

将您的AI代理连接到MCP服务器并获取以下工具:

工具 说明
search_tweets 在所有索引推文中进行全文搜索
get_influencer_tweets 特定影响者最近的推文
get_latest_tweets 所有来源的最新索引推文
get_token_mentions 推文中提到了一个日期范围的代币(BTC、SOL、ETH)
get_token_stats 代币在1小时/24小时/7天内的提及次数
get_influencer_list 所有关注的有影响力的人都有追随者统计数据
get_trending 推特热门话题

快速开始

先决条件

  • Node.js 22+
  • PostgreSQL 15+
  • 剧作家浏览器(npx playwright install chromium)

设置

# Install dependencies
npm install

# Configure environment
cp .env.example .env
# Edit .env with your credentials (see Environment Variables below)

# Create database and run migrations
npm run db:migrate

# Start the service (scraper + API + MCP)
npm run dev

连接AI代理

启动MCP服务器:

npm run mcp   # HTTP mode on port 3001

添加到AI工具的MCP配置(Claude Desktop、Cursor等):

{
  "mcpServers": {
    "twitter-indexer": {
      "type": "http",
      "url": "http://localhost:3001/mcp"
    }
  }
}

如果服务器需要身份验证:

{
  "mcpServers": {
    "twitter-indexer": {
      "type": "http",
      "url": "http://localhost:3001/mcp",
      "headers": {
        "Authorization": "Bearer your-api-key"
      }
    }
  }
}

环境变量

# Required
TWITTER_USERNAME=your_username
TWITTER_PASSWORD=your_password
TWITTER_EMAIL=your_email
DATABASE_URL=postgresql://postgres:password@localhost:5432/twitter_indexer
API_KEY=your-rest-api-key

# MCP Server
MCP_PORT=3001              # default: 3001
MCP_MODE=http              # http (default) or stdio
MCP_API_KEY=               # empty = public, set value = requires Bearer auth

# Telegram Alerts
ALERTS_ENABLED=true        # true (default) or false
TELEGRAM_BOT_TOKEN=        # enables alerts
TELEGRAM_CHAT_ID=          # optional, auto-detected on first message

# Optional
API_PORT=3000              # REST API port
CONFIG_DIR=./config        # YAML config directory
COOKIES_DIR=./.cookies     # cookie persistence

观看影响者

配置于 config/watchlist.yaml.目前正在跟踪:

优先级1(每次爬网): ThuanCapital、唐纳德·特朗普、埃隆·马斯克、迈克尔·塞勒、CZ币安、维塔利克·布特林

优先级2: Nayib Bukele、参议员Lummis、David Sacks、Cathie Wood、Brian Armstrong

代币: BTC、SOL、ETH(带别名)

关键词: #加密货币、#defi、#memecoins、#黑客攻击、#漏洞利用

日程

作业 间隔 什么
时间线 每10分钟 获取有影响力的推文
搜索 每15分钟一次 搜索令牌关键字
趋势 每小时 获取趋势话题

警报

Telegram在三个触发点发出火灾警报:

  • 影响者职位 --优先级1-2影响者推特
  • 提及spike --令牌提到在1小时内跳跃200%以上
  • 关键词匹配 --包含“列表”、“空投”、“黑客攻击”、“漏洞利用”的推文,来自拥有1万多名粉丝的账户

建筑

带有干净内部模块的TypeScript单体。两种刮擦模式:

  • 节点获取 用户推文、个人资料、趋势(直接使用GraphQL和cookie认证)
  • 剧作家浏览器 用于登录(Cloudflare旁路)和搜索(需要浏览器生成的标头)

看 docs/architecture.md 查看详细的图表和设计决策。

维护

Twitter会定期撤销承载令牌并更改GraphQL查询ID:

npx tsx scripts/get-bearer.ts      # refresh bearer token
npx tsx scripts/get-query-ids.ts   # refresh query IDs

更新中提取的值 src/scraper/endpoints.ts.

发展

npm run dev                         # dev server (hot reload)
npx tsc --noEmit                    # type-check
npm test                            # run all tests
npx vitest run tests/path/file.ts   # single test file
npm run mcp                         # MCP server (HTTP)
npm run mcp:stdio                   # MCP server (stdio)

许可证

私人