Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Steam concurrent player trends for any game over time. Free key at trendsapi.ai
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
Authorization标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。
在终端中运行这条命令
claude mcp add --transport http steam https://steam.api.trendsapi.ai/mcp --header 'Authorization: your-value'运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"steam": {
"url": "https://steam.api.trendsapi.ai/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"steam": {
"type": "http",
"url": "https://steam.api.trendsapi.ai/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。
你的选择通过 Cookie 保存在这台设备上,无需账户。
Authorization 机密 必填 HTTP header这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过域名 trendsapi.ai 验证(注册中心会核实域名所有权)
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
尚未检查;我们会轮流检查各个端点
尚未检查;我们会轮流检查各个端点
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:Authorization
它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。
GitHub 仓库最后更新于–,最新版本(1.0.2)于15天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Spec Driven Development, Remote Desktop Commander, FOGA node
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ 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.
A Finch OG Agent cell as an MCP server: read the world, dry-run and take ERC-8414 tenders by policy.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Steam player-interest trends via the Trends API. Monthly CCU history, growth, and live most-played. No Steam Web API key.
Key: trendsapi.ai/#get-key. HTTP contract and every source: trendsapi-ai/trendsapi.
pip install trendsapi-steam
export TRENDSAPI_KEY=your_key
Python 3.9+. Same key as the HTTP API.
from trendsapi_steam import TrendsAPI
client = TrendsAPI() # TRENDSAPI_KEY
Keyword helpers default to source: "steam". Pass source= to hit any other platform with the same client. Official full client (every source, no preset): trendsapi.
| Method | REST mode | Returns |
|---|---|---|
get_time_series(keyword, source=, data_mode=) | get_time_series | list[TrendsDataPoint] |
get_growth(keyword, percent_growth=, source=, data_mode=) | get_growth | GetGrowthResponse |
get_live(limit=, offset=, category=) | get_top_trends | GetTopTrendsResponse |
get_top_trends(type=, ...) | get_top_trends | GetTopTrendsResponse |
source is lowercase (steam). type is exact (Steam Most Played). Mixing them is a 400.
from trendsapi_steam import TrendsAPI
client = TrendsAPI() # TRENDSAPI_KEY
series = client.get_time_series("counter-strike 2") print(series[-1].date, series[-1].value)
growth = client.get_growth("counter-strike 2", percent_growth=["3M", "12M"]) print(growth.results[0].growth, growth.results[0].direction)
hot = client.get_live(limit=10) print(hot.data) # [[1, "..."], ...]
points = client.get_time_series("counter-strike 2")
Each point:
| Field | Always | Meaning |
|---|---|---|
date | yes | YYYY-MM-DD |
value | yes | 0-100 index for this series |
keyword | yes | Echo |
volume | no | Absolute volume when available |
source or datatype | no | Pipeline label |
Python returns list[TrendsDataPoint]. Use .date and .value, not ["date"]. JS returns the same fields as object properties.
g = client.get_growth("counter-strike 2", percent_growth=["12M", "3M", "YTD"])
print(g.results[0].growth, g.results[0].direction)
percent_growth default: ["12M"]. Presets: 7D 14D 30D 1M 2M 3M 6M 9M 12M/1Y 18M 24M/2Y 36M/3Y 48M 60M/5Y MTD QTD YTD. Custom: {"name": "Launch", "recent": "2024-06-01", "baseline": "2024-01-01"}.
| Field | Meaning |
|---|---|
search_term | Keyword |
data_source | Source |
results | One object per window (period, growth, direction, dates, values) |
metadata | Counts / success flag |
Several windows still count as one request. Python: growth.results[0].growth. JS: growth.results[0].growth.
hot = client.get_live(limit=10)
| Field | Meaning |
|---|---|
as_of_ts | Snapshot time |
type | Feed name |
limit, offset, count | Pagination |
data | [rank, label] rows |
Python: hot.data. JS: hot.data. Optional offset= and category= (Amazon Best Sellers by Category, Top Websites only).
import asyncio
from trendsapi_steam import AsyncTrendsAPI
async def main(): c = AsyncTrendsAPI() return await asyncio.gather( c.get_time_series("counter-strike 2"), c.get_time_series("counter-strike 2", source="google search"), )
asyncio.run(main())
Each 200 is one billed request.
from dataclasses import asdict
import pandas as pd from trendsapi_steam import TrendsAPI
df = pd.DataFrame(asdict(p) for p in TrendsAPI().get_time_series("counter-strike 2")) df["date"] = pd.to_datetime(df["date"]) print(df.set_index("date")["value"].resample("ME").mean().tail())
| Field | Value |
|---|---|
| Endpoint | POST https://api.trendsapi.ai/api |
| Auth | Authorization: Bearer $TRENDSAPI_KEY |
| History | source: steam with get_time_series or get_growth |
| Keyword | Game display name, e.g. counter-strike 2 |
Live type | Steam Most Played |
curl -sS -X POST https://api.trendsapi.ai/api \
-H "Authorization: Bearer $TRENDSAPI_KEY" \ -H "Content-Type: application/json" \ -d '{"mode":"get_time_series","source":"steam","keyword":"counter-strike 2"}'
value is 0-100 vs that title, not raw CCU.type: steam is 400.| HTTP | Client |
|---|---|
| 200 | Parsed payload. Python dataclasses / JS typed objects |
| 400 | Raises. Fix source or type spelling |
| 401 | Raises. Check TRENDSAPI_KEY |
| 404 | Raises. No series for that keyword. Do not retry |
| 429 | Raises. Quota |
| 5xx | Client retries, then raises |
The HTTP body field is a JSON string. SDKs decode it. Raw curl must parse body a second time.
Site: https://trendsapi.ai/trends/steam-trends.
MIT. See LICENSE.