Skip to content

Connect Allium to Claude: Analyze Markets and Stream Real-Time Data

Learn how to connect Allium to Claude using a managed MCP server. Automate blockchain analytics, asynchronous query execution, and DeFi trading workflows.

Riya Sethi Riya Sethi · · 8 min read
Connect Allium to Claude: Analyze Markets and Stream Real-Time Data

If you need to connect Allium to Claude to automate blockchain analytics, monitor DeFi wallet performance, or manage data streaming pipelines, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between Claude's tool calls and Allium's highly specific REST APIs. You can either build and maintain this infrastructure yourself, or use a managed integration platform like Truto to dynamically generate a secure, authenticated MCP server URL. If your team uses ChatGPT, check out our guide on connecting Allium to ChatGPT or explore our broader architectural overview on connecting Allium to AI Agents.

Giving a Large Language Model (LLM) read and write access to a vast, high-throughput enterprise data platform like Allium is an engineering challenge. You have to handle massive JSON schemas, coordinate asynchronous query polling, and deal with Allium's specific rate limits. Every time Allium updates a Hyperliquid endpoint or adds a new EVM chain, you have to update your server code, redeploy, and test the integration. This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for Allium, connect it natively to Claude, and execute complex blockchain workflows using natural language.

The Engineering Reality of the Allium API

A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools, the reality of implementing it against specialized data platforms like Allium is painful. You are not just integrating a simple CRM - you are integrating with a system built for massive scale, asynchronous execution, and real-time streaming.

If you decide to build a custom MCP server for Allium, you own the entire API lifecycle. Here are the specific challenges you will face:

Asynchronous Query Polling Patterns Running a custom SQL query via the Allium Explorer is not a synchronous operation. Blockchain queries often scan terabytes of data. When an LLM calls the endpoint to execute a query, it immediately receives a run_id, not the data. The LLM must then hold state, poll a status endpoint, and only fetch the result set once the status returns success. Standard LLMs struggle with this pattern. They hallucinate results or stop polling too early. Exposing these endpoints as MCP tools requires explicit schema descriptions instructing the LLM on exactly how to chain run_id across multiple tool calls.

Deeply Nested Financial Schemas Allium returns incredibly dense data structures. A request for Hyperliquid orderbook snapshots returns deep arrays containing book_orders, bids, asks, limitPx, sz, and timestamps. A request for wallet PnL returns arrays of realized_pnl and unrealized_pnl mapped against specific token addresses across different chains. Translating these dense, shifting schemas into a format that Claude's function-calling engine can reliably map arguments to requires generating flawless JSON Schema definitions for every endpoint.

Hard Rate Limits and Concurrency Caps Allium enforces strict concurrency limits depending on your organization's compute profile and allocation tier. If an LLM tries to fire off ten complex historical price queries in parallel, Allium will reject the requests with a 429 Too Many Requests error.

It is critical to note: Truto does not retry, throttle, or apply backoff on rate limit errors. When the Allium API returns an HTTP 429, Truto passes that error directly to the caller. Truto normalizes the upstream rate limit information into standardized headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF specification. The caller - whether it is Claude Desktop or a custom LangGraph agent - is entirely responsible for reading these headers and implementing its own retry and exponential backoff logic.

Instead of wrestling with these nuances, you can use Truto. Truto derives tool definitions directly from Allium's live API documentation, normalizing the schemas, and exposing them as ready-to-use MCP tools.

How to Generate an Allium MCP Server

Truto dynamically generates MCP servers for any connected integration. The server translates Claude's JSON-RPC 2.0 messages into authenticated HTTP requests against Allium. You can generate this server via the Truto UI or programmatically via the API.

Method 1: Via the Truto UI

If you are setting up an internal tool or testing locally, the UI is the fastest path.

  1. Log into your Truto dashboard and navigate to your connected Allium integrated account.
  2. Click the MCP Servers tab.
  3. Click Create MCP Server.
  4. Configure the server (e.g., restrict it to read methods only, or filter by specific tags like explorer or beam).
  5. Copy the generated MCP server URL (it will look like https://api.truto.one/mcp/a1b2c3d4...).

Method 2: Via the Truto API

For production workflows, you can programmatically generate MCP servers for your end users. The API validates the configuration, generates a secure token, stores it safely, and returns the endpoint.

// POST /integrated-account/:id/mcp
const response = await fetch('https://api.truto.one/integrated-account/YOUR_ALLIUM_ACCOUNT_ID/mcp', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_TRUTO_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    name: "Allium Market Analytics Agent",
    config: {
      methods: ["read", "create", "list"], // Allow querying and async job creation
      tags: ["explorer", "markets", "tokens"]
    },
    expires_at: "2026-12-31T23:59:59Z"
  })
});
 
const mcpServer = await response.json();
console.log(mcpServer.url); 
// Pass this URL to your MCP client

Connecting the MCP Server to Claude

Once you have the Truto MCP URL, connecting it to Claude is a straightforward process. Because the URL contains a cryptographic token that securely maps to your Allium account credentials, no additional OAuth setup is required on the client side.

Method A: Via the Claude UI

If you are using Claude Desktop or the Claude web interface with custom connector support:

  1. In Claude, navigate to Settings -> Integrations (or Connectors).
  2. Click Add MCP Server.
  3. Paste the Truto MCP server URL you generated.
  4. Click Add. Claude will immediately perform a handshake with the Truto router, request the tools/list, and load the Allium capabilities.

Method B: Via Manual Config File

If you are running Claude Desktop locally for development, you can add the server directly to your configuration file. Truto's MCP servers support the Server-Sent Events (SSE) transport, which is highly reliable for cloud-based tools.

Modify your claude_desktop_config.json file:

{
  "mcpServers": {
    "allium-analytics": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-sse",
        "https://api.truto.one/mcp/a1b2c3d4e5f67890"
      ]
    }
  }
}

Restart Claude Desktop. The model now has direct, authenticated access to Allium.

Hero Tools for Allium

Truto automatically generates tools from Allium's endpoints, providing Claude with query parameters, required fields, and clear descriptions. Here are the highest-leverage operations you can perform.

Execute Saved Explorer Queries

Tool: create_a_allium_querie_run

This tool allows Claude to execute a predefined SQL query in Allium's Explorer by passing the query_id. The LLM can dynamically populate the request body with the required parameter values mapped to the specific query.

"Run the 'Whale Wallet Movements' query in Allium for the past 24 hours. The query ID is 'q-12345' and it requires a 'min_value' parameter of '1000000'."

Fetch Historical Token Prices

Tool: create_a_allium_token_price_history

Grabs historical OHLC (Open, High, Low, Close) price data for up to 50 token/chain pairs over a specific time window. This is critical for agents performing backtesting or market analysis.

"Fetch the hourly OHLC price history for WETH on Ethereum and SOL on Solana for the last 7 days."

Analyze Wallet PnL

Tool: create_a_allium_wallet_pnl

Fetches current realized and unrealized Profit and Loss (PnL) metrics for specific wallet addresses across supported chains. The LLM can use this to audit trading performance.

"Check the current unrealized PnL for the wallet 0xABC123 on the Polygon network."

Pull Hyperliquid Orderbooks

Tool: list_all_allium_hyperliquid_orderbook

Retrieves snapshots of the Hyperliquid orderbook across trading pairs with 5-second freshness. This exposes deep market liquidity data, including bid/ask spreads and order sizes, directly to the AI.

"Pull the latest Hyperliquid orderbook snapshot for the BTC-USDT perpetual market and summarize the top 5 bids and asks by volume."

Manage Beam Data Pipelines

Tool: create_a_allium_beam_deployment

Deploys an Allium Beam pipeline configuration. This provisions Kafka topics, workers, and credentials. Because it is idempotent, Claude can safely call this to apply updates to an existing config without causing downtime.

"Deploy the 'Solana DEX Trades' Beam pipeline configuration I just updated. The config ID is 'cfg-98765'. Let me know if the deployment registers successfully."

For the complete inventory of available Allium tools and their specific JSON schemas, visit the Allium integration page.

Workflows in Action

MCP servers transform Claude from a static chat interface into an active data analyst. Here are two concrete workflows showing how Claude sequences Allium tools.

Workflow 1: Auditing DeFi Wallet Performance

An IT admin or financial analyst wants to evaluate the recent trading success of a specific portfolio of addresses against overall market trends.

"Analyze the performance of wallet 0xDEF456 on Ethereum. Get its current PnL. Then, look up the historical price data for the tokens it holds over the last 30 days and tell me if its unrealized losses are due to general market downturns or specific poor trades."

Execution Steps:

  1. Call create_a_allium_wallet_pnl: Claude passes the wallet address and chain (ethereum) to retrieve the wallet's current realized and unrealized PnL, along with a list of the token addresses it currently holds.
  2. Call create_a_allium_token_price_history: Claude extracts the token addresses from the previous step and requests the 30-day OHLC data for those specific assets.
  3. Synthesize: Claude correlates the timing of the wallet's trades (inferred from the PnL breakdown) against the historical price charts, outputting a structured financial summary indicating whether the user underperformed the broader asset trend.

Workflow 2: Asynchronous SQL Query Execution and Polling

Executing massive blockchain queries takes time. Claude must initiate the job, wait, and retrieve the payload.

"Run the 'Arbitrum Gas Guzzlers' query asynchronously. Wait for it to finish, then format the top 5 contracts by gas spent into a markdown table."

Execution Steps:

sequenceDiagram
    participant Claude as Claude Desktop
    participant Truto as Truto MCP Server
    participant Allium as Allium API

    Claude->>Truto: Call create_a_allium_querie_run_async (query_id: 'q-999')
    Truto->>Allium: POST /v1/explorer/queries/q-999/runs
    Allium-->>Truto: { "run_id": "run-abc" }
    Truto-->>Claude: Return run_id
    
    loop Polling Status
        Claude->>Truto: Call list_all_allium_query_run_status (run_id: 'run-abc')
        Truto->>Allium: GET /v1/explorer/query-runs/run-abc/status
        Allium-->>Truto: { "status": "running" }
        Truto-->>Claude: status: running
    end

    Claude->>Truto: Call list_all_allium_query_run_status (run_id: 'run-abc')
    Truto->>Allium: GET /v1/explorer/query-runs/run-abc/status
    Allium-->>Truto: { "status": "success" }
    Truto-->>Claude: status: success

    Claude->>Truto: Call list_all_allium_query_run_results (run_id: 'run-abc')
    Truto->>Allium: GET /v1/explorer/query-runs/run-abc/results
    Allium-->>Truto: { "data": [...] }
    Truto-->>Claude: JSON result set
  1. Call create_a_allium_querie_run_async: Claude starts the job and receives run-abc.
  2. Call list_all_allium_query_run_status: Claude checks the status. If it returns running, Claude knows to wait and try again.
  3. Call list_all_allium_query_run_results: Once the status is success, Claude fetches the final payload and formats the markdown table.

Security and Access Control

Exposing a powerful platform like Allium to an AI model requires strict governance. Truto provides several architectural layers to lock down your MCP servers:

  • Method Filtering: You can restrict a server to specific operation types. Setting methods: ["read"] ensures Claude can run list and get operations (like fetching market prices) but cannot execute create operations (like spinning up new Beam pipelines).
  • Tag Filtering: You can isolate tools by functional area. By setting tags: ["explorer"], the server will only expose tools related to executing SQL queries, hiding all wallet analysis or streaming configuration endpoints.
  • Require API Token Auth: By enabling require_api_token_auth: true, possession of the MCP URL is no longer sufficient. The connecting client must also pass a valid Truto API token in the authorization header, ensuring only validated internal identities can invoke tools.
  • Time-to-Live (TTL): Setting an expires_at datetime ensures the server URL is temporary. Truto relies on cloud infrastructure primitives and durable alarms to automatically wipe the token from the database and key-value store the moment it expires, leaving no stale credentials behind.

Stop writing custom integration scripts to parse blockchain data. Truto handles the schema normalization, API proxying, and tool generation, letting your AI agents interact directly with Allium's ecosystem.

FAQ

How do I connect Allium to Claude?
You can connect Allium to Claude by generating a Model Context Protocol (MCP) server URL using Truto. You add this URL to Claude Desktop's integration settings or configuration file, which dynamically loads Allium's API endpoints as callable tools.
Can Claude execute asynchronous SQL queries in Allium?
Yes. By exposing Allium's query runner endpoints via MCP, Claude can initiate an asynchronous query, receive the run ID, and poll the status endpoint until the results are ready to be fetched.
How does Truto handle Allium API rate limits?
Truto passes HTTP 429 (Too Many Requests) errors directly back to the caller without absorbing or retrying them. However, it normalizes Allium's rate limit headers into the IETF standard (ratelimit-limit, ratelimit-remaining, ratelimit-reset) so the LLM framework can implement proper backoff logic.
Can I restrict what Allium data Claude can access?
Yes. When creating the Truto MCP server, you can apply method filters (e.g., read-only) or tag filters to restrict the generated tools. You can also require API token authentication for an extra layer of security.

More from our Blog