Skip to main content
Glama

Hyperliquid MCP Server

License: MIT

An MCP server implementation that integrates the Hyperliquid SDK.

๐Ÿ“‹ Prerequisites

  • Node.js (v22.0.0 or higher)

  • pnpm or yarn package manager

  • Basic understanding of cryptocurrency trading concepts

Related MCP server: Hyperliquid MCP Server

๐Ÿš€ Installation

# Install globally
pnpm install -g hyperliquid-mcp

# Or install locally in your project
pnpm install hyperliquid-mcp

Option 2: Install from Source

  1. Clone this repository:

    git clone
    cd hyperliquid-mcp
  2. Install dependencies:

    pnpm install
  3. Build the project:

    pnpm run build

๐Ÿ—๏ธ Configuration

Create a .env file with your credentials:

# This is your wallet private key
PRIVATE_KEY=your_private_key

๐Ÿ”Œ Usage with Claude Desktop

To add this MCP server to Claude Desktop:

  1. Create or edit the Claude Desktop configuration file at:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • Linux: ~/.config/Claude/claude_desktop_config.json

  2. Add the following configuration:

{
  "mcpServers": {
    "hyperliquid-mcp": {
      "command": "node",
      "args": ["/path/to/hyperliquid-mcp/dist/index.js"],
      "env": {
        "PRIVATE_KEY": "your_private_key_here"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
  1. Restart Claude Desktop for the changes to take effect.

๐Ÿƒ NPX

{
  "mcpServers": {
    "hyperliquid-mcp": {
      "command": "npx",
      "args": ["-y", "hyperliquid-mcp"]
    },
    "env": {
      "PRIVATE_KEY": "your_private_key_here"
    }
  }
}

๐Ÿงฉ Supported Tools

get_spot_clearinghouse_state

Get the clearinghouse state of a user on Hyperliquid.

{
  user?: string;       // User address (optional, defaults to wallet address)
}

Example query to Claude:

"Show me my spot account state."

get_perp_clearinghouse_state

Get the perpetual clearinghouse state of a user on Hyperliquid.

{
  user?: string;       // User address (optional, defaults to wallet address)
}

Example query to Claude:

"Show me my perps account state."

get_order_status

Get the status of a specific order.

{
  user: string; // User address
  oid: number | string; // Order ID
}

Example query to Claude:

"check my wallet order: o123456 status"

get_open_orders

Get all open orders for a user.

{
  user?: string;       // User address (optional, defaults to wallet address)
}

Example query to Claude:

"check all my open orders"

get_order_history

Get order history for a user.

{
  user?: string;       // User address (optional, defaults to wallet address)
}

Example query to Claude:

"check my account order history"

get_all_mids

Get mid prices for all coins on Hyperliquid.

get_spot_meta

Request spot trading metadata.

get_candle_snapshot

Get historical candlestick data.

{
  coin: string;        // Token symbol, e.g. "BTC"
  interval: string;    // Time interval, e.g. "15m", "1h", "4h", "1d"
  startTime: number;   // Start timestamp in milliseconds
  endTime?: number;    // End timestamp in milliseconds (optional)
}

get_l2_book

Get L2 order book data.

{
  coin: string; // Token symbol, e.g. "BTC-PERP", "ETH-PERP", "SOL-PERP", "BTC-SPOT"
}

place_order

Place a trading order.

{
  coin: string;        // Token symbol
  is_buy: boolean;     // true for buy, false for sell
  sz: number;          // Order size
  limit_px: number;    // Limit price
  tif?: "Gtc" | "Ioc" | "Alo";  // Time-in-force (optional)
  reduce_only?: boolean;         // Reduce-only flag (optional)
  vaultAddress?: string;        // Vault address (optional)
  is_limit?: boolean;           // Limit order flag (optional)
  trigger_px?: number;          // Trigger price (optional)
  is_market?: boolean;          // Market order flag (optional)
  tpsl?: "tp" | "sl";          // Take-profit/Stop-loss type (optional)
}

Example query to Claude:

"Create a HYPE limit order for $10 and set the target price to $20"

cancel_order

Cancel an existing order.

{
  coin: string; // Token symbol
  o: number; // Order ID
}

Example query to Claude:

"Cancel the order we created earlier"

transfer_spot_perp

Transfer between spot and perpetual accounts.

{
  amount: number; // Transfer amount
  to_perp: boolean; // true for transfer to perpetual, false for transfer to spot
}

Example query to Claude:

"Transfer $10 from spot to perps"

Response Format

Each tool returns a Promise that resolves with:

  • Success: Returns corresponding data object

  • Failure: Throws an error with error message

Note: All numerical parameters accept both number and string inputs. The system will automatically handle type conversion as needed.

๐Ÿ” Security Considerations

  • Private Key Protection: Never expose or hardcode your private key. Use environment variables.

  • Consider using environment variables or a secure credential manager instead of hardcoding sensitive information.

  • Be cautious when transferring funds or deploying contracts, as these operations are irreversible on the blockchain.

  • When using the onramp functionality, ensure you're on a secure connection.

  • Verify all transaction details before confirming, especially when transferring funds or buying credits.

๐Ÿ“ท Troubleshooting

If you encounter issues:

  1. Verify that your wallet private key is valid

  2. Check the Claude Desktop logs for any error messages

๐Ÿ“– License

This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

For detailed guidelines on contributing to Hyperliquid MCP, including:

  • Reporting bugs

  • Suggesting enhancements

  • Development setup

  • Coding standards

  • Adding tools

  • Testing requirements

  • Documentation standards

Basic contribution steps:

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add some amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

Please make sure your code follows the existing style and includes appropriate tests.


Built with โค๏ธ by Impa Ventures

Available Tools

12 tools
cancel_orderC

Cancel an order on Hyperliquid

ParametersJSON Schema
NameRequiredDescriptionDefault
oYes
coinYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of explaining behavioral traits. It only states the action without disclosing effects, failure modes, or how order identification works. This is insufficient for a mutation operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. However, it is very sparse and could be structured to include essential context while remaining concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no annotations, and no parameter details, the description is vastly under-specified for a cancellation tool. The agent cannot know what response to expect, how to identify the correct order, or what side effects occur.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero description coverage, and the description does not explain the meaning of 'coin' or the union type 'o' (number/string). The agent is left without any hint about how to specify the order to cancel.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Cancel') and the resource ('an order on Hyperliquid'). This distinguishes it from sibling tools like 'order' (create) and 'get_order_status' (query).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool, how it relates to alternatives, or any prerequisites (e.g., order must be open). The description is purely factual with no usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_all_midsA

Get mid prices for all coins on Hyperliquid

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states a read-only 'get' action, but does not disclose response format, data freshness, pagination, or any potential side effects. The description is minimal and adds little beyond the tool's name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It perfectly front-loads the action and resource, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (no params, no output schema), and the description fully conveys the tool's purpose. While it doesn't detail the return structure, the simplicity of the operation makes that a minor gap. The description adequately covers what an agent needs to know for selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, making schema coverage 100% by default. The description's phrase 'for all coins' matches the lack of filtering parameters, so no additional parameter explanation is needed. A baseline of 4 is appropriate for a zero-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('mid prices for all coins on Hyperliquid'), making the purpose immediately clear. It distinguishes itself from siblings like get_l2_book or get_candle_snapshot by focusing on mid prices across all coins.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a clear use caseโ€”fetching mid prices for all coinsโ€”but does not explicitly contrast this with alternatives like get_l2_book or get_spot_meta. It provides context but no explicit 'when to use' or 'when not to use' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_candle_snapshotB

Get candlestick data for a token on Hyperliquid

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesThe symbol of the token to get candlestick data for
endTimeNoEnd time in milliseconds since epoch (optional)
intervalYesTime interval (e.g., '15m', '1h')
startTimeYesStart time in milliseconds since epoch

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Get candlestick data', which implies a read operation but does not disclose the response format, whether data is historical or live, any rate limits, or how the snapshot is constructed. This lack of behavioral context leaves the agent uncertain about side effects and return expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loaded with the action and resource. It is efficient with no wasted words, though it is terse enough to omit context that could be valuable. The structure is straightforward, but the brevity slightly reduces its effectiveness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema and no annotations, the description is insufficiently complete. It does not explain the structure of the returned data, time range handling, or any restrictions. The tool has four parameters, and the description only gives a high-level purpose without covering operational aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides descriptions for all four parameters (100% coverage), so the description adds no additional parameter semantics. The description's mention of 'a token' aligns with the 'coin' parameter but does not add meaningful detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'get' and identifies the resource as 'candlestick data for a token on Hyperliquid', which clearly distinguishes it from sibling tools dealing with orders, positions, or market metadata. The tool name and description align, leaving no ambiguity about the function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives, and does not mention exclusions or alternative tools. Usage must be inferred from the tool name and the phrase 'candlestick data', making it implied rather than explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_l2_bookB

Get the L2 book of a token on Hyperliquid

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoThe symbol of the token to get the price of, such as "BTC-PERP", "ETH-PERP", "SOL-PERP", "BTC-SPOT"
requiredNo

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It only states that it gets the L2 book, omitting details about return structure, number of levels, aggregation, or whether it covers both spot and perp tokens. The description adds little beyond the tool's name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant or filler content. It is appropriately sized for the minimal information it contains.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an order book tool with no output schema and no parameter elaboration, the one-sentence description leaves critical details unspecified, such as the depth levels returned, formatting, and whether both spot and perpetual markets are supported. The description is not complete enough for an agent to confidently invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The parameter schema includes a description for 'coin' that says 'to get the price of', which is inconsistent with the tool's purpose of fetching the L2 book. With schema coverage at 50% and no additional parameter clarification in the tool description, this misalignment reduces clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as retrieving the L2 order book for a token on Hyperliquid, using a specific verb and resource. It distinguishes from sibling tools like get_all_mids or get_candle_snapshot by targeting the order book depth.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided; there is no mention of when to use this tool versus alternatives like get_all_mids for mid prices or get_candle_snapshot for historical data. The intended use is implied by the name and description, but explicit exclusions or alternative recommendations are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_open_ordersA

Get all open orders on Hyperliquid, if no user is provided, the open orders of the wallet address will be returned

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoGet user all open orders on Hyperliquid

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the default behavior of returning the wallet address's open orders when no user is provided, but does not mention return format, pagination, or potential errors. For a simple read tool, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with the main purpose front-loaded and a conditional clause explaining the default behavior. Every word earns its place, and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has one optional parameter, no output schema, and no annotations. The description covers the core functionality and the default behavior, which is sufficient for a simple read operation. It could mention the return type or address format, but these are likely obvious from context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a description for the user parameter, but the schema text is awkward and does not clarify optionality. The description adds the important nuance that omitting user returns open orders for the wallet address, which goes beyond the schema and provides meaningful parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets all open orders on Hyperliquid, specifying the verb and resource. It also distinguishes from sibling tools like get_order_history or get_order_status by focusing on open orders, and clarifies the default behavior when no user is provided.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies using this tool when you need current open orders, and the default wallet address behavior is stated. However, it does not explicitly compare to alternatives or mention when not to use it, leaving usage guidance implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_order_historyA

Get all order history on Hyperliquid, if no user is provided, the order history of the wallet address will be returned

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoGet user all order history on Hyperliquid

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden for behavioral disclosure. It does disclose a key behavior: if no user is specified, the tool returns the order history of the wallet address. However, it omits details such as authentication requirements, output format, and any potential limitations or side effects, leaving some important aspects unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that conveys both the main action and an important conditional behavior. It is concise and front-loaded with the core purpose, though the sentence structure could be slightly clearer. Overall, it is appropriately sized without unnecessary padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple, but the description lacks details about the expected format of the 'user' parameter (e.g., address or username), any pagination or limits, and the structure of the returned order history. Since there is no output schema, these gaps make the description only partially complete for an agent to use confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers the parameter 'user' with a description, but the tool description adds meaningful semantic value by explaining the optionality and default behavior ('if no user is provided, the order history of the wallet address will be returned'). This goes beyond the schema's basic description and clarifies the parameter's role.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Get') and resource ('all order history') on Hyperliquid. It distinguishes from sibling tools like get_order_status and get_open_orders by implying the full historical scope. This is a strong, unambiguous purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an important usage note about default behavior when no user is provided, which helps with parameter handling. However, it does not explicitly compare with sibling tools or state when to use this versus alternatives, so guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_order_statusB

Get the status of an order on Hyperliquid

ParametersJSON Schema
NameRequiredDescriptionDefault
oidYesThe order id of the order to get the status of
userYesGet the status of an order on Hyperliquid

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only restates the operation ('Get') without adding context such as read-only nature, auth requirements, rate limits, or response behavior. The verb 'get' implies read-only, but no explicit behavioral traits are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the verb and resource. Every word earns its place, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple status-check tool, the description is minimally adequate but lacks details on return format, error conditions, or whether the order ID must already exist. With no output schema or annotations, more explanation of the response would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both 'user' and 'oid' having descriptions. The tool description adds no extra semantic meaning beyond what the schema already provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Get') and resource ('status of an order on Hyperliquid'). It distinguishes itself from sibling tools like get_open_orders and get_order_history by focusing on a single order's current status via an order ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus alternatives. While the name implies usage for checking a specific order's status, there is no mention of prerequisites, alternatives, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_perp_clearinghouse_stateB

Get the clearinghouse state of a user on Hyperliquid, if no user is provided, the clearinghouse state of the wallet address will be returned

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoGet the clearinghouse state of a user on Hyperliquid

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action is a 'Get' (implying read-only) and mentions the default behavior for missing user, but it does not disclose potential side effects, permission requirements, rate limits, or output format. The added default behavior is useful but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately short, front-loading the purpose in the first sentence. However, the phrasing is slightly awkward with a comma splice, but it remains concise and readable. Every clause contributes to the core behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description covers the main behavior and the default parameter case. However, it lacks context on return value structure, error handling, or whether any authentication is needed, which would be necessary for full agent autonomy. The complexity is low, so this is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the 'user' parameter, but the description adds meaningful context by explaining that omitting the parameter returns the wallet address's clearinghouse state. This adds semantic value beyond the schema's tautological description, earning a score above the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the clearinghouse state of a user, with a specific verb ('Get') and resource ('clearinghouse state'), and distinguishes by the tool name from the sibling get_spot_clearinghouse_state. However, it does not explicitly mention 'perp' in the description, relying on the tool name for differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives like get_spot_clearinghouse_state or get_order_status. It only notes the fallback behavior when no user is provided, which is a parameter detail rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_spot_clearinghouse_stateB

Get the clearinghouse state of a user on Hyperliquid, if no user is provided, the clearinghouse state of the wallet address will be returned

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoGet the clearinghouse state of a user on Hyperliquid

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral transparency burden. It discloses a key default behavior: if no user is provided, the clearinghouse state of the wallet address is returned. However, it does not explain what the clearinghouse state includes, whether it is read-only, or any rate limits, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that conveys the core action and the key conditional behavior without unnecessary words. It is concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter getter with no output schema, the description is adequate but not complete. It explains the default user behavior but does not describe the structure or content of the returned 'clearinghouse state', which could be important for an agent to use the tool effectively. The presence of a similar sibling tool also suggests a bit more explicit differentiation would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the 'user' parameter (100% coverage), but the tool description adds meaningful context by clarifying the optional behavior: when the parameter is omitted, the wallet address's state is returned. This goes beyond the schema's bare description and helps the agent understand the parameter's optionality and default behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets the clearinghouse state of a user on Hyperliquid. The tool name includes 'spot' to differentiate from the sibling 'get_perp_clearinghouse_state', but the description itself uses the generic phrase 'clearinghouse state' and does not explicitly mention 'spot', so it partially relies on the name for disambiguation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as get_perp_clearinghouse_state. The description does not provide context about distinguishing spot from perp clearinghouse state or mention any exclusions, leaving the agent to infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_spot_metaC

Request spot trading metadata

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. The word 'Request' implies a read operation, but there is no indication of what the response contains, whether any side effects occur, or any access requirements. This falls short of the transparency needed for a tool with zero annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence and is structurally concise. However, it does not earn its place because it merely restates the tool name in a slightly expanded form. It is under-specified rather than genuinely informative, but it is not overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description should clarify what 'spot trading metadata' actually includes. It does not, leaving the agent to guess whether this returns fees, trading rules, or other information. The description is too sparse to be considered complete for a tool with no other structured context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema coverage is trivially 100%. There is nothing for the description to add to parameter semantics because no parameters exist. Baseline of 4 is appropriate for parameterless tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Request spot trading metadata' is a near-tautology of the tool name 'get_spot_meta'. While it names a verb and resource, 'metadata' is vague and does not specify what the metadata actually contains, nor does it distinguish this tool from sibling getters like get_spot_clearinghouse_state or get_all_mids.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, use cases, or why an agent would choose get_spot_meta over other getters. The description simply states a generic action without any contextual direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

orderC

Place an order on Hyperliquid

ParametersJSON Schema
NameRequiredDescriptionDefault
szYes
tifNo
coinYes
tpslNo
is_buyYes
is_limitNo
limit_pxYes
is_marketNo
trigger_pxNo
reduce_onlyNo
vaultAddressNo

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description offers no behavioral transparency. It doesn't disclose side effects, execution semantics, authentication requirements, or whether this is a real trade order. The only implication is that it creates an order, which is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but underspecified for a tool with 11 parameters. It lacks structure or additional context, but it is not verbose. Under-specification makes it less useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 11 parameters, no output schema, and no annotations. The description is only one sentence, leaving out critical information about order execution, return value, risk, and usage context. This is highly incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%; the description does not explain any of the 11 parameters. Param names like 'is_buy' and 'limit_px' are partially self-explanatory, but the description adds no semantics, default values, or relationships.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Place an order) and the platform (Hyperliquid), distinguishing it from sibling tools like cancel_order and get_order_status. It lacks specifics on order types or asset classes, but the core purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It simply states the action without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transfer_spot_perpA

Transfer spot to perp, or perp to spot, based on the toPerp value

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYes
to_perpNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that direction depends on the toPerp value, but does not specify which value maps to which direction. It also omits details about reversibility, fees, or failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence efficiently conveys the core function and the key controlling parameter. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter transfer tool without an output schema, the description covers the essential action. However, it lacks explicit mapping for the boolean value and doesn't mention any account prerequisites or common edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains the role of the toPerp parameter (direction flag), but ignores the amount parameter's format or constraints. With 0% schema coverage, it only partially compensates for the missing parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool transfers funds between spot and perp, with direction determined by a boolean flag. This distinguishes it from all sibling tools, which are read-only or order management.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: this is the only transfer tool among siblings, so usage is implied when moving funds between spot and perp. It doesn't explicitly exclude alternatives or list prerequisites, but no competing tool exists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 12 tool updatesv0.0.1-1
    • First observedcancel_order
    • First observedget_all_mids
    • First observedget_candle_snapshot
    • First observedget_l2_book
    • First observedget_open_orders
    • First observedget_order_history
    • First observedget_order_status
    • First observedget_perp_clearinghouse_state
    • First observedget_spot_clearinghouse_state
    • First observedget_spot_meta
    • First observedorder
    • First observedtransfer_spot_perp

TDQS

B3.2/5.0
Disambiguation4/5

The tools are mostly distinct, with clear separation between spot and perp clearinghouse states, and different order-related queries (status, open, history). There is slight potential confusion between 'order' and 'get_order_status', but descriptions clarify the intended purpose.

Naming Consistency3/5

Most read-only tools follow the 'get_' prefix convention, but 'order', 'cancel_order', and 'transfer_spot_perp' do not, mixing bare verbs with the prefix pattern. The names are readable but not fully consistent in style.

Tool Count5/5

With 12 tools, the server is well-scoped for its purpose, covering account state, order lifecycle, market data, and transfers without being overwhelming. Each tool serves a clear function within the trading domain.

Completeness4/5

The tool set covers core trading workflows, including querying state, managing orders, and fetching market data. Minor gaps exist, such as no explicit trade history, modify order capability, or position-specific endpoints, but these are workable for most use cases.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • -
    license
    A
    quality
    Not graded
    maintenance
    Enables interaction with the Hyperliquid DEX for retrieving market data, managing positions, and executing trades. Supports both testnet and mainnet operations with comprehensive trading tools including order placement, cancellation, and portfolio management.
    11
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables interaction with the Hyperliquid exchange to trade perpetuals, check positions, and manage risk through natural language. It provides tools for fetching real-time market data, tracking portfolio value, and executing orders with a focus on safety through default paper trading.
    10
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to securely trade on Hyperliquid perpetual exchange, including order placement, position management, market data retrieval, and vault operations via natural language.
    21
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Impa-Ventures/hyperliquid-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server