Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
LuxAlgo for AI agents: the Library, prop firms, Market Trackers, Edge Stats, and your Trade Journal
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:
https://mcp.luxalgo.com/mcpClaude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"luxalgo": {
"command": "npx",
"args": [
"-y",
"@luxalgo/mcp"
]
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add --transport http luxalgo https://mcp.luxalgo.com/mcpclaude mcp add luxalgo -- npx -y @luxalgo/mcp프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"luxalgo": {
"url": "https://mcp.luxalgo.com/mcp"
}
}
}프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"luxalgo": {
"command": "npx",
"args": [
"-y",
"@luxalgo/mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"luxalgo": {
"type": "http",
"url": "https://mcp.luxalgo.com/mcp"
}
}
}프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"luxalgo": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@luxalgo/mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:
https://mcp.luxalgo.com/mcp메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
도구 이름과 설명은 서버가 2026년 11월 7일에 알려 준 그대로예요. 우리가 아니라 제작자가 쓴 글이고, 일반 텍스트로만 보여 드려요.
library_searchSearch the LuxAlgo Library — the encyclopedia of trading and technical analysis. One query over 800+ concepts (alias-aware: 'stochastics' finds Stochastic Oscillator) and 800+ ready-to-use indicators. Start here whenever you have a name, informal term, or topic; results carry slu
library_get_conceptExplain a trading concept: the Library's full write-up as markdown — definition, formula, how traders read it, and its indicator implementations. Use for any 'what is X / how does X work' question. Needs the exact slug — find it with library_search or library_list_concepts. `indi
library_get_indicatorDetails for one indicator: what it does, how to read it, family, concept links, preview image — plus whether its source code is available (fetch the code itself with library_get_source_code). Use when the user asks about a specific indicator. `chart_url`, present when the indicat
library_get_source_codeThe Pine Script® source code of a Library indicator. Kept separate from library_get_indicator because sources are long — call it only when the user wants the code itself. For some indicators the app returns only the start of the source to a signed-out user (`complete: false`, wit
library_list_conceptsBrowse every trading and technical-analysis concept in the Library — paginated, optionally one family. Use to enumerate a topic area or find slugs for library_get_concept and the concept filter of library_list_indicators; for keyword lookup prefer library_search.
library_list_indicatorsBrowse the indicator catalog with filters and server-side sorting (newest first by default). The Library is organized by family and concept: filter by family (keys from library_list_families) or by concept slug (that concept's implementations; slugs from library_list_concepts or
library_list_familiesThe Library's top-level taxonomy: 17 families of trading concepts (trend, momentum, SMC/ICT, statistics, …) with concept counts and hub links. The natural first call for orientation.
library_get_familyA family's hub page as markdown — the written overview of that school of analysis plus its complete concept roster. Use after library_list_families, or when the user asks about a whole area like 'SMC' or 'Wyckoff'.
propfirms_searchSearch LuxAlgo's prop-firm catalog (proprietary trading firms offering funded accounts). Combine firm filters (platforms, markets, payment/payout methods, country availability, Trustpilot, year founded) with nested challenge filters (account size, price, steps, profit split, trad
propfirms_getOne prop firm's full dossier by slug: general profile (platforms, markets, payments, Trustpilot, restricted countries), every challenge with its rules, live offers with promo codes and affiliate links, and the written overview (about, rules, payout policy, FAQ). Find slugs with p
propfirms_search_challengesSearch funded-account challenges across all visible prop firms. Filter by challenge rules (account size, fee, steps, profit split, drawdown mode, news/copy/auto trading, weekend holding, …) and by parent-firm properties. Pass propfirmId to list one firm's challenges, or challenge
propfirms_search_offersSearch promotional offers (discounts and promo codes) across prop firms — defaults to live (active, unexpired) offers only. propfirmId narrows to one firm; challengeId resolves the offers that apply to a challenge (firm-wide offers included). Every offer carries the promo code, d
propfirms_list_simulatableList the prop firms in the live LuxAlgo directory together with every simulatable challenge (challengeId, display name, account size, currency, price, and its rule-semantics provenance). Call this first to discover the firmId + challengeId pairs accepted by propfirms_challenge_ru
propfirms_challenge_rulesFetch one directory challenge's complete ruleset (ChallengeSpec), adapted from the live LuxAlgo directory: evaluation steps (profit targets in percent units of the initial account, minimum trading days, time limits); the daily-loss rule with its exact semantics (basis = measured
propfirms_simulateMonte Carlo-simulate a trader with the given statistics through a prop-firm challenge and (by default) a funded horizon. Answers: "What is my chance of passing per attempt, and of ever getting funded? How many attempts and how much total money should I expect? Is this challenge p
propfirms_optimal_riskSweep risk-per-trade over a grid, run the full journey simulation at every point, and report two optima separately: bestByPassProbability (the risk that maximizes a single attempt's chance of passing) and bestByEv (the risk that maximizes expected value across attempts, fees and
propfirms_compareSimulate the SAME trader across several challenges (directory references and/or inline specs, up to 12) under identical options and seed, and return one row per challenge sorted by expected value. THIS IS NOT A RANKING: rows are ordered by EV for the caller's specific inputs - tr
propfirms_simulate_tradesSimulate a challenge by resampling the trader's OWN R-multiple trade series with a stationary block bootstrap instead of a win-rate model. Why resampling matters: challenge rules are breached by streaks, not by averages - a daily-loss limit dies to a cluster of losses inside one
propfirms_pass_ratesReference challenge pass rates computed live from the directory's encoded rules with the same engine, seed (42), path count (10,000) and reference archetypes luxalgo.com/prop-firms uses — per challenge and per archetype (developing 45% win rate / consistent 48% / proven edge 52%,
propfirms_validate_strategyAnswer 'which challenges would MY strategy actually pass?' in one call: simulate the given strategy through every simulatable challenge in the live directory (optionally scoped by productType, account-size range, priceMax, or firm) and split the results by an explicit, caller-sta
trackers_datasetsThe Market Trackers catalog: every dataset of US public-record market data the LuxAlgo pipeline publishes as CC0 dumps — congressional trades, insider (Forms 3/4/5) transactions, 13F holdings, federal contracts and grants, lobbying filings, FINRA short-sale volume, granted patent
trackers_querySearch one Market Trackers dataset by ticker, free text, exact field values, and event-date range, with paging and newest/oldest ordering. Data is read from year-sharded CC0 dumps: pass years (or since/until) to choose which years to read — default is the newest year with data. D
trackers_latestWhat the last daily publish added to one dataset — the newest ingestion day's rows (the dumps' latest.json), optionally narrowed by ticker or text. The cheapest way to see what is new: today's insider filings, this week's congressional disclosures, the latest lobbying registratio
trackers_tickerOne ticker across every ticker-bearing Market Trackers dataset for one year (default: the current year): insider transactions, congressional trades, 13F holdings, federal contracts and grants, lobbying filings by the company, short-sale volume, clinical trials, FDA events, patent
edge_symbolsWhat the hosted Edge Stats store covers: the symbols, their session calendars, coverage windows, session counts, and when the nightly build last ran. Session statistics (how often a setup actually worked, with sample sizes and confidence intervals) come from the open-source edge-
edge_presetsThe catalog of session-statistics questions the hosted store precomputes nightly — gap fills, opening-range breakouts, day-of-week effects, event-day behavior, and more. Each preset states in plain language what its number means. Returns preset ids for edge_report.
edge_reportOne precomputed session-statistics result: P(outcome | conditions) for a preset on a hosted symbol, in the engine's full honesty envelope — the estimate with N and a Wilson 95% confidence interval, minimum-sample guards, a first-half vs second-half stability split, per-year count
luxalgo_accountThe signed-in user's LuxAlgo account: plan tier, entitlements (limits such as alerts, historical bars, AI credits) and profile basics. Use it to tailor answers to what the user's plan actually allows, or when the user asks what plan they are on. Requires signing in with a LuxAlgo
journal_list_accountsThe signed-in user's trade-journal accounts — id, name, broker, kind (`sync` mirrors a live broker connection, `import` came from statements, `manual` is hand-entered), currency, initial balance, P&L lot method, last broker sync, archived state — plus `timeZone`, the journal time
journal_overviewThe journal dashboard in one call for a window: performance metrics (net/gross P&L, fees, win rate, day win rate, profit factor, expectancy, average win/loss and their ratio, largest win/loss, streaks, max drawdown, recovery factor, profit concentration, average realized R), the
journal_calendarOne month of the P&L calendar: week rows of day cells (net and gross P&L, fees, trade/win/loss/breakeven counts, volume; null for days with no trades), each week's net P&L and trade count, and the month's net P&L, trade count, trading days and winning days. Days are in the journa
journal_breakdownWhere the P&L actually comes from: closed trades in the window grouped nine ways — weekday, time of day, hold time, symbol, side, position size, tag, rating and asset class — each group with trade count, wins, losses, net P&L, average net P&L and win rate (breakevens excluded). D
journal_list_tradesTrade summaries — `key`, account, symbol, asset class, direction, status (open/win/loss/breakeven), open and close times, quantity and open quantity, average entry/exit, gross and net P&L, fees, fill count, duration, realized R, tags, rating, reviewed flag, hasNotes — newest-open
journal_get_tradeOne trade in full: the summary fields plus its fills (each with the effective values, what the source reported, the user's corrections and whether it is hidden), per-exit gross P&L, hidden fills inside the trade's span, and every annotation — notes, tags, mistakes, playbook id, s
journal_get_dayA single trading day: its stats (null when nothing traded), its trades (closed that day, or opened that day and still open) as summaries, and the day's notes with their ids. `date` is a YYYY-MM-DD day key in the journal timezone. Use it for 'how did Tuesday go', and to find note
journal_list_tagsThe user's annotation vocabulary: every tag, mistake and playbook id they have put on any trade (open or closed), most-used first with the number of trades carrying each. Check it before journal_update_trade so new annotations reuse the user's own words instead of minting near-du
journal_search_notesSearch the notes feed — day notes and trades that carry notes — newest first as one stream split by kind: `notes` (day notes, with ids for journal_update_note) and `tradeNotes` (the trade summary with its note text; annotate via journal_update_trade). Filter by case-insensitive t
journal_add_tradeLog a trade by adding its fills to a `manual` or `import` journal account (never a broker-synced one — the sync owns those). The journal derives trades from fills: a long round trip is a buy fill then a sell fill, a short is sell then buy, scale-ins and partial exits are just mor
journal_update_tradeAnnotate a trade — the user-owned fields only: `notes` (free text about this trade), `tags`, `mistakes`, `playbookId`, `rating` 1–5, `stopLoss` and `profitTarget` (price levels; the stop is what realized R is measured against) and `reviewed`. `tags`/`mistakes` replace the whole l
journal_write_noteAdd a new note to a trading day — any day, traded or not; `date` is YYYY-MM-DD in the journal timezone. Days hold any number of notes, so this never overwrites: to change an existing note use journal_update_note, and for a note about one specific trade use journal_update_trade's
journal_update_noteReplace a day note's text and/or move it to another day, by note id (from journal_get_day or journal_search_notes). The body is replaced whole — to append, read the current text first and send the full new version. Trade notes are edited with journal_update_trade, not here. Retur
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 8일 점검
레지스트리 이름이 GitHub 계정 LuxAlgo 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
213ms 만에 응답(HTTP 200)
로그인 필요 없음
도구 설명 41개를 읽었고, AI에게 보내는 숨겨진 지시는 없었어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(2.1.0)은 13일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Tool Guardian
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Too many MCP servers eating your context? A router that loads each tool's schema only when needed.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Library · Brokers · Edge Stats · Market Trackers · Challenge Simulator · Prop Firms · Vela for Developers · npm · Endpoint
LuxAlgo MCP is a LuxAlgo open-source project. Overview and setup: luxalgo.com/mcp.
It puts the LuxAlgo ecosystem behind a single MCP server: an encyclopedia of trading and technical analysis, your LuxAlgo trade journal, read-only access to your own brokerage accounts, hosted session statistics with a sample size on every number, the public record of US markets (congressional trades, insider filings, lobbying, contracts, patents and more, with a primary-source link on every row), a Monte Carlo challenge simulator, and a live prop-firm directory. No API key for anything hosted: the public tools are free and read-only, the Trade Journal and account tools use your LuxAlgo sign-in, and the local broker tools use your own keys and never send them anywhere.
claude mcp add --transport http luxalgo https://mcp.luxalgo.com/mcp
| Area | What you get |
|---|---|
| [Library](https://www.luxalgo.com/library/) | The encyclopedia of trading and technical analysis: hundreds of concept pages with formulas, the full indicator catalog organized by family and concept, and Pine Script® sources where publicly served. |
| Trade Journal (sign-in) | Your own journal in the LuxAlgo app: the dashboard (metrics, Edge Score, equity curve), the P&L calendar, breakdowns by weekday / hold time / symbol / tag and more, every trade with its fills and annotations, day notes — and the writes that keep it alive: log fills by hand, annotate trades (tags, mistakes, rating, stop and target, review), write notes. Always as you, on your data; the app owns the rules. |
| Brokers (local only) | Read-only access to your own accounts across 22 brokers and exchanges via broker-sdk: balances, positions, trade history, FIFO performance stats. Keys live in your MCP client config as env vars and never leave your machine. The hosted endpoint does not carry these tools, on purpose. |
| Edge Stats | Hosted session statistics from the open-source edge-stats engine: how often a setup actually worked (gap fills, opening-range breakouts, day-of-week effects, event days) with the sample size and a Wilson 95% confidence interval on every number. A nightly build runs the real engine over free market data and publishes only derived statistics; these tools serve them verbatim. |
| [Market Trackers](https://github.com/LuxAlgo/market-trackers) | The public record of US markets from primary sources only: congressional trades, insider (Forms 3/4/5) transactions, 13F holdings, federal contracts and grants, lobbying filings, FINRA short-sale volume, granted patents, clinical trials, FDA drug events, CFTC positioning, federal bills, FEC campaign finance, hearing transcripts, Federal Reserve communications, committee assignments, Wikipedia pageviews. Read straight from the pipeline's CC0 dumps — live tree plus deep-history archives — with provenance.sourceUrl on every row. Data only: no signals, scores, or predictions. |
| Challenge Simulator | The open-source prop-firm-sim Monte Carlo engine, running locally inside the server. Your stats, or your real R-multiple trade series, through a firm's exact ruleset: pass probability with confidence intervals, expected attempts and cost, EV over the funded horizon, optimal-risk sweeps, cross-challenge comparison. Deterministic under seed, every assumption disclosed. |
| Prop Firm Directory | The live data the simulator draws from: firms, funded-account challenges with their full rulebooks (account sizes, fees, steps, profit splits, drawdown modes, trading restrictions), and current offers. |
| Charts (your browser) | Not a tool: the chart you draw with what the tools return. The open-source core of Vela by LuxAlgo runs the Pine Script® that library_get_source_code hands back and paints the fills that broker_trades lists, in a browser tab, on your machine. How the loop works. |
The hosted server is one URL:
https://mcp.luxalgo.com/mcp
Customize → Connectors → Add custom connector, URL `https://claude.mcp.luxalgo.com/mcp`, and under Authentication choose Required when the server asks. Claude connects anonymously, every keyless tool works right away, and the sign-in card only appears the first time you call an account tool. This Claude-only address exists because Claude.ai otherwise opens the OAuth window at connect time for any server whose OAuth metadata it can discover (claude-ai-mcp#1013); it serves the same tools with that metadata hidden until a sign-in is actually needed. Every other client uses https://mcp.luxalgo.com/mcp.
claude mcp add --transport http luxalgo https://mcp.luxalgo.com/mcp
Use the Install in Cursor button above, or add this to .cursor/mcp.json:
{
"mcpServers": { "luxalgo": { "url": "https://mcp.luxalgo.com/mcp" } } }
Point your client's MCP config at the hosted URL:
{
"mcpServers": { "luxalgo": { "url": "https://mcp.luxalgo.com/mcp" } } }
Where each client keeps its config
| Client | Where to add it |
|---|---|
| Cursor | .cursor/mcp.json, or the install button above |
| Claude Desktop | claude_desktop_config.json |
| VS Code | Install button above, or MCP settings |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| Zed | settings.json under context_servers |
| Warp | Settings → Agents → MCP servers |
| LM Studio | mcp.json |
| OpenCode | opencode.json |
| Gemini CLI | ~/.gemini/settings.json |
Runs every hosted tool locally, and unlocks the broker tools. Set read-only credential env vars for the brokers you use. Any subset works: a broker connects when all of its vars are set, and with no vars at all the broker tools simply stay unconfigured.
{
"mcpServers": { "luxalgo": { "command": "npx", "args": ["-y", "@luxalgo/mcp"], "env": { "BROKERS_ALPACA_API_KEY": "…", "BROKERS_ALPACA_API_SECRET": "…", "BROKERS_KRAKEN_API_KEY": "…", "BROKERS_KRAKEN_API_SECRET": "…", "BROKERS_HYPERLIQUID_WALLET_ADDRESS": "0x…" } } } }
Env var names derive from each broker's credential fields: BROKERS_ _ (for example BROKERS_OKX_PASSPHRASE, BROKERS_IBKR_FLEX_FLEX_TOKEN). The broker_setup tool lists every supported broker, its exact variables, and a one-line guide to creating each key with read-only scope, which is all this server ever needs.
Almost everything here is keyless and works without an account. The tools in the Account and Trade Journal sections below need to know who you are; they use your LuxAlgo account through standard OAuth 2.1, with app.luxalgo.com as the authorization server. Nothing is required up front: every client can connect, list tools and use the public ones anonymously, and sign-in is only requested when you first call an account tool.
Hosted (ChatGPT, Claude, Cursor, any remote connector). The server advertises its protected-resource metadata and answers an unauthenticated account-tool call with a 401 + WWW-Authenticate challenge; MCP clients handle the rest (discovery, PKCE, consent screen in your browser) and keep the token for you. Each tool also declares its policy in tools/list (securitySchemes: noauth for public tools, oauth2 for account tools), so ChatGPT's per-tool linking works as well. Clients may identify themselves via Client ID Metadata Documents or Dynamic Client Registration — the app accepts both. One client-side exception: Claude.ai/Desktop connectors sign in at connect time whenever OAuth metadata is discoverable, regardless of their *Authentication* setting, so they get their own address, https://claude.mcp.luxalgo.com/mcp, whose metadata is only reachable from the 401 (see Install).
Local (stdio). The server running on your machine is itself the OAuth client. Sign in once:
npx -y @luxalgo/mcp login # opens your browser; tokens are stored under your user config dir (0600)
npx -y @luxalgo/mcp status # who is signed in, token expiry npx -y @luxalgo/mcp logout
Tokens live in ~/.config/luxalgo/mcp-auth.json (%APPDATA%\luxalgo\mcp-auth.json on Windows, or LUXALGO_MCP_AUTH_FILE), are refreshed automatically, and are only ever sent to the LuxAlgo app. If your MCP client supports URL-mode elicitation (MCP 2026-07-28), you can skip the command: the first account-tool call asks the client to open the sign-in page and continues once you approve. Otherwise the tool answers with the challenge and the login hint.
What the token is for. This server never decides what you are entitled to — its code is public, so any such check would be decorative. Instead, once you are signed in, every request a tool makes to the LuxAlgo app carries your token, and the app resolves your account and plan from it exactly as it does when you use the web app. Public tools work without it; with it, the app can tailor what they return. When the app declines — no valid sign-in (401) or a feature outside your plan (403) — the tool reports that, naming the permission involved.
| Tool | Description |
|---|---|
library_search | One search over concepts (alias-aware) and indicators |
library_get_concept | Full concept page as markdown |
library_get_indicator | Indicator detail: body, family, concepts, source code availability |
library_get_source_code | Source code, fetched only on demand: in full when publicly served, or the start of it (complete: false) for indicators the app previews to signed-out users; chart_url opens the indicator on a Vela chart |
| `library_list
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요