Skip to content

ginlix-ai/alternative-data

v1.0.0Apache-2.0

Signals from outside the market tape. X post search back to 2006 with profiles and reply threads, and web scraping with anti-bot bypass that returns markdown rather than raw HTML.

MCP servers

Declared configuration, as published in mcp.json. The directory shows indexed content; it never connects to or executes these servers.

x_apistdio
{
  "type": "stdio",
  "command": "uv",
  "args": [
    "run",
    "python",
    "plugins/alternative_data/x_mcp_server.py"
  ],
  "env": {}
}
scrapestdio
{
  "type": "stdio",
  "command": "uv",
  "args": [
    "run",
    "python",
    "plugins/alternative_data/scrape_mcp_server.py"
  ],
  "env": {}
}

What this package declares

The files a client reads when it loads this plugin, exactly as this revision carries them.

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "alternative-data",
  "version": "1.0.0",
  "description": "Signals from outside the market tape. X post search back to 2006 with profiles and reply threads, and web scraping with anti-bot bypass that returns markdown rather than raw HTML.",
  "author": {
    "name": "LangAlpha",
    "url": "https://langalpha.ai"
  },
  "homepage": "https://langalpha.ai",
  "repository": "https://github.com/ginlix/langalpha",
  "license": "Apache-2.0",
  "keywords": [
    "alternative-data",
    "social-sentiment",
    "web-scraping",
    "x",
    "twitter"
  ],
  "extensions": {
    "ai.langalpha": {
      "servers": {
        "x_api": {
          "description": "Search X (Twitter) posts and fetch users, tweets, and reply threads. Read-only.",
          "instruction": "Use for X/Twitter search and thread retrieval. Tools: search_posts, search_all_posts, get_conversation, get_user_by_username, get_tweet_by_id. For a single known X post URL, prefer web_fetch — reserve these tools for search, aggregation, and thread traversal. Every call needs bearer_token from the workspace vault: `from vault import get; token = get(\"X_BEARER_TOKEN\")`. Prefer search_posts by default; reach for search_all_posts only when the user needs posts older than ~7 days. See skills/x-api/ for usage and errors.",
          "tool_exposure_mode": "summary",
          "vault_blueprints": [
            {
              "name": "X_BEARER_TOKEN",
              "label": "X (Twitter) Bearer Token",
              "description": "Read-only app-only auth for the x_api MCP server. Get one at console.x.com → App → Keys and tokens → Bearer Token. Paste the raw token — no 'Bearer ' prefix, no whitespace.",
              "docs_url": "https://console.x.com/",
              "regex": "^[A-Za-z0-9%_-]{20,}$"
            }
          ]
        },
        "scrape": {
          "description": "Web scraping with anti-bot bypass and markdown extraction",
          "instruction": "Use scrape_page for one URL, scrape_pages for batches. Start with mode='fast'; use 'browser' for JS-rendered pages, 'stealth' for bot-protected sites (add solve_cloudflare=true if still blocked). extraction: markdown|html|text.",
          "tool_exposure_mode": "summary"
        }
      }
    }
  }
}

Client extensions

Data this package carries for particular clients. The directory lists the clients named and never reads what is addressed to them.

  • ai.langalpha