Hermes MCP Server
Enables AI clients to communicate with Hermes messaging middleware in real-time using MCP protocol, supporting conversations, messages, attachments, and permissions management.
README
Hermes MCP Server
基于 MCP(Model Context Protocol)的轻量级服务端程序,实现 AI 客户端与 Hermes 消息中间件之间的双向实时通信。
架构
┌─────────────────┐ Streamable HTTP ┌──────────────────┐
│ MCP Client │ ←─────────────────→ │ MCP Server │
│ (Claude/AI) │ POST /mcp (请求) │ (Node.js:9120) │
│ │ GET /mcp (SSE推送) └────────┬─────────┘
└─────────────────┘ DELETE /mcp (终止) │
┌─────────┼─────────┐
│ │ │
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌──────┐
│Hermes │ │SQLite │ │缓存 │
│HTTP API│ │state.db│ │(内存)│
│:9119 │ │轮询 │ │ │
└────────┘ └────────┘ └──────┘
- MCP 客户端 → MCP Server:公网 9120 端口,Bearer API Key 认证
- MCP Server → Hermes:仅内网
127.0.0.1:9119(不走公网) - 事件推送:200ms 轮询 Hermes 的 SQLite
state.db,变化时通过 SSE 推送
MCP 工具(10 个)
| 工具 | 功能 |
|---|---|
conversations_list |
列出所有活跃会话(支持平台/关键词过滤) |
conversation_get |
获取会话详情 |
messages_read |
读取消息历史 |
attachments_fetch |
获取消息附件 |
events_poll |
轮询新事件 |
events_wait |
长轮询等待事件 |
messages_send |
发送消息到平台 |
channels_list |
列出可用频道 |
permissions_list_open |
列出待审批请求 |
permissions_respond |
响应审批 |
资源与提示词
资源:
hermes://status— Hermes 运行状态hermes://channels— 已连接频道列表hermes://sessions— 活跃会话列表
提示词:
summarize-conversations— 总结所有会话状态check-health— Hermes 健康检查
部署
1. 环境要求
- Node.js 20+
- Hermes Agent 已安装并运行
- 端口 9120 可用
2. 安装
git clone https://github.com/Swcmb/hermes-mcp-server.git
cd hermes-mcp-server
npm install
3. 配置
cp .env.example .env
# 编辑 .env 填写实际值
关键配置项:
| 变量 | 说明 | 默认值 |
|---|---|---|
MCP_PORT |
监听端口 | 9120 |
MCP_API_KEY |
API Key(客户端认证用) | 必填 |
HERMES_API_URL |
Hermes API 地址 | http://127.0.0.1:9119 |
HERMES_GATEWAY_TOKEN |
Hermes Gateway Token | 从 Hermes .env 读取 |
HERMES_STATE_DB |
state.db 路径 | /home/admin/.hermes/state.db |
MCP_MAX_SESSIONS |
最大并发会话 | 5 |
4. 启动
# 前台运行
npm start
# 或用 systemd(推荐生产环境)
sudo cp hermes-mcp-server.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now hermes-mcp-server
5. 开放端口
在阿里云安全组中开放 TCP 9120 端口。
客户端配置
Claude Desktop
在 claude_desktop_config.json 中添加:
{
"mcpServers": {
"hermes": {
"url": "http://YOUR_SERVER_IP:9120/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
其他 MCP 客户端
MCP 端点:http://YOUR_SERVER_IP:9120/mcp
认证头:Authorization: Bearer YOUR_API_KEY
测试
npm test
低资源优化
--max-old-space-size=256:限制 Node.js 堆内存 256MBnice -n 19+ionice -c 3:最低 CPU/IO 优先级- 200ms 轮询 + mtime 短路:state.db 无变化时零开销
- 最大 5 个并发 SSE 会话
- 进程内缓存(60s TTL)减少重复请求
恢复
如果服务异常,检查:
# 服务状态
systemctl status hermes-mcp-server
# 日志
journalctl -u hermes-mcp-server -f
# 手动测试
curl -H "Authorization: Bearer YOUR_KEY" http://127.0.0.1:9120/mcp -X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}},"id":1}'
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.