tool-mcp-server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tool-mcp-server generate a QR code for my website"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
tool-mcp-server
一个基于 Model Context Protocol (MCP) 的 stdio 服务端,将 tool-website 的在线工具能力以 MCP Tool 的形式暴露出来,供支持 MCP 的客户端调用。
说明:本项目中的工具实现移植自 https://github.com/sisi0318/tool-website。
功能特性
58 个 MCP Tool:包含 54 个具体工具 + 4 个元工具
8 大工具分类:基础、加密、数据、开发、图片、文本、实用、预览
Stdio 传输:标准 MCP stdio 协议,兼容 Claude Desktop、Cline、Windsurf 等客户端
工作流支持:通过
run_workflow将多个工具按有向图拓扑执行完整测试覆盖:单元测试、工具逻辑测试、MCP 协议调用测试全部通过
Related MCP server: my-mcp-server
一键使用
如果你已经安装了 Node.js,可以直接通过 npx 一键启动,无需克隆仓库:
npx -y tool-mcp-server安装
方式一:通过 npm / pnpm 安装
pnpm add -g tool-mcp-server
# 或
npm install -g tool-mcp-server方式二:本地开发
git clone https://github.com/maple-awa/tool-mcp.git
cd tool-mcp
pnpm install
pnpm buildMCP 客户端配置
Claude Desktop
编辑 claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"tool-mcp-server": {
"command": "npx",
"args": ["-y", "tool-mcp-server"]
}
}
}Cline / Roo Code
在 Cline 的 MCP Servers 设置中添加:
{
"mcpServers": {
"tool-mcp-server": {
"command": "npx",
"args": ["-y", "tool-mcp-server"],
"disabled": false,
"autoApprove": []
}
}
}本地开发配置
如果你使用本地构建产物:
{
"mcpServers": {
"tool-mcp-server": {
"command": "node",
"args": ["/path/to/tool-mcp/dist/index.js"]
}
}
}使用
启动 MCP 服务
pnpm start服务通过 stdio 与 MCP 客户端通信。
开发模式
pnpm dev测试
# 全部测试
pnpm test:all
# 仅单元测试
pnpm test:unit
# 仅工具逻辑测试
pnpm test:tools
# 仅 MCP 协议测试
pnpm test:mcp工具清单
分类 | 数量 | 示例 |
basic | 5 | string、number、json、file、boolean |
crypto | 8 | hash、hmac、crypto、encoding、jwt、classic-cipher 等 |
data | 12 | json-format、json-path、protobuf、yaml-to-json、base64-to-file 等 |
dev | 4 | http-tester、crontab、docker-converter、whois |
image | 8 | image-to-base64、exif-viewer、image-compress、qrcode、meme-splitter 等 |
text | 4 | text-stats、case-converter、regex、diff |
utility | 7 | uuid、totp、color、base-converter、currency、bmi 等 |
viewer | 6 | device-info、office-viewer、time、string-preview、image-preview 等 |
完整的工具列表可通过 MCP 调用 list_tools 获取。
MCP 元工具
工具名 | 说明 |
| 列出所有可用工具 |
| 获取指定工具的输入输出 schema |
| 直接执行某个工具 |
| 按节点和边构建工作流并执行 |
每个具体工具也会以 tool_<type> 的形式注册,例如 tool_hash、tool_qrcode。
测试状态
✅ TypeScript 编译通过
✅ 单元测试:14 / 14 通过
✅ 工具逻辑测试:54 / 54 通过
✅ MCP 协议调用测试:58 / 58 通过
自动发布到 npm
本仓库配置了 GitHub Actions,在创建 Release 时会自动构建、测试并发布到 npm。
配置方法
在 npm 生成 Access Token(Publish 权限)
在 GitHub 仓库设置 → Secrets and variables → Actions 中添加
NPM_TOKEN在 GitHub 创建 Release,Actions 会自动执行发布
手动发布
pnpm build
pnpm test:unit
pnpm publish --access public项目结构
├── .github/workflows/ # GitHub Actions 工作流
├── src/
│ ├── index.ts # MCP 服务入口
│ ├── lib/adapters/ # 各工具适配器实现
│ ├── lib/canvas/ # 节点注册表和工作流引擎
│ ├── mcp/ # MCP schema、文件工具、工作流运行器
│ ├── test-all-tools.ts # 工具逻辑集成测试
│ ├── test-mcp-all-tools.ts # MCP 协议集成测试
│ └── tool-test-cases.ts # 共享测试用例
├── dist/ # 编译输出
├── package.json
├── tsconfig.json
└── vitest.config.ts许可证
MIT
Available Tools
58 toolsexecute_toolC
Execute a tool by type with inputs and optional config overrides
Inputs: toolType (required), config, inputs.
get_tool_schemaA
Get detailed schema and description for a specific tool
Inputs: toolType (required).
list_toolsA
List all available tools from tool-website, optionally filtered by category
Inputs: category.
run_workflowC
Run a connected workflow of tools (nodes + edges) in topological order
Inputs: edges (required), nodes (required).
tool_base64_to_fileC
[data] Base64 To File
Parameters:
base64 (string): Base64
filename (string): Filename
mimeType (string): MIME Type
Outputs:
file (bytes): File
Inputs: file, base64, filename, mimeType.
tool_base_converterC
[utility] Base Converter
Parameters:
value (string): Value
fromBase (string): Input Base
Outputs:
binary (string): Binary
octal (string): Octal
decimal (string): Decimal
hex (string): Hex
Inputs: hex, octal, value, binary, +2 more.
tool_bmiA
[utility] BMI
Parameters:
weight (number): Weight (kg)
height (number): Height (m)
Outputs:
bmi (number): BMI
category (string): Category
Inputs: bmi, height, weight, category.
tool_booleanD
[basic] Boolean
Parameters:
value (boolean): Value
Inputs: value.
tool_case_converterB
[text] Case Converter
Parameters:
text (string): Text
Outputs:
upper (string): UPPER
lower (string): lower
title (string): Title
camel (string): camelCase
snake (string): snake_case
kebab (string): kebab-case
Inputs: text, camel, kebab, lower, +3 more.
tool_classic_cipherC
[crypto] Classic Cipher
Parameters:
data (string): Data
algorithm (string): Algorithm
shift (number): Shift
Outputs:
result (string): Result
Inputs: data, shift, result, algorithm.
tool_colorD
[utility] Color
Parameters:
color (string): Color
Outputs:
hex (string): HEX
rgb (json): RGB
hsl (json): HSL
Inputs: hex, hsl, rgb, color.
tool_crontabC
[dev] Crontab
Parameters:
expression (string): Expression
Outputs:
parsed (json): Parsed
nextRuns (json): Next Runs
Inputs: parsed, nextRuns, expression.
tool_cryptoD
[crypto] Crypto
Parameters:
data (string): Data
key (string): Key
iv (string): IV
algorithm (string): Algorithm
mode (string): Mode
operation (string): Operation
Outputs:
result (string): Result
Inputs: iv, key, data, mode, +3 more.
tool_currencyC
[utility] Currency
Parameters:
amount (number): Amount
from (string): From
to (string): To
Outputs:
converted (number): Converted
rate (number): Rate
Inputs: to, from, rate, amount, +1 more.
tool_device_infoD
[viewer] Device Info
Outputs:
info (json): Info
Inputs: info.
tool_diffC
[text] Diff
Parameters:
text1 (string): Text 1
text2 (string): Text 2
Outputs:
added (number): Added
removed (number): Removed
unchanged (number): Unchanged
diff (json): Diff
changes (json): Changes
Inputs: diff, added, text1, text2, +3 more.
tool_docker_converterD
[dev] Docker Converter
Parameters:
command (string): Command
format (string): Format
Outputs:
dockerfile (string): Dockerfile
compose (string): Compose
Inputs: format, command, compose, dockerfile.
tool_encodingD
[crypto] Encoding
Parameters:
input (string): Input
encoding (string): Encoding
mode (string): Mode
Outputs:
output (string): Output
Inputs: mode, input, output, encoding.
tool_exif_viewerC
[image] EXIF Viewer
Parameters:
file (bytes): File
category (string): Category
Outputs:
exif (json): EXIF Data
Inputs: exif, file, category.
tool_fileD
[basic] File
Parameters:
file (bytes): File
Inputs: file.
tool_file_to_base64C
[data] File To Base64
Parameters:
file (bytes): File
Outputs:
base64 (string): Base64
Inputs: file, base64.
tool_file_to_stringC
[data] File To String
Parameters:
file (bytes): File
Outputs:
content (string): Content
Inputs: file, content.
tool_hashD
[crypto] Hash
Parameters:
data (string): Data
category (string): Category
algorithm (string): Algorithm
outputFormat (string): Output
Outputs:
hash (string): Hash
Inputs: data, hash, category, algorithm, +1 more.
tool_hash_verifyC
[crypto] Hash Verify
Parameters:
data (string): Data
hash (string): Hash
category (string): Category
algorithm (string): Algorithm
Outputs:
valid (boolean): Valid
Inputs: data, hash, valid, category, +1 more.
tool_hmacC
[crypto] HMAC
Parameters:
data (string): Data
key (string): Key
algorithm (string): Algorithm
outputFormat (string): Output
Outputs:
hmac (string): HMAC
Inputs: key, data, hmac, algorithm, +1 more.
tool_hmac_verifyC
[crypto] HMAC Verify
Parameters:
expectedHmac (string): Expected HMAC
data (string): Data
key (string): Key
algorithm (string): Algorithm
Outputs:
valid (boolean): Valid
Inputs: key, data, valid, algorithm, +1 more.
tool_http_testerC
[dev] HTTP Tester
Parameters:
url (string): URL
method (string): Method
headers (string): Headers
body (string): Body
Outputs:
response (json): Response
status (number): Status
Inputs: url, body, method, status, +2 more.
tool_image_compressD
[image] Image Compress
Parameters:
file (bytes): File
quality (number): Quality
outputFormat (string): Format
Outputs:
file (bytes): File
info (json): Info
Inputs: file, info, quality, outputFormat.
tool_image_coordinatesD
[image] Image Coordinates
Parameters:
file (bytes): File
x (number): X
y (number): Y
Outputs:
coordinates (json): Coordinates
pixel (json): Pixel
Inputs: x, y, file, pixel, +1 more.
tool_image_editorC
[image] Image Editor
Parameters:
file (bytes): File
brightness (number): Brightness
contrast (number): Contrast
saturation (number): Saturation
grayscale (boolean): Grayscale
Outputs:
file (bytes): File
info (json): Info
Inputs: file, info, contrast, grayscale, +2 more.
tool_image_previewD
[viewer] Image Preview
Parameters:
file (bytes): File
Inputs: file.
tool_image_to_base64C
[image] Image to Base64
Parameters:
file (bytes): File
outputFormat (string): Output
Outputs:
base64 (string): Base64
dataUri (string): Data URI
Inputs: file, base64, dataUri, outputFormat.
tool_jceD
[data] JCE
Parameters:
data (string): Data
mode (string): Mode
Outputs:
decoded (json): Decoded
Inputs: data, mode, decoded.
tool_jsonD
[basic] JSON
Parameters:
value (string): Value
Outputs:
parsed (json): Parsed
Inputs: value, parsed.
tool_json_formatC
[data] JSON Format
Parameters:
data (string): Data
indent (number): Indent
sortKeys (boolean): Sort Keys
Outputs:
formatted (string): Formatted
minified (string): Minified
Inputs: data, indent, minified, sortKeys, +1 more.
tool_json_parseC
[data] JSON Parse
Parameters:
string (string): String
Outputs:
json (json): JSON
Inputs: json, string.
tool_json_pathD
[data] JSON Path
Parameters:
json (json): JSON
path (string): Path
Outputs:
string (string): String
number (number): Number
boolean (boolean): Boolean
object (json): Object
array (json): Array
type (string): Type
Inputs: json, path, type, array, +4 more.
tool_json_previewD
[viewer] JSON Preview
Parameters:
json (json): JSON
Inputs: json.
tool_json_stringifyD
[data] JSON Stringify
Parameters:
json (json): JSON
Outputs:
string (string): String
Inputs: json, string.
tool_json_to_yamlA
[data] JSON to YAML
Parameters:
json (json): JSON
Outputs:
yaml (string): YAML
Inputs: json, yaml.
tool_jwtD
[crypto] JWT
Parameters:
token (string): Token
Outputs:
header (json): Header
payload (json): Payload
signature (string): Signature
Inputs: token, header, payload, signature.
tool_meme_splitterC
[image] Meme Splitter
Parameters:
file (bytes): File
rows (number): Rows
cols (number): Cols
Outputs:
parts (json): Parts
Inputs: cols, file, rows, parts.
tool_numberD
[basic] Number
Parameters:
value (number): Value
Inputs: value.
tool_office_viewerD
[viewer] Office Viewer
Parameters:
file (bytes): File
Outputs:
info (json): Info
Inputs: file, info.
tool_protobufD
[data] Protobuf
Parameters:
data (string): Data
mode (string): Mode
indentSize (number): Indent
Outputs:
decoded (json): Decoded
Inputs: data, mode, decoded, indentSize.
tool_qrcodeC
[image] QRCode
Parameters:
data (string): Data
size (number): Size
errorCorrection (string): Error Correction
fgColor (string): Foreground
bgColor (string): Background
Outputs:
image (bytes): Image
dataUri (string): Data URI
Inputs: data, size, image, bgColor, +3 more.
tool_qrcode_decodeC
[image] QRCode Decode
Parameters:
file (bytes): File
Outputs:
data (string): Data
Inputs: data, file.
tool_regexD
[text] Regex
Parameters:
text (string): Text
pattern (string): Pattern
flags (string): Flags
replacement (string): Replacement
Outputs:
matches (json): Matches
test (string): Test
Inputs: test, text, flags, matches, +2 more.
tool_stringD
[basic] String
Parameters:
value (string): Value
Inputs: value.
tool_string_previewC
[viewer] String Preview
Parameters:
content (string): Content
Inputs: content.
tool_string_to_fileC
[data] String To File
Parameters:
content (string): Content
filename (string): Filename
Outputs:
file (bytes): File
Inputs: file, content, filename.
tool_temperature_converterC
[utility] Temperature
Parameters:
value (number): Value
fromUnit (string): From
precision (string): Precision
Outputs:
celsius (number): Celsius
fahrenheit (number): Fahrenheit
kelvin (number): Kelvin
Inputs: value, kelvin, celsius, fromUnit, +2 more.
tool_text_statsB
[text] Text Stats
Parameters:
text (string): Text
Outputs:
characters (number): Characters
words (number): Words
lines (number): Lines
sentences (number): Sentences
paragraphs (number): Paragraphs
bytes (number): Bytes
Inputs: text, bytes, lines, words, +3 more.
tool_timeD
[viewer] Time
Parameters:
timezone (string): Timezone
Outputs:
timestamp (number): Timestamp
iso (string): ISO
formatted (string): Formatted
parts (json): Parts
Inputs: iso, parts, timezone, formatted, +1 more.
tool_totpD
[utility] TOTP
Parameters:
secret (string): Secret
digits (number): Digits
period (number): Period
Outputs:
code (string): Code
remaining (number): Remaining
counter (number): Counter
Inputs: code, digits, period, secret, +2 more.
tool_uuidB
[utility] UUID
Parameters:
version (string): Version
uppercase (boolean): Uppercase
withHyphens (boolean): Hyphens
Outputs:
uuid (string): UUID
Inputs: uuid, version, uppercase, withHyphens.
tool_whoisD
[dev] Whois
Parameters:
domain (string): Domain
Outputs:
result (json): Result
Inputs: domain, result.
tool_yaml_to_jsonA
[data] YAML to JSON
Parameters:
yaml (string): YAML
Outputs:
json (json): JSON
Inputs: json, yaml.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 58 tools
Multiple tools have overlapping or unclear boundaries, such as tool_file_to_base64 vs tool_image_to_base64, tool_encoding vs tool_base_converter, and tool_json_format vs tool_json_stringify. The absence of explicit descriptions further hampers an agent's ability to distinguish between them.
The server mixes verb_noun meta-tools (list_tools, execute_tool) with noun-based utility tools (tool_hash, tool_json), and some tools include their category in the name while others do not. This inconsistency makes it difficult to predict tool names.
With 58 tools, the server is overloaded. Although it aims to be a general-purpose toolkit, the sheer number exceeds the 'too many' threshold and includes many trivial variations, making the set feel bloated.
The server covers a broad range of utility functions, but notable gaps exist such as image resizing, XML/HTML processing, and file system operations. These gaps are moderate and can be worked around for general use.
Maintenance
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server built with mcp-framework that allows users to create and manage custom tools for processing data, integrating with the Claude Desktop via CLI.22 npm5MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that allows integration with Claude Desktop by creating and managing custom tools that can be executed through the MCP framework.55 npm-
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server built with the mcp-framework for developing and managing custom tools. It provides a structured foundation for building and integrating modular components like data processors and API clients into Claude Desktop.11 npm-
- AlicenseNot gradedqualityDmaintenanceA general-purpose MCP server with utility tools including datetime information, safe math calculations, text statistics, JSON extraction, knowledge base search, and HTTP GET requests. It demonstrates server-side MCP implementation and can be connected to Claude Desktop or LangGraph agents.MIT