Palettemcp

Palettemcp

🚀 PaletteMCP - 十六进制颜色代码转名称转换器

PaletteMCP 是一个用 Go 语言编写的命令行工具,它可以接收十六进制颜色代码,并从预定义的 CSS 颜色列表中返回最匹配的颜色名称。输出以 JSON 格式提供,便于与其他脚本和系统集成。

🚀 快速开始

PaletteMCP 是一个强大且实用的工具,能够轻松将十六进制颜色代码转换为对应的颜色名称。以下是使用该工具的基本步骤和示例,助您快速上手。

✨ 主要特性

  • 可将任何十六进制颜色代码转换为最接近的颜色名称。
  • 以简洁、机器可读的 JSON 格式输出。
  • 包含全面的标准 CSS 颜色列表。
  • 拥有简单易用的命令行界面。

📦 安装指南

要使用此工具,您的系统需要安装 Go。

从源码构建

  1. 克隆仓库(如果您将其存储在 Git 仓库中)或直接使用现有文件。
  2. 构建可执行文件:
go build -o palette-mcp ./cmd/palette-mcp

下载预构建二进制文件

您可以直接从 GitHub 发布页面 下载适用于各种操作系统和架构的预构建二进制文件。 将 [VERSION] 替换为所需的发布版本(例如,v1.0.0)。

Linux / macOS

# 下载二进制文件(将 [OS] 和 [ARCH] 替换为您的系统信息,例如 linux_amd64、darwin_arm64)
wget https://github.com/kelvinzer0/PaletteMCP/releases/download/[VERSION]/palette-mcp_[OS]_[ARCH] -O palette-mcp

# 使其可执行
chmod +x palette-mcp

# 将其移动到系统 PATH 中的目录(例如,/usr/local/bin)
sudo mv palette-mcp /usr/local/bin/

Windows

  1. GitHub 发布页面 下载合适的 .exe 文件(例如,palette-mcp_windows_amd64.exe)。
  2. 将下载的文件重命名为 palette-mcp.exe
  3. palette-mcp.exe 移动到系统 PATH 环境变量包含的目录中。常见的做法是在用户目录下创建一个 bin 文件夹(例如,C:\Users\YourUser\bin),并将其添加到 PATH 中。

💻 使用示例

基础用法

palette-mcp 既可以作为命令行工具使用,也可以作为 Gemini 模型上下文协议(MCP)服务器运行。

命令行工具使用方法

在终端中运行该工具,将十六进制颜色代码(可带或不带 # 前缀)作为参数传递。

./palette-mcp #ff6347

示例(命令行工具)

输入:

./palette-mcp #ff6347

输出:

{
"hex": "#ff6347",
"name": "Tomato",
"rgb": "rgb(255, 99, 71)"
}

高级用法

Gemini MCP 服务器集成

palette-mcp 还可以作为 MCP 服务器运行,将其功能暴露给 Gemini CLI。这使得 Gemini 模型能够发现并执行 palette-mcp 的工具。

运行 MCP 服务器

要以服务器模式启动 palette-mcp,使用 server 参数。

标准输入输出传输

这是默认的传输方法,当您使用 server 参数运行服务器时会使用此方法。

# 使用标准输入输出启动服务器
./palette-mcp server
HTTP 传输

您也可以使用 HTTP 传输运行服务器,这样可以指定自定义端口。

# 在默认端口 8080 启动
./palette-mcp serve-http

# 在自定义端口(例如 9000)启动
./palette-mcp serve-http 9000
SSE(服务器发送事件)传输

要以 SSE 模式运行服务器,使用 -sse 标志。这将启动一个流式传输事件的 HTTP 服务器。

# 在默认端口 8080 以 SSE 模式启动
./palette-mcp -sse

# 在自定义端口(例如 9000)以 SSE 模式启动
./palette-mcp -sse -port 9000

如果您想继续使用终端,建议在后台运行服务器:

./palette-mcp serve-http &
# 或者使用自定义端口:
./palette-mcp serve-http 9000 &

# 对于 SSE 模式:
./palette-mcp -sse &
# 或者使用自定义端口:
./palette-mcp -sse -port 9000 &
配置 Gemini CLI

要使 Gemini CLI 能够连接到您的 palette-mcp 服务器,请在 settings.json 文件中添加以下配置。该文件可以在全局位置 ~/.gemini/settings.json 或项目的 .gemini/settings.json 中找到。

{
"theme": "ANSI Light",
"selectedAuthType": "oauth-personal",
"mcpServers": {
"get-color-info": {
"command": "/usr/local/bin/palette-mcp",
"args":["server"]
}
}
}
  • paletteMcpServer:这是您在 Gemini CLI 中为 MCP 服务器指定的名称,您可以选择任何具有描述性的名称。
  • httpUrlpalette-mcp 服务器监听的 URL。如果您在自定义端口启动服务器,请调整端口(例如,http://localhost:9000)。
  • timeout:Gemini CLI 等待服务器响应的最长时间(以毫秒为单位)。
可用工具

配置完成且服务器运行后,Gemini CLI 将发现以下工具:

  • echo:回显提供的消息。(用于演示的示例工具)
    • 参数message(字符串)
  • get_color_info:根据十六进制代码检索颜色信息。
    • 参数hexCode(字符串,例如 #FF0000
示例 Gemini CLI 使用(概念性)

设置完成后,您可以通过 Gemini CLI 与工具进行交互。例如,您可以询问: What is the name of the color #00BFFF? 如果 Gemini 模型决定使用 get_color_info 工具,它将执行该工具并提供结果。

与 Forge MCP 集成

PaletteMCP 可以轻松集成到 forge mcp 工作流中,以提供颜色名称查找功能。您可以在 forge mcp 配置中添加 palette-mcp 作为自定义命令。

将 PaletteMCP 添加到 Forge MCP

您可以使用 forge mcp add 命令或将其手动编辑到 .mcp.json 文件中,将 palette-mcp 添加到 forge mcp 配置中。

使用 forge mcp add(命令行)
# 示例:将 palette-mcp 添加为名为 'colorname' 的命令
forge mcp add --name colorname --command /path/to/palette-mcp --args "#{{hex_code}}"
  • /path/to/palette-mcp 替换为 palette-mcp 可执行文件的实际绝对路径。
  • #{{hex_code}}forge mcp 将传递给 palette-mcp 的十六进制颜色代码的占位符。双花括号 {{...}} 表示 forge mcp 中的变量或表达式。
手动 .mcp.json 配置

您也可以手动创建或修改 .mcp.json 文件。该文件可以位于本地项目目录或用户特定配置中。

{
"mcpServers": {
"colorname_tool": {
"command": "/usr/local/bin/palette-mcp",
"args": ["server"],
"description": "Converts a hex color code to its closest named color."
}
}
}
  • colorname_tool:这是您通过 forge mcp 调用 palette-mcp 时使用的名称(例如,forge mcp run colorname_tool #RRGGBB)。
  • commandpalette-mcp 可执行文件的绝对路径。
  • args:传递给 palette-mcp 的参数数组。"#{{hex_code}}" 是从 forge mcp 传递动态输入的常见模式。
示例 Forge MCP 使用

配置完成后,您可以在 forge mcp 工作流中使用 palette-mcp

# 使用十六进制代码运行配置的 colorname_tool
forge mcp run colorname_tool "#00BFFF"

# 在多代理工作流中使用输出的示例(概念性)
# 假设 'forge mcp run colorname_tool' 输出 JSON
COLOR_INFO=$(forge mcp run colorname_tool "#FF0000")
COLOR_NAME=$(echo $COLOR_INFO | jq -r '.name')
echo "The color is: $COLOR_NAME"
  • 注意jq 命令是一个强大的命令行 JSON 处理器,您可能需要单独安装它(在 macOS 上使用 brew install jq,在 Debian/Ubuntu 上使用 sudo apt-get install jq)。

这种集成允许 forge mcp 在更大的自动化或多代理任务中利用 PaletteMCP 进行颜色代码到名称的转换。

🔧 技术细节

该工具通过计算输入颜色的 RGB 值与预定义列表中每种颜色的 RGB 值之间的欧几里得距离来确定“最接近”的颜色。距离最小的颜色被认为是最匹配的颜色。

📚 详细文档

颜色参考

以下表格列出了用于匹配的所有命名颜色。

颜色名称 十六进制代码 RGB 值
aliceblue #f0f8ff 240, 248, 255
antiquewhite #faebd7 250, 235, 215
aqua #00ffff 0, 255, 255
aquamarine #7fffd4 127, 255, 212
azure #f0ffff 240, 255, 255
beige #f5f5dc 245, 245, 220
bisque #ffe4c4 255, 228, 196
black #000000 0, 0, 0
blanchedalmond #ffebcd 255, 235, 205
blue #0000ff 0, 0, 255
blueviolet #8a2be2 138, 43, 226
brown #a52a2a 165, 42, 42
burlywood #deb887 222, 184, 135
cadetblue #5f9ea0 95, 158, 160
chartreuse #7fff00 127, 255, 0
chocolate #d2691e 210, 105, 30
coral #ff7f50 255, 127, 80
cornflowerblue #6495ed 100, 149, 237
cornsilk #fff8dc 255, 248, 220
crimson #dc143c 220, 20, 60
cyan #00ffff 0, 255, 255
darkblue #00008b 0, 0, 139
darkcyan #008b8b 0, 139, 139
darkgoldenrod #b8860b 184, 134, 11
darkgray #a9a9a9 169, 169, 169
darkgreen #006400 0, 100, 0
darkkhaki #bdb76b 189, 183, 107
darkmagenta #8b008b 139, 0, 139
darkolivegreen #556b2f 85, 107, 47
darkorange #ff8c00 255, 140, 0
darkorchid #9932cc 153, 50, 204
darkred #8b0000 139, 0, 0
darksalmon #e9967a 233, 150, 122
darkseagreen #8fbc8f 143, 188, 143
darkslateblue #483d8b 72, 61, 139
darkslategray #2f4f4f 47, 79, 79
darkturquoise #00ced1 0, 206, 209
darkviolet #9400d3 148, 0, 211
deeppink #ff1493 255, 20, 147
deepskyblue #00bfff 0, 191, 255
dimgray #696969 105, 105, 105
dodgerblue #1e90ff 30, 144, 255
firebrick #b22222 178, 34, 34
floralwhite #fffaf0 255, 250, 240
forestgreen #228b22 34, 139, 34
fuchsia #ff00ff 255, 0, 255
gainsboro #dcdcdc 220, 220, 220
ghostwhite #f8f8ff 248, 248, 255
gold #ffd700 255, 215, 0
goldenrod #daa520 218, 165, 32
gray #808080 128, 128, 128
green #008000 0, 128, 0
greenyellow #adff2f 173, 255, 47
honeydew #f0fff0 240, 255, 240
hotpink #ff69b4 255, 105, 180
indianred #cd5c5c 205, 92, 92
indigo #4b0082 75, 0, 130
ivory #fffff0 255, 255, 240
khaki #f0e68c 240, 230, 140
lavender #e6e6fa 230, 230, 250
lavenderblush #fff0f5 255, 240, 245
lawngreen #7cfc00 124, 252, 0
lemonchiffon #fffacd 255, 250, 205
lightblue #add8e6 173, 216, 230
lightcoral #f08080 240, 128, 128
lightcyan #e0ffff 224, 255, 255
lightgoldenrodyellow #fafad2 250, 250, 210
lightgray #d3d3d3 211, 211, 211
lightgreen #90ee90 144, 238, 144
lightpink #ffb6c1 255, 182, 193
lightsalmon #ffa07a 255, 160, 122
lightseagreen #20b2aa 32, 178, 170
lightskyblue #87cefa 135, 206, 250
lightslategray #778899 119, 136, 153
lightsteelblue #b0c4de 176, 196, 222
lightyellow #ffffe0 255, 255, 224
lime #00ff00 0, 255, 0
limegreen #32cd32 50, 205, 50
linen #faf0e6 250, 240, 230
magenta #ff00ff 255, 0, 255
maroon #800000 128, 0, 0
mediumaquamarine #66cdaa 102, 205, 170
mediumblue #0000cd 0, 0, 205
mediumorchid #ba55d3 186, 85, 211
mediumpurple #9370db 147, 112, 219
mediumseagreen #3cb371 60, 179, 113
mediumslateblue #7b68ee 123, 104, 238
mediumspringgreen #00fa9a 0, 250, 154
mediumturquoise #48d1cc 72, 209, 204
mediumvioletred #c71585 199, 21, 133
midnightblue #191970 25, 25, 112
mintcream #f5fffa 245, 255, 250
mistyrose #ffe4e1 255, 228, 225
moccasin #ffe4b5 255, 228, 181
navajowhite #ffdead 255, 222, 173
navy #000080 0, 0, 128
oldlace #fdf5e6 253, 245, 230
olive #808000 128, 128, 0
olivedrab #6b8e23 107, 142, 35
orange #ffa500 255, 165, 0
orangered #ff4500 255, 69, 0
orchid #da70d6 218, 112, 214
palegoldenrod #eee8aa 238, 232, 170
palegreen #98fb98 152, 251, 152
paleturquoise #afeeee 175, 238, 238
palevioletred #db7093 219, 112, 147
papayawhip #ffefd5 255, 239, 213
peachpuff #ffdab9 255, 218, 185
peru #cd853f 205, 133, 63
pink #ffc0cb 255, 192, 203
plum #dda0dd 221, 160, 221
powderblue #b0e0e6 176, 224, 230
purple #800080 128, 0, 128
rebeccapurple #663399 102, 51, 153
red #ff0000 255, 0, 0
rosybrown #bc8f8f 188, 143, 143
royalblue #4169e1 65, 105, 225
saddlebrown #8b4513 139, 69, 19
salmon #fa8072 250, 128, 114
sandybrown #f4a460 244, 164, 96
seagreen #2e8b57 46, 139, 87
seashell #fff5ee 255, 245, 238
sienna #a0522d 160, 82, 45
silver #c0c0c0 192, 192, 192
skyblue #87ceeb 135, 206, 235
slateblue #6a5acd 106, 90, 205
slategray #708090 112, 128, 144
snow #fffafa 255, 250, 250
springgreen #00ff7f 0, 255, 127
steelblue #4682b4 70, 130, 180
tan #d2b48c 210, 180, 140
teal #008080 0, 128, 128
thistle #d8bfd8 216, 191, 216
tomato #ff6347 255, 99, 71
turquoise #40e0d0 64, 224, 208
violet #ee82ee 238, 130, 238
wheat #f5deb3 245, 222, 179
white #ffffff 255, 255, 255
whitesmoke #f5f5f5 245, 245, 245
yellow #ffff00 255, 255, 0
yellowgreen #9acd32 154, 205, 50

📄 许可证

本项目采用 MIT 许可证。

💪 贡献指南

欢迎贡献代码!如果您有改进建议,请随时提交拉取请求或打开问题。

  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-30 18:12

相似服务问题