trading_skills: a Claude skill pack and MCP server for options traders
Claude powered advisor system for option traders
At a glance
- What is it?
- trading_skills wraps market data, Greeks, scanners and Interactive Brokers portfolio tools into 25 Claude skills and a 23-tool MCP server. It is a Python 3.13+ project for traders who already read an option chain and want the arithmetic done in a chat window.
- Who is it for?
- Adopt it if you sell premium or run PMCCs, already use Claude Code or Claude Desktop, and can read a delta column without help: the skill set covers quotes, chains, Greeks, spread analysis, risk metrics and IB portfolio reads, and the MCP path needs only pip install trading-skills plus a config entry.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The tab problem trading_skills tries to close
The README opens with a specific complaint: retail traders keep a broker, a charting platform, a screener, a news feed and a spreadsheet open at once just to decide whether to enter a trade. trading_skills replaces that set with a chat prompt. You ask in plain English and the answer comes back as numbers: technicals, fundamentals, option Greeks, risk metrics, earnings dates, correlation matrices and generated PDF reports.
The stated audience is narrow and worth repeating, because it decides whether the project is useful to you. It is for retail options traders who sell premium, run poor man's covered calls or manage covered calls; for self-directed investors who want a fundamental and technical scan without changing tools; for Python-literate traders who intend to extend the analysis; and for Interactive Brokers users who want AI-assisted portfolio management. Nothing in the README suggests it is aimed at discretionary day traders working off order flow, or at anyone who wants the tool to make the decision.
The framing matters. This is an analysis surface, not a strategy engine. The README describes what it retrieves and computes, and the example sessions show Claude running several skills in sequence and reporting the output. The judgement stays with the person typing the question.
How the skills and the MCP server actually fit together
The repository holds two delivery paths over what looks like one body of analysis code. The top level contains src/, mcp_server/, .claude/, examples/, sandbox/ and tests/. The pyproject.toml declares two wheel packages, src/trading_skills and mcp_server, and a single console script, trading-skills-mcp, pointing at mcp_server.server:main. That layout says the skills and the MCP server share the same underlying modules rather than duplicating logic.
The first path is Claude Code or Cursor run from the repository root, where the README says all skills are available as interactive commands. The second is the MCP server, described as a lightweight alternative for Claude Desktop that exposes 23 trading analysis tools without needing Claude Code. The count differs from the 25 skills listed in the README, so the two surfaces are not one-to-one; the README does not publish a mapping between the 23 tools and the 25 skills.
The skills are grouped in the README into Market Data (stock-quote, option-chain, price-history, fundamentals, news-sentiment, earnings-calendar, insider-trading), Analysis (technical-analysis, greeks, spread-analysis, risk-assessment), Scanners (scanner-bullish, scanner-pmcc, whale-hunting) and Portfolio (the ib-* family, which requires TWS or IB Gateway). Two dependencies stand out as constraints rather than conveniences. whale-hunting requires a Massive API key, and the portfolio skills require a live broker connection. Everything else, per the dependency list, leans on yfinance for market data.
The composition model is the interesting part. The README's worked example runs scanner-bullish across five symbols, filters the top scores, then runs scanner-pmcc on the survivors, and Claude reports NVDA at a bullish score of 8/10 and a PMCC score of 9.2/11 with a LEAPS call at delta 0.82 and a short call at delta 0.18. That chaining is the product. No single skill produces that answer; the model sequences them and carries the intermediate result forward.
Installing trading_skills with uv and running a first scan
The README lists Python 3.12+ as a requirement, but pyproject.toml sets requires-python to >=3.13. Treat 3.13 as the real floor and check your interpreter before starting, because the mismatch will surface as a resolver error rather than a clear message.
The full-experience path clones the repository and syncs dependencies with uv. Run Claude Code or Cursor from the repository root afterwards, which is what makes the skills visible as commands.
git clone https://github.com/staskh/trading_skills.git
cd trading_skills
uv syncThe MCP path is meant for Claude Desktop, including the free tier. Install the package from PyPI, then locate the installed command so you can put its absolute path in the config.
pip install trading-skills
which trading-skills-mcpOn Windows the README uses where instead of which, and offers a fallback when that fails: python -c "import sysconfig; print(sysconfig.get_path('scripts'))", with the executable named trading-skills-mcp.exe in the printed directory.
With the path in hand, open Claude Desktop, go to Settings, then Developer, then Edit Config, and add an entry to claude_desktop_config.json. The macOS and Linux form is:
{
"mcpServers": {
"trading-skills": {
"command": "/full/path/to/trading-skills-mcp"
}
}
}On Windows the command value is the .exe path with doubled backslashes. Restart Claude Desktop afterwards. The README explicitly tells you not to worry if an MCP error appears at this point, saying it disappears once you try the examples. That is a rough edge: the failure mode on a bad path and the failure mode on a healthy-but-idle server look the same to a new user.
There is also a from-GitHub variant that skips the pip install, using uvx with --from git+https://github.com/staskh/trading_skills.git and the trading-skills-mcp entry point. On Windows that variant wraps the same arguments in cmd /c.
For a first real use, the README's own example queries are the safest start because they exercise a single skill each. "Run technical analysis on SPY with RSI/MACD" hits technical-analysis. "When is NVDA's next earnings?" hits earnings-calendar. "Show correlation between SPY,NVDA,GOOG,XOM" hits the correlation matrix inside technical-analysis. Pick one, confirm the shape of the output, then try the chained scanner-bullish to scanner-pmcc flow, which is where the project earns its keep.
Where trading_skills stops: data sources, no execution, and the IB dependency
The portfolio features need TWS or IB Gateway running, and the README splits the ib-* skills by access level. The read-only group fetches positions, prices and Greeks and places no orders, and the README names ib-account, ib-portfolio, ib-option-chain, ib-find-short-roll and a truncated ib-co entry in that group. So the headline capability, finding roll candidates for expiring shorts, depends on a desktop broker session being up and authenticated. If you trade from a phone or a web platform, that half of the project is unavailable to you.
Market data quality is the second boundary. The dependency list is yfinance, with Massive added for whale-hunting. yfinance is a convenient wrapper, not a licensed real-time feed, and the README does not make claims about latency or data licensing. If your decisions depend on depth-of-book or on an OPRA-grade quote, the numbers here are not that. The project also does not appear to place orders anywhere: no skill in the listed set is an execution skill, and the README's portfolio description is retrieval and reporting.
The test configuration acknowledges the data problem directly. pyproject.toml comments that many tests query live market-data APIs which intermittently rate-limit or time out, and sets addopts to "-m 'not manual' --reruns 2 --reruns-delay 2" so transient failures are retried. That is a reasonable choice for a live-data project, and it is also a signal: a suite that needs two retries is not hermetic, and a deterministic failure will still fail every attempt.
The wrong-tool cases follow from that. If you want backtested strategy performance, position sizing rules or an automated execution loop, none of it is in the README. If you cannot read a delta or a yield figure critically, a fluent chat answer is a liability rather than an aid.
trading_skills versus a scripting stack you build yourself
The obvious alternative is not another chat product but the direct route: yfinance plus pandas-ta plus a Black-Scholes implementation of your own, called from a notebook. The dependency list here shows that is essentially what is underneath, since yfinance, pandas, pandas-ta and scipy are all declared. The difference is the interface and the packaging. A personal notebook gives you exact control over every assumption and no conversational layer to misread your question. trading_skills gives you a fixed set of named skills with defined outputs, and a model that can chain them, at the cost of trusting the skill's internal choices.
A second alternative is a dedicated options analytics platform with a licensed data feed. The difference is the axis of the trade: those platforms give you better quotes and a GUI built for chain navigation, while trading_skills gives you a scriptable, MIT-licensed surface you can edit, plus a natural-language entry point. If your bottleneck is data fidelity, the platform wins. If your bottleneck is the number of tabs and the manual arithmetic between them, this project addresses exactly that.
The honest comparison is that trading_skills is a convenience layer over libraries you could wire up yourself in an afternoon, and its value is in the 25 named skills, the MCP packaging, and the IB portfolio reads. If you would never write the notebook, the packaging is the whole product. If you would, read src/ first and decide whether the skill definitions match your own conventions.
Licence, upgrade cost and what a version bump means for you
The repository is MIT licensed, which permits commercial use, modification and redistribution provided the copyright notice and permission notice are kept. That is the whole of the licence implication here; nothing in the repository suggests a dual licence, a contributor agreement or a paid tier, and this is not legal advice.
The maintenance picture is concrete. The last push was on 2026-09-13, and the most recent release is v0.18.1 on 2026-09-12, preceded by v0.16.0 on 2026-07-16 and v0.13.1 on 2026-06-24. The version in pyproject.toml is 0.18.6, which is ahead of the newest published tag, so the file on main is not the same as the latest release artifact. If you install from PyPI you get the tagged build; if you clone main you get something newer and untagged. Know which one you are running before you report a bug.
Upgrade cost is dominated by the dependency set rather than by the project's own code. The pins are floors, not ceilings (yfinance>=0.2.50, pandas>=2.2, numpy>=2.0, scipy>=1.14, mcp>=2.0.0, and so on), so a fresh uv sync or pip install can pull newer majors of pandas, numpy or mcp than the author last ran. For an MCP server that speaks a protocol, an mcp major bump is the one to watch, since the client side is Claude Desktop rather than anything you control. The minor version numbers moving from 0.13 to 0.18 in under three months also suggest the skill surface is still shifting, so pin a version if you script against a specific skill's output format.
Editorial conclusion
Adopt it if you sell premium or run PMCCs, already use Claude Code or Claude Desktop, and can read a delta column without help: the skill set covers quotes, chains, Greeks, spread analysis, risk metrics and IB portfolio reads, and the MCP path needs only pip install trading-skills plus a config entry. Skip it if you want signals, backtests or an execution layer, because the README documents no order placement and the analysis is only as good as the yfinance and Massive data behind it. Before trusting a number, open one skill file under src/ and check which provider it calls for the specific metric you care about, then run that skill against a symbol whose real values you already know.
Frequently asked questions
What is trading_skills?
It is a Python project that packages market analysis into 25 Claude skills and a 23-tool MCP server, covering quotes, option chains, Greeks, spread analysis, risk metrics, scanners and Interactive Brokers portfolio reads. The README describes it as a single conversational interface that replaces the broker, charting, screener, news and spreadsheet tabs a retail trader normally juggles.
Can you give me an example of a trade skill in trading_skills?
The README's worked example runs scanner-bullish across AAPL, MSFT, NVDA, GOOGL and AMZN, filters the top scores, then runs scanner-pmcc on the survivors. It reports NVDA at a bullish score of 8/10 and a PMCC score of 9.2/11, with a LEAPS call at delta 0.82 and a short call at delta 0.18.
How do I improve my trading skills with trading_skills?
The project does not teach trading; it computes metrics on request. The practical way to use it is to start from the README's single-skill example queries such as "Run technical analysis on SPY with RSI/MACD" and "When is NVDA's next earnings?", then move to the chained scanner flow once you can read the output.
Is trading like gambling?
The README takes no position on that question and makes no claims about outcomes. It describes what the skills retrieve and compute, such as technicals, Greeks, risk metrics and earnings dates, and leaves the decision to the person typing the question.
Is trading a hard skill to learn?
The README does not address learning difficulty, and the project is not a teaching tool. It assumes you can already read an option chain and Greeks, since the example output quotes a LEAPS call at delta 0.82 and a short call at delta 0.18 without explaining either.
Community notes