pshare-share-mcp

pshare-share-mcp

Enables AI assistants to upload files and folders to a Pshare instance and generate share links, with support for optional password, TTL, and chunked uploads for large files.

Category
访问服务器

README

pshare-share-mcp

MCP server cho phép bất kỳ AI nào (Claude Code, Claude Desktop, hoặc client MCP khác) upload file/folder lên Pshare và nhận lại link share — y hệt thao tác tay: upload qua UI rồi bấm nút Share để copy link.

Không cần đăng nhập / token gì cả — nhất quán với kiến trúc hiện tại của Pshare (chính client web cũng không xác thực thật, chỉ dùng một X-Browser-Id tự sinh).

Yêu cầu: đã có sẵn 1 instance Pshare đang chạy ở đâu đó (localhost hoặc trong LAN) — repo này chỉ là MCP server gọi vào REST API của Pshare, không tự chạy Pshare.

Tool cung cấp

pshare_upload

field bắt buộc mô tả
paths ✅ mảng đường dẫn tuyệt đối (file hoặc folder) trên máy đang chạy MCP server. Folder được upload đệ quy, giữ nguyên cấu trúc thư mục con.
title ❌ tiêu đề hiển thị trên card share
senderName ❌ tên người gửi hiển thị cho người nhận
password ❌ mật khẩu để mở link share
description ❌ mô tả hiển thị trên card share
ttlMinutes ❌ số phút link tồn tại; bỏ trống = không hết hạn

Kết quả trả về: link share dạng http://<pshare-host>/?share=<N> kèm số file và trạng thái password.

File > 90MB tự động chuyển sang chunked upload (giống hành vi upload LAN của client web), không cần quan tâm thêm.

Cài đặt

Chỉ cần clone repo này — không cần tải cả Pshare về:

git clone https://github.com/ntanhprt/Pshare-mcp.git
cd Pshare-mcp
pnpm install
pnpm build      # biên dịch ra dist/

Cấu hình (biến môi trường)

biến mặc định mô tả
PSHARE_BASE_URL http://localhost:5173 URL của Pshare server mà MCP sẽ gọi vào để upload/share
PSHARE_MCP_HOST 0.0.0.0 host bind khi chạy transport HTTP
PSHARE_MCP_PORT 7317 port khi chạy transport HTTP
PSHARE_MCP_ALLOWED_HOSTS (không đặt) danh sách host được phép, cách nhau bằng dấu phẩy, dùng để bật DNS-rebinding protection khi bind 0.0.0.0

localhost chỉ đúng khi MCP server chạy trên đúng cái máy đang chạy Pshare. localhost luôn trỏ về "chính máy đang chạy process đó" — nên nếu bạn cài MCP này trên máy/laptop khác với máy chạy Pshare (kể cả cùng LAN), bắt buộc phải đổi thành IP thật của máy chạy Pshare. Ví dụ, nếu Pshare đang chạy ở máy có IP 192.168.3.7:

PSHARE_BASE_URL=http://192.168.3.7:5173 claude mcp add pshare-share -- node "$(pwd)/dist/index.js"

Chỉ giữ mặc định localhost khi bạn chạy MCP (stdio) ngay trên cùng máy đang chạy Pshare.

Chạy thử độc lập

# stdio (mặc định)
pnpm start

# HTTP/SSE — AI ở máy khác trong LAN cũng gọi được
pnpm start:http
# → nghe tại http://<PSHARE_MCP_HOST>:<PSHARE_MCP_PORT>/mcp

Hướng dẫn tích hợp cho dev khác

1. Dùng với Claude Code (transport stdio — khuyên dùng khi AI chạy cùng máy/host với Pshare)

Sau khi clone + build (xem mục Cài đặt ở trên), từ trong thư mục Pshare-mcp:

claude mcp add pshare-share -- node "$(pwd)/dist/index.js"

Muốn trỏ tới Pshare ở máy khác, truyền env qua -e (xem lưu ý về localhost ở mục Cấu hình):

claude mcp add pshare-share \
  -e PSHARE_BASE_URL=http://192.168.3.7:5173 \
  -- node "$(pwd)/dist/index.js"

Kiểm tra đã đăng ký:

claude mcp list

2. Dùng với Claude Desktop (transport stdio)

Mở file config (~/Library/Application Support/Claude/claude_desktop_config.json trên macOS, %APPDATA%\Claude\claude_desktop_config.json trên Windows) và thêm:

{
  "mcpServers": {
    "pshare-share": {
      "command": "node",
      "args": ["/đường/dẫn/tuyệt/đối/tới/Pshare-mcp/dist/index.js"],
      "env": {
        "PSHARE_BASE_URL": "http://localhost:5173"
      }
    }
  }
}

Khởi động lại Claude Desktop để nhận tool pshare_upload.

3. Dùng qua HTTP/SSE (khi AI chạy ở máy khác trong cùng LAN)

Chạy server MCP ở máy đang host Pshare (hoặc bất kỳ máy nào gọi được tới Pshare):

PSHARE_BASE_URL=http://localhost:5173 pnpm start:http

Trên máy client (Claude Code, hoặc bất kỳ MCP client hỗ trợ HTTP transport nào), trỏ tới:

http://<IP-máy-chạy-mcp>:7317/mcp

Ví dụ với Claude Code:

claude mcp add --transport http pshare-share http://192.168.3.7:7317/mcp

4. Dùng với bất kỳ AI/agent framework nào khác

MCP là giao thức JSON-RPC chuẩn — bất kỳ client MCP nào (LangChain MCP adapter, custom agent, v.v.) cũng kết nối được, chỉ cần:

  • stdio: spawn lệnh node dist/index.js và giao tiếp qua stdin/stdout.
  • HTTP: gọi POST http://<host>:<port>/mcp theo Streamable HTTP transport spec của MCP.

Lưu ý bảo mật

MCP server này không xác thực — bất kỳ ai gọi được vào nó (qua stdio nếu có quyền chạy process, hoặc qua HTTP nếu truy cập được vào host:port) đều có thể upload/share file lên Pshare thật. Điều này nhất quán với chính Pshare (không có auth trên API upload/share), nhưng cần lưu ý khi mở transport HTTP ra ngoài LAN.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选