refactor: add docs and update scripts (#150)

This commit is contained in:
sigoden
2024-12-13 17:18:01 +08:00
committed by GitHub
parent 8ace93beb8
commit d692625662
6 changed files with 332 additions and 15 deletions
+13 -12
View File
@@ -8,7 +8,8 @@ MCP_JSON_PATH="$ROOT_DIR/mcp.json"
FUNCTIONS_JSON_PATH="$ROOT_DIR/functions.json"
MCP_BRIDGE_PORT="${MCP_BRIDGE_PORT:-8808}"
# @cmd Start/Restart mcp bridge server
# @cmd Start/restart the mcp bridge server
# @alias restart
start() {
if [[ ! -f "$MCP_JSON_PATH" ]]; then
_die "error: not found mcp.json"
@@ -29,7 +30,7 @@ start() {
build-bin
}
# @cmd Stop mcp bridge server
# @cmd Stop the mcp bridge server
stop() {
pid="$(get-server-pid)"
if [[ -n "$pid" ]]; then
@@ -42,12 +43,12 @@ stop() {
"$0" recovery-functions -S
}
# @cmd Run the tool
# @cmd Run the mcp tool
# @arg tool![`_choice_tool`] The tool name
# @arg json The json data
run@tool() {
if [[ -z "$argc_json" ]]; then
declaration="$(build-declarations | jq --arg tool "$argc_tool" -r '.[] | select(.name == $tool)')"
declaration="$(generate-declarations | jq --arg tool "$argc_tool" -r '.[] | select(.name == $tool)')"
if [[ -n "$declaration" ]]; then
_ask_json_data "$declaration"
fi
@@ -58,7 +59,7 @@ run@tool() {
bash "$ROOT_DIR/scripts/run-mcp-tool.sh" "$argc_tool" "$argc_json"
}
# @cmd Show logs
# @cmd Show the logs
# @flag -f --follow Follow mode
logs() {
args=""
@@ -72,7 +73,7 @@ logs() {
# @cmd Build tools to bin
build-bin() {
tools=( $(build-declarations | jq -r '.[].name') )
tools=( $(generate-declarations | jq -r '.[].name') )
for tool in "${tools[@]}"; do
if _is_win; then
bin_file="$BIN_DIR/$tool.cmd"
@@ -88,7 +89,7 @@ build-bin() {
# @cmd Merge mcp tools into functions.json
# @flag -S --save Save to functions.json
merge-functions() {
result="$(jq --argjson json1 "$("$0" recovery-functions)" --argjson json2 "$(build-declarations)" -n '($json1 + $json2)')"
result="$(jq --argjson json1 "$("$0" recovery-functions)" --argjson json2 "$(generate-declarations)" -n '($json1 + $json2)')"
if [[ -n "$argc_save" ]]; then
printf "%s" "$result" > "$FUNCTIONS_JSON_PATH"
else
@@ -111,12 +112,12 @@ recovery-functions() {
fi
}
# @cmd Build tools to bin
build-declarations() {
# @cmd Generate function declarations for the mcp tools
generate-declarations() {
curl -sS http://localhost:$MCP_BRIDGE_PORT/tools | jq '.[] |= . + {mcp: true}'
}
# @cmd Wait for mcp bridge server to ready
# @cmd Wait for the mcp bridge server to ready
wait-for-server() {
while true; do
if [[ "$(curl -fsS http://localhost:$MCP_BRIDGE_PORT/health 2>&1)" == "OK" ]]; then
@@ -126,7 +127,7 @@ wait-for-server() {
done
}
# @cmd
# @cmd Get the server pid
get-server-pid() {
curl -fsSL http://localhost:$MCP_BRIDGE_PORT/pid 2>/dev/null || true
}
@@ -173,7 +174,7 @@ _is_win() {
}
_choice_tool() {
build-declarations | jq -r '.[].name'
generate-declarations | jq -r '.[].name'
}
_die() {