mcp-registry/io.github.agentsherpa/yieldsentinel · v1.1.0
As of 2026-10-27 02:15 UTC, the Agentsherpa Yieldsentinel MCP server is up with a Glimind reliability score of 100/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.
Policy check on a described yield position. Complement to yieldhunter. Research only.
Point your MCP client at this streamable-http endpoint: https://yieldsentinel-agent-production.up.railway.app/mcp
1 tool(s) have parameters with no type (no type/enum/anyOf/$ref).
Give every parameter a "type" (or "enum"/"anyOf"). Untyped parameters make models guess — strings for numbers, objects for arrays. How to fix →
No tool declares an outputSchema.
Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →
In the last 30 days: 0 tool(s) removed and 1 schema change(s).
Add new tools or optional parameters instead of renaming or removing; deprecate first (say so in the description) and remove later. Agents cache tool contracts. How to fix →
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. All of them as JSON: /v1/readiness/mcp-registry%2Fio.github.agentsherpa%2Fyieldsentinel/fixes
{
"name": "check_position",
"description": "Evaluate a described stablecoin yield position against a research policy (pull).\n\nAlways pass your policy rules (or a preset). Without a policy, no meaningful check is possible — the verdict will be review/unknown, never ok.\n\nPass poolId from yieldhunter list_yields opportunities[].id (also accepted as opportunityId or id). That id is one market. Required for a real check: policyPreset (treasury-conservative | balanced-research | rwa-selective) and/or minScore / maxRewardShare / excludeCategorie",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"id": {
"description": "Same as yieldhunter list_yields opportunities[].id.",
"type": "string"
},
"asset": {
"description": "Stablecoin symbol, e.g. \"USDC\".",
"type": "string"
},
"chain": {
"enum": [
"ethereum",
"base",
"arbitrum"
],
"type": "string",
"description": "ethereum | base | arbitrum. Case-insensitive. Also accepts eth, mainnet, arb, arbitrum-one."
},
"poolId": {
"description": "yieldhunter list_yields opportunities[].id (DefiLlama pool UUID). Example: \"43641cf5-a92e-416b-bce9-27113d3c0db6\"",
"type": "string"
},
"minScore": {
"description": "Minimum compositeRiskAdjusted (0–100).",
"type": "string"
},
"minNetApy": {
"description": "Minimum net APY estimate.",
"type": "string"
},
"minTvlUsd": {
"description": "Minimum pool TVL in USD.",
"type": "string"
},
"horizonDays": {
"description": "Holding horizon in days for net-yield context (default 30).",
"type": "string"
},
"maxExitRisk": {
"enum": [
"low",
"medium",
"high"
],
"type": "string",
"description": "Cap on yieldhunter exitRisk heuristic: low | medium | high. Unknown or above the cap → review."
},
"notionalUsd": {
"description": "Research notional in USD (size hint only). Example: 10000",
"type": "string"
},
"policyPreset": {
"enum": [
"treasury-conservative",
"balanced-research",
"rwa-selective"
],
"type": "string",
"description": "Policy 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)."
},
"protocolSlug": {
"description": "Yieldhunter protocol slug. Prefer poolId from list_yields opportunities[].id when the protocol has more than one market.",
"type": "string"
},
"riskAppetite": {
"enum": [
"conservative",
"balanced",
"aggressive"
],
"type": "string",
"description": "conservative | balanced | aggressive (research posture only)."
},
"opportunityId": {
"description": "Alias for poolId / id.",
"type": "string"
},
"maxRewardShare": {
"description": "Maximum incentive share of gross APY (0–1).",
"type": "string"
},
"requireCurated": {
"description": "If true, the protocol/pool must be on the Yieldsentinel policy allowlist (curated.json), not yieldhunter scoring priors. Missing allowlist entry → review. Scoring ≠ policy approval.",
"type": "string"
},
"minProtocolScore": {
"description": "Minimum yieldhunter protocol risk score (0–100, higher = safer).",
"type": "string"
},
"excludeCategories": {
"description": "Exclude categories, e.g. [\"rwa\"].",
"type": "string"
}
},
"additionalProperties": true
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
},
"title": "Check position (research policy)"
}Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:
curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/io.github.agentsherpa/yieldsentinel"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/io.github.agentsherpa/yieldsentinel"}) over MCP.
check_position ~785 tokenshealth ~186 tokensStatic checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).
Operator? Fix these, then re-check live. Embed the readiness badge:
[](https://glimind.com/server/mcp-registry%2Fio.github.agentsherpa%2Fyieldsentinel?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fio.github.agentsherpa%2Fyieldsentinel?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.agentsherpa%2Fyieldsentinel.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.agentsherpa%2Fyieldsentinel.svg :target: https://glimind.com/server/mcp-registry%2Fio.github.agentsherpa%2Fyieldsentinel?ref=badge :alt: MCP agent-readiness
Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:7193f6218fed6962…, first seen 2026-10-23, included at leaf 53820 of 76,802. Version history · verify what your client received.
Compare: most reliable data servers · most reliable health servers
Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.
Claude Code
claude mcp add --transport http glimind https://glimind.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"glimind": {
"type": "http",
"url": "https://glimind.com/mcp"
}
}
}
As of 2026-10-27 02:15 UTC, the Agentsherpa Yieldsentinel MCP server is up with a Glimind reliability score of 100/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.
Agentsherpa Yieldsentinel MCP server advertises 2 tools, including check_position, health.
Point your MCP client at this streamable-http endpoint: https://yieldsentinel-agent-production.up.railway.app/mcp
Glimind scanned all 2 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.
Status page: 90-day uptime, every outage and how long it lasted.
Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.
Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.