Skip to main content
Glama
Urazanev

Mantle Yield MCP

by Urazanev

Mantle Yield MCP

Universal MCP server for Mantle yield data, backed by the Mantle Yield API at https://mantle-yield.asterworks.cc.

It is designed to work with any MCP client that can launch a local process over stdio, including terminal agents and editor-based MCP hosts.

What it provides

  • mantle_get_health — backend health status

  • mantle_get_summary — dashboard summary

  • mantle_list_opportunities — list opportunities with filters, sorting, and pagination

  • mantle_get_opportunity — full details for a single opportunity

  • mantle_get_opportunity_chart — APY / TVL chart data for one opportunity

  • mantle_compare_opportunities — side-by-side comparison for 2–3 opportunities

  • mantle_refresh_data — trigger backend refresh

Related MCP server: MCP COO DeFi

Requirements

  • Node.js >= 22

  • npm

Install

git clone https://github.com/Urazanev/mantle-yield-mcp.git
cd mantle-yield-mcp
npm install
npm run build

No .env file is required for the default setup.

Run locally

npm start

If the process stays open, the server is waiting for an MCP client on stdin / stdout.

Universal MCP setup

Most MCP clients ultimately need the same runtime information:

  • executable command

  • absolute path to the built server entrypoint

  • optional environment variables

Use this runtime shape in your MCP client configuration, adapting only the outer JSON structure to your client:

{
  "name": "mantle-yield",
  "type": "stdio",
  "command": "node",
  "args": [
    "/ABSOLUTE/PATH/TO/mantle-yield-mcp/dist/index.js"
  ]
}

Replace /ABSOLUTE/PATH/TO/mantle-yield-mcp/dist/index.js with the real absolute path on your machine.

Integration notes

  • Use an absolute path to dist/index.js.

  • Prefer launching node directly.

  • Do not use npm start, npx, or other wrappers as the MCP command, because wrapper output can break the MCP handshake.

  • The server supports both common local stdio framing styles used by MCP hosts:

    • Content-Length framed JSON-RPC

    • newline-delimited JSON-RPC

Environment variables

All environment variables are optional.

Variable

Default

Description

MANTLE_YIELD_API_BASE_URL

https://mantle-yield.asterworks.cc

Override backend API base URL

MANTLE_YIELD_API_TOKEN

unset

Optional bearer token

MANTLE_YIELD_API_TIMEOUT_MS

10000

HTTP timeout in milliseconds

Development

npm run dev

or

npm run dev:tsx

Troubleshooting

  • Rebuild after code changes: npm run build

  • If a client hangs on initialize, verify it launches node /absolute/path/to/dist/index.js directly

Notes

  • Uses only the Mantle Yield backend API as its data source

  • Does not call DefiLlama directly

  • Does not parse HTML or read local snapshot files

  • Does not execute on-chain transactions

Available Tools

7 tools
mantle_compare_opportunitiesA

Compare 2 or 3 yield opportunities side by side. Fetches each opportunity via GET /api/opportunities/:id and returns a unified comparison structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesArray of 2 or 3 opportunity IDs to compare

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It explicitly states that the tool fetches each opportunity via GET, implying read-only behavior, and returns a unified comparison structure. This gives useful behavioral context beyond what the schema provides, though it does not cover edge cases or output details.

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?

Two sentences: first states the core purpose, second explains the mechanism and output. Every word earns its place; no redundancy or fluff.

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 description is complete for a relatively simple tool: it states the operation, the number of opportunities, the fetch method, and the overall return type. The lack of an output schema is mitigated by the mention of a 'unified comparison structure,' though a bit more detail on the comparison fields would make it even better. Given the single parameter and straightforward purpose, a 4 is reasonable.

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 schema already covers the sole parameter 'ids' with a description ('Array of 2 or 3 opportunity IDs to compare'), achieving 100% coverage. The description merely mirrors this by stating '2 or 3 yield opportunities,' adding no further semantic nuance, so a baseline 3 is appropriate.

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 the specific verb 'Compare' with a clear resource 'yield opportunities' and specifies the count (2 or 3). It distinguishes from sibling tools like mantle_get_opportunity (single) and mantle_list_opportunities (list) by its comparison focus. The second sentence adds clarity about the underlying fetches and unified output.

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 clearly implies the tool is for side-by-side comparison of multiple opportunities, which provides clear context for when to use it. However, it does not explicitly mention alternatives or exclusions, so it falls short of a 5.

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

mantle_get_healthA

Get the technical health status of the Mantle Yield backend service. Calls GET /api/health. Returns status, lastSync, sourcesRefreshed, failedSources. Note: some fields described in the spec (syncedAt, nextRefresh, source, itemCount, fileExists, snapshotPath) are not yet present in the backend response.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the transparency burden. It explicitly calls out the HTTP endpoint GET /api/health, which signals a read-only operation, and notably warns that certain spec fields are not yet present in the response, preventing confusion. It does not describe error handling or response format details, but for a health check this is sufficient.

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 two sentences, front-loaded with the purpose, and the caveat about missing fields is valuable without being verbose.

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 the simplicity (no params, no output schema), the description adequately covers the return fields and caveats. However, it could elaborate on the meaning or type of 'status' or the other listed fields, but that is likely inferable from a health check 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, so the baseline score of 4 applies. The description implicitly confirms this by not mentioning any inputs, and the schema is empty.

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 ('technical health status of the Mantle Yield backend service'), clearly differentiating from sibling tools that deal with opportunities. It also names the underlying HTTP endpoint, reinforcing its purpose.

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 clearly states the tool's purpose as a health check for the backend service, and sibling tools focus on opportunities/summary, so usage context is clear. However, it does not explicitly state when to use it instead of alternatives or any exclusions, though this is a simple health check.

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

mantle_get_opportunityA

Get full details for a single yield opportunity by its ID. Calls GET /api/opportunities/:id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesOpportunity ID (UUID)

TDQS

A4/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 full burden of conveying safety and behavioral traits. It does state 'Calls GET /api/opportunities/:id', which indicates a read-only operation, but it does not explicitly confirm non-mutating behavior, error handling, or any permissions required. This is minimal but not absent, scoring a 3.

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?

Single sentence, direct, starts with the verb and object. No filler or repetition. Ideal conciseness for a simple getter.

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?

This is a simple tool with one parameter and no output schema; the description explains what it returns (full details) and how to invoke it (by ID via the endpoint). It is adequate for the agent to select and call, though it could mention returned payload structure or errors, but for this complexity level, it's complete enough.

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 single parameter 'id' is already well described in the schema as 'Opportunity ID (UUID)' with 100% coverage. The description merely says 'by its ID', adding no further constraint or format detail. Baseline for high schema coverage is 3, and no incremental value is provided.

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?

Clear 'Get' verb targeting a specific resource ('full details for a single yield opportunity'), with the endpoint explicitly stated. This clearly differentiates from siblings like mantle_list_opportunities (list vs single) and mantle_get_opportunity_chart (chart vs full details).

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 implies the use case: when you need full details for one known opportunity by ID. However, it does not explicitly mention when not to use it or contrast with alternatives, so it lacks the explicit exclusions needed for a 5.

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

mantle_get_opportunity_chartA

Get historical chart data (APY / TVL over time) for a yield opportunity. Calls GET /api/opportunities/:id/chart. NOTE: This backend endpoint is not yet implemented and will return a backend_gap status.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesOpportunity ID (UUID)

TDQS

A4.2/5.0
Behavior4/5

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

No annotations exist, so the description carries the burden. It transparently discloses the critical backend_gap behavior (not implemented) and identifies the HTTP method (GET). It doesn't describe response format or auth, but the warning is a significant behavioral disclosure.

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?

Two sentences, front-loaded with purpose, then API path and warning. Every sentence earns its place with 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?

For a simple one-parameter tool, the description is adequately complete: it explains what data is returned (APY/TVL over time) and the main failure mode (backend_gap). No output schema exists, but the description covers the essentials.

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% (id is described as 'Opportunity ID (UUID)'). The description adds no extra semantic detail beyond the schema, so baseline 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?

Clear verb + resource: 'Get historical chart data (APY / TVL over time) for a yield opportunity.' It distinguishes itself from sibling tools (e.g., list_opportunities, get_opportunity) by focusing on chart data over time.

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?

Provides context for use (when needing APY/TVL trends over time) and includes an explicit warning that the endpoint is not yet implemented. It doesn't mention alternatives, but no sibling tool offers chart data, so it's clear.

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

mantle_get_summaryA

Get the Mantle Yield dashboard summary. Calls GET /api/summary. Returns opportunitiesTracked, protocols, assetsIndexed, lastSync, status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/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 the HTTP method (GET), implies a safe read operation, and enumerates the exact response fields (opportunitiesTracked, protocols, assetsIndexed, lastSync, status). This provides meaningful behavioral transparency, though it does not discuss potential errors or auth requirements.

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 two sentences, front-loaded with the purpose and the endpoint, and lists return fields without any fluff. Every word earns its place, and it is immediately scannable.

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 zero-parameter read-only tool, the description is well-rounded: it names the endpoint, lists the key output fields, and clearly communicates what the tool returns. It lacks only minor context such as the overall value of the summary (e.g., 'overview of all opportunities') but is complete enough for an agent to invoke it correctly.

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, so the schema coverage is trivially 100% and there is nothing to document. Per the rubric, 0 params baseline is 4; the description adds no parameter semantics because none exist, which is appropriate.

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 verb (Get), the resource (Mantle Yield dashboard summary), and the specific endpoint (GET /api/summary), which distinguishes it from sibling tools like mantle_get_health and mantle_get_opportunity. The list of returned fields further clarifies its scope.

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 usage is implied by the name and description: use this to obtain the high-level dashboard summary. However, it does not explicitly mention when to prefer this over siblings (e.g., 'use mantle_list_opportunities for detailed opportunity data') or any exclusion criteria.

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

mantle_list_opportunitiesA

List yield opportunities from the Mantle Yield backend. Calls GET /api/opportunities. Supports filtering, sorting and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based)
sortNoSort order
assetNoFilter by asset symbol, e.g. 'USDT'
limitNoItems per page
lockupNoFilter by lockup: 'none' or 'has'
exposureNoFilter by exposure type, e.g. 'Lending'
strategyNoFilter by strategy type, e.g. 'Lending'
complexityNoFilter by complexity: 'Low', 'Med', or 'High'

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden. It explicitly states 'Calls GET /api/opportunities', implying a read-only operation, and mentions filtering/sorting/pagination capabilities. However, it does not disclose return format limits, defaults, or potential side effects, leaving room for more behavioral detail.

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 three short sentences that immediately state the purpose, endpoint, and capabilities. There is no filler, and the most important information is front-loaded. Every sentence earns its place.

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?

Despite having 8 parameters and no output schema, the description covers the core purpose and capabilities, which is sufficient for selecting the tool. However, it does not describe the return structure (e.g., array of opportunity objects with fields like APY, TVL) or default pagination/sort behavior, which would be needed for full completeness given the absence of an output schema.

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%, so the schema already explains all 8 parameters. The description adds only a general mention of filtering, sorting, and pagination but no per-parameter semantics beyond the schema, so the baseline score of 3 is appropriate.

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 verb ('List'), resource ('yield opportunities from the Mantle Yield backend'), and specifies the API endpoint. This distinguishes it from sibling tools like mantle_get_opportunity (specific item), mantle_get_summary (summary), and mantle_compare_opportunities (comparison).

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 clearly implies this is the general listing tool with filtering, sorting, and pagination, which is the right choice when you need a paginated list of opportunities. However, it does not explicitly contrast with siblings or state when not to use it, which would warrant a 5.

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

mantle_refresh_dataA

Trigger a manual data refresh on the backend. Calls POST /api/refresh. NOTE: This backend endpoint is not yet implemented and will return a backend_gap status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It explicitly warns that the endpoint is not implemented and will return a backend_gap status, which is critical and honest. It does not mention other side effects, but for a currently broken tool, this disclosure is sufficient.

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?

Two sentences, with the main purpose stated first and the important caveat second. Every word earns its place; no filler or repetition.

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, zero-parameter tool with no output schema, the description covers the action, the endpoint, and the current broken behavior. It could mention what a successful refresh would do, but the backend_gap notice is the most relevant operational detail right now.

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, so the baseline is 4. The description correctly avoids inventing parameter details. No further semantic enrichment is needed.

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 ('Trigger') and resource ('manual data refresh on the backend') and names the exact endpoint. It clearly distinguishes from sibling tools, which are all read-only get/list/compare operations, by being the only mutation tool.

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?

It states what the tool does but not explicitly when to use it vs alternatives. However, as the only refresh/mutation tool among read-only siblings, usage is strongly implied, though there is no explicit guidance on frequency, prerequisites, or when not to use.

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. 7 tool updatesv0.1.0
    • First observedmantle_compare_opportunities
    • First observedmantle_get_health
    • First observedmantle_get_opportunity
    • First observedmantle_get_opportunity_chart
    • First observedmantle_get_summary
    • First observedmantle_list_opportunities
    • First observedmantle_refresh_data

TDQS

A4.4/5.0
Disambiguation5/5

Each tool serves a clearly distinct purpose: health checks, dashboard summary, individual opportunity details, historical charts, listing with filters, comparison, and manual refresh. There is no overlap or ambiguity between tool boundaries.

Naming Consistency5/5

All tool names follow the same 'mantle_verb_noun' pattern with snake_case throughout. The consistent use of get/list/compare/refresh clearly communicates the action and object for each tool.

Tool Count5/5

With 7 tools, the server is well-scoped for a yield data platform. Each tool covers a distinct aspect of the domain without redundancy or bloat, fitting the ideal 3-15 tool range.

Completeness5/5

The tool set covers the full read-only lifecycle of yield opportunities: listing, retrieving details, historical charts, comparison, and summary/health status. The included refresh action adds operational coverage, leaving no obvious gaps for the stated purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

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/Urazanev/mantle-yield-mcp'

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