eagle-mcp-server

eagle-mcp-server

0

Eagle MCP Server is an unofficial server for connecting the Eagle application to a Model Context Protocol (MCP) ecosystem. It facilitates handling various file types and communicating with clients through SSE. This project is designed to enhance file management and integration capabilities for users.

Eagle MCP Server (Unofficial)

A Model Context Protocol (MCP) server for Eagle. Wiki

Supported file formats:
  • JPG / JPEG
  • PNG
  • PDF
  • SVG
  • MP4
  • MP3
  • FBX
  • OBJ
  • EPS
  • TIF / TIFF
  • WebP
  • BMP
  • ICO
  • RAW
  • etc

Requirements

  • Python 3.13
  • uv

Prerequisites

Install the required dependencies:

uv sync

Usage

  1. Launch the Eagle app.
  2. Launch this MCP server by running the following command:
uv run main.py
# To use a different endpoint:
# EAGLE_API_BASE_URL=http://localhost:12345 uv run main.py

Connecting to the MCP Server using SSE

All the most popular MCP clients (Claude Desktop, Cursor & Windsurf) use the following config format:

{
  "mcpServers": {
    "eagle-mcp-server": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

VS Code

"mcp": {
    "servers": {
        "eagle-mcp-server": {
            "type": "sse",
            "url": "http://localhost:8000/mcp"
        }
    }
}

Tools

SupportedOperation IDAPI endpointEnabled (default)Category
connect/api/connectMCP
get_application_info/api/application/info⚫︎Application
create_folder/api/folder/create⚫︎Folder
rename_folder/api/folder/renameFolder
update_folder/api/folder/update⚫︎Folder
get_folder_list/api/folder/list⚫︎Folder
get_folder_list_recent/api/folder/listRecentFolder
add_item_from_url/api/item/addFromURLItem
add_items_from_urls/api/item/addFromURLsItem
add_item_from_path/api/item/addFromPath⚫︎Item
add_items_from_paths/api/item/addFromPathsItem
add_bookmark/api/item/addBookmarkItem
get_item_info/api/item/info⚫︎Item
get_item_source/api/item/source⚫︎Item
get_item_thumbnail/api/item/thumbnailItem
get_item_list/api/item/list⚫︎Item
move_item_to_trash/api/item/moveToTrash⚫︎Item
refresh_item_palette/api/item/refreshPaletteItem
refresh_item_thumbnail/api/item/refreshThumbnailItem
update_item/api/item/update⚫︎Item
get_library_info/api/library/info⚫︎Library
get_library_history/api/library/historyLibrary
switch_library/api/library/switchLibrary
get_library_icon/api/library/iconLibrary
[ ].........

MCP Server API docs:

Use Cases

1) Same Host (Recommended)

flowchart LR

    subgraph 192.168.1.100
        direction LR
        
        subgraph FileSystem [File System]
        end
        subgraph EagleApp [Eagle App<br/>localhost:41595]
        end
        subgraph MCPServer [MCP Server<br/>localhost:8000]
        end
        subgraph MCPClient [MCP Client]
        end
    end

    EagleApp ==> MCPServer e1@==> MCPClient
    MCPClient e2@==> MCPServer ==> EagleApp
    EagleApp ==> FileSystem
    FileSystem ==> EagleApp

    e1@{ animate: true }
    e2@{ animate: true }

[!TIP] You have direct access to the filesystem.

2) Same Host (Eagle App, MCP Server) + Other Host (MCP Client)

flowchart LR
  
    subgraph 192.168.1.100
        subgraph FileSystem [File System]
        end
        subgraph EagleApp [Eagle App<br/>localhost:41595]
        end
        subgraph MCPServer [MCP Server<br/>localhost:8000]
        end
    end

    subgraph 192.168.1.xxx
        subgraph MCPClient [MCP Client]
        end
    end

    EagleApp ==> MCPServer e1@==> MCPClient
    MCPClient e2@==> MCPServer ==> EagleApp
    EagleApp ==> FileSystem
    FileSystem ==> EagleApp

    e1@{ animate: true }
    e2@{ animate: true }

[!WARNING] You don't have access to the filesystem.

3) Other Host

flowchart LR

    subgraph 192.168.1.100
        subgraph FileSystem [File System]
        end
        subgraph EagleApp [Eagle App<br/>localhost:41595]
        end
    end

    subgraph 192.168.1.101
        subgraph MCPServer [MCP Server<br/>localhost:8000]
        end
    end

    subgraph 192.168.1.xxx
        subgraph MCPClient [MCP Client]
        end
    end

    EagleApp ==> MCPServer e1@==> MCPClient
    MCPClient e2@==> MCPServer ==> EagleApp
    EagleApp ==> FileSystem
    FileSystem ==> EagleApp

    e1@{ animate: true }
    e2@{ animate: true }

[!WARNING] You don't have access to the filesystem.