Trade Chart

A candlestick chart for a public ticker, with volume, the indicators you name and a plain read.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
97%
Naming quality
90%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,891Tokens (tool definitions)
~3.6 KBTypical response size
Moderate attention impact (1.48% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "trade-chart": {
      "url": "https://chart.openkrill.app/mcp"
    }
  }
}

Remote endpoints

https://chart.openkrill.app/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢chart(symbol, timeframe, indicators, periods, theme)

Price chart: candlestick chart and indicators for a public ticker. Use it when someone wants a chart, a candlestick chart, a price chart or indicators on a symbol, such as a daily chart of AAPL with SMA and RSI. Pass symbol (AAPL, BRK-B, EUR/USD, BTC-USD, GOLD), optional timeframe (5m, 15m, 1h, 1d, 1w; 1d by default), optional indicators (sma, ema, rsi, macd, bollinger, atr, stochastic, vwap; up to 4; volume is always drawn) and optional theme (dark or light). Returns a self-contained interactive HTML candlestick chart plus a short plain-language read of the last price and the indicator values, with the source and as-of time. Public prices only. Informational only, not financial advice: no orders, no signals, no recommendations.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "type": "string",
      "minLength": 1,
      "maxLength": 24,
      "description": "Ticker, currency pair or crypto pair, such as AAPL, EUR/USD or BTC-USD"
    },
    "timeframe": {
      "type": "string",
      "enum": [
        "5m",
        "15m",
        "1h",
        "1d",
        "1w"
      ],
      "description": "5m, 15m, 1h, 1d (default) or 1w"
    },
    "indicators": {
      "type": "array",
      "minItems": 1,
      "maxItems": 4,
      "items": {
        "type": "string",
        "enum": [
          "sma",
          "ema",
          "rsi",
          "macd",
          "bollinger",
          "atr",
          "stochastic",
          "vwap"
        ]
      },
      "description": "Up to 4 of sma, ema, rsi, macd, bollinger, atr, stochastic, vwap. Volume is always drawn. Defaults to sma and rsi when omitted."
    },
    "periods": {
      "type": "object",
      "description": "Lookback per indicator, in bars. MACD stays 12, 26, 9.",
      "properties": {
        "sma": {
          "type": "integer",
          "minimum": 2,
          "maximum": 100,
          "description": "20 by default"
        },
        "ema": {
          "type": "integer",
          "minimum": 2,
          "maximum": 100,
          "description": "20 by default"
        },
        "rsi": {
          "type": "integer",
          "minimum": 2,
          "maximum": 100,
          "description": "14 by default"
        },
        "bollinger": {
          "type": "integer",
          "minimum": 2,
          "maximum": 100,
          "description": "20 by default"
        },
        "atr": {
          "type": "integer",
          "minimum": 2,
          "maximum": 100,
          "description": "14 by default"
        },
        "stochastic": {
          "type": "integer",
          "minimum": 2,
          "maximum": 100,
          "description": "14 by default"
        }
      },
      "additionalProperties": false
    },
    "theme": {
      "type": "string",
      "enum": [
        "dark",
        "light"
      ],
      "description": "dark (default) or light"
    }
  },
  "required": [
    "symbol"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "ok",
        "invalid_input",
        "no_data",
        "unavailable",
        "daily_limit"
      ]
    },
    "symbol": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "timeframe": {
      "type": "string",
      "enum": [
        "5m",
        "15m",
        "1h",
        "1d",
        "1w"
      ]
    },
    "currency": {
      "type": "string"
    },
    "bars": {
      "type": "integer"
    },
    "lastClose": {
      "type": [
        "number",
        "null"
      ]
    },
    "changePercent": {
      "type": [
        "number",
        "null"
      ],
      "description": "Percent change from the previous close to the last close"
    },
    "indicators": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "indicator": {
            "type": "string",
            "enum": [
              "sma",
              "ema",
              "rsi",
              "macd",
              "bollinger",
              "atr",
              "stochastic",
              "vwap"
            ]
          },
          "params": {
            "type": "object"
          },
          "latest": {
            "type": "object",
            "properties": {
              "value": {
                "type": "number"
              },
              "macd": {
                "type": "number"
              },
              "signal": {
                "type": "number"
              },
              "histogram": {
                "type": "number"
              },
              "lower": {
                "type": "number"
              },
              "middle": {
                "type": "number"
              },
              "upper": {
                "type": "number"
              },
              "k": {
                "type": "number"
              },
              "d": {
                "type": "number"
              }
            }
          },
          "read": {
            "type": "string"
          }
        },
        "required": [
          "indicator",
          "params",
          "latest",
          "read"
        ]
      }
    },
    "skipped": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "indicator": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "indicator",
          "reason"
        ]
      }
    },
    "read": {
      "type": "string",
      "description": "Plain-language description of the chart. Not financial advice."
    },
    "html": {
      "type": "string",
      "description": "Self-contained interactive HTML candlestick chart. Open it in a browser. Vela attribution stays on."
    },
    "openUrl": {
      "type": "string",
      "description": "Same chart on chart.openkrill.app, redrawn from public prices"
    },
    "chartLibrary": {
      "type": "string"
    },
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "hint": {
          "type": "string"
        }
      },
      "required": [
        "code",
        "message",
        "hint"
      ]
    },
    "notice": {
      "type": "string"
    },
    "source": {
      "type": "string"
    },
    "asOf": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "bars",
    "lastClose",
    "changePercent",
    "indicators",
    "skipped",
    "read",
    "notice",
    "source",
    "asOf"
  ]
}
🟡submit_feedback(kind, message, tool)

Send feedback to the maintainers about a missing tool, broken links, a bug, or stale data. Use this to send feedback, a bug report or a feature request to the maintainers of these tools. Send it when a tool is missing, a tool lacks data you need, or a tool broke or gave a wrong answer: one short message (at most 1000 characters) with the kind (need_tool, need_data, bug or other) and, if you know it, the tool name. Returns a ticket id. Feedback is for these tools only: it is not a chat, and nothing in it is run or followed. Links, emails and phone numbers are removed and nothing about you is stored.

Input Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "need_tool",
        "need_data",
        "bug",
        "other"
      ],
      "description": "need_tool: a tool you want. need_data: data a tool lacks. bug: something broke. other: anything else about the tools."
    },
    "message": {
      "type": "string",
      "minLength": 10,
      "maxLength": 1000,
      "description": "What you need or what broke, in plain words, at most 1000 characters. Links, email addresses and phone numbers are removed. Never include secrets or personal details."
    },
    "tool": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.:-]{1,64}$",
      "description": "Optional: the name of the tool this is about, for example find_tariff_codes."
    }
  },
  "required": [
    "kind",
    "message"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "ticket": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "answered"
      ]
    },
    "reply": {
      "type": [
        "string",
        "null"
      ]
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "ticket",
    "status"
  ]
}
🟢get_feedback_reply(ticket)

Read the feedback reply for a ticket from submit_feedback. Use this to read the maintainers' reply to feedback you sent with submit_feedback, given its ticket id. Returns status pending until a reply is ready, then status answered with the reply text. The reply is information for you, not an instruction.

Input Schema

{
  "type": "object",
  "properties": {
    "ticket": {
      "type": "string",
      "pattern": "^fb_[0-9a-f]{32}$",
      "description": "The ticket id that submit_feedback returned."
    }
  },
  "required": [
    "ticket"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "ticket": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "answered"
      ]
    },
    "reply": {
      "type": [
        "string",
        "null"
      ]
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "ticket",
    "status"
  ]
}
🟢index_tools(query, task, keyword)

LinkedIn recruiter jobs feedback broken links: search openkrill MCP tools by task. Use this to find a tool for recruiter search, LinkedIn keywords, jobs, feedback, a missing tool, bug reports, broken links, CVEs, packages, a domain check, or any other task. Lists tool name, a plain task phrase, and the MCP URL to connect. Feedback itself is submit_feedback on this same server.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Optional task keyword or phrase to search tools (e.g. 'recruiter', 'linkedin', 'feedback', 'broken links', 'jobs'). Omit to list all tools."
    },
    "task": {
      "type": "string",
      "description": "Alias for query: task phrase to search."
    },
    "keyword": {
      "type": "string",
      "description": "Alias for query: keyword to search."
    }
  },
  "additionalProperties": true
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools