
Security News
/Research
Popular node-ipc npm Package Infected with Credential Stealer
Socket detected malicious node-ipc versions with obfuscated stealer/backdoor behavior in a developing npm supply chain attack.
unreal-engine-docs-mcp
Advanced tools
English | 中文
这个项目提供虚幻引擎官方文档的 MCP(Model Context Protocol)服务器,支持基于向量语义搜索的智能文档查询和访问功能。
在学习虚幻引擎开发过程中,开发者经常需要与AI大模型交流以获取技术指导和解决方案。但是,大模型容易产生幻觉,提供不准确或过时的信息,这会误导学习者。
为了解决这个问题,我们需要为大模型提供准确、可靠的虚幻引擎官方文档索引。通过关键字搜索,大模型可以直接获取来自虚幻引擎官方文档的真实链接和信息,从而提供更准确的技术指导。
本项目提供了一个 MCP(Model Context Protocol)服务器,专门用于虚幻引擎官方文档的智能搜索和索引。为了获取完整的文档结构,我们采用动态数据采集技术克服了官方网站的导航菜单动态加载限制,确保收录所有2400+文档页面。
在项目根目录创建或编辑 .cursor/mcp.json 配置文件:
{
"mcpServers": {
"unreal-engine-docs-mcp": {
"command": "npx",
"args": [
"-y",
"unreal-engine-docs-mcp"
]
}
}
}
在项目根目录创建或编辑 .vscode/mcp.json 配置文件:
{
"servers": {
"unreal-engine-docs-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"unreal-engine-docs-mcp"
]
}
}
}
配置完成后,重启你的IDE,就可以在AI助手中使用虚幻引擎文档搜索功能了。
查询并返回虚幻引擎官方文档链接列表,支持混合搜索技术,结合向量语义搜索和关键词精确匹配。
参数:
search (必需): 语义搜索关键字对象,包含英文和中文字段,使用向量语义搜索技术
en (必需): 英文语义搜索关键字cn (必需): 中文语义搜索关键字keyword (必需): 精确匹配关键词数组,每个元素包含英文和中文字段,通过文本小写比对进行精确匹配,按数组顺序进行优先级排序(前面的关键词匹配结果排在最前面),优先级高于语义搜索
en (必需): 英文精确匹配关键词cn (必需): 中文精确匹配关键词返回数量限制:
MAX_KEYWORD_RESULTS 控制,默认为10个结果MAX_SEMANTIC_RESULTS 控制,默认为10个结果返回数据格式:
{
"total": 2415,
"search": {
"en": "animation",
"cn": "角色动画制作"
},
"keyword": [
{
"en": "blueprint",
"cn": "蓝图"
}
],
"combinedSearchTerm": "animation 角色动画制作",
"searchMethod": "hybrid_search",
"maxKeywordResults": 10,
"maxSemanticResults": 10,
"keywordResultCount": 3,
"semanticResultCount": 2,
"vectorSearchAvailable": true,
"error": null,
"links": [
{
"navTitle": "物体和角色动画制作",
"pageTitle": "在虚幻引擎中制作角色和物体动画",
"pageDescription": "学习如何在虚幻引擎中创建和管理角色与物体的动画系统,包括动画蓝图、状态机等高级功能。",
"link": "https://dev.epicgames.com/documentation/zh-cn/unreal-engine/animating-characters-and-objects-in-unreal-engine",
"searchSource": "keyword"
}
]
}
返回数据字段说明:
navTitle: 导航标题 (来自文档导航菜单)pageTitle: 页面标题 (来自页面内容)pageDescription: 页面描述 (来自页面内容摘要)link: 文档链接searchSource: 搜索来源类型,可能的值:
"keyword": 来自关键词精确匹配"semantic": 来自向量语义搜索搜索模式说明:
hybrid_search: 混合搜索 (关键词精确匹配 + 向量语义搜索)hybrid_search_partial: 部分混合搜索 (仅关键词匹配,向量搜索不可用或失败)error: 搜索执行失败使用示例:
search_docs_list(search={en:"animation", cn:"角色动画"}, keyword=[{en:"blueprint", cn:"蓝图"}])search_docs_list(search={en:"blueprint", cn:"蓝图编程"}, keyword=[{en:"material", cn:"材质"}])search_docs_list(search={en:"installation", cn:"安装虚幻引擎"}, keyword=[{en:"guide", cn:"指南"}])search_docs_list(search={en:"physics", cn:"物理仿真"}, keyword=[{en:"collision", cn:"碰撞"}])search_docs_list(search={en:"lighting", cn:"光照设置"}, keyword=[{en:"shadow", cn:"阴影"}])search_docs_list(search={en:"game development", cn:"游戏开发"}, keyword=[{en:"blueprint", cn:"蓝图"}, {en:"material", cn:"材质"}, {en:"animation", cn:"动画"}]) (blueprint匹配结果优先,其次material,最后animation)注意: 搜索结果的最大返回数量分别由环境变量控制:
MAX_KEYWORD_RESULTS 控制,默认为10个结果MAX_SEMANTIC_RESULTS 控制,默认为10个结果基于以下技术栈:
参数解析:
search 和 keyword 参数en) 和中文 (cn) 字段内容关键词精确匹配:
向量语义搜索:
search.cn + " " + search.en)结果合并与去重:
智能降级: 如果向量搜索不可用,仍可提供关键词匹配结果
// 查找未展开的菜单按钮
const expandButtons = await page.$$('.btn-expander .icon-arrow-forward-ios:not(.is-rotated)');
{
"total": 2415,
"generated": "2025-01-12T10:30:15.387Z",
"stats": {
"totalLinks": 2415,
"withPageTitle": 2380,
"withPageDescription": 2347,
"completionRate": {
"pageTitle": "98.5%",
"pageDescription": "97.2%"
}
},
"links": [
{
"navTitle": "新内容",
"pageTitle": "虚幻引擎新功能",
"pageDescription": "了解虚幻引擎5.6的新功能和改进。",
"link": "https://dev.epicgames.com/documentation/zh-cn/unreal-engine/whats-new"
}
]
}
# 关键词精确匹配最大返回数量
MAX_KEYWORD_RESULTS=10
# 语义搜索最大返回数量
MAX_SEMANTIC_RESULTS=10
# Ollama服务地址
OLLAMA_BASE_URL=http://localhost:11434
# 执行所有测试
npm test
# 监视模式运行测试
npm run test:watch
├── scripts/ # 构建脚本 (TypeScript)
│ ├── fetch-nav.ts # 动态获取导航结构
│ ├── parse-nav.ts # 解析HTML并生成JSON
│ ├── fetch-descriptions.ts # 获取页面标题和描述信息
│ ├── merge-data.ts # 合并导航和页面数据
│ └── build-vector-db.ts # 构建向量数据库
├── src/ # 源代码
│ ├── index.ts # MCP服务器实现
│ └── vector-search.ts # 向量搜索引擎
├── sources/ # 数据文件
│ ├── list.json # 基础链接列表
│ ├── descriptions.json # 页面描述数据
│ ├── enhanced-list.json # 增强链接数据 (合并后)
│ └── db/ # 向量数据库
├── tests/ # 测试文件
│ └── mcp-client.test.ts # MCP客户端测试
├── dist/ # 编译后的JavaScript文件
├── nav-dist.html # 动态获取的完整导航(2415个链接)
├── tsconfig.json # TypeScript配置
├── tsconfig.build.json # 构建配置
└── package.json # 项目配置
# 安装 Ollama (根据你的操作系统)
curl -fsSL https://ollama.ai/install.sh | sh
# 下载嵌入模型
ollama pull bge-m3
npm install
npm run build
完整的构建流程:
# 完整构建流程 (获取导航→解析→获取描述→合并数据)
npm run build-docs
分步执行:
# 1. 获取动态导航结构
npm run fetch-nav
# 2. 解析HTML生成链接列表
npm run parse-nav
# 3. 获取页面标题和描述
npm run fetch-descriptions
# 4. 合并数据生成增强链接列表
npm run merge-data
如果需要使用语义搜索功能:
# 确保 Ollama 服务正在运行
ollama serve
# 构建向量数据库
npm run build-vector-db
# 开发模式
npm run dev
ollama serveollama listsources/db/npm run build-vector-dbnpm run install-browsers欢迎提交Issue和Pull Request来改进这个项目。
MIT License
FAQs
MCP server for Unreal Engine documentation
The npm package unreal-engine-docs-mcp receives a total of 24 weekly downloads. As such, unreal-engine-docs-mcp popularity was classified as not popular.
We found that unreal-engine-docs-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
/Research
Socket detected malicious node-ipc versions with obfuscated stealer/backdoor behavior in a developing npm supply chain attack.

Security News
TeamPCP and BreachForums are promoting a Shai-Hulud supply chain attack contest with a $1,000 prize for the biggest package compromise.

Security News
Packagist urges PHP projects to update Composer after a GitHub token format change exposed some GitHub Actions tokens in CI logs.