erickwendel-contributions-mcp
用一行JSON配置,让AI助手帮你查询技术大牛的演讲/博客/视频数据
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用一行JSON配置,让AI助手帮你查询技术大牛的演讲/博客/视频数据
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的场景:你是一家科技公司的技术布道师,每年在世界各地参加数十场技术大会、写博客、发视频,建立自己的技术影响力。但当你想要整理一份完整的年度内容报告时,却发现数据散落在 GitHub、Medium、YouTube、个人网站等多个平台,手动汇总费时费力。
erickwendel-contributions-mcp 正是为解决这一痛点而生。它是一个基于 Model Context Protocol(MCP)的服务器,专门为 AI 助手(如 Claude、Cursor)提供查询巴西知名技术布道师 Erick Wendel 在各平台贡献数据的能力。只需在 AI 工具中配置一行 JSON,AI 就能以自然语言帮你查询他的演讲、博客文章、视频,甚至生成按年份或语言统计的内容报告。
图1:Cursor IDE 中使用该 MCP Server 查询 2024 年视频数据
Erick Wendel 是巴西乃至全球 Node.js 社区中最活跃的技术布道师之一。他拥有微软 MVP(Most Valuable Professional)和 Google Developer Expert(GDE)等多项技术认证,常年活跃于国际技术大会,分享关于 Node.js 性能优化、并发编程、企业级 JavaScript 架构等主题的演讲。他的 YouTube 频道、博客文章和技术社区贡献构成了一个庞大的内容体系。
2025 年 AI 编程工具(如 Cursor、Claude)迅速普及,开发者们开始习惯用自然语言让 AI 帮忙完成各种任务。Erick Wendel 敏锐地捕捉到这一趋势,利用 Model Context Protocol(MCP)这一新兴的 AI 工具标准协议,将自己多年积累的内容数据封装为 AI 友好的工具集,让任何人都可以通过 AI 来查询和分析他的技术贡献。
这个项目的另一个亮点是:它是用 Cursor AI IDE 的默认 Agent 模式构建的——这本身就是一次"吃自己的狗粮"(Dogfooding)的实践,向社区展示如何用 AI 工具开发 AI 工具。
项目采用纯 TypeScript 开发,目标运行时为 Node.js 20+,充分利用了 Node.js 的原生测试运行器(node --experimental-strip-types)和 ECMAScript 模块系统。核心技术依赖只有两个:
McpServer、StdioServerTransport 等核心类,开发者无需关心底层协议细节,只需按规范注册工具、提示词和资源即可。代码结构清晰,分为四个主要目录:
erickwendel-sdk/ # 自研 GraphQL SDK(genql 风格)
runtime/ # 底层 HTTP 客户端、错误处理
schema.ts # 类型化的 GraphQL Schema
types.ts # TypeScript 类型定义
index.ts # 对外导出 createClient
src/
index.ts # MCP 服务器入口,组装所有组件
config/api.ts # GraphQL 端点、工具名配置
services/api.ts # GraphQL 查询逻辑(带分页)
tools/ # MCP 工具实现(talks/posts/videos/status)
types/index.ts # 共享类型定义
test/ # 完整测试套件(Node.js 原生测试)
这种分层设计保证了各模块职责单一:SDK 层负责 GraphQL 通信,服务层负责业务逻辑,工具层负责 MCP 协议适配,测试层负责质量保障。
项目提供了 4 个 MCP 工具:
get_talks 是最复杂的工具,支持按 ID、标题、语言、城市、国家、年份等多维度过滤,还支持分页和聚合统计(按语言/国家/城市分组计数)。当用户传入 year 参数时,工具内部会自动进行游标分页,直到获取到指定年份的所有演讲数据,逻辑十分严谨。
get_posts 和 get_videos 提供了类似的多维度过滤和分页能力,允许按语言、门户(博客平台)等条件筛选。
check_status 是健康检查工具,用于验证后端 GraphQL API 是否可用。
此外,项目还注册了两个 MCP Prompt(提示词模板):find-content 用于生成查找特定内容的自然语言查询,summarize-activity 用于生成内容活动摘要。这体现了 MCP 协议在"上下文注入"层面的扩展能力。
值得注意的是,项目没有使用社区成熟的 GraphQL 客户端(如 Apollo Client、urql),而是自研了一个轻量级的 erickwendel-sdk。这个 SDK 基于 genql 的类型生成模式,通过 generateGraphqlOperation 函数手动拼接 GraphQL 查询字符串,底层配合一个极简的 HTTP 客户端。
这种设计取舍的考量是:MCP 工具返回的数据结构需要精确控制,成熟客户端的缓存和规范化机制反而会增加不必要的复杂度。自研 SDK 约 500 行代码,恰好够用。
图2:Erick Wendel 历年技术演讲的统计数据示例
项目的数据源是一个 GraphQL API(https://tml-api.herokuapp.com/graphql),该 API 由 Erick Wendel 个人维护,托管在 Heroku 平台。所有数据均为公开可获取的内容元数据——演讲标题、摘要、会议名称、视频链接、博客文章标题等,不涉及任何隐私信息。
从代码来看,SDK 直接将查询参数透传给后端 API,工具层也没有实现额外的缓存机制,这意味着每次调用都会产生一次真实的网络请求。数据隐私风险极低。
作为 MCP Server,部署方式极为简洁。用户只需在 Claude Desktop 或 Cursor 的 MCP 配置文件(mcp.json)中加入如下配置:
{
"mcpServers": {
"erickwendel-contributions": {
"command": "npx",
"args": ["-y", "@erickwendel/contributions-mcp"]
}
}
}
保存配置后,AI 工具会自动下载并启动 MCP Server,无需安装、无需配置环境变量、无需启动额外进程。Server 通过标准输入/输出(stdio)与 AI 工具通信,完全符合 MCP 协议规范。
如果需要本地开发调试,项目也提供了 npm run dev(带热重载的 inspect 模式)和 npm run inspect(MCP 官方调试器)两种方式,开发体验友好。
项目使用 Node.js 18+ 内置的测试运行器(node --test)编写测试套件,覆盖了 talks、posts、talks-by-year 等核心场景。测试文件位于 test/ 目录,配置了 ESLint 进行代码风格检查。虽然没有看到覆盖率报告,但测试覆盖面较为完整。
值得注意的是,项目使用了 --experimental-strip-types 标志来直接运行 TypeScript 源码,无需预先编译。这种做法在开发阶段非常高效,但发布到 npm 时会通过 prepublishOnly 脚本调用 esbuild 进行打包,确保生产环境使用优化后的纯 JavaScript 文件。
亮点方面: 项目巧妙地将 MCP 协议与个人内容数据结合,展示了 AI 工具在"个人知识管理"场景下的新范式。使用 Cursor AI IDE 构建 AI 工具本身就是一个很好的案例。代码结构清晰,TypeScript 类型覆盖全面。
局限方面: 目前数据源硬编码为 Erick Wendel 个人的 GraphQL API,不具备通用性。后端 API 托管在 Heroku 免费版,稳定性可能存在隐患。此外,SDK 层缺少缓存机制,每次查询都会产生额外的网络开销。
erickwendel-contributions-mcp 属于 MCP 生态系统中的一个小型但有代表性的工具。截至目前,MCP 协议正在快速发展,Anthropic、Cursor 等主流 AI 工具厂商纷纷宣布支持。这一背景下,围绕特定数据源构建 MCP Server 的实践正在成为趋势——不仅是个人可以用它整理自己的内容资产,企业也可以用类似模式为自己的产品文档、知识库构建 MCP 工具,供 AI 助手调用。
Erick Wendel 本人在 Node.js 社区的活跃度和影响力(微软 MVP、Google GDE)为这个项目带来了天然的社区关注度,也为类似项目提供了"如何围绕个人品牌构建 AI 工具"的参考模板。