tool-mcp

Install MCP bridge tools for AI assistant integration - standalone binaries, no containers required

Recipaie - Deployment Recipe

The template that describes how to deploy this service.

Raw JSON
{
  "$schema": "https://recipaie.com/schemas/recipaie.schema.json",
  "name": "tool-mcp",
  "version": "1.0.0",
  "description": "Install MCP bridge tools for AI assistant integration - standalone binaries, no containers required",
  "prerequisites": [
    "Linux, macOS, or Windows with WSL",
    "curl or wget for downloading",
    "Claude Code, Claude Desktop, or Codex installed (for MCP client registration)"
  ],
  "steps": [
    {
      "order": 1,
      "what": "Create local bin directory",
      "why": "MCP tools install as standalone binaries in user's local bin",
      "when": "First installation of any tool-mcp client",
      "skip_if": "~/.local/bin directory already exists",
      "how": "mkdir -p ~/.local/bin",
      "verify": "ls -la ~/.local/bin exists"
    },
    {
      "order": 2,
      "what": "Add local bin to PATH",
      "why": "Ensures binaries are accessible from command line",
      "when": "If ~/.local/bin is not in PATH",
      "skip_if": "echo $PATH | grep -q '.local/bin'",
      "how": "Add 'export PATH=\"$HOME/.local/bin:$PATH\"' to ~/.bashrc or ~/.zshrc",
      "verify": "which pubdoc returns ~/.local/bin/pubdoc after shell restart",
      "comments": [
        "On macOS with zsh: add to ~/.zshrc",
        "On Linux with bash: add to ~/.bashrc",
        "On Windows WSL: add to ~/.bashrc"
      ]
    },
    {
      "order": 3,
      "what": "Download the MCP client binary",
      "why": "Each tool (pubdoc, publog, pubtask, etc.) is a separate binary",
      "when": "Installing a new MCP client or updating",
      "skip_if": "Current version matches latest (check with: pubdoc --version)",
      "how": "Download from https://binary.dixt.io - use 'make install pubdoc' from tool-mcp repo, or download binary directly for your platform (linux-amd64, darwin-arm64, etc.)",
      "verify": "pubdoc --version shows version number",
      "comments": [
        "Available clients: pubdoc, publog, pubtask, pubchk, pubmem, pubvol, pubbin",
        "Binaries are ~6-8MB each with embedded configuration",
        "Auto-updates every 24 hours from binary.dixt.io"
      ]
    },
    {
      "order": 4,
      "what": "Register with MCP clients",
      "why": "Adds the tool to Claude Code/Desktop/Codex configuration",
      "when": "After binary is installed",
      "skip_if": "Tool already registered (check ~/.claude.json or claude mcp list)",
      "how": "pubdoc register",
      "verify": "claude mcp list shows pubdoc",
      "comments": [
        "Registration modifies ~/.claude.json for Claude Code",
        "Also registers with Codex if installed",
        "Use 'pubdoc unregister' to remove"
      ]
    },
    {
      "order": 5,
      "what": "Verify MCP connection",
      "why": "Confirms the tool can communicate with remote MCP server",
      "when": "After registration",
      "how": "pubdoc --tool tool_status",
      "verify": "Response shows version, username, and connection status"
    }
  ],
  "step_count": 5
}
Version: 1.0.0
Steps: 5

Prerequisites

Steps

1 Create local bin directory
Why
MCP tools install as standalone binaries in user's local bin
When
First installation of any tool-mcp client
Skip If
~/.local/bin directory already exists
How
mkdir -p ~/.local/bin
Verify
ls -la ~/.local/bin exists
2 Add local bin to PATH
Why
Ensures binaries are accessible from command line
When
If ~/.local/bin is not in PATH
Skip If
echo $PATH | grep -q '.local/bin'
How
Add 'export PATH="$HOME/.local/bin:$PATH"' to ~/.bashrc or ~/.zshrc
Verify
which pubdoc returns ~/.local/bin/pubdoc after shell restart
Comments
  • On macOS with zsh: add to ~/.zshrc
  • On Linux with bash: add to ~/.bashrc
  • On Windows WSL: add to ~/.bashrc
3 Download the MCP client binary
Why
Each tool (pubdoc, publog, pubtask, etc.) is a separate binary
When
Installing a new MCP client or updating
Skip If
Current version matches latest (check with: pubdoc --version)
How
Download from https://binary.dixt.io - use 'make install pubdoc' from tool-mcp repo, or download binary directly for your platform (linux-amd64, darwin-arm64, etc.)
Verify
pubdoc --version shows version number
Comments
  • Available clients: pubdoc, publog, pubtask, pubchk, pubmem, pubvol, pubbin
  • Binaries are ~6-8MB each with embedded configuration
  • Auto-updates every 24 hours from binary.dixt.io
4 Register with MCP clients
Why
Adds the tool to Claude Code/Desktop/Codex configuration
When
After binary is installed
Skip If
Tool already registered (check ~/.claude.json or claude mcp list)
How
pubdoc register
Verify
claude mcp list shows pubdoc
Comments
  • Registration modifies ~/.claude.json for Claude Code
  • Also registers with Codex if installed
  • Use 'pubdoc unregister' to remove
5 Verify MCP connection
Why
Confirms the tool can communicate with remote MCP server
When
After registration
How
pubdoc --tool tool_status
Verify
Response shows version, username, and connection status

Prodaie - Execution Record

What happened when an AI executed this recipe in different environments.

Raw JSON
{
  "$schema": "https://recipaie.com/schemas/prodaie.schema.json",
  "name": "tool-mcp",
  "description": "Deployment record showing MCP tool installation across different platforms and common issues encountered",
  "prerequisites": [
    "Linux, macOS, or Windows with WSL",
    "curl or wget for downloading",
    "Claude Code, Claude Desktop, or compatible MCP client"
  ],
  "locations": [
    {
      "path": "macOS (Apple Silicon)",
      "description": "MacBook with M1/M2/M3 chip",
      "status": "complete",
      "step_count": 5,
      "steps": [
        {
          "order": 1,
          "what": "Create local bin directory",
          "why": "MCP tools install as standalone binaries in user's local bin",
          "when": "First installation of any MCP tool",
          "skip_if": "~/.local/bin directory already exists",
          "how": "mkdir -p ~/.local/bin",
          "verify": "ls -la ~/.local/bin exists",
          "success": true,
          "details": "created ~/.local/bin"
        },
        {
          "order": 2,
          "what": "Add local bin to PATH",
          "why": "Ensures binaries are accessible from command line",
          "when": "If ~/.local/bin is not in PATH",
          "skip_if": "echo $PATH | grep -q '.local/bin'",
          "how": "echo 'export PATH=\"$HOME/.local/bin:$PATH\"' >> ~/.zshrc && source ~/.zshrc",
          "verify": "echo $PATH | grep '.local/bin'",
          "success": true,
          "details": "added to ~/.zshrc, reloaded shell"
        },
        {
          "order": 3,
          "what": "Download the MCP client binary",
          "why": "Each MCP tool is a separate binary optimized for your platform",
          "when": "Installing a new MCP client or updating",
          "skip_if": "Current version matches latest",
          "how": "curl -LO https://example.com/mcp-tool/darwin-arm64 && chmod +x mcp-tool && mv mcp-tool ~/.local/bin/",
          "verify": "mcp-tool --version shows version number",
          "success": true,
          "details": "downloaded darwin-arm64 binary, v0.15.2"
        },
        {
          "order": 4,
          "what": "Register with MCP client",
          "why": "Adds the tool to Claude Code/Desktop configuration",
          "when": "After binary is installed",
          "skip_if": "Tool already registered in ~/.claude.json",
          "how": "mcp-tool register",
          "verify": "claude mcp list shows the tool",
          "success": true,
          "details": "registered, appears in claude mcp list"
        },
        {
          "order": 5,
          "what": "Verify MCP connection",
          "why": "Confirms the tool can communicate with remote server",
          "when": "After registration",
          "how": "mcp-tool --tool tool_status",
          "verify": "Response shows version and connection status",
          "success": true,
          "details": "connection verified, auto-update enabled"
        }
      ]
    },
    {
      "path": "Ubuntu 22.04 (WSL2)",
      "description": "Windows Subsystem for Linux - common enterprise setup",
      "status": "complete",
      "step_count": 5,
      "steps": [
        {
          "order": 1,
          "what": "Create local bin directory",
          "why": "MCP tools install as standalone binaries",
          "when": "First installation",
          "skip_if": "~/.local/bin exists",
          "how": "mkdir -p ~/.local/bin",
          "verify": "Directory exists",
          "success": true,
          "details": "created ~/.local/bin"
        },
        {
          "order": 2,
          "what": "Add local bin to PATH",
          "why": "Ensures binaries are accessible",
          "when": "If not in PATH",
          "skip_if": "Already in PATH",
          "how": "echo 'export PATH=\"$HOME/.local/bin:$PATH\"' >> ~/.bashrc",
          "verify": "Path includes .local/bin",
          "success": true,
          "details": "added to ~/.bashrc, opened new terminal to verify"
        },
        {
          "order": 3,
          "what": "Download the MCP client binary",
          "why": "Each tool is a separate binary",
          "when": "Installing or updating",
          "skip_if": "Version matches latest",
          "how": "curl -LO https://example.com/mcp-tool/linux-amd64",
          "verify": "mcp-tool --version works",
          "success": true,
          "details": "downloaded linux-amd64, had to run chmod +x first"
        },
        {
          "order": 4,
          "what": "Register with MCP client",
          "why": "Adds tool to configuration",
          "when": "After install",
          "skip_if": "Already registered",
          "how": "mcp-tool register",
          "verify": "Tool listed",
          "success": true,
          "details": "registration updated ~/.claude.json in Windows home via symlink"
        },
        {
          "order": 5,
          "what": "Verify MCP connection",
          "why": "Confirms communication works",
          "when": "After registration",
          "how": "mcp-tool --tool tool_status",
          "verify": "Shows connection status",
          "success": true,
          "details": "working, note: WSL network sometimes needs wsl --shutdown to reset"
        }
      ]
    },
    {
      "path": "Debian (ARM64 server)",
      "description": "Headless ARM server - Raspberry Pi or cloud ARM instance",
      "status": "partial",
      "step_count": 5,
      "steps": [
        {
          "order": 1,
          "what": "Create local bin directory",
          "why": "MCP tools install as standalone binaries",
          "when": "First installation",
          "skip_if": "Directory exists",
          "how": "mkdir -p ~/.local/bin",
          "verify": "Directory exists",
          "success": true,
          "details": "created ~/.local/bin"
        },
        {
          "order": 2,
          "what": "Add local bin to PATH",
          "why": "Ensures binaries are accessible",
          "when": "If not in PATH",
          "skip_if": "Already in PATH",
          "how": "Add to ~/.bashrc",
          "verify": "Path verified",
          "success": true,
          "details": "added export, sourced bashrc"
        },
        {
          "order": 3,
          "what": "Download the MCP client binary",
          "why": "Each tool is a separate binary",
          "when": "Installing or updating",
          "skip_if": "Version matches",
          "how": "Download linux-arm64 binary",
          "verify": "Binary runs",
          "success": true,
          "details": "downloaded linux-arm64, chmod +x applied"
        },
        {
          "order": 4,
          "what": "Register with MCP client",
          "why": "Adds tool to configuration",
          "when": "After install",
          "skip_if": "Headless server - no GUI client",
          "how": "Skip registration for headless use",
          "verify": "Direct invocation works",
          "success": true,
          "details": "headless server, using direct API invocation instead of registration"
        },
        {
          "order": 5,
          "what": "Verify MCP connection",
          "why": "Confirms communication works",
          "when": "After setup",
          "how": "mcp-tool --tool tool_status",
          "verify": "Shows connection status",
          "success": false,
          "details": "connection timeout, firewall blocking outbound HTTPS on port 443",
          "comments": [
            "Firewall issue resolved by adding outbound HTTPS rule",
            "ARM64 binaries work on Raspberry Pi 4/5 and AWS Graviton instances"
          ]
        }
      ]
    }
  ]
}
Locations: 3

Locations

macOS (Apple Silicon) complete

MacBook with M1/M2/M3 chip

Steps: 5
1 Create local bin directory
Why
MCP tools install as standalone binaries in user's local bin
When
First installation of any MCP tool
Skip If
~/.local/bin directory already exists
How
mkdir -p ~/.local/bin
Verify
ls -la ~/.local/bin exists
Result
created ~/.local/bin
2 Add local bin to PATH
Why
Ensures binaries are accessible from command line
When
If ~/.local/bin is not in PATH
Skip If
echo $PATH | grep -q '.local/bin'
How
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc
Verify
echo $PATH | grep '.local/bin'
Result
added to ~/.zshrc, reloaded shell
3 Download the MCP client binary
Why
Each MCP tool is a separate binary optimized for your platform
When
Installing a new MCP client or updating
Skip If
Current version matches latest
How
curl -LO https://example.com/mcp-tool/darwin-arm64 && chmod +x mcp-tool && mv mcp-tool ~/.local/bin/
Verify
mcp-tool --version shows version number
Result
downloaded darwin-arm64 binary, v0.15.2
4 Register with MCP client
Why
Adds the tool to Claude Code/Desktop configuration
When
After binary is installed
Skip If
Tool already registered in ~/.claude.json
How
mcp-tool register
Verify
claude mcp list shows the tool
Result
registered, appears in claude mcp list
5 Verify MCP connection
Why
Confirms the tool can communicate with remote server
When
After registration
How
mcp-tool --tool tool_status
Verify
Response shows version and connection status
Result
connection verified, auto-update enabled
Ubuntu 22.04 (WSL2) complete

Windows Subsystem for Linux - common enterprise setup

Steps: 5
1 Create local bin directory
Why
MCP tools install as standalone binaries
When
First installation
Skip If
~/.local/bin exists
How
mkdir -p ~/.local/bin
Verify
Directory exists
Result
created ~/.local/bin
2 Add local bin to PATH
Why
Ensures binaries are accessible
When
If not in PATH
Skip If
Already in PATH
How
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
Verify
Path includes .local/bin
Result
added to ~/.bashrc, opened new terminal to verify
3 Download the MCP client binary
Why
Each tool is a separate binary
When
Installing or updating
Skip If
Version matches latest
How
curl -LO https://example.com/mcp-tool/linux-amd64
Verify
mcp-tool --version works
Result
downloaded linux-amd64, had to run chmod +x first
4 Register with MCP client
Why
Adds tool to configuration
When
After install
Skip If
Already registered
How
mcp-tool register
Verify
Tool listed
Result
registration updated ~/.claude.json in Windows home via symlink
5 Verify MCP connection
Why
Confirms communication works
When
After registration
How
mcp-tool --tool tool_status
Verify
Shows connection status
Result
working, note: WSL network sometimes needs wsl --shutdown to reset
Debian (ARM64 server) partial

Headless ARM server - Raspberry Pi or cloud ARM instance

Steps: 5
1 Create local bin directory
Why
MCP tools install as standalone binaries
When
First installation
Skip If
Directory exists
How
mkdir -p ~/.local/bin
Verify
Directory exists
Result
created ~/.local/bin
2 Add local bin to PATH
Why
Ensures binaries are accessible
When
If not in PATH
Skip If
Already in PATH
How
Add to ~/.bashrc
Verify
Path verified
Result
added export, sourced bashrc
3 Download the MCP client binary
Why
Each tool is a separate binary
When
Installing or updating
Skip If
Version matches
How
Download linux-arm64 binary
Verify
Binary runs
Result
downloaded linux-arm64, chmod +x applied
4 Register with MCP client
Why
Adds tool to configuration
When
After install
Skip If
Headless server - no GUI client
How
Skip registration for headless use
Verify
Direct invocation works
Result
headless server, using direct API invocation instead of registration
5 Verify MCP connection
Why
Confirms communication works
When
After setup
How
mcp-tool --tool tool_status
Verify
Shows connection status
Result
connection timeout, firewall blocking outbound HTTPS on port 443
Comments
  • Firewall issue resolved by adding outbound HTTPS rule
  • ARM64 binaries work on Raspberry Pi 4/5 and AWS Graviton instances