Skip to main content
Glama

IDX Market MCP (idx-market-mcp)

Python FastMCP License: MIT Market

Institutional-grade Model Context Protocol (MCP) server for Indonesian Stock Exchange (IDX) equities.

idx-market-mcp bridges AI agents (Claude Desktop, Cursor, Hermes Agent) to the Indonesian capital markets. It combines public market telemetry, real-time Level 2 orderbook depth, institutional bandarmology (broker accumulation/distribution), automated chart pattern recognition, and quantitative risk budgeting into a single, token-efficient Python server.


🌟 Key Capabilities

  1. Unified Multi-Action Gateway (idx_stockbit):

    • Access orderbook depth, broker summaries, audited financials, corporate action dividends, and insider disclosures through a single tool schema (~150 input tokens), eliminating tool-definition bloat across conversation turns.

  2. Institutional Bandarmology:

    • Real-time foreign net flows and broker summary breakdown (Top-1, Top-3, Top-5 broker accumulation/distribution status).

  3. Full Level 2 Orderbook Depth:

    • 10 Bid & 10 Ask depth ladder with lot volume and institutional support/resistance wall detection.

  4. Algorithmic Chart Pattern Recognition:

    • Mathematical detection of local extrema (scipy.signal.argrelextrema) and trendline regression to identify triangles, channels, and coils, complete with Bulkowski breakout probabilities and auto-generated candlestick charts (mplfinance).

  5. Defensive Financial Sanitization:

    • Automatic currency mismatch normalization for USD-reporting issuers (KRAS, AMMN, MEDC, ADRO), thin-equity ROE clamping, and solvency violation locks ($\text{DER} > 1.5\times$).

  6. Quantitative Risk Budgeting & Two-Tranche Orders:

    • Anti-cluster sector concentration ceilings (max 50% per sector) and mathematical 2-tranche limit order calculators ready for retail broker execution (e.g. Ajaib, Stockbit).


Related MCP server: Baguskto Saham

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   AI Agent / Client                    β”‚
β”‚      (Claude Desktop, Cursor, Hermes Agent, LLM)       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚ Model Context Protocol (JSON-RPC / stdio)
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    idx-market-mcp                      β”‚
β”‚                                                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚ Unified Gateway       β”‚   β”‚ Quantitative Guards   β”‚ β”‚
β”‚  β”‚ (idx_stockbit)        β”‚   β”‚ (Sanitize/Sector/Lot) β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚              β”‚                           β”‚             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚ Pattern Recognition   β”‚   β”‚ Free Quote Fallback   β”‚ β”‚
β”‚  β”‚ (scipy + mplfinance)  β”‚   β”‚ (Yahoo Finance .JK)   β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚ Session Bearer Token      β”‚ Public OHLCV
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚    Stockbit Exodus API   β”‚   β”‚   Yahoo Finance Charts  β”‚
β”‚ (Orderbook L2 / Bandar)  β”‚   β”‚      (.JK Tickers)      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Tool Catalog (11 Active Tools)

Tool Name

Type

Description

idx_stockbit

Gateway

Single unified action tool: orderbook, bandarmology, keystats, dividends, insider.

idx_get_orderbook

Market L2

10-level Bid & Ask ladder, total queue lots, ARA/ARB thresholds.

idx_get_bandarmology

Flow

Broker summary, institutional flow in IDR, Top 1/3/5 broker actions.

idx_get_keystats

Fundamental

Audited IDR balance sheet, Piotroski F-Score (1-9), DER, ROE, CFO, DPR.

idx_get_dividends

Corp Action

Historical and upcoming dividend calendar (cum, ex, payment dates, IDR value).

idx_get_insider_activity

Corporate

Major shareholder and director/commissioner transaction disclosures.

idx_analyze_chart_pattern

Technical

Algorithmic pattern detection, regression slopes, and annotated PNG chart rendering.

idx_get_market_quote

Price Feed

Real-time quote, intraday range, volume in shares and lots.

idx_sanitize_financials

Risk Guard

Normalizes USD reporting mismatches, thin-equity ROE distortions, and leverage traps.

idx_check_sector_concentration

Risk Guard

Enforces 50% single-sector portfolio ceiling (e.g. anti-cluster bank guard).

idx_calc_tranche_orders

Execution

Computes disciplined 2-tranche limit orders (Tranche 1 immediate + Tranche 2 reserve).


πŸš€ Quickstart

1. Installation

Clone and install dependencies via pip or uv:

git clone https://github.com/mpandudc/idx-market-mcp.git
cd idx-market-mcp

# Using uv (recommended)
uv venv
source .venv/bin/activate
uv pip install -e .

# Or using standard pip
pip install -e .

2. Authentication (Optional for Deep Data)

Basic market quotes, sector concentration checks, and chart pattern recognition work without credentials (using public feeds).

To unlock Level 2 Orderbook depth, Bandarmology, and audited Keystats, provide a Stockbit Bearer token via environment variable:

export STOCKBIT_BEARER_TOKEN="eyJhbGciOiJSUzI1NiIs..."

(Token can be obtained once from your browser DevTools Authorization: Bearer header on stockbit.com).


πŸ”Œ Client Configuration

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "idx-market": {
      "command": "python",
      "args": ["-m", "idx_market_data_mcp.server"],
      "env": {
        "STOCKBIT_BEARER_TOKEN": "YOUR_BEARER_TOKEN_HERE"
      }
    }
  }
}

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "idx-market": {
      "command": "python",
      "args": ["-m", "idx_market_data_mcp.server"],
      "env": {
        "STOCKBIT_BEARER_TOKEN": "YOUR_BEARER_TOKEN_HERE"
      }
    }
  }
}

Hermes Agent (~/.hermes/config.yaml)

mcp_servers:
  idx_market:
    command: /path/to/idx-market-mcp/.venv/bin/python
    args:
      - -m
      - idx_market_data_mcp.server
    enabled: true
    env:
      STOCKBIT_BEARER_TOKEN: "YOUR_BEARER_TOKEN_HERE"

πŸ“ˆ Example Prompts

  • "Cek orderbook dan bandarmology saham MYOR hari ini"

  • "Analisis chart pattern SMSM pada timeframe 1d dan render gambarnya"

  • "Hitung tiket limit order 2-tranche untuk alokasi Rp 12.000.000 di saham BBCA"

  • "Audit portofolio saya: apakah boleh menambah BBNI jika sudah memegang BBCA, BMRI, dan BBRI?"


βš–οΈ Disclaimer

This software is developed strictly for educational, academic, and quantitative research purposes. It is not affiliated with, endorsed by, or sponsored by PT Bursa Efek Indonesia (IDX) or PT Stockbit Sekuritas Digital. Automated data access may be subject to the terms of service of upstream providers. Use responsibly on your own personal accounts.

πŸ“„ License

MIT License β€” Copyright (c) 2026 Muhammad Pandu Dwi Cahyo.

Available Tools

11 tools
idx_analyze_chart_patternIdx Analyze Chart PatternA

Algorithmically analyze chart patterns (triangles, channels, support/resistance) and generate an annotated candlestick chart image.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoHistorical lookback period ('1mo', '3mo', '6mo', '1y').3mo
tickerYes4-letter IDX ticker code (e.g. 'SMSM', 'MYOR', 'BBCA').
timeframeNoCandle interval ('1d' for daily, '60m' for 1-hour).1d

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/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 behavioral burden. It does disclose that the tool generates an annotated chart image and scans for specific pattern types, which is useful. However, it does not mention data-source assumptions, failure modes, or any constraints beyond what the schema already provides, so the behavioral picture remains incomplete.

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 a single, front-loaded sentence that conveys the core purpose and output in a compact way. Every part carries information: the analytical approach, the pattern types, and the deliverable. No filler or redundant wording is present.

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 relatively simple analysis tool with full parameter documentation and an output schema, the description is mostly sufficient. It clearly states the outcome and the pattern categories. Still, the lack of any usage guidance and minor behavioral caveats keep it just short of fully complete.

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 documents ticker, period, and timeframe with defaults and example values. The description adds context about pattern types and the generated image, but it does not meaningfully enrich parameter meaning beyond the schema. 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 names a specific action (algorithmically analyze chart patterns), the resource type (triangles, channels, support/resistance), and the concrete delivery format (annotated candlestick chart image). This clearly differentiates the tool from its siblings, which focus on quotes, financials, order books, and other market data.

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?

The description states what the tool does but gives no guidance on when to use it versus alternatives. There is no mention of scenarios where this tool is appropriate or not, and no explicit exclusions or preferred sibling tools for related tasks.

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

idx_calc_tranche_ordersIdx Calc Tranche OrdersA

Calculate mathematically disciplined 2-tranche limit orders and lot allocations for an IDX stock.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes4-letter IDX ticker code.
budget_idrYesTotal IDR allocation budget for this stock (e.g. 12,000,000).
current_priceYesLatest market price per share.
support_levelNoNearest resting orderbook support level (default: current price * 0.995).
dividend_per_shareNoExpected annual dividend per share in IDR for yield projection.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. 'Calculate' and the tool name 'calc' correctly signal a pure computation with no market side effects, and 'lot allocations' hints at IDX lot rounding. However, it never explicitly states that no live orders are placed, nor does it disclose the tranche split rule or rounding convention, which matters for an agent deciding whether this tool is safe to invoke.

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?

A single 13-word sentence that front-loads the verb and resource. 'Mathematically disciplined' is mildly qualitative but earns its place by conveying the methodology trait. There is no filler, repetition, or dangling context.

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?

An output schema exists, so return values are covered, and all five parameters are fully documented in the schema, leaving the description free to focus on purpose. The gaps are behavioral: no explicit non-execution statement, no tranche-split logic, and no guidance on how this tool chains with the quote/orderbook siblings. Moderate complexity means these gaps are not fatal, but a safety-relevant sentence would complete the picture.

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 baseline of 3 applies. The description's references to '2-tranche' and 'lot allocations' echo the budget and lot-related concepts but add no parameter-level detail beyond what the schema already documents. The description does not compensate further, and none is needed given full coverage.

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 names a specific verb ('Calculate') and a specific resource ('2-tranche limit orders and lot allocations') scoped to 'an IDX stock'. It clearly differentiates from siblings: every sibling is a data-retrieval or analysis tool (get_*, analyze_*, sanitize_*, check_*), while this is the only calculation tool, so an agent can distinguish it without opening schemas.

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 description offers no explicit when-to-use, when-not-to-use, or alternative routing. Usage is only implied: the tool's purpose (structuring limit orders) makes it evident it belongs after quote/orderbook data is gathered, but the agent must infer this from the name and sibling set rather than from stated guidance.

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

idx_check_sector_concentrationIdx Check Sector ConcentrationA

Audit portfolio sector weights against the 50% single-sector concentration ceiling before adding new stock.

ParametersJSON Schema
NameRequiredDescriptionDefault
holdingsYesList of current holdings dicts containing 'ticker', 'sector', 'value_idr'.
candidate_sectorYesSector of the candidate stock.
candidate_tickerYesTicker of the stock to be evaluated.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. 'Audit' implies a read-only review and the 50% ceiling rule is disclosed, but the description does not explicitly state that no portfolio modifications occur or what happens when the ceiling is breached.

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?

A single sentence with no wasted words. The action, target, threshold, and timing are all front-loaded, making it easy for an agent to parse quickly.

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 output schema covers return values, the input schema covers all parameters, and the description supplies the decision context. The main gap is explicit side-effect disclosure, which is a minor issue for a tool named 'check'.

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 coverage is 100%, so the schema already documents all three parameters. The description adds the 'single-sector concentration ceiling' concept but does not explain how holdings/value_idr are weighted or how candidate_sector interacts with the ceiling calculation.

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 ('audit') and names the resource ('portfolio sector weights'), along with the precise criterion ('50% single-sector concentration ceiling'). This clearly distinguishes it from sibling market-data and order-related tools.

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?

It explicitly states the timing: 'before adding new stock', which tells the agent when this check is appropriate. It does not name alternatives or provide when-not-to-use guidance, so it stops 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.

idx_get_bandarmologyIdx Get BandarmologyA

Fetch broker summary, institutional accumulation/distribution status, and big player flows from Stockbit API.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes4-letter IDX stock code (e.g. 'MYOR', 'SMSM', 'BBCA').

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

There are no annotations, so the description carries the behavioral burden. It conveys a read-only intent through 'Fetch' and names the external source, but it does not disclose potential errors, rate limits, data recency, or whether authentication is required. This is 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that lists the tool's outputs without any filler or repetition. Every phrase contributes meaningful information.

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?

With one clearly documented parameter and an output schema present, the description does not need to explain return values. It names the data source and the specific data categories, which is sufficient for initial selection. The only minor gap is the lack of explicit alternatives, already captured under usage guidelines.

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 coverage is 100%, and the single 'ticker' parameter is already documented as a 4-letter IDX stock code. The description adds context about what data the tool fetches but does not add new parameter-level meaning beyond the schema, so the baseline score of 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?

The description names a specific verb ('Fetch') and a concrete resource: broker summary, institutional accumulation/distribution status, and big player flows. It also specifies the data source (Stockbit API), which clearly distinguishes this tool from siblings like idx_get_orderbook or idx_get_keystats.

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 description implies when to use the tool, since it enumerates the exact kinds of data returned. However, it offers no explicit alternatives, exclusions, or guidance on when not to use it relative to neighboring tools such as idx_get_insider_activity or idx_stockbit.

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

idx_get_dividendsIdx Get DividendsA

Fetch official corporate action dividend calendar and payment history from Stockbit.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes4-letter IDX stock code (e.g. 'SMSM', 'MYOR', 'BBCA').

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the source and resource, with no mention of limitations, data freshness, coverage scope, or other behavioral traits. The read-only nature is implied but not explicitly communicated.

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 a single front-loaded sentence that states the action, resource, and source with zero filler. It is concise without sacrificing clarity.

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 with an output schema, the description gives sufficient orientation: what is fetched, from where, and what domain it covers. It lacks optional detail like history depth or update frequency, but these are not necessary for correct invocation.

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 input schema already provides 100% coverage for the single 'ticker' parameter, including format guidance and examples. The description does not add parameter-level semantics, but it does not need to because the schema handles it.

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 ('Fetch') and names the exact resource: official corporate action dividend calendar and payment history. This clearly distinguishes it from sibling tools like idx_get_market_quote or idx_get_keystats.

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 description implies this tool is for dividend-related data requests, which is a clear context, but it does not explicitly state when to prefer this tool over alternatives or when not to use it. No exclusion criteria or sibling comparisons are provided.

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

idx_get_insider_activityIdx Get Insider ActivityA

Fetch official insider disclosures (major shareholders, directors, commissioners trading) from Stockbit.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of disclosures to retrieve (default: 10).
tickerYes4-letter IDX stock code (e.g. 'MYOR', 'SMSM', 'BBCA').

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description must carry the behavioral disclosure burden. It indicates a read operation ('Fetch') but does not mention any side effects, authentication requirements, rate limits, or error handling. It also does not clarify whether the tool returns raw data or processed summaries. The description is not misleading but is minimal in 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 a single, well-structured sentence that leads with the action and clearly states the resource and source. It is concise with no redundant words or filler. Every part of the sentence contributes to understanding the tool's purpose.

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 tool with two parameters and an existing output schema, the description is largely complete. It covers what the tool does and where the data comes from. However, it does not mention any limitations (e.g., only IDX-listed stocks) or clarify the meaning of 'official' disclosures, which could be useful context. The output schema likely covers return values, so this is a minor gap.

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 input schema already provides 100% coverage with descriptions for both parameters (ticker and limit). The description adds no additional meaning beyond the schema, such as format constraints or edge-case behavior. Since the schema is thorough, a 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 action ('Fetch'), the resource ('official insider disclosures'), and specifies the types of insiders (major shareholders, directors, commissioners trading). It also names the data source ('from Stockbit'), which distinguishes it from other IDX tools like idx_get_market_quote or idx_get_dividends. The purpose is unambiguous and specific.

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 description implies when to use this toolβ€”when insider activity information is neededβ€”but provides no explicit guidance on when not to use it or how it compares to alternatives. For example, it does not mention that this tool is specifically for official disclosures rather than general trading data. The context is clear but lacks exclusions or alternative routing.

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

idx_get_keystatsIdx Get KeystatsA

Fetch official audited financial ratios, balance sheet, valuation, and Piotroski F-score from Stockbit.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes4-letter IDX stock code (e.g. 'MYOR', 'SMSM', 'BBCA').

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. 'Fetch' clearly signals a read-only operation and 'official audited' adds a credibility cue, but there is no mention of data freshness, coverage limitations, or error behavior. These gaps are not covered elsewhere.

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 a single focused sentence that front-loads the action and resource, lists the key data categories, and names the source. There is no redundancy or filler.

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 single-parameter fetch tool with a fully documented input schema and an output schema, the description covers the essential context: what data is returned and from where. Minor omissions such as reporting frequency or units are unlikely to prevent correct invocation.

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 provides 100% parameter coverage, including the ticker format and concrete examples like 'MYOR' and 'BBCA'. The description adds no additional parameter-level semantics beyond naming Stockbit as the source, so the baseline 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 uses a specific verb ('Fetch') and a clearly enumerated resource: official audited financial ratios, balance sheet, valuation, and Piotroski F-score from Stockbit. This distinguishes it from sibling tools like idx_get_market_quote (quotes) and idx_get_dividends (dividends), making its scope unambiguous.

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 description implies usage for fundamental/valuation lookups by naming the exact data categories, but it does not explicitly state when to use this tool instead of siblings or mention any exclusion conditions. There is no reference to alternatives such as idx_sanitize_financials or idx_stockbit.

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

idx_get_market_quoteIdx Get Market QuoteA

Fetch live market quote, price, volume, and intraday range for an Indonesian stock (.JK).

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes4-letter IDX stock code without suffix (e.g. 'SMSM', 'BBCA', 'MYOR').

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It clearly indicates a read-only fetch operation and highlights the 'live' nature of the data. It does not mention caveats like market hours or delays, but for a simple getter this is adequate given an output schema is present.

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 a single efficient sentence with no filler. It front-loads the core action and resource, then lists the exact data fields returned, making it easy to scan and parse.

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 tool is low-complexity with one required parameter, full schema coverage, and an output schema available. The description and schema together provide enough for correct invocation; only explicit differentiation from sibling quote-related tools is missing, hence not a perfect 5.

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 single parameter is already fully documented with format and examples. The tool description adds only the '.JK' market context, which is useful but not necessary for understanding the ticker parameter itself.

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 ('Fetch') with a clear resource: live market quote data including price, volume, and intraday range for Indonesian stocks. This distinguishes it from sibling tools like orderbook, keystats, or dividends without needing to open their schemas.

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 intended context is clear: use this tool when you need a live market quote with price, volume, and intraday range. It does not explicitly name alternatives or exclusions, but the resource scope is specific enough that an agent can route requests correctly.

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

idx_get_orderbookIdx Get OrderbookA

Fetch live 10-level Level 2 Orderbook depth, bid/ask queues, and order imbalance from Stockbit API.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes4-letter IDX stock code (e.g. 'MYOR', 'SMSM', 'BBCA').

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden. It communicates a read-only fetch, live/time-sensitive scope, exact depth level (10-level), and the data source. It omits auth, rate limits, and error behavior, but these are not critical for a simple read-only data retrieval tool.

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 a single focused sentence that front-loads the action and key details with no filler or redundant content.

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 tool has one well-documented parameter and an output schema, so return-value details are not needed. The description states source and scope sufficiently for correct invocation, though it lacks usage limitations or when-not-to-use context.

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% and the only parameter, ticker, is fully documented with format and examples. The tool description itself adds no parameter-specific meaning, so the baseline of 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?

The description uses a specific verb ('Fetch') and names a precise resource: live 10-level Level 2 orderbook depth, bid/ask queues, and order imbalance from Stockbit API. This clearly distinguishes the tool from siblings like idx_get_market_quote or idx_analyze_chart_pattern.

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?

The description provides no guidance on when to use this tool versus alternatives, no exclusions, and no conditions. The agent must infer use solely from the resource name and sibling list.

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

idx_sanitize_financialsIdx Sanitize FinancialsA

Sanitize financial metrics against USD denomination mismatches, thin-equity ROE distortions, and solvency traps.

ParametersJSON Schema
NameRequiredDescriptionDefault
derYesReported Debt-to-Equity ratio.
pbvYesReported Price-to-Book Value ratio.
tickerYes4-letter IDX ticker code.
is_bankNoWhether the company is a banking institution.
roe_pctYesReported Return on Equity in percent (e.g. 28.8 for 28.8%).
usd_idr_rateNoCurrent USD/IDR exchange rate (default: 16,000).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full transparency burden. It discloses what categories of problems the tool addresses and implies it adjusts or flags metrics, but it does not say whether it returns corrected values, emits warnings, or only detects issues. This is reasonably informative 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one tight, front-loaded sentence with no filler. Every phrase contributes meaning, and the three target risk categories make the tool's purpose memorable without unnecessary elaboration.

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 output schema exists and all parameters are fully documented, the description is mostly sufficient for an agent to decide when to call this tool and what inputs to supply. The only gap is a clearer statement of what the sanitization output looks like, but that is less critical because the output schema is present.

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 input schema already describes all 6 parameters with 100% coverage, so the baseline is 3. The description adds high-level conceptual mapping (e.g., thin-equity ROE relates to roe_pct/der, USD mismatch relates to usd_idr_rate/pbv), but it does not provide any additional parameter-level detail beyond what the schema already gives.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('sanitize') and a clear resource ('financial metrics'), and it names three concrete correction targets: USD denomination mismatches, thin-equity ROE distortions, and solvency traps. This distinguishes it from sibling tools like quote, chart, and orderbook, though it does not explicitly contrast itself with an alternative 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?

The description implies when the tool is relevantβ€”when financial metrics may be distorted by currency mismatches, thin equity, or solvency issuesβ€”but it never states an explicit 'use when' condition or mentions any alternatives/exclusions. The context is inferable rather than directly specified.

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

idx_stockbitIdx StockbitB

Unified single-entry gateway for all Stockbit intelligence endpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesOne of 'orderbook', 'bandarmology', 'keystats', 'dividends', 'insider'.
tickerYes4-letter IDX stock code (e.g. 'MYOR', 'SMSM', 'BBCA').

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden, but it only says 'gateway' and 'unified,' which is architectural positioning rather than behavioral detail. It does not disclose dispatch semantics, side effects, response behavior, or error handling.

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 a single sentence and front-loads its core role as a 'single-entry gateway.' It is not bloated, though 'unified' and 'single-entry' are somewhat redundant.

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?

With ten siblings, five of which mirror the action enum exactly, the description leaves the relationship between idx_stockbit and those endpoint-specific tools ambiguous. The output schema mitigates the need to explain return values, but usage context and behavioral expectations are still missing, making the definition incomplete.

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%; the action parameter enumerates its allowed values and ticker includes examples, so the schema already carries the semantic load. The description adds no additional meaning beyond what the input schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as a 'single-entry gateway' to 'all Stockbit intelligence endpoints,' which communicates that it is a dispatcher rather than an endpoint-specific operation. This is clear and distinguishes it from sibling tools, though it lacks a concrete action verb and does not enumerate the covered endpoints.

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 phrase 'single-entry gateway for all...' implies this is the umbrella tool to use for Stockbit intelligence, but it never explicitly says when to prefer it over the individual sibling endpoints such as idx_get_orderbook or idx_get_keystats. There is no when-not or alternative guidance, so the usage context is only implied.

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.

  1. 11 tool updatesv1.0.0
    • First observedidx_analyze_chart_pattern
    • First observedidx_calc_tranche_orders
    • First observedidx_check_sector_concentration
    • First observedidx_get_bandarmology
    • First observedidx_get_dividends
    • First observedidx_get_insider_activity
    • First observedidx_get_keystats
    • First observedidx_get_market_quote
    • First observedidx_get_orderbook
    • First observedidx_sanitize_financials
    • First observedidx_stockbit

TDQS

A3.5/5.0

Scored across 11 tools

Disambiguation2/5

Most tools target distinct resources, but idx_stockbit is a unified gateway for 'all Stockbit intelligence endpoints,' making it unclear when to call it versus the individual idx_get_orderbook, idx_get_keystats, idx_get_dividends, and idx_get_insider_activity tools. This overlap creates real selection ambiguity for agents.

Naming Consistency4/5

The naming pattern is largely consistent: idx_ + verb + noun, with clear get_, analyze_, sanitize_, check_, and calc_ prefixes. The main deviation is idx_stockbit, which uses a noun-only name and breaks the verb_noun convention.

Tool Count4/5

11 tools is a reasonable size for an IDX market intelligence server and covers the core analysis workflow without being bloated. However, idx_stockbit makes the set slightly redundant since it duplicates the coverage of several getters, so a leaner set could have achieved the same scope.

Completeness4/5

The server covers a broad IDX workflow: market data, chart patterns, financials validation, sector concentration, order calculation, broker flows, dividends, and insider activity. Minor gaps exist around stock screening, company profiles, and news, but they don't create dead ends for the apparent purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides real-time Indonesian stock market (IDX) data including prices, technical indicators, fundamental analysis, and trading signals optimized for the Indonesian market through the Model Context Protocol.
    7
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    Enables access to Indonesian Stock Exchange (IDX) data with comprehensive historical data from 2019-2025 for 958 stocks, including real-time market overview, technical analysis, sector performance, and stock comparison capabilities.
    9
    38 npm
    42
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects AI assistants to real-time Indian stock market data with 34 tools for search, screening, analysis, portfolio tracking, and market insights across all NSE and BSE stocks.
    118 npm
    115
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to access Indonesian stock market data, including real-time quotes, historical data from 2019, and technical analysis for 958 IDX-listed stocks.
    9
    38 npm
    MIT