Skip to main content
Glama

Check position (research policy)

check_position
Read-onlyIdempotent

Evaluate a described stablecoin yield position against a research policy (pull).

Always pass your policy rules (or a preset). Without a policy, no meaningful check is possible — the verdict will be review/unknown, never ok.

Pass a yieldhunter opportunity id (poolId / opportunityId / id) or protocolSlug. Required for a real check: policyPreset (treasury-conservative | balanced-research | rwa-selective) and/or minScore / maxRewardShare / excludeCategories / maxExitRisk / requireCurated. Presets: treasury-conservative | balanced-research | rwa-selective. rwa-selective does not exclude RWA but is not a free pass (YS policy allowlist + higher bar). requireCurated uses the Yieldsentinel policy allowlist (curated.json), not yieldhunter scoring priors. Scoring ≠ policy approval.

Fetches live yieldhunter research (score, APY, TVL, category, rewardShare, exitRisk) and curated flags, then returns a PolicyVerdict plus A2H (summary, suggestedNextSteps, legend).

Incomplete or missing data is review/unknown — never a silent ok. A verdict is not an exit signal or execution order. Research only — never holds keys.

Example: { "poolId": "43641cf5-a92e-416b-bce9-27113d3c0db6", "policyPreset": "treasury-conservative", "notionalUsd": 10000 }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoSame as yieldhunter opportunities[].id.
assetNoStablecoin symbol, e.g. "USDC".
chainNoethereum | base | arbitrum
poolIdNoyieldhunter opportunities[].id (DefiLlama pool UUID). Example: "43641cf5-a92e-416b-bce9-27113d3c0db6"
minScoreNoMinimum compositeRiskAdjusted (0–100).
minNetApyNoMinimum net APY estimate.
minTvlUsdNoMinimum pool TVL in USD.
horizonDaysNoHolding horizon in days for net-yield context (default 30).
maxExitRiskNoCap on yieldhunter exitRisk heuristic: low | medium | high. Unknown or above the cap → review.
notionalUsdNoResearch notional in USD (size hint only). Example: 10000
policyPresetNoPolicy preset: "treasury-conservative" | "balanced-research" | "rwa-selective". treasury-conservative excludes RWA; rwa-selective allows RWA but is not a free pass (YS policy allowlist + higher bar).
protocolSlugNoProtocol slug, e.g. "aave-v3".
riskAppetiteNoconservative | balanced | aggressive (research posture only).
opportunityIdNoAlias for poolId / id.
maxRewardShareNoMaximum incentive share of gross APY (0–1).
requireCuratedNoIf true, the protocol/pool must be on the Yieldsentinel policy allowlist (curated.json), not yieldhunter scoring priors. Missing allowlist entry → review. Scoring ≠ policy approval.
minProtocolScoreNoMinimum yieldhunter protocol risk score (0–100, higher = safer).
excludeCategoriesNoExclude categories, e.g. ["rwa"].

TDQS

A4.5/5.0
Behavior5/5

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

Even with annotations declaring readOnlyHint, openWorldHint, idempotentHint, and non-destructive, the description adds substantial behavioral context: live yieldhunter data fetching, 'Research only — never holds keys', 'verdict is not an exit signal or execution order', and incomplete data always resolving to review/unknown never silent ok. No contradiction with annotations.

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 dense but reasonably organized: purpose, prerequisites, identifiers, required policy inputs, presets, behavior, caveats, and an example. It is front-loaded with the core purpose. Minor redundancy exists ('Scoring ≠ policy approval' appears twice; the 'never silent ok' point is made twice), but overall every major section earns its place for an 18-parameter tool.

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?

Given 18 parameters, no output schema, and only one sibling, the description is quite complete: it names the return payload (PolicyVerdict plus A2H summary/suggestedNextSteps/legend), explains missing data behavior, and provides a concrete example. It does not enumerate possible verdict values or provide an output example, but the essential call/invocation context is covered.

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%, so the baseline is 3. The description adds cross-parameter meaning beyond individual schema entries: it explains that policyPreset and/or thresholds are 'Required for a real check', clarifies rwa-selective is not a free pass, defines requireCurated as using the Yieldsentinel allowlist, and maps aliases for poolId/opportunityId/id. This exceeds baseline while not exhaustively describing all 18 parameters.

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 opens with a specific verb and resource: 'Evaluate a described stablecoin yield position against a research policy'. It clearly identifies the tool's scope (research/policy check) and distinguishes it from the 'health' sibling by emphasizing policy, verdicts, and research-only behavior rather than system health.

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 description gives detailed usage conditions: pass a policy preset or explicit thresholds, pass an opportunity id/protocolSlug, and notes that without a policy the verdict is always review/unknown. It says the tool is research-only and not an execution order, which prevents misuse. However, it does not explicitly contrast with the sibling 'health' tool or state when to prefer this tool over alternatives.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.4/5.0
Disambiguation5/5

check_position is the only functional policy-evaluation operation, while health is a liveness/capability check. There is no ambiguous overlap or boundary between the two tools.

Naming Consistency3/5

check_position follows a clear verb_noun pattern, but health uses a bare noun with no verb, so the naming pattern is not fully consistent. The names are still readable and not chaotic.

Tool Count3/5

Two tools is borderline and slightly thin for the 3-15 range. For a focused read-only policy-checking service, it is acceptable, but it is a minimal surface.

Completeness4/5

The core policy-checking workflow is covered by check_position with presets, thresholds, and clear verdict handling. The main missing capability is inspecting policy presets or the allowlist before checking, but the core operation has no dead ends.