Nanowave MCP 服务器集合
使用说明
- 项目简介
- Nanowave 提供基于 MCP 的后端服务器实现,核心目标是以标准化方式向 MCP 客户端提供资源、工具、以及提示模板等能力。仓库包含内部的 MCP 服务器实现与注册机制,允许通过命令启动具体的 MCP 服务器并通过客户端进行交互。
- 主要功能点
- 内部 MCP 服务器定义与注册
- AppleDocs(苹果官方文档 MCP 服务器定义)
- XcodeGen(Xcode 生成相关的 MCP 服务器定义)
- 服务器启动机制
- 服务器通过内置的 MCP Server 实现,以 stdio 传输(JSON-RPC)对接客户端,支持描述、读取资源、执行工具、渲染 Prompts 等功能。
- 工具与资源管理
- 为 XcodeGen 提供诸如 add_permission、add_extension、add_entitlement、add_localization、set_build_setting、add_package 等工具,以及 get_project_config、regenerate_project 等能力。
- 注册表机制
- internal/mcpregistry 提供 Server 描述与注册点,允许外部组件查询 .mcp.json、settings.json、以及代理工具列表。
- 基于 CLI 的服务器暴露
- 通过命令启动特定 MCP 服务器,例如 nanowave mcp xcodegen,以 stdio 作为传输通道。
- 内部 MCP 服务器定义与注册
- 安装与运行步骤
- 构建二进制
- 在项目根目录执行构建命令,生成可执行文件(如 bin/nanowave)。
- 启动 MCP 服务器
- 运行命令:nanowave mcp xcodegen
- 该命令会启动 XcodeGen 的 MCP 服务器,并通过标准输入/输出建立与 MCP 客户端的连接。
- 连接方式
- MCP 客户端通过 JSON-RPC 向服务器发起请求,如读取资源、调用工具、获取 Prompts 等。服务器端返回对应的 JSON-RPC 响应。
- 配置要点(客户端需要)
- MCP 客户端需要了解服务器启动信息(name、command、args 等),以便通过 CLI 或 API 与 MCP 服务器建立连接。配置示例通常包含 server name、command、args 等字段,详见下方配置示例。
- 构建二进制
- 服务器配置(示例)
以下 JSON 描述的是一个可被 MCP 客户端使用的服务器配置。字段来自仓库中的服务器实现信息,确保准确性;客户端无需实现服务器端逻辑,仅用于描述连接信息。
{
"name": "xcodegen",
"command": "nanowave",
"args": ["mcp", "xcodegen"],
"tools": [
"mcp__xcodegen__add_permission",
"mcp__xcodegen__add_extension",
"mcp__xcodegen__add_entitlement",
"mcp__xcodegen__add_localization",
"mcp__xcodegen__set_build_setting",
"mcp__xcodegen__get_project_config",
"mcp__xcodegen__regenerate_project",
"mcp__xcodegen__add_package"
],
"env": {} // 如有需要,可在这里注入环境变量
}
说明
- server: 名称,与内部注册表中的名称保持一致(如 "xcodegen")
- command: 启动该 MCP 服务器的可执行文件
- args: 启动服务器时的参数数组(如 ["mcp","xcodegen"])
- tools: 该服务器暴露的 MCP 工具名称列表,用于工具白名单与客户端能力声明
- env: 服务器启动时的环境变量(如需要在客户端侧进行额外配置时使用)
- 基本使用方法
- 启动方式
- 使用 Nanowave CLI 编译后执行:nanowave mcp xcodegen,开启 XcodeGen 的 MCP 服务器
- MCP 客户端交互
- 客户端通过 JSON-RPC 向服务器发送请求,例如读取资源、调用工具、获取 Prompts 等,服务器返回标准的 JSON-RPC 响应,或发送通知。
- 会话与安全
- MCP 服务器负责会话管理与能力声明,支持多传输方式(此实现使用 Stdio 传输),并具备扩展性以集成到更广泛的后端架构中。
- 启动方式
- 关键词
- XcodeGen, 自动化构建, SwiftUI, 命令行工具, 代码生成
- 分类ID
- 1