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
- Eagle: https://eagle.cool/
- Eagle API docs: https://api.eagle.cool/
Requirements
- Python 3.13
- uv
Prerequisites
Install the required dependencies:
uv sync
Usage
- Launch the Eagle app.
- 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
Supported | Operation ID | API endpoint | Enabled (default) | Category |
---|---|---|---|---|
✅ | connect | /api/connect | MCP | |
✅ | get_application_info | /api/application/info | ⚫︎ | Application |
✅ | create_folder | /api/folder/create | ⚫︎ | Folder |
✅ | rename_folder | /api/folder/rename | Folder | |
✅ | update_folder | /api/folder/update | ⚫︎ | Folder |
✅ | get_folder_list | /api/folder/list | ⚫︎ | Folder |
✅ | get_folder_list_recent | /api/folder/listRecent | Folder | |
✅ | add_item_from_url | /api/item/addFromURL | Item | |
✅ | add_items_from_urls | /api/item/addFromURLs | Item | |
✅ | add_item_from_path | /api/item/addFromPath | ⚫︎ | Item |
✅ | add_items_from_paths | /api/item/addFromPaths | Item | |
✅ | add_bookmark | /api/item/addBookmark | Item | |
✅ | get_item_info | /api/item/info | ⚫︎ | Item |
✅ | get_item_source | /api/item/source | ⚫︎ | Item |
✅ | get_item_thumbnail | /api/item/thumbnail | Item | |
✅ | get_item_list | /api/item/list | ⚫︎ | Item |
✅ | move_item_to_trash | /api/item/moveToTrash | ⚫︎ | Item |
✅ | refresh_item_palette | /api/item/refreshPalette | Item | |
✅ | refresh_item_thumbnail | /api/item/refreshThumbnail | Item | |
✅ | update_item | /api/item/update | ⚫︎ | Item |
✅ | get_library_info | /api/library/info | ⚫︎ | Library |
✅ | get_library_history | /api/library/history | Library | |
✅ | switch_library | /api/library/switch | Library | |
✅ | get_library_icon | /api/library/icon | Library | |
[ ] | ... | ... | ... |
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.