About 115driver
115driver is an MCP server in the Cloud category: this is a 115 cloud driver package.
Install
git clone https://github.com/SheltonZhu/115driverThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about 115driver
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
115driver
A comprehensive Go library, CLI tool, and MCP server for 115 cloud storage. It provides a full-featured driver for 115.com's API, supporting login, file operations, upload/download, offline downloads, and more.
Table of Contents
- Features
- Installation
- Quick Start
- CLI
- MCP Server
- API Reference
- Troubleshooting
- Project Structure
- Contributing
- License
Features
Authentication — Cookie-based login, QR code login, and user identity verification.
File Operations — List, rename, move, copy, delete, download, upload (with rapid upload via SHA1 deduplication and multipart upload via Aliyun OSS), search with filters, and get file info/statistics.
Offline Downloads — Add HTTP, ED2K, and magnet link download tasks; list, delete, and clear tasks.
Share — Create share links and download files via share code.
Recycle Bin — List, restore, and permanently delete items.
CLI — Full-featured command-line interface with colored table output, JSON mode for scripts, shell completions, and multiple profile support.
MCP Server — Model Context Protocol server for AI application integration (Claude Desktop, Cursor, etc.).
Installation
go get github.com/SheltonZhu/115driver
Quick Start
Basic Usage
package main
import (
"github.com/SheltonZhu/115driver/pkg/driver"
"log"
)
func main() {
// Option 1: Import credentials from cookie string
cr, err := driver.CredentialFromCookie("your_cookie_string")
if err != nil {
log.Fatalf("Failed to create credential: %v", err)
}
// Option 2: Create credentials manually
// cr := &driver.Credential{
// UID: "your_uid",
// CID: "your_cid",
// SEID: "your_seid",
// KID: "your_kid",
// }
// Create client with credentials
client := driver.Default().ImportCredential(cr)
// Check login status
if err := client.LoginCheck(); err != nil {
log.Fatalf("Login failed: %v", err)
}
log.Println("Successfully logged in!")
}
Common Operations
The examples below assume you have an authenticated client (see Basic Usage above).
// Download a file using pickcode
downloadInfo, err := client.Download("pickcode_here")
if err != nil { /* handle error */ }
fileReader, _ := downloadInfo.Get()
defer fileReader.Close()
// write fileReader to file...
// Upload a file (auto-selects rapid upload or multipart via OSS)
file, _ := os.Open("/path/to/local/file.zip")
defer file.Close()
fileInfo, _ := file.Stat()
uploadID, err := client.RapidUploadOrByOSS(
"0", // parent directory ID ("0" for root)
fileInfo.Name(),
fileInfo.Size(),
file,
)
// List files in root directory
files, err := client.List("0")
for _, f := range files {
log.Printf("File: %s, Size: %d, Type: %s", f.Name, f.Size, f.Type)
}
// Search for files
results, err := client.Search(&driver.SearchOption{
SearchValue: "document",
Limit: 100,
})
for _, r := range results.Files {
log.Printf("File: %s, Size: %d", r.Name, r.Size)
}
// Add offline download task
taskIDs, err := client.AddOfflineTaskURIs(
[]string{"https://example.com/file.zip"},
"0", // "0" for root directory
)
CLI
115driver includes a CLI tool for interacting with 115 cloud storage from the command line, designed for both human use (colored table output) and AI agent consumption (--json flag).
Install
go install github.com/SheltonZhu/115driver/cmd/115driver@latest
Authentication
# QR code login (interactive)
115driver login
# Cookie login
115driver login --cookie "UID=xxx;CID=xxx;SEID=xxx;KID=xxx"
# Verify identity
115driver whoami
Credentials are stored in ~/.115driver/config.toml and support multiple profiles.
Authentication Priority
--cookieflagDRIVER115_COOKIEenvironment variable- Config file (
~/.115driver/config.toml)
Additional env vars: DRIVER115_CONFIG (config path), DRIVER115_PROFILE (profile name).
Commands
# List files
115driver ls /path/to/dir
115driver ls -l /path/to/dir # detailed view
# File info
115driver stat /path/to/file
# Create directories
115driver mkdir /new/dir
115driver mkdir -p /deep/nested/dir # create parents
# Move / Copy / Rename / Delete
115driver mv /source/file /dest/dir
115driver cp /source/file /dest/dir
115driver rename /path/to/file new_name
115driver rm /path/to/file
# Upload & Download
115driver upload /local/file /remote/dir
115driver download /remote/file /local/dir
# Search
115driver search keyword
115driver search keyword -t video # filter by type
115driver search keyword --sort size # sort results
# Offline downloads (HTTP/ED2K/magnet)
115driver offline add <url>
115driver offline add <url> -d /save/dir
115driver offline list
115driver offline rm <hash>
JSON Output
All commands support --json for machine-readable output:
115driver --json ls /path/to/dir
115driver --json stat /path/to/file
Shell Completion
# Bash
echo 'source <(115driver completion bash)' >> ~/.bashrc
# Zsh
echo 'source <(115driver completion zsh)' >> ~/.zshrc
# Fish
115driver completion fish > ~/.config/fish/completions/115driver.fish
MCP Server
115driver includes an MCP (Model Context Protocol) server for AI application integration (Claude Desktop, Cursor, etc.).
Install
Option 1: go install
go install github.com/SheltonZhu/115driver/mcp@latest
Option 2: build from source
git clone https://github.com/SheltonZhu/115driver.git
cd 115driver
go build -o 115driver-mcp-server ./mcp/
Usage
# If installed via go install:
mcp --cookie="UID=xxx;CID=xxx;SEID=xxx;KID=xxx"
# If built from source:
./115driver-mcp-server --cookie="UID=xxx;CID=xxx;SEID=xxx;KID=xxx"
Available Tools
| Category | Tools |
|---|---|
| Directory | listDirectory |
| File | stat, mkdir, delete, rename, move, copy, upload_from_url, upload_from_local, download_file, get_download_info |
| Search | search |
| Offline | listOfflineTasks, addOfflineTaskURIs, deleteOfflineTasks, clearOfflineTasks |
| Share | getShareSnap |
| Recycle | listRecycleBin, revertRecycleBin, cleanRecycleBin |
Configure with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"115driver": {
"command": "mcp",
"args": ["--cookie=UID=xxx;CID=xxx;SEID=xxx;KID=xxx"]
}
}
}
API Reference
For detailed API documentation, visit pkg.go.dev.
Troubleshooting
Login Issues
If you encounter login issues:
- Make sure your cookie is valid and not expired
- Check that all required fields (UID, CID, SEID, KID) are present
- Try logging in through the web interface first to obtain a fresh cookie
Upload/Download Issues
If upload or download fails:
- Verify file paths are correct
- Check your internet connection
- Ensure you have sufficient storage space
- Check the returned error message for specific details
Rate Limiting
The 115 API may have rate limits. If you encounter rate limiting errors:
- Add delays between operations
- Implement retry logic with exponential backoff
- Consider using a proxy if needed
Project Structure
115driver/ # Go 1.23+
├── cmd/
│ └── 115driver/ # CLI entry point (go install binary)
├── cli/ # CLI implementation
│ ├── cmd/ # Cobra commands
│ └── internal/ # Internal packages (auth, output, resolver)
├── pkg/
│ ├── driver/ # Core driver (client, login, file, upload, download, search, share, offline)
│ └── crypto/ # Cryptography utilities (ECDH, AES, RSA)
└── mcp/ # MCP server (stdin/stdout JSON-RPC 2.0)
├── main.go # Entry point
└── server/tools/ # Tool implementations (dir, file, search, offline, share, recycle)
Star History
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Contributors
License
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.