Token导航 LogoToken导航TokenDH.com
Hazelcast MCP logo
AI代理未说明官方级别未说明来源级核验

Hazelcast MCP

MCP Server

一个开源的Model Context Protocol (MCP)服务器,使AI代理能够通过自然语言查询、写入和管理Hazelcast集群中的所有主要数据结构。

工具数

57

提示词数

0

GitHub Stars

2

资源数

0
集群管理JavaClaude数据管理Claude DesktopClaudeCursorVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

bhmortim

提供方

bhmortim

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Hazelcast客户端MCP服务器

开源 模型上下文协议(MCP) 服务器,使AI代理能够完全访问您的Hazelcast集群。Claude、Cursor、VS Code Copilot和自定义LangChain代理可以查询、编写和管理 每个主要的Hazelcast数据结构 通过自然语言。

57工具 涵盖了IMap、IQueue、IList、ISet、MultiMap、AtomicLong、ITopic、Ringbuffer、SQL和VectorCollection,以及集群发现、访问控制和三种传输选项。

Docker快速入门

零设置,包括演示数据:

# Linux / macOS
HAZELCAST_MCP_TRANSPORT=sse docker compose up --build

# Windows PowerShell
$env:HAZELCAST_MCP_TRANSPORT="sse"; docker compose up --build

这将启动一个启用Jet的Hazelcast节点,用实时流媒体馈送种子财务演示数据,并在以下位置启动MCP服务器 http://localhost:3000/mcp.

连接克劳德桌面

Claude Desktop使用stdio,因此我们与 mcp-remote (要求 18+).

添加到您的Claude Desktop配置中:

操作系统配置文件路径
macOS~/Library/Application Support/Claude/claude_desktop_config.json
窗户%APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "hazelcast": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://localhost:3000/mcp"]
    }
  }
}

重新启动克劳德桌面。单击锤子图标以验证是否显示57个Hazelcast工具。

故障排除:

  • 没有锤子图标? 确保Docker正在运行,MCP服务器健康(docker compose ps).
  • JSON解析错误? 验证时间 Jsonlin.com.常见错误:配置块之间缺少逗号。
  • 视窗 HAZELCAST_MCP_TRANSPORT=sse 不承认? 使用PowerShell $env: 语法如上所示。

特性

工具(57次操作)

群集发现

工具说明
list_structures列出集群中的每个分布式对象——映射、队列、列表、集合、主题等。这是“我的集群中有什么?”工具。

IMap(14个工具)

Hazelcast核心键值存储的完整CRUD和高级操作。

工具说明
map_get按键获取单个条目
map_put放置键值对(支持JSON值)
map_delete按键删除条目
map_get_all一次批量获取多个密钥
map_put_all批量放置多个条目
map_size获取条目数
map_keys列出所有密钥(带可选限制)
map_values列出所有值(带可选限制)
map_contains_key检查是否存在密钥
map_clear删除所有条目(需要 clear: true 在配置中)
map_put_if_absent原子插入——仅在键不存在时写入
map_replace原子替换,可选比较和设置(旧值检查)
map_entry_set使用可选的服务器端SQL谓词过滤进行批量键值检索

SQL(4个工具)

工具说明
sql_execute使用参数化查询和分页运行SELECT、INSERT、UPDATE、DELETE
sql_create_mapping为IMap创建SQL映射(启用针对它的SQL查询)
sql_drop_mapping删除SQL映射
sql_show_mappings列出所有活动的SQL映射

IQueue(6个工具)

用于任务处理和工作分配的分布式FIFO队列。

工具说明
queue_offer将项目添加到队列末尾
queue_poll移除并归还头部物品
queue_peek查看头部项目而不将其移除
queue_size获取队列中的项目数
queue_drain一次删除多个项目(批量出列)
queue_clear删除所有项目(必需 clear: true)

IList(5个工具)

具有基于索引访问的分布式有序列表。

工具说明
list_add添加一个项目(可选地在特定索引处)
list_get按索引获取项目
list_remove按索引删除项目
list_size获取列表长度
list_sublist按索引获取一系列项目(从/到)

ISet(5个工具)

具有唯一性保证的分布式集合。

工具说明
set_add添加项目(如果已存在,则无操作)
set_remove删除项目
set_contains检查项目是否存在
set_size获取设定尺寸
set_get_all获取所有项目

MultiMap(7个工具)

每个键支持多个值的映射——非常适合标签、类别和一对多关系。

工具说明
multimap_put为一个键添加一个值(允许每个键有多个值)
multimap_get获取一个键的所有值
multimap_remove删除键的特定值或所有值
multimap_keys列出所有密钥
multimap_values列出所有值
multimap_size所有按键的总输入计数
multimap_value_count计算特定键的值

AtomicLong(5个工具)

通过CP子系统的分布式原子计数器——可线性化,在整个集群中保持一致。

工具说明
atomic_get获取当前值
atomic_set设置为特定值
atomic_increment原子递增1并返回新值
atomic_decrement原子递减1并返回新值
atomic_compare_and_setCAS操作-仅当当前值与预期匹配时才设置新值
注: AtomicLong需要 CP子系统 在您的Hazelcast集群上启用。如果未配置CP,这些工具会优雅地报告错误。

ITopic(2个工具)

分布式发布/订阅消息。

工具说明
topic_publish向所有订阅者发布消息(JSON或纯文本)
topic_info获取主题统计信息

环形缓冲区(5个工具)

固定容量循环缓冲区——非常适合审计日志、事件流和最近的历史查询。

工具说明
ringbuffer_add添加项目(满时覆盖最旧的项目)
ringbuffer_read按序列号读取单个项目
ringbuffer_read_many从起始序列中读取一批项目
ringbuffer_size当前存储的项目数
ringbuffer_capacity环形缓冲区的最大容量

矢量集合(4个工具)

语义相似性搜索(需要Hazelcast 5.7+/-6.0+和向量模块)。

工具说明
vector_search通过向量相似度查找最近邻
vector_put存储带有向量嵌入的文档
vector_get按关键字检索文档
vector_delete删除文档

资源(只读集群上下文)

  • hazelcast://cluster/info --群集名称、版本、成员列表
  • hazelcast://cluster/health --连接状态和延迟
  • hazelcast://structures/list --所有类型和大小的分布式对象

提示(可重用的交互模式)

  • cache-lookup --检查缓存命中率/未命中率并给出解释
  • data-exploration --发现并采样集群数据
  • vector-search --语义相似度搜索工作流程

运输

  • 标准 --本地AI客户端的标准MCP传输(Claude Desktop、Cursor)
  • 流式HTTP --网络可访问MCP的推荐HTTP传输(协议2025-06-18)
  • SSE(传统) --较旧的HTTP服务器发送事件传输(协议2024-11-05)

示例提示

这些提示适用于Claude Desktop(或任何MCP客户端),并展示了全方位的工具。Claude会自动将自然语言翻译成正确的工具调用。

群集发现

"What data structures are in my Hazelcast cluster?"
"Show me everything in the cluster — maps, queues, lists, all of it"

地图和SQL(适用于演示数据)

"Get AAPL from the market-data map"
"Show me all keys in the trades map"
"Find Tesla trades: SELECT * FROM trades WHERE symbol='TSLA'"
"What are the top 5 trades by notional value?"
"How many buy vs sell trades? Group by side."
"Compare risk metrics for all three accounts"

队列

"Create a queue called 'work-items' and add three tasks to it"
"How many items are in the work-items queue?"
"Poll the next item from work-items"
"Peek at the head of the queue without removing it"
"Drain all remaining items"

列表和集合

"Create a list called 'watchlist' with AAPL, GOOGL, TSLA, NVDA"
"What's the third item in the watchlist?"
"Get items 0 through 3 from the watchlist"
"Create a set called 'active-symbols' and add AAPL, MSFT, AAPL — verify AAPL isn't duplicated"
"Is AMZN in the active-symbols set?"

多重映射

"Create a multimap called 'user-roles' — give user 'brian' the roles admin, editor, and viewer"
"What roles does brian have?"
"How many roles does brian have vs user 'guest'?"
"Remove the viewer role from brian"
"List all keys and values in user-roles"

原子计数器

"Create an atomic counter called 'request-count' starting at 0"
"Increment request-count 5 times and show the final value"
"Use compare-and-set: if request-count is 5, set it to 1000"

主题和Ringbuffers

"Publish an alert to the 'notifications' topic: {\"type\": \"warning\", \"message\": \"High CPU usage\"}"
"Add 5 log entries to a ringbuffer called 'audit-log'"
"Read the last 3 entries from audit-log"
"What's the capacity of the audit-log ringbuffer?"

SQL-DDL

"Show all SQL mappings in the cluster"
"Create a SQL mapping for the trades map with varchar keys and json values"
"Now query it: SELECT * FROM trades LIMIT 5"
"Drop the trades mapping"

端到端工作流

"Build me a job processing system: create a 'jobs' queue with 5 tasks, a 'completed' set to
track finished work, and a 'jobs-processed' counter. Then process 2 jobs — poll from the queue,
add to the completed set, and increment the counter each time."

"Set up a market alert system: create a 'price-alerts' multimap where each symbol can have
multiple alert thresholds. Add alerts for AAPL at 150 and 200, TSLA at 250. Then check what
alerts exist for AAPL."

"Audit everything: list all structures in the cluster, check the sizes of each map, show me the
queue depths, and give me a summary of what's in the cluster."

演示数据

Docker快速入门包括一个带有实时流媒体提要的金融交易数据集。

静态种子数据

IMap内容记录
market-data票务符号(AAPL, GOOGL, MSFT, ...)出价、询问、最后、打开、高、低、音量、变化、变化Pct12个符号
trades贸易ID(TRD-00001TRD-00080)符号、侧面、数量、价格、名义、账户、状态~80笔交易
positions账户符号键净数量、侧面、平均成本、市价、未变现PnL~15个头寸
risk-metrics帐户ID(ACCT-HF-001, ACCT-HF-002, ACCT-AM-003)总风险敞口、VaR95、VaR99、夏普比率、最大提款、贝塔3个账户

符号: AAPL、GOOGL、MSFT、AMZN、TSLA、JPM、GS、NVDA、META、NFLX、BAC、INTC

实时数据馈送

IMapAPI密钥?间隔
cryptoCoinGecko30s
stocks阿尔法优势是(免费)5m
news新闻API是(免费)10m
market-insights喷射管道(内部)5m

加密货币开箱即用。 股票和新闻是可选的:

ALPHA_VANTAGE_API_KEY=your_key NEWS_API_KEY=your_key HAZELCAST_MCP_TRANSPORT=sse docker compose up --build

免费API密钥: 阿尔法优势 (每天需要25次)· 新闻API (每天100个要求)

快速入门(无Docker)

先决条件

  • Java 17+
  • 正在运行的Hazelcast集群(建议5.5+/5.6)

构建

./mvnw clean package -DskipTests

配置

创建 hazelcast-mcp.yaml:

hazelcast:
  cluster:
    name: "dev"
    members:
      - "127.0.0.1:5701"

mcp:
  server:
    name: "hazelcast-mcp-server"
    version: "1.0.0"
    transport: "stdio"    # or "sse" for Streamable HTTP, "sse-legacy" for legacy SSE
    http:
      port: 3000
      host: "0.0.0.0"

access:
  mode: "all"
  operations:
    sql: true
    write: true
    clear: false

使用Claude Desktop(stdio)运行

{
  "mcpServers": {
    "hazelcast": {
      "command": "java",
      "args": ["-jar", "/path/to/hazelcast-mcp-server-1.0.0-SNAPSHOT.jar"],
      "env": {
        "HAZELCAST_MCP_CLUSTER_NAME": "dev",
        "HAZELCAST_MCP_CLUSTER_MEMBERS": "127.0.0.1:5701"
      }
    }
  }
}

使用Claude Desktop运行(可流式HTTP)

# Start server
HAZELCAST_MCP_TRANSPORT=sse java -jar hazelcast-mcp-server-1.0.0-SNAPSHOT.jar
{
  "mcpServers": {
    "hazelcast": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://localhost:3000/mcp"]
    }
  }
}

使用光标运行

添加 .cursor/mcp.json:

{
  "mcpServers": {
    "hazelcast": {
      "command": "java",
      "args": ["-jar", "/path/to/hazelcast-mcp-server-1.0.0-SNAPSHOT.jar"]
    }
  }
}

Docker+stdio(替代方案)

{
  "mcpServers": {
    "hazelcast": {
      "command": "docker",
      "args": ["exec", "-i", "hazelcast-mcp-server",
               "java", "-Xmx512m", "-cp", "hazelcast-mcp-server.jar",
               "com.hazelcast.mcp.server.HazelcastMcpServer",
               "/app/hazelcast-mcp.yaml"]
    }
  }
}

配置参考

环境变量

变量描述默认值
HAZELCAST_MCP_CLUSTER_NAME群集名称dev
HAZELCAST_MCP_CLUSTER_MEMBERS逗号分隔的成员地址127.0.0.1:5701
HAZELCAST_MCP_SECURITY_USERNAME身份验证用户名(空)
HAZELCAST_MCP_SECURITY_PASSWORD身份验证密码(空)
HAZELCAST_MCP_SECURITY_TOKEN基于令牌的身份验证(空)
HAZELCAST_MCP_TRANSPORT运输: stdio, sse,或 sse-legacystdio
HAZELCAST_MCP_ACCESS_MODE访问控制: all, allowlist, denylistall
ALPHA_VANTAGE_API_KEYAlpha Vantage API实时股票数据密钥(已禁用)
NEWS_API_KEY实时财经新闻的NewsAPI密钥(已禁用)

访问控制

限制哪些数据结构和操作暴露给AI代理:

access:
  mode: "allowlist"          # "all" (default), "allowlist", or "denylist"
  allowlist:
    maps: ["session-cache", "user-profiles"]
    vectors: ["document-embeddings"]
    queues: ["task-queue"]
    lists: []                # empty = allow all
    sets: []
    multimaps: []
    topics: []
    ringbuffers: []
    atomics: []
  denylist:                  # used when mode is "denylist"
    maps: ["internal-config"]
    queues: ["system-queue"]
  operations:
    sql: true
    write: false             # read-only mode
    clear: false             # destructive ops require explicit enable

建筑

AI Agent (Claude, Cursor, etc.)
    │ MCP Protocol (stdio or Streamable HTTP)
    ▼
Hazelcast Client MCP Server
    ├── MapTools         (14)  — IMap CRUD + atomic ops + predicate queries
    ├── SqlTools          (4)  — SQL DML/DDL with parameterized queries
    ├── QueueTools        (6)  — IQueue offer/poll/drain/clear
    ├── CollectionTools  (10)  — IList + ISet operations
    ├── MultiMapTools     (7)  — Multi-value map operations
    ├── AtomicTools       (5)  — CP Subsystem atomic counters
    ├── TopicTools        (2)  — Pub/sub messaging
    ├── RingbufferTools   (5)  — Circular buffer read/write
    ├── VectorTools       (4)  — Semantic similarity search
    ├── ClusterResources  (3)  — Read-only cluster context
    ├── AccessController       — Per-structure allowlist/denylist + operation gating
    └── Transport Layer        — stdio / Streamable HTTP / legacy SSE (Jetty 12)
            │ Hazelcast Binary Protocol
            ▼
    Hazelcast Cluster (5.5+)

技术栈

  • 语言:Java 17+
  • MCP-SDK: MCP Java SDK v1.0.0 GA(杰克逊2.x)
  • MCP协议:2025-06-18(流式HTTP),2024-11-05(传统SSE)
  • Hazelcast客户端:5.6(与5.5+兼容)
  • 运输:stdio(本地),通过嵌入式Jetty 12流式传输HTTP/传统SSE
  • 构建:Maven通过胖JAR maven-shade-plugin
  • 码头工人:多阶段构建(eclipse-temurin:17),撰写快速入门
  • 实时数据:CoinGecko、Alpha Vantage、与Hazelcast Jet合作的NewsAPI
  • 经过测试:克劳德桌面+ mcp-remote 0.1.37(Windows和macOS)

已知问题

  • Jackson 3.x类路径冲突。 MCP SDK 1.0.0可传递地包括 mcp-json-jackson3 这带来了杰克逊3.x,导致 NoSuchFieldError: POJO 在运行时。本项目不包括 mcp-json-jackson3pom.xml 并使用 mcp-json-jackson2 只有。如果您进行分叉或升级,请保留此排除。
  • AtomicLong需要CP子系统。 如果集群上未启用CP,则5个原子工具将返回描述性错误消息,而不是默默失败。

许可证

Apache许可证2.0

目录标签

目录标签

集群管理JavaClaude数据管理分布式计算本地部署AI代理自然语言处理

支持客户端

Claude DesktopClaudeCursorVS Code

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

57

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP