🚀 PaletteMCP - 十六进制颜色代码转名称转换器
PaletteMCP 是一个用 Go 语言编写的命令行工具,它可以接收十六进制颜色代码,并从预定义的 CSS 颜色列表中返回最匹配的颜色名称。输出以 JSON 格式提供,便于与其他脚本和系统集成。
🚀 快速开始
PaletteMCP 是一个强大且实用的工具,能够轻松将十六进制颜色代码转换为对应的颜色名称。以下是使用该工具的基本步骤和示例,助您快速上手。
✨ 主要特性
- 可将任何十六进制颜色代码转换为最接近的颜色名称。
- 以简洁、机器可读的 JSON 格式输出。
- 包含全面的标准 CSS 颜色列表。
- 拥有简单易用的命令行界面。
📦 安装指南
要使用此工具,您的系统需要安装 Go。
从源码构建
- 克隆仓库(如果您将其存储在 Git 仓库中)或直接使用现有文件。
- 构建可执行文件:
go build -o palette-mcp ./cmd/palette-mcp
下载预构建二进制文件
您可以直接从 GitHub 发布页面 下载适用于各种操作系统和架构的预构建二进制文件。
将 [VERSION]
替换为所需的发布版本(例如,v1.0.0
)。
Linux / macOS
wget https://github.com/kelvinzer0/PaletteMCP/releases/download/[VERSION]/palette-mcp_[OS]_[ARCH] -O palette-mcp
chmod +x palette-mcp
sudo mv palette-mcp /usr/local/bin/
Windows
- 从 GitHub 发布页面 下载合适的
.exe
文件(例如,palette-mcp_windows_amd64.exe
)。
- 将下载的文件重命名为
palette-mcp.exe
。
- 将
palette-mcp.exe
移动到系统 PATH
环境变量包含的目录中。常见的做法是在用户目录下创建一个 bin
文件夹(例如,C:\Users\YourUser\bin
),并将其添加到 PATH
中。
💻 使用示例
基础用法
palette-mcp
既可以作为命令行工具使用,也可以作为 Gemini 模型上下文协议(MCP)服务器运行。
命令行工具使用方法
在终端中运行该工具,将十六进制颜色代码(可带或不带 #
前缀)作为参数传递。
./palette-mcp
示例(命令行工具)
输入:
./palette-mcp
输出:
{
"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 传输运行服务器,这样可以指定自定义端口。
./palette-mcp serve-http
./palette-mcp serve-http 9000
SSE(服务器发送事件)传输
要以 SSE 模式运行服务器,使用 -sse
标志。这将启动一个流式传输事件的 HTTP 服务器。
./palette-mcp -sse
./palette-mcp -sse -port 9000
如果您想继续使用终端,建议在后台运行服务器:
./palette-mcp serve-http &
./palette-mcp serve-http 9000 &
./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 服务器指定的名称,您可以选择任何具有描述性的名称。
httpUrl
:palette-mcp
服务器监听的 URL。如果您在自定义端口启动服务器,请调整端口(例如,http://localhost:9000
)。
timeout
:Gemini CLI 等待服务器响应的最长时间(以毫秒为单位)。
可用工具
配置完成且服务器运行后,Gemini CLI 将发现以下工具:
echo
:回显提供的消息。(用于演示的示例工具)
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
)。
command
:palette-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 许可证。
💪 贡献指南
欢迎贡献代码!如果您有改进建议,请随时提交拉取请求或打开问题。