使用说明
WildFly MCP服务器
一只野苍蝇 MCP服务器 与您的AI聊天机器人集成,以便使用自然语言与WildFly服务器进行交互。 这个MCP服务器是一个Java夸克脂肪罐应用程序,您可以在聊天机器人MCP配置中配置它。
此MCP服务器(AI术语中的工具)可帮助您使用自然语言对运行中的WildFly服务器进行故障排除。 您可以提出以下问题:
Hi, could you connect to the WildFly server and get the content of the log file, analyze it and check for errors?
使用jbang
jbang的,是使用WildFly MCP服务器的最简单方法。
-
安装 jbang的.
-
将WildFly MCP服务器配置添加到您的MCP客户端配置中,例如:
{
"mcpServers": {
"wildfly": {
"command": "jbang",
"args": ["-Dorg.wildfly.user.name=chatbot-user",
"-Dorg.wildfly.user.password=chatbot-user",
"org.wildfly.mcp:wildfly-mcp-server-stdio:1.0.0.Alpha3:runner"]
}
}
}
-
对于 克劳德·艾,在Fedora上,将其添加到文件中
~/.config/Claude/claude_desktop_config.json. -
对于 MCP主机,添加到名为的文件
mcp.json并致电:./mcphost_Linux_x86_64/mcphost --config [path to the file]/mcp.json --model ollama:llama3.1:8b
注意:请确保已添加一个用户,该用户将由MCP服务器用于对WildFly服务器进行身份验证。例如: $JBOSS_HOME/bin/add-user.sh -u chatbot-user -p chatbot-user
通过Smithery安装
通过以下方式自动安装克劳德桌面版WildFly MCP服务器 史密瑟里:
npx -y @smithery/cli install @wildfly-extras/wildfly-mcp-server --client claude
管理员用户凭据
您可以使用系统属性在tool shell命令中设置用于保护WildFly服务器的用户名和密码 -Dorg.wildfly.user.name=<user name> 和 -Dorg.wildfly.user.password=<user password>
注意:使用容器图像时, WILDFLY_MCP_SERVER_USER_NAME 和 WILDFLY_MCP_SERVER_USER_PASSWORD 可以使用env变量。
{
"mcpServers": {
"wildfly": {
"command": "java",
"args": ["-Dorg.wildfly.user.name=chatbot-user",
"-Dorg.wildfly.user.password=chatbot-user",
"-jar",
"[path to the repository]/wildfly-mcp-server/stdio/target/wildfly-mcp-server-stdio-runner.jar"]
}
}
}
注意:对于SSE服务器,您可以在启动服务器时设置相同的系统属性。
关于安全的说明
不建议允许聊天机器人完全访问您的WildFly服务器。虽然您可以调用任何WildFly管理操作, 这必须小心。特别是当聊天机器人连接到公共LLM时,不应暴露任何有感知的信息。
当聊天机器人与本地管理的模型交互时(例如:本地管理 ollama 默认模型),这不是问题。
无论如何,我们建议您从 WildFly RBAC 配置并定义一个名为的用户 chatbot-user 与角色 Monitor.
确保首先通过调用添加用户: $JBOSS_HOME/bin/add-user.sh -p chatbot-user -u chatbot-user
要启用RBAC,您可以使用WildFly CLI命令行并调用以下命令:
/core-service=management/access=authorization:write-attribute(name=provider,value=rbac)
reload
/core-service=management/access=authorization/role-mapping=Monitor:add
/core-service=management/access=authorization/role-mapping=Monitor/include=chatbot-user:add(name=chatbot-user,type=USER)
当用户使用 Monitor 如果使用角色,以下工具将失败:
-
enableWildFlyLoggingCategory工具。 -
disableWildFlyLoggingCategory工具。
此外,调用时不允许进行写操作 invokeWildFlyCLIOperation 工具。
关于敏感信息的说明
-
当以下情况发生时,服务器配置文件中的任何敏感信息都不会被暴露 使用访问服务器
chatbot-user(实际上,任何具有Monitor角色)。 -
WildFly服务器不记录敏感信息。确保在WildFly服务器中运行的部署没有记录可能暴露的敏感信息。
默认WildFly服务器主机和端口
如果没有提供主机, localhost 使用。如果没有提供端口, 9990 使用。
您可以使用系统属性配置默认主机和端口 -Dorg.wildfly.host.name=<host name> 和 -Dorg.wildfly.port=<port>
配置WildFly MCP SSE服务器
访问 WildFly MCP SSE服务器 使用OIDC(OAuth2“资源所有者密码凭据授予”)进行保护。
在以下配置中(来自 WildFly聊天机器人),一个名为 wildfly-mcp-server 其中包含一个名为的客户端 token-service 用于对用户进行身份验证。
WildFly聊天机器人将提示您输入用户名和密码,然后用于从允许访问的密钥斗篷服务器检索令牌
发送到SSE MCP服务器。
{
"mcpSSEServers": {
"wildfly": {
"url": "http://localhost:8081/mcp/sse"
"providerUrl": "http://localhost:8180/realms/wildfly-mcp-server",
"clientId": "token-service"
}
}
}
SSE安全令牌配置
Keycloak服务器URL、客户端和可选密钥可以使用以下系统属性进行配置:
| 系统属性 | 描述 |
|---|---|
| quarkus.oidc.auth-server-url | 密钥斗篷服务器域的url,默认为 http://localhost:8180/realms/wildfly-mcp-server |
| quarkus.oidc.client-id | 客户端id,默认为 token-service |
| quarkus.oidc.credentials.secret | 客户端机密,可选,默认为 secret |
可用工具
getWildFly 状态
获取在提供的主机和端口参数上运行的WildFly服务器的状态。
输入:
host:运行WildFly服务器的主机名。可选,localhost默认情况下使用。port:WildFly服务器正在侦听的端口。可选,9990默认情况下使用。
获取JVMInfo
获取JVM(Java VM)信息(版本、输入参数、启动时间、正常运行时间、消耗的内存、消耗的cpu) JSON格式。Java VM是用于执行在提供的主机和端口参数上运行的WildFly服务器的VM。
输入:
host:运行WildFly服务器的主机名。可选,localhost默认情况下使用。port:WildFly服务器正在侦听的端口。可选,9990默认情况下使用。
getWildFlyLogFile内容
获取在提供的主机和端口参数上运行的WildFly服务器的日志文件内容。
输入:
host:运行WildFly服务器的主机名。可选,localhost默认情况下使用。port:WildFly服务器正在侦听的端口。可选,9990默认情况下使用。numberOfLines:要检索的日志文件行数(可选)。默认情况下,将检索最后200行。使用-1获取所有线路。
enableWildFlyLogging类别
为在提供的主机和端口参数上运行的WildFly服务器启用日志记录类别。
输入:
host:运行WildFly服务器的主机名。可选,localhost默认情况下使用。port:WildFly服务器正在侦听的端口。可选,9990默认情况下使用。loggingCategory:日志记录类别。可以是高级类别(例如security,web,http)或特定的记录器(io.undertow).
disableWildFlyLogging类别
禁用在提供的主机和端口参数上运行的WildFly服务器的日志记录类别。
输入:
host:运行WildFly服务器的主机名。可选,localhost默认情况下使用。port:WildFly服务器正在侦听的端口。可选,9990默认情况下使用。loggingCategory:日志记录类别。可以是高级类别(例如security,web,http)或特定的记录器(io.undertow).
getWildFlyPrometheusMetrics
获取在提供的主机和端口参数上运行的WildFly服务器的指标(采用prometheus格式)。
输入:
host:运行WildFly服务器的主机名。可选,localhost默认情况下使用。port:WildFly服务器正在侦听的端口。可选,9990默认情况下使用。
调用WildFlyCLIOperation
在提供的主机和端口参数上运行的WildFly服务器上调用单个WildFly CLI操作。
输入:
host:运行WildFly服务器的主机名。可选,localhost默认情况下使用。port:WildFly服务器正在侦听的端口。可选,9990默认情况下使用。
getWildFlyServer配置
获取在提供的主机和端口参数上运行的WildFly服务器的JSON格式的服务器配置。
输入:
host:运行WildFly服务器的主机名。可选,localhost默认情况下使用。port:WildFly服务器正在侦听的端口。可选,9990默认情况下使用。
browser部署
获取在提供的主机和端口参数上运行的WildFly服务器中部署的部署中包含的所有文件路径。返回值为JSON格式。
输入:
host:运行WildFly服务器的主机名。可选,localhost默认情况下使用。port:WildFly服务器正在侦听的端口。可选,9990默认情况下使用。name:可选部署名称。默认情况下,使用ROOT.war。
getDeployment文件内容
获取位于部署在WildFly服务器中的部署内的文件内容,该服务器在提供的主机和端口参数上运行。
输入:
host:运行WildFly服务器的主机名。可选,localhost默认情况下使用。port:WildFly服务器正在侦听的端口。可选,9990默认情况下使用。name:可选部署名称。默认情况下,使用ROOT.war。path:部署内容的必需路径。
部署WildFlyApplication
将应用程序部署到在提供的主机和端口参数上运行的WildFly服务器。如果同名应用程序已存在,它将被替换。
输入:
host:运行WildFly服务器的主机名。可选,localhost默认情况下使用。port:WildFly服务器正在侦听的端口。可选,9990默认情况下使用。deploymentPath:WAR文件或分解应用程序目录的绝对路径。必修的。name:部署名称。可选,默认为部署路径的最后一部分。runtime-name:部署的运行时名称。可选,默认为部署路径的最后一部分。
取消部署WildFly应用程序
从在提供的主机和端口参数上运行的WildFly服务器上取消部署应用程序。如果应用程序不存在,则返回错误。
输入:
host:运行WildFly服务器的主机名。可选,localhost默认情况下使用。port:WildFly服务器正在侦听的端口。可选,9990默认情况下使用。name:要取消部署的部署的名称。
关闭服务器
关闭正在运行的服务器。
输入:
host:运行WildFly服务器的主机名。可选,localhost默认情况下使用。port:WildFly服务器正在侦听的端口。可选,9990默认情况下使用。timeout:优雅的暂停。可选。
配置WildFlyServer用于部署
通过检查部署的内容来配置WildFly服务器或WildFly可引导JAR。然后将部署部署到准备运行的服务器上。
输入:
deploymentPath:指向现有部署的绝对路径。targetDirectory:指向不存在目录的绝对路径。请注意,父目录必须存在。addOns:要启用的Glow插件列表(WildFly CLI、openAPI、web控制台等)。可选。serverVersion:WildFly服务器版本。可选,默认情况下使用最新版本。spaces:启用的Glow空间用于发现孵化特征。可选。bootableJAR:生成WildFly可引导JAR。可选。
getWildFlyProvisioning插件
列出为提供的部署配置WildFly服务器时可以添加的WildFly附加组件(额外的服务器功能,如add-user.sh、jboss-cli.sh命令行、openAPI等)。 输入:
deploymentPath:指向现有部署的绝对路径。
getWildFlyDocumentationURL
获取WildFly文档URL
可用提示
提示是预先构建的复杂问题,您可以从聊天机器人中调用。
wildFly普罗米修斯指标图
根据WildFly prometheus指标构建表格和图表。
安全审计
WildFly,安全审计。分析服务器日志文件中的潜在攻击。
野生蝇资源消耗
WildFly和JVM资源消耗状态。分析消耗的资源。
wildFly部署错误
WildFly部署的应用程序,识别潜在的错误。
wildfly服务器状态
WildFly服务器,运行状态。
向WildFly服务器提问的示例
请确保首先启动WildFly服务器。
健康和资源消耗
- 你好,你能连接到WildFly服务器并获取服务器的状态吗?
- 嗨,WildFly服务器活动正常吗?
- 你好,你能再次连接到WildFly服务器并告诉我状态吗?
- 你好,你能连接到运行在本地主机和端口7777上的WildFly服务器并获取服务器的状态吗?
日志记录
- 你好,你能连接到在主机localhost和端口9990上运行的WildFly服务器,然后启用安全日志记录吗?
- 嗨,你能连接到WildFly服务器并获取日志文件的内容,分析并检查错误吗?
- 嗨,你能禁用安全日志吗?
指标
- 你能检索WildFly服务器的指标吗?
- 嗨,你能连接到WildFly服务器并检查可用内存和cpu使用情况吗?
- 嗨,你能连接到WildFly服务器并检查它是否有足够的可用内存来运行吗?
- 你好,你能连接到WildFly服务器并检查cpu使用率是否不太高吗?
构建WildFly MCP夸克超级罐
确保使用JDK21+。
mvn clean install
基于STDIO的mcp服务器jar是 stdio/target/wildfly-mcp-server-stdio-runner.jar.
基于SSE的mcp服务器jar是 sse/target/wildfly-mcp-server-sse-runner.jar.
