Daepak Market Intelligence

io.github.Mobiss11Published by GitHub account Mobiss11v2.1.1Updated Oct 25, 2026

Market analyst tools + AI agent: crypto, US equities, options, Korea, fundamentals, macro, backtests

VerifiedStreamable HTTPWeb executableFinanceData & Analytics

Overview

AI-generated overview

Daepak Market Intelligence gives an assistant market-analyst tools and an AI agent for crypto, US equities, Korean markets, options, macro and backtests.

What you can do
Crypto and token data: prices, candles, levels, indicators, scores, derivatives, order books, liquidations, fear and greed, plus arbitrary-token lookup and holders. US equities and Korea: quotes, history, levels, holders, movers, halts, kimchi premium, KRX screening and ETFs. Fundamentals and macro: OpenDART and SEC financials, comparisons, FRED snapshots and series. Options and validation: IV metrics, positioning, payoff and greeks, backtests, signal outcomes and hit rates. Research: news and narrative search, URL fetch and web search. Personal records: positions, portfolio, trade journal, catalysts and memory, with separate read and write scopes. An analyst agent answers questions, streams
When to use it
Use it when an assistant needs market data and analysis across crypto, US and Korean equities, options and macro, or should run the vendor's analyst agent and keep a trading journal. The free plan's monthly credits are enough to try it out.
Requirements
Either the remote endpoint with OAuth sign-in in a browser, or a local process run with uvx or pip from the PyPI package daepak-mcp. The local route requires the DAEPAK_API_KEY environment variable, obtained from the vendor's Keys page. Optional settings are DAEPAK_BASE_URL and DAEPAK_TIMEOUT. Network access is required.
Before you install
The API key is a secret sent as a bearer credential; keep it out of shared configs. Calls consume credits against a monthly plan, and per-minute and monthly limits apply. Write-scope tools change personal records such as the journal and portfolio. Market data can be stale, and the README warns that win rates and kimchi-premium readings are easy to misread.

Installation

In SourceWeft

  1. Open Daepak Market Intelligence in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.Mobiss11%2Fdaepak-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "daepak-market-intelligence": {
      "type": "http",
      "url": "https://daepak.com/mcp"
    }
  }
}

README

Daepak MCP

Market intelligence tools for any MCP-capable engine — Claude Code, Claude Desktop, or your own agent. Prices, indicators, levels, positioning, the Korean market, US equities, options, backtests, macro (FRED), SEC and OpenDART fundamentals, and your own trading journal. 108 tools, the same ones the product's own analyst uses.

The server describes nothing itself: it pulls the catalogue from GET /v1/tools, so it shows exactly what your key is allowed to call and never drifts from the product.

Quick start

No install — remote server (recommended)

The same tools are served at https://daepak.com/mcp (Streamable HTTP) with OAuth 2.1: you sign in once in the browser, no key to copy.

bash
claude mcp add --transport http daepak https://daepak.com/mcp

Then /mcp inside Claude Code → daepak → Authenticate. Works the same way as a custom connector in Claude.ai (paste the URL) and in ChatGPT developer mode. For Codex CLI:

toml
[mcp_servers.daepak]url = "https://daepak.com/mcp"

Prefer a key instead of OAuth (servers, CI)? Send it as a header:

bash
claude mcp add --transport http daepak https://daepak.com/mcp --header "Authorization: Bearer dpk_live_…"

Local (stdio)

bash
claude mcp add daepak -e DAEPAK_API_KEY=dpk_live_… -- uvx daepak-mcp

Or install it yourself:

bash
pip install daepak-mcp

Get a key on the Keys page of your profile at daepak.com. The free plan includes 2 000 credits a month — enough to build something over an evening.

Configuration

variabledefaultpurpose
DAEPAK_API_KEY—your key, dpk_live_…. Required.
DAEPAK_BASE_URLhttps://daepak.compoint at another environment
DAEPAK_TIMEOUT120seconds per call

Nothing else is read. In particular there is no setting that names a user: the account is derived from the key, and a request cannot claim to be someone else.

What you get

The catalogue is filtered by your key's scopes — you never see a tool you cannot call.

scopetoolswhat it opens
read:market88prices, candles, indicators, levels, scores, narratives, derivatives, order book, liquidations, options, US equities, Korean market, fundamentals (OpenDART, SEC), macro (FRED), backtests
read:personal9your positions, portfolio, trade journal, catalysts, memory, background tasks
write:personal11writing to those same records
agent:chat—full analyst answers, streamed or complete

Being allowed to read your journal does not allow writing to it. That is a separate scope.

Crypto — get_price, get_price_history, get_levels (support/resistance, Fibonacci, ATR — computed, not drawn), get_indicators, get_score, get_regime, get_derivatives, get_orderbook, get_liquidations, get_fear_greed

Korea — get_kimchi_premium (the Upbit-to-global spread, decomposed into the asset leg and the currency leg), Korean tickers, fresh Upbit listings

US equities — get_stock_quote, get_stock_history, get_stock_levels, get_stock_holders (institutions and insiders), get_us_gap_stats, get_us_movers, get_us_halts, get_us_insiders

Fundamentals from primary sources — get_kr_financials (K-IFRS for any KRX listing, OpenDART), get_us_financials (US-GAAP and IFRS by fiscal year from SEC EDGAR, up to 20 years), compare_financials (Korean and US companies in one schema, USD at the FRED rate), get_kr_insiders, screen_kr (the whole KRX with RS percentiles and foreign-ownership flow), get_kr_rs, list_kr_etfs, backtest_kr_portfolio (against KOSPI)

Macro — get_macro_snapshot (Fed funds, US 2Y/10Y and the curve, broad dollar, USD/KRW, VIX, CPI as YoY, unemployment, Korean overnight rate), get_macro_series (any FRED id with history). Every row carries stale_days; Korean CPI is absent on purpose — FRED's series died in 2023.

Options — get_iv_metrics, get_options_positioning, get_option_structure (payoff and greeks), get_options_backtest

Validation — get_backtest, get_signal_outcomes, get_hit_rate, get_score_history

Arbitrary tokens — resolve_token, get_token_market, get_token_onchain, get_token_holders, for anything outside the watchlist

Research — search_news (RAG over the collected corpus), search_narratives, fetch_url, web_search

The agent

The same analyst that answers in the product, over HTTP. It has everything the chat has:

POST /v1/agent/streamserver-sent events — text arrives as it is written
POST /v1/agent/messagesthe complete answer in one response
GET /v1/agent/resume/{id}reconnect to a generation already running
POST /v1/agent/cancel/{id}stop one
GET /v1/agent/conversationsyour conversations, and /{id} for the messages
bash
curl -N -X POST https://daepak.com/v1/agent/stream \     -H "Authorization: Bearer dpk_live_…" -H "Content-Type: application/json" \     -d '{"message": "How does BTC look right now?", "mode": "mentor"}'

Conversation memory. The first event carries conversation_id; pass it back and the context continues.

Images. images takes data-URLs, exactly like chat attachments — the agent reads charts and screenshots.

Mentor mode. mode: "mentor" explains how the reading was arrived at, not just the conclusion.

⚠️ A dropped connection loses nothing. Generation continues in the background, the answer still lands in the conversation, and resume replays what you missed. Keep the conversation_id from the first event — that is where you reconnect.

⚠️ suggest (follow-up questions) arrives after done. A client that stops reading at done will never see it. The order is deliberate: the spinner should stop before the suggestions are computed.

Credits

Every tool declares its price in the catalogue, so a sequence can be budgeted before it runs. Prices come from measuring the tools in production, not from guessing:

tierwhatcredits
our databaseprices, indicators, levels, candles, narratives1
external callequities, tokens, options, on-chain5
embedding, sandboxnews search, code execution20

A tool nobody has priced yet costs 5, not 1 — an unpriced tool is either an oversight or something heavy, and both are safer to over-charge than to give away.

bash
curl -H "Authorization: Bearer dpk_live_…" https://daepak.com/v1/usage

When the monthly credits run out you get 402 naming two ways forward: a higher plan or the renewal at the start of the month. There is no overage billing — we would rather refuse than send an invoice nobody expected.

Using the API directly

The MCP server is a thin shell over a plain REST API.

bash
# catalogue: schema, scope and price for every tool your key can callcurl -H "Authorization: Bearer dpk_live_…" https://daepak.com/v1/tools
# call onecurl -X POST https://daepak.com/v1/tools/get_price \     -H "Authorization: Bearer dpk_live_…" \     -H "Content-Type: application/json" \     -d '{"coin": "BTC"}'
json
{  "tool": "get_price",  "credits_used": 1,  "credits_left": 1999,  "took_ms": 104,  "data": { "coin": "BTC", "price": 78017.26, "change_24h": -1.2 }}

Full reference: daepak.com/reference · OpenAPI 3.1: /v1/openapi.json (106 operations, no key needed to read it).

Reading the answers honestly

A few things the data will tell you if you look, and which are easy to get wrong:

  • Compare against the baseline, not against zero. "68 % of directions guessed" means nothing until you know what a random entry at the same moment would have given.
  • Win rate is not money. On our own data 68 % correct directions produced a profit factor of 1.04.
  • Groups under 30 observations are flagged reliable=false. That is an absence of a conclusion, not a weak one.
  • The kimchi premium has two legs — a discount on the asset and a discount on the won. Read together they mislead. And they explain rather than predict: on horizons up to a day we found no relationship (646 episodes).
  • Every answer carries the age of its data. If it is stale, say so rather than passing yesterday off as now.

Troubleshooting

401 — the key is missing, revoked, or malformed. Send it as Authorization: Bearer dpk_live_….

403 scope_required — the key lacks the scope; the response names which one.

400 user_id_not_accepted — the body contained a user_id. The account comes from the key; the field is rejected explicitly rather than ignored, so that a copied example fails loudly instead of quietly returning nothing.

404 conversation_not_found — that conversation belongs to another account.

429 — over the per-minute ceiling for your plan. The minute limit protects the service; the monthly one protects your budget.

CERTIFICATE_VERIFY_FAILED — you are running from source without certifi. Install the package instead of the file; the dependency exists for exactly this.

Error messages default to English; send X-Lang: ko or ru for those languages.

Links

License

MIT

Source: README.md at commit c093174

Tools

0
SourceWeft has not read this server's tools yet.

Version history

1
  1. v2.1.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declaredRequired10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts