这是一个模型上下文协议(MCP)服务器,它为大语言模型(LLMs)提供钢笔墨水的专业知识,支持智能墨水搜索、颜色匹配和推荐功能。阅读我关于创建此服务器的文章。
此MCP服务器为大语言模型(LLMs)提供以下工具:
git clone https://github.com/ewilderj/inks-mcp.git
cd inks-mcp
npm install
npm run build
# 列出工具并运行示例查询
npm run tools:list
npm run client -- --tool search_inks_by_name --args '{"query":"sailor blue","max_results":5}'
# 克隆项目
git clone https://github.com/ewilderj/inks-mcp.git
cd inks-mcp
# 安装依赖
npm install
# 构建项目
npm run build
# 单次运行
npm start
# 开发模式,自动重建
npm run dev
# 开发模式下的监听模式
npm run watch
将此服务器添加到您的MCP客户端配置中:
{
"servers": {
"fountain-pen-ink-server": {
"type": "stdio",
"command": "node",
"args": ["/dist/index.js" ]
}
}
}
包含一个小脚本,用于从命令行调用任何工具:
# 列出工具
npm run tools:list
# 使用内联JSON参数调用工具
npm run client -- --tool search_inks_by_name --args '{"query":"sailor blue","max_results":5}'
# 从文件中读取参数调用工具
npm run client -- --tool get_color_palette --args-file examples/palette.complementary.json
# 更改输出模式(auto | content | raw)
npm run client -- --tool search_inks_by_color --args '{"color":"#2E5984"}' --output content
脚本选项:
--list:列出可用工具。--tool :要调用的工具名称。--args '' :内联JSON参数。--args-file
:包含参数的JSON文件。--server
:编译后服务器的路径(默认:dist/index.js)。--timeout :超时时间(毫秒,默认:10000)。--output :输出模式:auto | content | raw(默认:auto)。使用模糊文本匹配搜索钢笔墨水。
参数:query(字符串),max_results(数字,可选)
示例输入:
{ "query": "sailor blue", "max_results": 10 }
示例提示:
使用RGB颜色空间匹配查找与给定颜色相似的墨水。
参数:color(十六进制字符串),max_results(数字,可选)
示例输入:
{ "color": "#2E5984", "max_results": 15 }
示例提示:
获取特定墨水的完整信息。
参数:ink_id(字符串)
示例输入:
{ "ink_id": "diamine-oxblood" }
示例提示:
列出特定制造商的所有墨水。
参数:maker(字符串),max_results(数字,可选)
示例输入:
{ "maker": "diamine", "max_results": 25 }
示例提示:
分析一种颜色并提供钢笔墨水相关信息。
参数:color(十六进制字符串),max_results(数字,可选)
示例输入:
{ "color": "#2E5984", "max_results": 7 }
示例提示:
借助色彩理论生成主题或基于和谐的钢笔墨水调色板。
参数:theme(字符串),palette_size(数字,可选),harmony(字符串,可选)
支持的主题:
{ "theme": "sunset", "palette_size": 4 }
示例提示:
更多示例请参阅 examples/USAGE.md。
服务器使用两个主要数据文件:
所有墨水数据都链接到 Wilder Writes 以获取详细信息和图像。
inks-mcp/
├── src/
│ ├── index.ts # 主要的MCP服务器实现
│ ├── types.ts # TypeScript类型定义
│ └── utils.ts # 用于颜色匹配的实用函数
├── data/
│ ├── ink-colors.json # RGB颜色数据
│ └── search.json # 搜索元数据
├── dist/ # 编译后的JavaScript(自动生成)
npm run build:将TypeScript编译为JavaScript。npm run start:运行编译后的服务器。npm run dev:在一个命令中完成构建和运行。npm run watch:监听文件更改并自动重建。npm run client:运行通用CLI客户端。npm run tools:list:通过CLI客户端列出可用工具。运行全面的测试套件以验证所有功能:
npm test
# 运行单个测试类别
cd test
node test-enhanced-palette.js # 调色板生成功能测试
node test-mcp-palette.js # MCP协议合规性测试
node test-schema.js # 工具模式验证测试
node test-harmony-direct.js # 颜色和谐算法测试
对于手动临时测试,请使用上述CLI客户端。
测试套件涵盖:
服务器使用RGB颜色空间中的欧几里得距离来查找相似的墨水:
distance = √[(r₁-r₂)² + (g₁-g₂)² + (b₁-b₂)²]
未来的改进可能包括:
本项目采用GNU通用公共许可证v3.0(GPL - 3.0)。详情请参阅 LICENSE 文件。