Token导航 LogoToken导航

MCP Server · AI代理

Cf Rawg

一个基于Cloudflare Workers部署的生产级MCP服务器和AI代理系统,用于通过RAWG API获取和分析视频游戏数据。

未说明官方级别未说明来源级核验工具 2
AI代理Cloudflare WorkersCursor

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
denkaryo
提供方
denkaryo

工具数量

2

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Cf Rawg 属于AI代理类 MCP Server,公开资料标注 2 个工具,通过传输方式未标注接入,适配 Cursor,没有现成的安装命令;接入前要先准备 OAuth 授权。

分类

AI代理

传输方式

未说明

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 2 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

游戏分析MCP服务器

生产就绪的MCP服务器+AI代理系统,用于使用RAWGneneneba API分析视频游戏数据,部署在CloudflareWorkers上。

概述

该项目实现了一个模型上下文协议(MCP)服务器,该服务器提供用于获取和分析视频游戏数据的工具。人工智能代理精心策划这些工具,以回答有关游戏的分析问题。

建筑

  • MCP服务器:提供 fetch_game_data 和 execute_calculation 通过流式HTTP传输工具
  • RAWG客户端:RAWG-视频游戏数据库API的类型安全客户端
  • 代码执行器:安全、动态的代码执行,实现灵活的计算
  • AI 代理:使用OpenAI或Anthropic模型来编排工具
  • 用户界面:带有评估指标显示的聊天界面

与光标一起使用

此服务器实现了模型上下文协议,可以作为远程MCP服务器直接连接到Cursor。看 CURSOR_MCP_SETUP.md 以获取配置说明。

服务器URL: https://cf-rawg.dkalaslioglu.workers.dev/mcp

评估面板(前端)

聊天UI包括一个右侧评估面板,该面板:

  • 显示最后一个 fetch_game_data 筛选器、计数、摘要和警告
  • 捕获每个 execute_calculation 以快照形式调用(代码+数据)
  • 允许您在本地重新运行计算(使用 avg, sum, min, max, groupBy)
  • 将手动结果与服务器结果进行比较,并报告通过/失败

请参阅中的详细行为和用法 docs/EVALUATION.md.

设置

先决条件

  • Node.js 20+
  • pnpm 10+
  • Cloudflare帐户
  • 原始API密钥:https://rawg.io/apidocs
  • 无烟煤API密钥:https://console.anthropic.com/

安装

pnpm install

安装过程将自动从以下位置复制QuickJS WASM文件 node_modules 到 src/ 目录通过 postinstall 脚本。如果需要手动复制WASM文件(例如,在更新依赖关系后),请运行:

pnpm copy-wasm

这运行 scripts/copy-wasm-file-into-src.sh 其复制Cloudflare Workers中代码执行所需的WASM文件。

环境变量

对于本地开发(wrangler-dev),请复制 .dev.vars.example 到 .dev.vars 并填写您的密钥:

cp .dev.vars.example .dev.vars

这些变量在本地运行时由Worker加载。

对于基于节点的测试(vitest/集成),使用 dotenv,您可以选择复制 .env.example 到 .env 并填写相同的密钥:

cp .env.example .env

在生产中,使用设置变量 wrangler secret put 或者在Cloudflare仪表板中。

本地开发

pnpm dev

这将在本地启动Cloudflare Worker http://localhost:8787

测试

# Unit tests
pnpm test:unit

# Integration tests (actual API calls)
pnpm test:integration

部署

pnpm deploy

身份验证(仅限测试)

对于这个项目,我们添加了简单的无数据库身份验证:

  • 应用程序(UI和 /api/chat):HTTP基本身份验证

- 变量: BASIC_AUTH_USER, BASIC_AUTH_PASS - 例子: - 头球 Authorization: Basic base64(username:password)

  • MCP(/mcp 可流式传输的HTTP):API密钥头

- 变量: MCP_API_KEY - 头球 x-api-key:

这些仅用于演示。对于生产环境,我们更倾向于Cloudflare Access或OAuth。

项目结构

cf-rawg/
├── src/
│   ├── mcp-server/     # MCP Server Domain
│   ├── rawg/           # RAWG API Client Domain
│   ├── executor/       # Code Execution Domain
│   ├── agent/          # Agent Orchestration Domain
│   ├── ui/             # UI/Presentation Domain
│   ├── RELEASE_SYNC.wasm  # QuickJS WASM module (generated and not tracked by Git)
│   └── index.ts        # Worker entry point
├── scripts/
│   └── copy-wasm-file-into-src.sh  # Script to copy WASM files from node_modules
├── tests/
│   ├── unit/           # Unit tests
│   └── integration/    # Actual test scripts
└── wrangler.toml       # Cloudflare config

开发方法

该项目遵循领域驱动、测试优先的方法:

  1. 为每个域编写单元测试
  2. 实现代码以通过测试
  3. 编写实际的测试脚本(无模拟)以验证真实行为
  4. 只有在测试通过后才能进入下一阶段

已知限制

Metacritic分数覆盖率

RAWG数据库的Metacritic评分覆盖范围有限,每年差异很大:

  • 2001-2010:最佳覆盖率(5-15%的游戏有Metacritic评分)
  • 2011-2021:覆盖率下降(游戏的0.1-1%)
  • 2022+:覆盖率非常低(不到游戏的0.1%)
  • 2024:在所有平台上,总共只有2款游戏有Metacritic分数
  • 2025:Metacritic评分为零的游戏

有关最近的游戏(2022+)的查询,我们使用 rating 相反,它的覆盖率为85-100%。这 rating 该字段包含RAWG社区评级(0-5级),对于最近的数据来说更可靠。

这 fetch_game_data 当Metacritic数据稀疏时,该工具会自动发出警告,并建议使用评级字段作为替代。

响应大小和性能限制

在开发过程中,我们在处理分析查询时遇到了严重的性能问题:

问题
  1. 大响应有效载荷:RAWGneneneba API返回带有许多嵌套字段(平台数组、流派数组、评级对象等)的完整游戏对象,每个游戏对象的大小为4-7KB
  2. 令牌使用过量:向LLM发送40多个完整的游戏对象,每次查询消耗2000-4000个令牌,仅用于数据有效载荷
  3. 查询处理速度慢:当LLM处理大量数据时,大型有效载荷导致10-30秒的响应时间
  4. 成本影响:高代币使用率显著增加了API成本
解决方案

我们实施了一些优化来解决这些限制:

  1. 智能默认页面大小:设置默认值 page_size 到20个游戏(而不是没有默认游戏),这为大多数计算提供了足够的统计有效性,同时将有效载荷大小减少了50%
  1. 响应修剪:自动将游戏对象修剪到仅基本字段(id, name, metacritic, rating, released),将每个游戏对象从4-7KB减少到1-2KB
  1. 选择性字段包含:平台和流派数组仅在按这些字段过滤时才包括在内,避免了不必要的嵌套数据
  1. 概要统计:对于大型数据集,包括预先计算的汇总统计数据(平均值、最小值/最大值),这样LLM就可以在不处理所有单个游戏的情况下回答查询
  1. 代理效率指南:更新了系统提示,以指导代理在大多数查询中使用小页面大小(20-30个游戏)
结果

这些优化实现了:

  • 减少80% 响应大小(150-300KB→ 20-40KB)
  • 减少75% 代币使用量(约2000-4000→约500-1000个代币)
  • 速度提高60-70% 查询处理(10-30s→ 3-8s)
  • 成本降低80% 每次查询

该系统现在可以有效地处理分析查询,同时保持计算精度,因为20-30个游戏为平均值和比较等统计操作提供了足够的样本量。

Cloudflare Workers代码执行限制

Cloudflare Workers有严格的安全限制,可以阻止传统的JavaScript代码执行方法:

为什么 new Function() 不起作用

Cloudflare Workers运行时使用以下方式阻止动态代码生成 new Function() 构造函数和 eval() 功能。当尝试使用这些方法时,运行时抛出:

"Code generation from strings disallowed for this context"

这是一种安全功能,用于防止代码注入攻击并保持工作实例之间的隔离。

为什么直接QuickJS WASM加载不起作用

最初,我们试图使用 quickjs-emscripten 库直接,但它失败了,因为:

  1. 动态WASM加载:库试图通过以下方式加载WASM文件 fetch() 使用 self.location.href,这在Cloudflare Workers环境中不存在
  2. 错误: TypeError: Cannot read properties of undefined (reading 'href')
  3. 根本原因:Cloudflare Workers在构建时捆绑所有代码,不支持通过网络请求加载运行时WASM模块
解决方案:嵌入式WASM文件

我们通过以下方式解决了这个问题:

  1. 在构建时嵌入WASM:使用 scripts/copy-wasm-file-into-src.sh 从中复制WASM文件的脚本 node_modules 进入 src/ 目录
  2. 自动设置:脚本通过自动运行 postinstall 钩后 pnpm install
  3. 直接进口:直接将WASM文件作为模块导入: import cloudflareWasmModule from '../RELEASE_SYNC.wasm'
  4. 自定义变量:使用创建Cloudflare特定变体 newVariant() 它使用嵌入式WASM模块,而不是试图动态加载它
  5. QuickJS运行时:使用QuickJS evalCode() 方法而不是 new Function() 安全地执行JavaScript代码

手动WASM副本:如果需要手动复制WASM文件(例如,在更新依赖关系后),请运行:

pnpm copy-wasm
代码执行约束
  • 无顶级回报:QuickJS不支持顶级 return 声明。代码与 return 语句必须包装在IIFE(立即调用函数表达式)中
  • 上下文序列化:所有上下文数据必须可序列化为JSON(函数被过滤掉,并作为代码字符串单独提供)
  • 内存限制:QuickJS运行时每次执行的内存限制为10MB
  • 超时:最大执行时间为5秒
捆绑尺寸影响

QuickJS WASM模块增加了大约 600KB 对于worker捆绑包:

  • 之前:约894 KB
  • 之后:~1495 KB(gzip:~420 KB)

这对于所提供的功能来说是可以接受的,因为它可以在沙盒环境中实现完整的JavaScript执行。

时光流逝

大致工作量分解:

  • 第0阶段——架构和研究(项目制定、RAWG文档、MCP文档、计划细化):~1.0小时
  • 第一阶段——RAWG客户端域(类型、过滤器、客户端、集成测试):约1.0小时
  • 第2阶段——代码执行域(QuickJS WASM沙箱、验证器、运行时):~3.5小时
  • 阶段3-MCP服务器域(工具、服务器布线、单元测试):~1.0小时
  • 第4阶段——代理编排(AI SDK集成、工具映射、提示):约1.5小时
  • 第5阶段——用户界面和评估显示(聊天用户界面、流媒体、评估面板):~2.0小时
  • 第6阶段——测试和改进(单元+集成、流式抛光):~1.0小时
  • 第7阶段——部署(Cloudflare配置、牧者、产品检查):约0.5小时
  • 调试和抛光(性能微调、CORS、游标流式HTTP):约2.5小时

总计:约14.0小时

未来改进

  • 将UI和MCP的仅测试身份验证替换为Cloudflare Access或OAuth。
  • 具有轮换和范围的单个或单个API键。
  • 通过QuickJS中断回调抢占无限循环的执行器硬超时。
  • 工具调用和计算的使用指标和审计日志。
  • 可选的RAWG-响应持久缓存,以减少API调用和延迟。

许可证

ISC

工具与能力

工具数量

2

资源数量

0

提示词数量

0

能力标签

游戏数据分析TypeScript本地部署AI代理MCP服务器RAWGAPICloudflareWorkers

支持客户端

Cursor

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 只提供 2 个工具,职责集中,接入后不容易误操作。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 已经在用 Cursor 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 暂时拿不到OAuth 授权的人。
  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Cf Rawg

MCP World · 本页

2未说明未标注1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Cf Rawg 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Cf Rawg 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Cf Rawg 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Cf Rawg 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Cf Rawg 支持哪些客户端?

公开资料标注支持 Cursor;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP