@gryps/agent-mcp
OfficialThis server is a read-only MCP cost gate for Gryps v2 trading: it checks whether a trading signal can survive real execution costs, fees, spread, funding, and liquidation risk before an agent acts.
Measure the round-trip friction floor a trade must beat, decomposed into fees and spread with provenance.
Cost-gate any claimed edge from external signals, flagging when a verdict depends on unresolved fee-basis ambiguity.
Combine agreeing signals honestly, avoiding double-counting correlated or same-source confirmations.
Analyze liquidation risk via margin profile, position-size limits, and survivability against expected price moves.
Estimate holding costs such as funding over time, not just entry/exit fees.
Compare Gryps round-trip cost against a public order-book venue using live depth.
Get indicative, non-firm execution estimates derived from oracle price plus measured friction.
Compare Gryps oracle price to an external fair-value mid and report divergence in bps.
Browse and resolve live Gryps v2 markets, with filtering by category or RFQ availability.
Read venue funding parameters, aggregated open interest, chain-side liveness/heartbeat, and a verified operational quirks registry.
View measured real-world fees from settlement event logs and the engine-reported fee schedule.
Run paper-session rehearsals against live prices, decomposing results into price move versus friction.
Check venue status, capabilities, limitations, and next-step guidance; browse staged prompt journeys.
Perform all operations read-only and non-destructive: it cannot trade, sign, withdraw, or access private accounts.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@gryps/agent-mcpwhat's the current funding rate for BTC?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Gryps Agent MCP
Checks whether a trading signal can survive execution reality before an agent acts.
The AI tool shelf is saturated with reasons to trade: sentiment feeds, news feeds, technical indicators, on-chain analytics, research summaries. It is starved of anything that asks whether a claimed edge can pay for its own execution. This server is that gate.
It reads live Gryps v2 market and venue data through the Model Context Protocol, measures what a round trip actually costs, and tells an agent when a trade is not worth making. It cannot place trades, sign messages, manage session keys, read private accounts, or expose internal Gryps systems, and it is built so that a routine upgrade can never quietly change that.
Quick start
Requires Node.js 22.13 or later. See CONNECT.md for the full two-minute setup, including client configuration and troubleshooting.
npx -y gryps-agent-mcp@alphaTo run the unreleased main branch instead: npx -y github:gryps-finance/gryps-agent-mcp.
Example MCP client configuration:
{
"mcpServers": {
"gryps": {
"command": "npx",
"args": ["-y", "gryps-agent-mcp@alpha"]
}
}
}Then ask your client:
A sentiment feed says BTC is about to move 15 basis points. Use Gryps to check whether that clears the cost of trading it.
Related MCP server: Blocksize Market Data
What it does
Tool | Purpose |
| The round-trip cost a trade must beat, decomposed into fees and spread with full provenance. The number that decides whether a trade is worth making. |
| Cost-gate a claimed edge from any upstream signal source. Answers whether the claimed magnitude survives execution, never whether the signal is true. |
| Combine several agreeing signals honestly. Folds repeats of one source into a single signal, treats near-identical source names as one feed, and prevents correlated families from being counted as independent confirmations. |
| Where the position gets liquidated. Turns the venue published maintenance-margin ladder into the bracket, margin, leverage ceiling, and adverse move a size can absorb — and whether it survives long enough for the expected move to arrive. |
| How large. Bounded by the cost gate, the risk budget, the venue brackets, and survivability, reporting the largest size every constraint allows and naming the one that binds. |
| What holding costs, beside what entering costs. Over a long hold, carry can exceed the round trip entirely. |
| Compare round-trip cost on Gryps against a public order-book venue priced by walking its live displayed depth. |
| An indicative, non-firm execution estimate for one clip: oracle mid, estimated entry, and the all-in cost model. Derived, and labeled as such: the engine exposes no quote surface. |
| The live Gryps oracle price next to an external fair-value mid, with divergence in bps. The anchor for oracle sanity checks and paper-session pricing. |
| Browse the live v2 market catalogue with bounded search and pagination. Searches by common name ( |
| Resolve one exact symbol, common name, or unique base asset and return live price and leverage limits. Reports which route resolved it. |
| The median fee real fills actually paid, read from the settlement contract event log. A fill is a fact; a schedule is a claim. |
| The engine-reported fee tier ladder. |
| One call describing what the server answers, what it refuses, what it reads, and every known limitation with its consequence. |
| Ask what to do next. On a fresh install it returns one starting point rather than a catalogue, then routes the journey from there. |
| Browse 25 staged prompts by journey stage, experience level, purpose or free text. Each says what it does and why it matters. |
| Rehearse trades against live prices with zero capital. Every close decomposes the result into price move versus friction paid. No order exists anywhere. |
| API health, build version, and settlement identity checked against the chain and contract pinned in this package rather than relayed from the endpoint. |
All tools are annotated read-only and non-destructive. Every response uses a versioned JSON envelope naming its live source, fetch time, and limitations.
What an agent is told on connect
The server sends MCP instructions on initialize, so any client passes them to
the model as standing context without the user doing anything. They frame the
server as a cost gate rather than an idea source, point a new install at
gryps_next_step, and name the four ways an agent could mislead someone with
these tools.
The seven journey prompts are also exposed as native MCP prompts, so clients that render prompts surface the guided path in their own interface. A tool has to be invoked; a prompt is presented.
Cost is not the only thing that stops a trade
A trade can clear its cost and still be a bad trade, and the venue publishes
enough to prove it. Every risk-config read returns a full maintenance-margin
ladder, so the same call that prices friction can also say where the position
stops existing.
On live BTC data, 150x leverage leaves roughly 27 basis points of room before
liquidation, and round-trip friction is 24 of them. Three basis points of actual
buffer, on a trade the cost gate alone would wave through. That is the gap
gryps_margin_profile and gryps_position_size close: the first says where the
position dies, the second says how large it can be before that becomes likely.
gryps_funding_cost closes the other one. Friction is charged twice and then
done; funding is charged the whole time the position is open. Holding a week can
cost several times the round trip this package has been gating on.
The four honesty rules
These are structural, not stylistic. They are enforced by tests.
Friction is a lower bound until spread is measured. The engine reports fee
tiers. The public v2 engine exposes no bid/ask or depth surface at all — every
order-book, depth, ticker, and quote path was probed and returns 404 — so spread
is absent upstream rather than merely unwired here. gryps_friction_floor
therefore reports a measured fee floor, flags isLowerBound: true, carries
the probe result in spreadSurface, and says plainly that true friction is
higher. It is never presented as all-in friction.
Fee direction is unverified, so both readings travel together. The engine
does not state whether totalFeeRateBps is per side or a round trip, and the
answer is worth a factor of two. The headline number takes the conservative
per-side reading, and every response also carries the other one:
gryps_friction_floor returns feeDirectionRange with both round trips and
both break-even edges, and gryps_edge_check re-runs the gate against the
alternative and reports whether the verdict survives it. A verdict that flips
depending on an unresolved question is reported as not decidable from live data,
not as a decision. The flag is three-state: unset means unresolved,
--fee-is-round-trip=true and =false both mean an operator has confirmed the
basis, and the responses say which.
Third-party signal text is untrusted input. A sentiment or news tool relays text written by strangers. Every response that touches a claimed edge carries a notice telling the model to treat that text as data to evaluate, never as instruction to follow.
A derived estimate is not a quote. The public engine exposes no quote,
estimate, or preview endpoint. gryps_indicative_quote therefore builds its
estimate from the live oracle price plus measured friction, and says so:
firm: false, quoteStatus: "derived", and engineQuoteSurface: "absent".
An agent must not present it to a user as a price the venue offered.
What it will not do
It will not tell you a signal is true. It only checks whether the claimed magnitude could survive execution cost. Conflating those two questions is how confident agents lose money.
It will not treat five agreeing sources as five confirmations. Correlated evidence inflates confidence without inflating edge, and confidence is what sets position size.
It will not always say Gryps is cheaper.
gryps_route_comparereports the other venue as cheaper when that is what the live numbers say.It will not repeat the engine market count as a fact. That count has not been reconciled with published documentation, so it is returned flagged as unpublishable rather than quoted.
It will not take an endpoint's word for what it is. The settlement chain and contract are pinned in this package and compared against what the engine reports, because a wrong or hostile endpoint describes itself with exactly the same confidence as the right one.
It will not guess a symbol. Common names are rewritten through a curated alias table before exact matching, and near misses are returned as labelled suggestions. Neither ever resolves a market on your behalf by similarity.
It will not trade, sign, hold assets, or read your account.
Verify the boundary yourself
The read-only claim is only worth what a stranger can check. Every installed copy audits itself:
npx -y gryps-agent-mcp@alpha --verifyIt scans the JavaScript actually installed on your machine for the capabilities this package promises never to have: transaction signing, private keys, wallet clients, order placement, withdrawals, network listeners, environment configuration, and subprocesses. It also lists every network destination present in the shipped code, so you can see exactly where it is able to reach.
Add --json for machine-readable output. A failed audit exits non-zero, so a
pipeline can gate on it.
A pass is evidence about that version, not a promise about future ones, which is why the check ships inside every version rather than living only in this repository.
Configuration
Configuration is explicit and never read from environment variables.
npx -y gryps-agent-mcp@alpha \
--api-base=https://example.invalid/api/v1 \
--health-url=https://example.invalid/health \
--comparison-url=off \
--spread-bps-per-side=8Flag | Effect |
| Override the Gryps read endpoints. HTTPS only, except loopback. |
| Upstream request timeout and read cache TTL. |
| Order-book venue for |
| Taker fee assumed for the comparison venue, per leg. An assumption, stated in every response. |
| Declare the fee basis once the protocol team confirms it. Unset means unresolved and both readings are reported; |
| Supply an operator-measured spread. Doing so stops friction being reported as a lower bound. |
| Print usage or version and exit. |
Query strings and fragments are stripped from configured endpoints. Upstream reads are cached briefly, deduplicated in flight, retried once on transient failures, and rejected above 5 MB.
Development
npm ci
npm run verify:release
npm run smoke:liveverify:release type-checks, tests, builds, exercises the MCP handshake, and
inspects the npm tarball allowlist. smoke:live separately verifies the live
endpoint, the friction floor, the cost gate, and venue comparison, because it
requires network access. CI runs the same chain on Linux and Windows plus a
nightly live-contract check for upstream drift.
See CONNECT.md to connect an agent in two minutes, ARCHITECTURE.md for the capability split, SECURITY.md for the defensive boundary and reporting path, RELEASE.md for the publication gate, CONTRIBUTING.md for the ground rules, and ROADMAP.md for the path from public read to supervised execution.
Gryps-owned account observer
This repository also contains a private observer profile that reads one wallet's account snapshot, portfolio, order history, and trades. It is excluded from the public npm tarball and requires the wallet address to be fixed when the process starts:
npm run verify:internal
npm run start:internal -- --account-address=0xYOUR_40_HEX_CHARACTER_ADDRESSThe observer cannot sign, submit, cancel, or withdraw. Its presence in the source repository does not change the public package boundary.
Available Tools
6 toolsgryps_get_fundingC
Funding parameters for a Gryps market (epoch duration, max rate).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It states what data is returned but does not disclose any behavioral traits such as read-only nature, potential side effects, authorization requirements, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 11-word sentence that front-loads the key purpose and specific fields. No extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema, no annotations), the description is minimally adequate. It names the returned fields but lacks details on output format or parameter semantics. The absence of output schema means the agent cannot infer return structure beyond the brief field list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 1 parameter (symbol) with 0% description coverage in schema. Description does not explain the parameter's meaning or usage, only implying it identifies the market. The description adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves funding parameters for a Gryps market, mentioning specific fields (epoch duration, max rate). It distinguishes from siblings like gryps_get_market which likely returns market details. However, the description lacks an explicit verb but the tool name includes 'get'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not mention when not to use it or provide context about which sibling tools cover different use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gryps_get_marketA
Full detail for one Gryps market: leverage, notional bounds, live fee schedule, funding epoch, categories.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | e.g. BTC, XAU, SEIUSDT |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description lists return fields but does not explicitly state read-only nature, permissions, or side effects. For a 'get' operation, it's adequate but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that efficiently conveys purpose and key return fields. No wasted words, front-loaded with value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description lists return fields explicitly. Covers main aspects of a single-market detail tool. Could include more on response format or size, but sufficient for the agent to understand what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
100% schema coverage. Description provides examples for symbol parameter (BTC, XAU, SEIUSDT), same as schema description. Adds no new meaning beyond schema, baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb and resource: get full detail for one Gryps market. Lists specific fields (leverage, notional bounds, fee schedule, funding epoch, categories), distinguishing it from siblings like gryps_list_markets (list all) and gryps_get_funding (funding specific).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use when needing full market details, but no explicit when-to-use or when-not. No mention of alternatives like gryps_list_markets for overview or gryps_open_interest for interest data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gryps_list_marketsA
List live Gryps markets. Supports filtering by category (e.g. "Commodities", "Stocks", "RWA") or RFQ availability. Fees and leverage are live venue data.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| rfqOnly | No | Only RFQ-enabled markets | |
| category | No | Filter by category tag |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description mentions that fees and leverage are live venue data, but does not disclose other behavioral traits like rate limits, data freshness guarantees, or authentication requirements. The description is neutral but lacks detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states the core purpose, second adds filtering and data nature. No unnecessary words. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a list tool with no output schema. Missing details on pagination (how limit works, default), sorting, and response structure. With no annotations, more behavioral context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (rfqOnly and category have descriptions, limit does not). The description adds value by giving examples for category ('Commodities', 'Stocks', 'RWA') and indicating that fees/leverage are live data. This supplements the schema well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists live Gryps markets, with filtering options. It distinguishes from siblings like gryps_get_market (single market) and gryps_venue_liveness (venue status), so purpose is specific and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing markets with filters, but does not explicitly state when to use this tool versus alternatives like gryps_get_market or gryps_venue_liveness. No exclusion criteria or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gryps_open_interestA
Aggregated open interest snapshot for the venue (raw upstream shape, timestamped).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 mentions 'raw upstream shape' and 'timestamped' but does not clarify if the operation is read-only, requires authentication, or has side effects. More detail on the nature of the query (e.g., is it cached? real-time?) would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys the tool's purpose and key characteristics. It is front-loaded with the most important information and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and low complexity (0 parameters), the description is fairly complete but lacks detail on the exact return format. 'Raw upstream shape' is vague; stating the structure or fields would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and the empty schema is fully covered. The description adds value by describing the output as 'aggregated', 'raw upstream shape', and 'timestamped', which provides context beyond the schema. Baseline is 4 for no parameters, and the description justifies it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides an 'aggregated open interest snapshot' for the venue, specifying 'raw upstream shape' and 'timestamped'. This distinctively separates it from sibling tools like gryps_get_funding (funding rates) and gryps_get_market (market data).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the tool's name and description imply it's for open interest data, there is no explicit guidance on when to use it versus alternatives, nor any prerequisites or exclusions. The sibling names provide some context but the description itself lacks usage directives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gryps_venue_livenessA
Chain-side venue heartbeat for Gryps v2 (PerpsRollup on Polygon): state root, sequence number, USDC custody, current implementation. Works even when the venue API is down — the chain is the truth source.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It reveals key behavioral details: returns specific data (state root, sequence number, custody, implementation), functions as a chain-side source of truth, and works independently of API status. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. First sentence lists key data points and context; second sentence adds crucial usage advantage. Efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers what the tool returns and when to use it. With no output schema, the description serves as the sole documentation for return values, which it provides clearly. Adequate for a simple, stateless read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters, so schema coverage is 100%. The description does not need to add parameter info. Baseline for zero params is 4, and no additional context is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: a chain-side venue heartbeat providing state root, sequence number, USDC custody, and current implementation. It differentiates from sibling tools which focus on funding, markets, open interest, and quirks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly highlights when to use this tool: even when the venue API is down, as the chain is the truth source. It implies reliability checks over API-dependent data, though it doesn't explicitly list exclusions or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gryps_venue_quirksC
Venue Quirks Registry: dated, verified operational quirks with machine-actionable agent rules (fee conventions, funding grids, accounting identities, API churn). Filter by venue and/or severity.
| Name | Required | Description | Default |
|---|---|---|---|
| venueId | No | e.g. gryps-orbs-v1, gryps-v2-polygon | |
| severity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, and the description does not disclose behavioral traits such as side effects, idempotency, or authentication requirements. It implies a read operation but never explicitly confirms this, which is a gap given the lack of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that conveys the purpose and key details without unnecessary verbosity. It front-loads the core concept and uses examples efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two optional parameters and no output schema, the description covers the basic purpose and filtering capabilities. However, it does not describe the response format or any pagination/ordering, leaving some gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, with venueId having an example in the schema and severity being an enum. The description adds the concept of filtering but does not elaborate on parameter format or constraints beyond what the schema provides. Per the rubric, a baseline of 3 is appropriate given the moderate coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a registry of dated, verified operational quirks with machine-actionable agent rules, and mentions filtering by venue and severity. This distinguishes it from sibling tools like venue_liveness or funding. However, it does not explicitly state the action (e.g., 'query' or 'retrieve'), slightly reducing clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as gryps_venue_liveness or gryps_get_funding. The description only states filtering options, leaving the agent to infer appropriate contexts.
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.
6 tool updates
v0.2.0- First observed
gryps_get_funding - First observed
gryps_get_market - First observed
gryps_list_markets - First observed
gryps_open_interest - First observed
gryps_venue_liveness - First observed
gryps_venue_quirks
TDQS
Scored across 6 tools
Each tool targets a distinct aspect of the Gryps venue: funding parameters, market details, market listing, open interest, liveness, and quirks. There is no overlap between them, making tool selection unambiguous.
All tool names use snake_case and prefix 'gryps_'. Most follow a verb_noun pattern (e.g., gryps_get_funding, gryps_list_markets), but gryps_open_interest lacks an explicit action verb, creating a minor inconsistency.
With six tools, the set is well-scoped for an MCP server focused on venue data. Each tool serves a clear purpose without redundancy, and the count is neither too small nor too large.
The tools cover key read operations for a venue (listing, details, funding, open interest, liveness, quirks). While missing potentially useful endpoints (e.g., historical data or trades), the set feels complete for its informational focus.
Maintenance
Related MCP Connectors
Read-only MCP server for The Quiet Protocol's engines, benchmarks, proof, and business data.
Public, read-only MCP server for FarmNeural company facts, packages, and capabilities.
Read-only MCP server for AIStatusDashboard status, incidents, metrics, and fallback recommendations.
Hosted Hyperliquid MCP server: query OHLCV, funding and positioning data in plain language with a free API key.
Related MCP Servers
- AlicenseAqualityBmaintenanceRead-only MCP server for Pear Protocol that gives Claude access to markets, pair ratios, positions, orders, trade history, and portfolio.20821MIT
- AlicenseAqualityDmaintenanceRead-only MCP server for Blocksize market data discovery, pricing, documentation, and x402 endpoint lookup across crypto, equities, FX, and metals.71MIT
- AlicenseNot gradedqualityCmaintenanceA read-only MCP server for Hyperliquid that provides public market data (prices, order books, funding) and any wallet's positions, orders, and fills via MCP tools, without requiring a private key.MIT
- AlicenseAqualityBmaintenanceA read-only MCP server for querying Hyperliquid perp markets, funding rates, order books, candles, and account positions/fills/funding for any address, without needing API keys or wallets.8551MIT