PicGoMCP

The PicGo Uploader MCP Server is a server that interacts with the PicGo application to upload images. Built with Node.js, it enhances the functionality of PicGo, allowing users to easily upload local image files and streamline their workflow.

GitHub Stars

3

User Rating

Not Rated

Forks

0

Issues

0

Views

1

Favorites

0

README
PicGo Uploader MCP Server

npm version

An MCP (Model Context Protocol) server that allows interaction with a running PicGo application to upload images.

Overview

This server exposes PicGo's image uploading capabilities as an MCP tool. It connects to the PicGo application's built-in server (usually running on http://127.0.0.1:36677) and provides a tool to upload local image files.

Prerequisites
  1. Node.js: Ensure you have Node.js (v18 or later recommended) installed.
  2. PicGo Application: You need the PicGo desktop application installed and running.
  3. PicGo Server Enabled: In PicGo's settings (PicGo 设置 -> 设置Server), enable the server. The default port is 36677. Make sure it's running.
  4. NPM or Yarn: For installing the package.
Installation
npm install -g picgo-uploader

or

yarn global add picgo-uploader

This will install the MCP server globally and make the picgo-uploader command available.

Running the Server

Simply execute the command in your terminal:

picgo-uploader

The server will start and listen for MCP connections via stdio. You should see a message like:

PicGo Uploader MCP server running on stdio

Keep this terminal window open while you want to use the server.

Usage (MCP Tool)

Once the server is running and connected to your MCP client (like Roo Code), you can use the provided tool:

Tool: upload_image_via_picgo

  • Description: Uploads one or more images using the running PicGo server application.
  • Input Schema:
    {
      "type": "object",
      "properties": {
        "image_paths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of absolute paths to the image files to upload."
        }
      },
      "required": ["image_paths"]
    }
    
  • Output: On success, returns a JSON string containing the array of uploaded image URLs provided by PicGo. On failure, returns an error message.

Example (use_mcp_tool):

<use_mcp_tool>
  <server_name>picgo-uploader</server_name>
  <tool_name>upload_image_via_picgo</tool_name>
  <arguments>
  {
    "image_paths": [
      "C:\\Users\\YourUser\\Pictures\\screenshot1.png",
      "/home/user/images/diagram.jpg"
    ]
  }
  </arguments>
</use_mcp_tool>

Note: Ensure the file paths provided in image_paths are absolute paths accessible from the machine where the picgo-uploader server is running.

Troubleshooting
  • Error: "PicGo server request error: connect ECONNREFUSED 127.0.0.1:36677":
    • Make sure the PicGo application is running.
    • Verify that the PicGo server is enabled in its settings and running on the default port 36677.
  • Error: "Image path does not exist: ":
    • Double-check that the provided image path is correct and absolute.
    • Ensure the file exists at the specified location on the machine running the picgo-uploader.
  • Error: "PicGo upload failed: ...":
    • This indicates an error reported by PicGo itself (e.g., invalid configuration for the selected uploader, network issues). Check the PicGo application logs for more details.
Development
  1. Clone the repository.
  2. Install dependencies: npm install
  3. Build the code: npm run build
  4. Run in development: node build/index.js
  5. Watch for changes: npm run watch (in a separate terminal)
Author Information
Ricky

Web3 Developer

35

Followers

65

Repositories

1

Gists

3

Total Contributions

Top Contributors

Threads