Skip to main content
Glama
ntanhprt

pshare-share-mcp

by ntanhprt

pshare-share-mcp

Servidor MCP que permite a cualquier IA (Claude Code, Claude Desktop u otro cliente MCP) subir archivos/carpetas a Pshare y recibir un enlace de compartir — igual que la operación manual: subir por la interfaz y pulsar el botón Share para copiar el enlace.

No requiere inicio de sesión ni token alguno — coherente con la arquitectura actual de Pshare (el propio cliente web tampoco se autentica de verdad, solo usa un X-Browser-Id autogenerado).

Requisito: tener ya una instancia de Pshare ejecutándose en algún lugar (localhost o en la LAN) — este repositorio es solo un servidor MCP que llama a la API REST de Pshare, no ejecuta Pshare por sí mismo.

Herramienta proporcionada

pshare_upload

campo

obligatorio

descripción

paths

✅

array de rutas absolutas (archivo o carpeta) en la máquina donde se ejecuta el servidor MCP. Las carpetas se suben de forma recursiva, manteniendo la estructura de subcarpetas.

title

❌

título mostrado en la tarjeta de compartir

senderName

❌

nombre del remitente mostrado al destinatario

password

❌

contraseña para abrir el enlace compartido

description

❌

descripción mostrada en la tarjeta de compartir

ttlMinutes

❌

minutos de validez del enlace; vacío = sin caducidad

Resultado devuelto: enlace compartido con formato http://<pshare-host>/?share=<N> junto con el número de archivos y el estado de la contraseña.

Los archivos de más de 90 MB se cambian automáticamente a subida fragmentada (igual que el comportamiento de subida LAN del cliente web), sin necesidad de preocuparse por nada más.

Related MCP server: vnsh-mcp

Instalación

Solo hay que clonar este repositorio — no es necesario descargar Pshare completo:

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

Configuración (variables de entorno)

variable

valor por defecto

descripción

PSHARE_BASE_URL

http://localhost:5173

URL del servidor Pshare al que MCP llamará para subir/compartir

PSHARE_MCP_HOST

0.0.0.0

host de enlace al ejecutar el transporte HTTP

PSHARE_MCP_PORT

7317

puerto al ejecutar el transporte HTTP

PSHARE_MCP_ALLOWED_HOSTS

(sin definir)

lista de hosts permitidos, separados por comas, para activar la protección contra DNS-rebinding al enlazar 0.0.0.0

localhost solo es correcto cuando el servidor MCP se ejecuta en la misma máquina que ejecuta Pshare. localhost siempre apunta a "la propia máquina que ejecuta ese proceso" — por lo tanto, si instalas este MCP en una máquina/portátil distinta de la que ejecuta Pshare (incluso en la misma LAN), es obligatorio cambiarlo por la IP real de la máquina que ejecuta Pshare. Por ejemplo, si Pshare se ejecuta en una máquina con IP 192.168.3.7:

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

Mantén el valor por defecto localhost solo cuando ejecutes MCP (stdio) directamente en la misma máquina que ejecuta Pshare.

Prueba independiente

# 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

Guía de integración para otros desarrolladores

1. Uso con Claude Code (transporte stdio — recomendado cuando la IA se ejecuta en la misma máquina/host que Pshare)

Después de clonar y compilar (ver la sección Instalación arriba), desde dentro de la carpeta Pshare-mcp:

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

Para apuntar a Pshare en otra máquina, pasa las variables de entorno con -e (ver la nota sobre localhost en la sección Configuración):

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

Comprobar que se ha registrado:

claude mcp list

2. Uso con Claude Desktop (transporte stdio)

Abre el archivo de configuración (~/Library/Application Support/Claude/claude_desktop_config.json en macOS, %APPDATA%\Claude\claude_desktop_config.json en Windows) y añade:

{
  "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"
      }
    }
  }
}

Reinicia Claude Desktop para recibir la herramienta pshare_upload.

3. Uso a través de HTTP/SSE (cuando la IA se ejecuta en otra máquina de la misma LAN)

Ejecuta el servidor MCP en la máquina que aloja Pshare (o en cualquier máquina que pueda acceder a Pshare):

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

En la máquina cliente (Claude Code, o cualquier cliente MCP que admita transporte HTTP), apunta a:

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

Ejemplo con Claude Code:

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

4. Uso con cualquier otro framework de IA/agente

MCP es un protocolo JSON-RPC estándar — cualquier cliente MCP (adaptador MCP de LangChain, agente personalizado, etc.) puede conectarse, solo necesita:

  • stdio: ejecutar el comando node dist/index.js y comunicarse a través de stdin/stdout.

  • HTTP: llamar a POST http://<host>:<port>/mcp según la especificación de transporte Streamable HTTP de MCP.

Notas de seguridad

Este servidor MCP no autentica — cualquiera que pueda acceder a él (a través de stdio si tiene permisos para ejecutar el proceso, o a través de HTTP si puede acceder al host:puerto) puede subir/compartir archivos al Pshare real. Esto es coherente con el propio Pshare (no tiene autenticación en la API de subida/compartición), pero hay que tenerlo en cuenta al exponer el transporte HTTP fuera de la LAN.

Available Tools

1 tool
pshare_uploadUpload to Pshare and get a share linkA

Uploads one or more files/folders from this machine to Pshare (LAN file sharing) and returns the same share link a user would get by uploading through the UI and clicking "Share".

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYesAbsolute file or folder paths on this machine to upload. Folders are uploaded recursively.
titleNoTitle shown on the share card
passwordNoPassword required to open the share link
senderNameNoName of the sender shown to recipients
ttlMinutesNoMinutes until the share expires; omit for no expiry
descriptionNoDescription shown on the share card

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It clearly states the upload side-effect and the nature of the return value, but it does not disclose potential caveats such as file size limits, authentication requirements, or whether an existing share is reused or a new one is created. The UI-equivalence note adds value, but behavioral disclosure remains basic.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that immediately states the action and outcome. Every phrase earns its place, and there is zero filler or repetition of schema field names.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description's mention of the returned share link is valuable for understanding what to expect. With six parameters well-documented in the schema and a straightforward purpose, the description is complete enough for an agent to use the tool, though it could add edge-case behavior (e.g., handling of inaccessible paths).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description rightfully leaves parameter details to the schema. The only parameter-related hint in the description is 'one or more files/folders', which mirrors the 'paths' array. This adds no meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Uploads'), a clear resource ('one or more files/folders from this machine to Pshare'), and a concrete outcome ('returns the same share link a user would get'). It fully distinguishes the tool's purpose even without sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context by equating the tool's output to the UI 'Share' action, implying when to use it: whenever a user would upload files via the Pshare interface. It does not explicitly mention exclusions or alternatives, but with no sibling tools, this is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.0.0
    • First observedpshare_upload

TDQS

A3.9/5.0

Scored across 1 tool

Disambiguation5/5

With only a single tool, there is no possibility of confusion or overlap. The tool's purpose is clearly unique by virtue of being the only one.

Naming Consistency5/5

A single tool name cannot be inconsistent with itself. 'pshare_upload' uses a clear prefix plus verb structure, and there are no other names to compare against.

Tool Count2/5

A one-tool server for a file-sharing service feels too thin. While the tool covers the upload action, the apparent scope of 'share' implies at least download or retrieval functionality, making a single tool insufficient.

Completeness2/5

The tool surface is severely limited to uploading. There are no tools for downloading, listing, deleting, or managing shares, which means agents have no way to complete a full sharing workflow.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Enables AI assistants to manage Microsoft SharePoint documents and folders through natural language, supporting operations like listing, reading, uploading, updating, deleting, and creating Office files.
    13
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables sharing and reading encrypted files (text, images, logs) for AI workflows, with automatic 24-hour expiration and host-blind security.
    74 npm
    156
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to securely transfer files between machines via encrypted, expiring share links, with tools for upload, download, status checks, and link management.
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    Enables AI agents and users to upload and download files via MCP, generating shareable links and identifier codes. Files are automatically deleted after 24 hours.
    9
    -