HamoniKR社区MCP服务器
用于口琴社区的模型上下文协议(MCP)服务器。通过该服务器,其他AI程序可以轻松使用口琴社区的帖子管理功能。
主要功能
- 登录管理:自动登录和会话管理
- 创建帖子:在公告和Q&A公告栏中撰写文章
- 查看帖子:查看特定帖子的内容、作者、创建日期等
- 写评论:在特定帖子中添加评论
- 修改帖子:修改现有帖子
- 删除帖子:删除帖子
- 检查状态:查看登录状态和会话信息
安装和设置
git clone https://github.com/chaeya/hamonikr-community-mcp.git
cd hamonikr-community-mcp
# 1. 설치 (Playwright 브라우저 포함 자동 설치)
npm install
# 2. 빌드
npm run build
# 3. 시작 (기본적으로 SSE 서버)
npm start设置用户凭据
为了安全起见,建议使用环境变量:
export HAMONIKR_USERNAME="your-email@example.com"
export HAMONIKR_PASSWORD="your-password"或者 .env 创建文件:
echo "HAMONIKR_USERNAME=your-email@example.com" > .env
echo "HAMONIKR_PASSWORD=your-password" >> .env
chmod 600 .env重要: config/default.json出于安全考虑,不建议直接在中输入凭据。
有关详细设置,请参阅 docs/credentials-setup.md请参考。
使用方法
MCP客户端设置
此服务器有两种可用方式:
- stdio方式:在本地直接运行(Claude Code、Cursor等)
- SSE方式:作为远程服务器运行(Web客户端等)
1.stdio方式(本地使用)
在Claude Code中设置:
- 打开Claude Code配置文件:
# macOS
~/.claude/claude_code_config.json
# Windows
%USERPROFILE%\.claude\claude_code_config.json
# Linux
~/.claude/claude_code_config.json- 添加以下设置:
{
"mcpServers": {
"hamonikr-community": {
"command": "node",
"args": ["/full/path/to/hamonikr-community-mcp/dist/index.js"],
"env": {
"HAMONIKR_USERNAME": "your-email@example.com",
"HAMONIKR_PASSWORD": "your-password"
}
}
}
}在Cursor中设置:
- Cursor设置文件位置:
# macOS
~/Library/Application Support/Cursor/User/mcp_servers.json
# Windows
%APPDATA%\Cursor\User\mcp_servers.json
# Linux
~/.config/Cursor/User/mcp_servers.json- 设置内容:
{
"mcpServers": {
"hamonikr-community": {
"command": "node",
"args": ["/full/path/to/hamonikr-community-mcp/dist/index.js"],
"env": {
"HAMONIKR_USERNAME": "your-email@example.com",
"HAMONIKR_PASSWORD": "your-password"
}
}
}
}Continue等其他MCP支持工具:
大多数MCP客户端使用类似的格式:
{
"mcpServers": {
"hamonikr-community": {
"command": "node",
"args": ["/absolute/path/to/hamonikr-community-mcp/dist/index.js"],
"env": {
"HAMONIKR_USERNAME": "your-email@example.com",
"HAMONIKR_PASSWORD": "your-password"
}
}
}
}注意事项:
- 必须使用绝对路径(例如:
/home/username/hamonikr-community-mcp/dist/index.js) - 首先
npm install && npm run build需要运行 - 将凭据设置为环境变量(安全建议)
2.SSE方式(远程使用)
服务器启动:
# 기본 시작 (SSE 모드)
npm start
# 개발 모드
npm run dev
# stdio 모드로 시작하려면
npm run start:stdio客户端连接:
- SSE端点:
http://localhost:5678/sse - 健康检查:
http://localhost:5678/health
设置环境变量:
export PORT=5678
export CORS_ORIGIN="*" # 또는 특정 도메인
export HAMONIKR_USERNAME="your-email@example.com"
export HAMONIKR_PASSWORD="your-password"Web客户端测试: 在浏览器中 test-sse-client.html可以打开测试SSE连接。
在其他MCP客户端上使用SSE:
// JavaScript 예제
const eventSource = new EventSource('http://localhost:5678/sse');
eventSource.onmessage = function(event) {
const data = JSON.parse(event.data);
console.log('MCP Response:', data);
};可用工具(Tools)
1. hamonikr_登录
登录口琴社区。
参数:无
示例:
{
"name": "hamonikr_login",
"arguments": {}
}2.hamonikr_create_post
创建新帖子。
参数:
title:帖子标题(字符串,必需)content:帖子内容(字符串,必需)board:公告栏类型(字符串,必需)-notice或者qna
示例:
{
"name": "hamonikr_create_post",
"arguments": {
"title": "하모니카 사용 팁",
"content": "유용한 하모니카 사용 팁을 공유합니다.",
"board": "qna"
}
}3.哈莫尼克备忘录
向特定帖子添加评论。
参数:
postUrl:要回复的帖子的URL(字符串,必需)content:评论内容(字符串,必需)
示例:
{
"name": "hamonikr_add_comment",
"arguments": {
"postUrl": "https://hamonikr.org/hamoni_board/144520",
"content": "유용한 정보 감사합니다!"
}
}4.hamonikr_edit_post
修改现有帖子。
参数:
postUrl:要修改的帖子的URL(字符串,必需)title:新标题(字符串,可选)content:新增内容(字符串,可选)
示例:
{
"name": "hamonikr_edit_post",
"arguments": {
"postUrl": "https://hamonikr.org/hamoni_board/144520",
"title": "수정된 제목",
"content": "수정된 내용입니다."
}
}5.hamonikr_get_post
查看特定帖子的内容。
参数:
postUrl:要查询的帖子的URL(字符串,必需)
示例:
{
"name": "hamonikr_get_post",
"arguments": {
"postUrl": "https://hamonikr.org/hamoni_board/144520"
}
}响应示例:
{
"success": true,
"message": "게시글 내용을 성공적으로 조회했습니다.",
"post": {
"title": "윈도우의 음성입력 기능 처름 하모니카에서도 음성입력이 가능할까요?",
"content": "윈도에서는 컨트롤 + H 를 누르면 이렇게 음성 입력 창이 나타나고 음성 입력이 가능하게 됩니다. 하모니카에서도 음성입력이 가능할까요?",
"author": "옥포정",
"date": "2025.06.25 22:39",
"views": 259,
"comments": 3,
"url": "https://hamonikr.org/hamoni_board/144520"
}
}6.hamonikr_delete_post
删除帖子。
参数:
postUrl:要删除的帖子的URL(字符串,必需)
示例:
{
"name": "hamonikr_delete_post",
"arguments": {
"postUrl": "https://hamonikr.org/hamoni_board/144520"
}
}7. hamonikr_check_status
检查当前登录状态和会话信息。
参数:无
示例:
{
"name": "hamonikr_check_status",
"arguments": {}
}API响应格式
所有工具都返回以下格式的响应:
成功响应
{
"success": true,
"message": "작업이 성공적으로 완료되었습니다.",
"postUrl": "https://hamonikr.org/hamoni_board/144520",
"postId": "144520"
}失败响应
{
"success": false,
"message": "오류 메시지가 여기에 표시됩니다."
}技术细节
- 语言:TypeScript
- 浏览器自动化:剧作家
- 协议:模型上下文协议(MCP)
- 支持Node.js版本:18.0.0或更高版本
项目结构
hamonikr-community-mcp/
├── src/
│ ├── index.ts # MCP 서버 진입점 (stdio)
│ ├── sse-server.ts # SSE 서버 진입점
│ ├── hamonikr-client.ts # 하모니카 커뮤니티 클라이언트
│ ├── browser-manager.ts # 브라우저 관리자
│ └── types.ts # 타입 정의
├── config/
│ └── default.json # 설정 파일
├── docs/ # 문서
├── dist/ # 컴파일된 JavaScript 파일
├── test-sse-client.html # SSE 테스트 클라이언트
├── package.json
├── tsconfig.json
└── README.md开发和测试
运行开发模式
# SSE 서버 개발 모드
npm run dev
# stdio 서버 개발 모드
npm run dev:stdio运行测试
npm test构建
npm run build安全注意事项
- 安全地管理存储在配置文件中的凭据
- 建议在生产环境中使用环境变量管理凭据
- 此工具仅适用于授权用户
许可证
MIT许可证
贡献
- 分叉存储库
- 创建要素分支
- 提交您的更改
- 推到分支
- 创建拉取请求
支持
如果出现问题或功能要求,请创建Issue。
