Source python vs the GitHub board

Pass source python for a weekly PyPI series, or type GitHub for the live repo list. The two strings are not interchangeable.

Live data as of 2026-09-19

A python vs GitHub comparison on Trends MCP is two different tools. Source python on get_growth or get_time_series returns a weekly 0-100 series for one PyPI project name, with a download-count volume field when the pipeline has it. Type GitHub on get_top_trends returns ranked owner/name strings and takes no keyword. From the September 19, 2026 board (as_of 2026-09-19T06:01:41 UTC), rank 1 was cloudflare/security-audit-skill. The python token security-audit-skill returned HTTP 200 with envelope statusCode 502 source_unavailable. Rank 2 anthropics/claude-code needed a rewrite: claude-code closed at index 0.0 and volume 301 on 2026-09-07, while anthropic closed at index 61.2 and volume 31,903,621. Mixing GitHub into get_growth is a 400.

Rank 2 closed 31.9 million on anthropic, not on claude-code

The September 19, 2026 board is the split that still matters next month: live rank is an owner/name list stamped that morning, while source python is a weekly download series that only resolves when the keyword matches a PyPI project. Omitting limit returned limit 25, count 17, offset 0, as_of_ts 2026-09-19T06:01:41.288913+00:00. Rank 1 was cloudflare/security-audit-skill. Rank 2 was anthropics/claude-code. Rank 8 was Fission-AI/OpenSpec. Rank 9 was ankitects/anki. Rank 14 was supabase/supabase. Rank 15 was coder/coder. offset 17 with limit 5 returned count 0. The board ended at row 17.

TokenGitHub rankpython keywordClose on 2026-09-07
security-audit-skill1security-audit-skillenvelope 502 source_unavailable
claude-code2claude-code0.0 / 301, 7D -100%
anthropic2 (rewrite)anthropic61.2 / 31,903,621, 7D +2.17%
open-code-review3open-code-reviewenvelope 502 source_unavailable
ecc4ecc18.7 / 91, 7D -25.5%
openspec8openspecHTTP 404 no_data
anki9anki2.1 / 16,003, 7D +23.53%
supermemory11supermemory8.7 / 17,962, 7D -8.42%
rustfs13rustfs5.7 / 500, 7D +23.91%
supabase14supabase52.9 / 5,090,408, 7D -1.31%
coder15coder36.2 / 42, 7D +65.3%
pandasnot on boardpandas56.7 / 119,699,070, 7D -2.07%
numpynot on boardnumpy57.4 / 179,418,169, 7D +1.23%
pydanticnot on boardpydantic64.3 / 186,528,280, 7D -0.62%
requestsnot on boardrequests58.9 / 271,150,079, 7D 0.0%

Live rank is not a sort of weekly installs. coder sat at rank 15 with 42.0 downloads. requests sat off the board with 271,150,079. ecc sat at rank 4 with 91.0 downloads; that token is a name collision, not proof affaan-m/ECC ships on PyPI. Quote the board stamp and the weekly volume. Do not treat rank 1 as the largest audience.

The claude-code join is the durable rewrite. anthropics/claude-code is a repo path. claude-code on python is a tiny project: 66 weekly points from 2025-06-09 (index 2.4, volume 634) to 2026-09-07 (index 0.0, volume 301), with a one-week peak of 100.0 / 14,221 on 2025-09-22. anthropic is the SDK people actually install. It closed at 31,903,621 on the same week, 188 points from 2023-02-06 (index 0.0, volume 344), peak 100.0 / 52,154,650 on 2026-08-10. Rank 2 on GitHub does not pick the 31.9 million-download name.

sort=rank_change with window=7d and limit 10 used the same as_of_ts, plus baseline_ts 2026-09-12T02:01:33.908651+00:00, then returned count 0 and empty data. The note said the GitHub board turned over completely versus the 7d baseline: no item appears in both snapshots. window=1d against baseline_ts 2026-09-18T02:01:34.163551+00:00 returned count 5. affaan-m/ECC climbed 9 places (4 from 13). TencentCloud/Octop climbed 9 (7 from 16). anthropics/claude-code climbed 4 (2 from 6). A 7-day empty climber set can sit next to a 1-day mover list on the same stamp.

How to call source python without pasting owner/name as a type

Two strings, two tools. REST uses mode get_growth or get_top_trends. MCP uses the matching tool names. Weekly PyPI windows live on the PyPI package downloads API. The live board page is the GitHub Trending Repos API. Pagination and limit are documented with get-top-trends.

{"mode": "get_top_trends", "type": "GitHub"}
{"mode": "get_growth", "source": "python", "keyword": "anthropic", "percent_growth": ["7D", "30D", "12M"]}
{"mode": "get_time_series", "source": "python", "keyword": "pandas"}
{"mode": "get_growth", "source": "python, npm", "keyword": "supabase", "percent_growth": ["7D"]}

The MCP equivalents are get_top_trends(type="GitHub"), get_growth(keyword="anthropic", source="python", percent_growth=["7D", "30D", "12M"]), and get_time_series(keyword="pandas", source="python"). REST top_trends with type GitHub and limit 3 on September 19, 2026 returned the same snapshot timestamp as the omitted-limit MCP pull, with count 3: cloudflare/security-audit-skill, anthropics/claude-code, alibaba/open-code-review.

get_time_series for pandas returned 261 weekly rows from 2021-09-13 (index 3.1, volume 19,574,141) to 2026-09-07 (index 56.7, volume 119,699,070). Peak index 100.0 landed on 2026-08-03 with volume 200,739,859. Grain is weekly over about five years. The python close date on this pull is 2026-09-07, twelve days behind the GitHub stamp. That lag is the series, not a stale board.

7D matched 1W exactly on supabase: 52.9 versus 53.6, growth -1.31%, volume 5,090,408 from 5,165,980. 30D matched 1M exactly: 52.9 versus 85.6, growth -38.2%. Extra windows still sit on one source-plus-keyword request. Omit percent_growth on pandas and the handler returned HTTP 200 with a single 12M row: index 56.7 versus 47.7 on 2025-09-08, growth +18.87%, volume 119,699,070 from 102,933,234. The default window is 12M.

The comma-separated supabase call is the join that npm-only pages miss. source python, npm returned sources_requested ["python", "npm"], sources_successful 2, and sources_failed 0. python 7D was -1.31% index and -1.46% volume on 261 points, recent_date 2026-09-07, volume 5,090,408. npm 7D was -14.51% index and -14.54% volume on 259 points, recent_date 2026-09-12, volume 3,168,548. volume_weighted_growth printed -6.48 with weight_coverage 2/2 sources and total volume 8,258,956, python 61.64% of that mix. Read source_results before joining those percentages. The two registries do not share a week-ending date.

get_time_series on python, npm returned invalid_source with 16 names and no all. Multi-source strings belong on get_growth only.

Missing names do not all fail the same way. openspec returned HTTP 404 no_data. open-code-review, security-audit-skill, hister, and a nonsense token thispackagedoesnotexistxyz123 returned envelope statusCode 502 source_unavailable. Treat 502 on python as "no series," not as a retryable outage, until a later pull returns a row. Pandas and REQUESTS both resolved, same closes as the lowercase names. python keywords case-fold. npm keywords on the sibling npm vs GitHub page did not.

get_growth with source GitHub and keyword react returned HTTP 400, error invalid_source, message 'github' is not a valid source., plus 16 valid sources: google search, google images, google news, google shopping, youtube, wikipedia, tiktok, reddit, amazon, news sentiment, news volume, app downloads, app rankings, steam, npm, python, all. The handler lowercased the rejected source. It did not map it to python. REST repeated that 400 with the same 17-name list.

type python on get_top_trends returned HTTP 400, error invalid_request, message Unknown type 'python', plus 24 valid feed labels that include GitHub. There is no PyPI top-packages board.

The inverse fold exists on the feed name, and it is wider than case. type github on get_top_trends returned HTTP 200 and echoed type GitHub, with the same top five repos as the canonical label and as_of_ts 2026-09-19T06:01:41.288913+00:00. type GitHub Trending Repos also returned HTTP 200, echoed type GitHub, and printed the same ranked rows at limit 5. REST mode top_trends with type GitHub and limit 3 repeated that snapshot. llms.txt still describes feed labels as case-sensitive and matching exactly, and it lists the canonical name as GitHub. The live handler accepted these GitHub-adjacent strings on September 19, 2026 and served the repo board. Prefer the canonical GitHub spelling in stored configs. Do not treat the alias as a second feed.

REST omitting type is a different 400. POST https://api.trendsmcp.ai/api with mode get_top_trends and limit 5, no type, returned HTTP 200 with envelope statusCode 400, error invalid_request, message The 'type' parameter is required, then the same 24-name list. llms.txt still names that miss missing_parameter. Read statusCode inside the JSON, not only the HTTP line.

country GB with limit 5 on GitHub returned envelope statusCode 400, error invalid_request, message that country is only supported for Google Trends, Google Trends by Category, TikTok Trending Hashtags, TikTok Trending Hashtags by Category, X (Twitter) Trending, and YouTube Trending. GitHub is not on that list. Omit country on this feed.

get_top_trends MCP pricing is 1 credit per 10 requested rows, max 10 credits per call. REST counts 1 request per call. Free boards still cap at the top 10. The 17-row pull on this page is what the handler returned when limit was omitted on a paid key, below the echoed limit 25. The keyword-window follow-up is the PyPI downloads page. This split stays inside one developer stack: weekly package installs versus live repo rank.

Common questions

No. source python on get_growth or get_time_series returns a weekly 0-100 series for one PyPI project name, with a download-count volume field when the pipeline has it. type GitHub on get_top_trends returns ranked owner/name strings and takes no keyword. The September 19, 2026 board put anthropics/claude-code at rank 2, where claude-code closed at index 0.0 and 301 downloads on 2026-09-07 while anthropic closed at index 61.2 and 31,903,621.
The call fails in both directions. type python on get_top_trends returned HTTP 400, error invalid_request, and listed 24 valid feed names. source GitHub on get_growth returned HTTP 400 error invalid_source, echoed github in lowercase, and listed 16 keyword sources plus all. Pass the lowercase source to growth and series tools, and the exact feed label to get_top_trends.
Not as a join key. cloudflare/security-audit-skill and the shortened token security-audit-skill both returned HTTP 200 with envelope statusCode 502 source_unavailable. Rank 8 OpenSpec shortened to openspec returned HTTP 404 no_data. Shorten to the PyPI project name, then join on that string rather than the repo path.
Live rank is a discovery list, not a download sort. coder/coder sat at rank 15 with python token coder at volume 42.0 on 2026-09-07. requests was not on the 17-row board and still closed at 271,150,079. Quote the board stamp and the weekly volume rather than treating rank 1 as the largest install base.
Not on this pull. Pandas returned the same 56.7 / 119,699,070 close as pandas. REQUESTS returned the same 58.9 / 271,150,079 close as requests. That differs from source npm, where React 404'd and react resolved, so prefer the canonical lowercase PyPI name in stored configs anyway.