Skip to main content
Glama
danielbres

massive-mcp

by danielbres

get_rsi

Calculates the Relative Strength Index (RSI) for a stock ticker using a configurable period (default 14) to identify overbought or oversold conditions.

Instructions

Relative Strength Index values for a stock. Default window 14.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tickerYes
timespanNoday
windowNo
series_typeNoclose
timestampNo
limitNo
cursorNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The `get_rsi` tool handler, decorated with @mcp.tool(), sends a GET request to /v1/indicators/rsi/{ticker} with common query params (timespan, window, series_type, etc).
    @mcp.tool()
    async def get_rsi(
        ticker: str,
        timespan: Timespan = "day",
        window: int = 14,
        series_type: Series = "close",
        timestamp: str | None = None,
        limit: int = 50,
        cursor: str | None = None,
    ) -> dict[str, Any]:
        """Relative Strength Index values for a stock. Default window 14."""
        return await client.get(
            f"/v1/indicators/rsi/{ticker}",
            _common(timespan, window, series_type, timestamp, limit, cursor),
        )
  • The `_common` helper function builds the shared query parameter dict used by get_rsi (and other indicators).
    def _common(
        timespan: Timespan,
        window: int,
        series_type: Series,
        timestamp: str | None,
        limit: int,
        cursor: str | None,
    ) -> dict[str, Any]:
        return {
            "timespan": timespan,
            "window": window,
            "series_type": series_type,
            "timestamp": timestamp,
            "limit": limit,
            "cursor": cursor,
            "order": "desc",
        }
  • Registration: indicators module's `register()` is called in the build_server() loop, which registers all tools (including get_rsi) onto the FastMCP instance.
    for module in (
        aggregates,
        quotes,
        snapshots,
        tickers,
        news,
        reference,
        indicators,
        corporate,
        financials,
    ):
        module.register(mcp, client)
  • Type aliases used by get_rsi's parameters (Timespan and Series literals) for input validation.
    Timespan = Literal["minute", "hour", "day", "week", "month", "quarter", "year"]
    Series = Literal["open", "high", "low", "close"]
Behavior2/5

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

No annotations exist; the description only notes the default window but fails to disclose behavioral traits such as rate limits, pagination (cursor), or data freshness.

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 very short (two sentences) and front-loaded with the core purpose. However, the second sentence about default window is somewhat redundant with the schema.

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?

Although an output schema exists, the description is too sparse for a 7-parameter technical indicator tool. It lacks context about parameter combinations, usage patterns, and return value summary.

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%, and the description only mentions the default window. It does not explain ticker, timespan, series_type, timestamp, limit, or cursor parameters, leaving the AI agent underinformed.

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 calculates 'Relative Strength Index values for a stock' and mentions the default window. This distinguishes it from siblings like get_ema or get_sma.

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 on when to use this tool versus alternatives, no context provided, and no mentions of prerequisites or exclusions.

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

Install Server

Other Tools

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/danielbres/Massive-MCP'

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