You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added comprehensive test suite (stdlib-only, runs in CI when EODHD_API_TOKEN
secret is present):
- tests/test_python_client.py — 30 e2e cases hitting every endpoint
in SUPPORTED_ENDPOINTS against live EODHD API. Each case validates
exit code, JSON response, and reports shape. Subscription-gated
endpoints classified as SKIP (not FAIL).
- tests/test_mcp_v1.py — full MCP protocol e2e: v2 OAuth challenge
(must return 401), v1 initialize handshake (captures session ID),
notifications/initialized, tools/list (verified 80 tools live),
tools/call (invokes get_exchanges_list).
- tests/test_skill_references.py — static cross-reference validation:
SKILL.md frontmatter, endpoint-doc links, eodhd_client.py example
endpoints, slash-command skill refs, agent frontmatter, plugin.json
capabilities.tools vs live MCP tool count.
Bugs surfaced and fixed:
- skills/eodhd-api/scripts/eodhd_client.py: --endpoint intraday now
converts YYYY-MM-DD --from-date/--to-date to Unix timestamps (API
rejects ISO date format for this endpoint with HTTP 422).
- skills/eodhd-api/scripts/market_cap_series.py: SharesOutstanding
lives at SharesStats::* not Highlights::*. Also handles scalar
return from "Field::Subfield" filter (was assuming dict).
- agents/financial-analyst.md: added YAML frontmatter (name +
description) — same class of bug as the SKILL.md fix in PR #5.
- .claude-plugin/plugin.json + README.md: capabilities.tools 75 → 80
to match actual MCP v1 tool count (verified via tools/list).
CI changes (.github/workflows/validate.yml):
- Static test (test_skill_references.py) runs on every push/PR.
- e2e tests run only if EODHD_API_TOKEN secret is configured.
- Forks / external PRs without secret access skip e2e (no false
negatives).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: .claude-plugin/marketplace.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@
6
6
},
7
7
"metadata": {
8
8
"description": "Developer-first financial data for Claude — 150k+ tickers, 70+ exchanges, MCP Server with OAuth, 7 curated workflow skills, Python client, 72 endpoint docs",
Copy file name to clipboardExpand all lines: .claude-plugin/plugin.json
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
{
2
2
"name": "eodhd-claude-skills",
3
-
"version": "0.4.1",
3
+
"version": "0.4.2",
4
4
"description": "Developer-first financial data for Claude — 150k+ tickers, 70+ exchanges, real-time & historical prices, fundamentals, options, technicals, news, sentiment, macro indicators, ESG, and more via EODHD API and MCP Server.",
0 commit comments