HuLa MCP 服务是基于 Model Context Protocol (MCP) 的服务端实现,为 HuLa 即时通讯应用提供上下文和功能支持。
本服务使用 TypeScript 实现,基于 MCP SDK 开发,为 HuLa 即时通讯应用提供以下功能:
- 资源访问:提供用户信息、群组信息、聊天记录等资源的访问
- 工具操作:提供发送消息、创建群组、搜索内容等功能
- 上下文管理:为大语言模型(LLM)提供结构化的上下文信息
- TypeScript
- Express.js
- Model Context Protocol SDK
- Zod(用于类型验证)
# 全局安装
npm install -g hula-mcp-server
# 或使用 pnpm
pnpm add -g hula-mcp-server
# 安装依赖
npm install
# 或使用 pnpm
pnpm install
npm run dev
# 或使用 pnpm
pnpm run dev
# 构建项目
npm run build
# 或使用 pnpm
pnpm run build
# 运行生产环境
npm run start
# 或使用 pnpm
pnpm run start
如果你全局安装了hula-mcp-server,可以使用以下命令:
# 启动MCP服务
hula-mcp start
# 指定端口启动
hula-mcp start --port 3200
# 设置集成到Cursor
hula-mcp setup http://localhost:3100 --client cursor
# 设置集成到Windsurf
hula-mcp setup http://localhost:3100 --client windsurf
mcp-server/
├── src/
│ ├── resources/ # MCP 资源定义
│ │ ├── chat.ts # 聊天相关资源
│ │ ├── group.ts # 群组相关资源
│ │ └── user.ts # 用户相关资源
│ ├── tools/ # MCP 工具定义
│ │ └── index.ts # 工具集合
│ ├── types.ts # 类型定义
│ ├── cli.ts # 命令行工具
│ └── index.ts # 入口文件
├── package.json # 项目配置
└── tsconfig.json # TypeScript 配置
MCP 资源类似于 REST API 中的 GET 端点,用于提供数据:
users://list
- 获取所有用户列表users://{userId}
- 获取特定用户详情users://online
- 获取在线用户列表users://search?q={query}
- 搜索用户users://{userId}/conversations
- 获取用户的所有会话users://{userId}/unread
- 获取用户的未读消息数users://{userId}/groups
- 获取用户所在的群组
groups://list
- 获取所有群组列表groups://{groupId}
- 获取特定群组详情groups://{groupId}/members
- 获取群组成员groups://{groupId}/recent-messages
- 获取群组的最近消息
conversations://{conversationId}/messages
- 获取特定会话的消息
MCP 工具类似于 REST API 中的 POST 端点,用于执行操作:
send-message
- 发送消息mark-message-read
- 标记消息为已读create-group
- 创建群组search-messages
- 搜索消息update-user-status
- 更新用户状态
HuLa MCP 服务可以与支持 MCP 的 AI 助手集成,如 Cursor 和 Windsurf。
要将 HuLa MCP 服务发布到 NPM,请按照以下步骤操作:
- 确保你有 NPM 账号,并已登录:
npm login
- 构建并发布包:
# 构建项目
npm run build
# 发布到 NPM
npm publish
有两种方式可以将 HuLa MCP 服务集成到 Cursor:
# 全局安装 hula-mcp-server
npm install -g hula-mcp-server
# 启动 MCP 服务
hula-mcp start
# 在另一个终端窗口中设置集成
hula-mcp setup http://localhost:3100 --client cursor
- 启动 MCP 服务:
npm run start
# 或使用 pnpm
pnpm run start
- 创建配置文件:
在 ~/.cursor/mcp/
目录下创建 mcp-config.json
文件:
{
"name": "HuLa-MCP",
"version": "1.0.0",
"description": "HuLa即时通讯应用的MCP服务",
"baseUrl": "http://localhost:3100",
"endpoints": {
"sse": "/sse",
"messages": "/messages"
}
}
同样有两种方式可以将 HuLa MCP 服务集成到 Windsurf:
# 全局安装 hula-mcp-server
npm install -g hula-mcp-server
# 启动 MCP 服务
hula-mcp start
# 在另一个终端窗口中设置集成
hula-mcp setup http://localhost:3100 --client windsurf
- 启动 MCP 服务:
npm run start
# 或使用 pnpm
pnpm run start
- 创建配置文件:
在 ~/.windsurf/mcp/
目录下创建 mcp-config.json
文件:
{
"name": "HuLa-MCP",
"version": "1.0.0",
"description": "HuLa即时通讯应用的MCP服务",
"baseUrl": "http://localhost:3100",
"endpoints": {
"sse": "/sse",
"messages": "/messages"
}
}
要添加新的资源,请在 src/resources
目录下创建或修改相应的文件,并使用 server.resource()
方法注册资源。
要添加新的工具,请在 src/tools/index.ts
文件中使用 server.tool()
方法注册工具。
欢迎贡献代码、报告问题或提出改进建议。请遵循以下步骤:
- Fork 本仓库
- 创建您的特性分支 (
git checkout -b feature/amazing-feature
) - 提交您的更改 (
git commit -m 'Add some amazing feature'
) - 推送到分支 (
git push origin feature/amazing-feature
) - 开启一个 Pull Request
本项目采用 Apache 2.0 许可证 - 详情请参阅 LICENSE 文件。