麦克拉穆德
一 主控程序 暴露的服务器 达拉谟 为人工智能助手提供插件API文档。兼容任何支持MCP的客户端(Claude Desktop、Cursor、Windsurf、带副本的VS Code等)。在编写FFXIV Dalamud插件时很有用——在不离开编辑器的情况下,向你的助手询问服务、类型和方法。
需求
- Node.js 18+
- 任何兼容MCP的AI助手
设置
npm install
npm run build然后向您的MCP客户端注册服务器。服务器通过以下方式进行通信 标准 并且不接受环境变量。
克劳德桌面版 (%APPDATA%\Claude\claude_desktop_config.json 在Windows上, ~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"dalamud-api": {
"command": "/path/to/node",
"args": ["/path/to/mcp-dalamud/dist/index.js"]
}
}
}Cursor/Windsurf/其他客户: 请参阅客户端的MCP文档——服务器条目是相同的 command + args 上面的一对。
编辑配置后重新启动客户端。首次启动时,服务器会进行爬网 达拉谟·开发/项目 并将本地缓存写入 cache/dalamud-api.json (约96个命名空间,约572种类型)。随后立即开始从磁盘加载。
工具
| 工具 | 说明 |
|---|---|
list_namespaces | 列出所有Dalamud API命名空间 |
get_namespace | 列出命名空间中的所有类型,按类型分组 |
get_type | 类型的完整文档——属性、方法、事件、声明 |
search | 所有类型和摘要的关键字搜索;可选的 kind 过滤器(例如。 "enum", "interface") |
list_enums | 浏览所有枚举类型,可选择按命名空间或关键字筛选 |
list_services | 列出以下注射服务 Dalamud.Plugin.Services |
find_events | 查找API中的事件参数类型和委托订阅点 |
search_members | 在已加载的类型(无网络)中搜索属性/方法/事件 |
get_member | 类型上特定成员的完整文档 |
health | 缓存状态:构建时间、Dalamud版本、成员覆盖率 |
refresh_cache | 重新抓取dalamud.dev并重建缓存 |
示例提示
- *“Dalamud.Plugin.services提供哪些服务?”*
- *“给我看看IClientState——它有什么属性?”*
- *“搜索与库存相关的任何内容”*
- *“库存插槽类型有哪些枚举?”*
- *“我如何在Dalamud订阅框架活动?”*
- *“如何在Dalamud中注册斜线命令?”*
这些工具可与支持工具使用的任何具有MCP功能的助手配合使用。
运作原理
启动: 从磁盘加载缓存,如果缺失/过时,则抓取dalamud.dev。还检查 在后台——如果检测到新版本,缓存会自动重建。
缓存版本控制: 缓存中包含一个版本字段。如果磁盘上的缓存是由此服务器的旧版本构建的,则会在下次启动时丢弃并重建。
延迟成员加载: 名称空间和类型索引是预先缓存的。首次按需获取单个成员详细信息(属性、方法等) get_type 调用一个类型,然后持久化到缓存。
发展
npm run dev # TypeScript watch mode
npm test # Run tests (Vitest)
npm run build # Compile to dist/测试涵盖 search (包括种类过滤器), searchMembers, findType, findNamespace, isEventRelated,以及 isValidCache --核心纯函数逻辑。爬虫本身(网络I/O)没有经过单元测试。
项目结构
src/
index.ts # MCP server, tool handlers
crawler.ts # Crawling, caching, types
search.ts # findType, findNamespace, search, searchMembers, isEventRelated
type-members.ts # groupMembersByKind, MEMBER_KIND_ORDER
__tests__/
crawler.test.ts
search.test.ts
cache/
dalamud-api.json # generated, not committed