feat: Add multi-asset screening tools (forex, crypto, ETF)#18
Conversation
Implement three new MCP tools for screening different asset classes: - screen_forex: Screen 1,759+ forex pairs with technical indicators - screen_crypto: Screen 9,247+ cryptocurrencies with market data - screen_etf: Screen ETFs/funds with automatic type filtering Features: - Dedicated screening methods for each asset class - Proper caching and rate limiting per tool - Asset-specific default columns and sorting - Comprehensive test coverage (69 tests passing) Updates: - Added tool definitions and handlers to MCP server - Updated README with tool documentation and examples - Added 2 new tests for ETF screening validation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Pull Request Review: Multi-Asset Screening ToolsThank you for this contribution! This PR adds valuable functionality by extending the screening capabilities to forex, crypto, and ETF assets. Overall, the implementation is solid and follows the existing patterns well. Below is my detailed review. ✅ StrengthsCode Quality
Test Coverage
Documentation
🔍 Issues & Suggestions1. Missing Limit Validation in
|
| Category | Status |
|---|---|
| Code Quality | ✅ Good |
| Best Practices | ✅ Followed |
| Security | ✅ No concerns |
| Performance | ✅ Optimized |
| Test Coverage | |
| Documentation | ✅ Comprehensive |
🎯 Recommendations Priority
Must Fix:
- Add limit validation to
screenForexandscreenCrypto
Should Fix:
2. Add explicit return types instead of any
3. Add tests for screenForex and screenCrypto
Nice to Have:
4. Document or validate empty filters behavior
5. Document why different default columns are used per asset class
🚀 Conclusion
This is a well-structured PR that extends the server's capabilities in a consistent manner. The main issue is the missing limit validation in two methods, which should be added before merging. Once the "Must Fix" items are addressed and additional tests are added, this will be ready to merge.
Great work on maintaining code consistency and following the existing patterns! 👍
GitHub Actions run fiale-plus#18 (commit e7bd6ef, ~2026-07-01) is the first failing run: research-ci.yml line 96 had an unquoted step name containing a colon-space, rejected as "Invalid workflow file". CI enforcement gap: e7bd6ef -> this fix; gates were enforced by documented local runs during the gap. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Line 96's `name:` was an unquoted YAML plain scalar containing ": " (colon- space) in "(historical event generation: schema/cadence/first-stamp)". YAML reads ": " as a key/value separator, so the parser rejected the whole file as "Invalid workflow file" (ScannerError: mapping values are not allowed here, line 96 col 71) -- no jobs ran. Quoting the name value fixes the parse; text unchanged. Introduced at 7908f7b; first failing run fiale-plus#18 (e7bd6ef). See decisions.md D-2026-07-02-04. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Implement three new MCP tools for screening different asset classes:
Features:
Updates:
🤖 Generated with Claude Code