Subscribe
Sign in to the MCP page, select Upgrade Plan, choose Max and a billing period, and complete checkout. Confirm your membership and available PTS after payment.
Subscribe to Max on NewsLiquid · Plans and payment
News and Twitter WSS cost 1 PTS per 5 unique messages. Duplicate pushes of the same news item or tweet across strategies incur no additional charge.
Install a Skill
Install OpenNews or OpenTwitter in a client that supports Skills. These commands require Node.js with npx.
| Feed | Install command |
|---|---|
| News · OpenNews | npx skills add 6551Team/opennews-mcp |
| Twitter · OpenTwitter | npx skills add 6551Team/opentwitter-mcp |
Connect
Once installed, ask your AI client:
Use the OpenNews Skill to connect to news WSS and subscribe to BTC and ETH news.
For Twitter, first add your target accounts in Twitter monitoring, then ask your client to use the OpenTwitter Skill to connect to their live events.
For your own application, see the official connection URLs, subscription parameters, and message formats: News WSS · Twitter WSS.
Connection demo
Choose the news or Twitter feed and copy the Python example. Requires Python 3.10+.
Set the token from the MCP page in your local terminal.
export OPENNEWS_TOKEN="YOUR_TOKEN"Save this example as wss_demo.py.
import asyncio
import json
import os
from contextlib import suppress
from urllib.parse import quote
from websockets.asyncio.client import connect
async def heartbeat(ws):
while True:
await ws.send("ping")
await asyncio.sleep(20)
async def main():
token = quote(os.environ["OPENNEWS_TOKEN"], safe="")
url = f"wss://ai.6551.io/open/news_wss?token={token}"
subscription = {"jsonrpc": "2.0", "id": 1, "method": "news.subscribe",
"params": {"coins": ["BTC", "ETH"], "engineTypes": {"news": []}}}
async with connect(url, ping_interval=None) as ws:
await ws.send(json.dumps(subscription))
keepalive = asyncio.create_task(heartbeat(ws))
try:
async for message in ws:
if message != "pong":
print(json.dumps(json.loads(message), ensure_ascii=False))
finally:
keepalive.cancel()
with suppress(asyncio.CancelledError):
await keepalive
if __name__ == "__main__":
try:
asyncio.run(main())
except KeyboardInterrupt:
passRun it and check the response.
python -m pip install "websockets>=14,<18"
python wss_demo.pyA successful subscription returns result.success = true. Matched events then appear as JSON. Twitter uses your monitored accounts; press Ctrl+C to stop.