masv

MASV 是一個易於使用且極度可靠的管理式檔案傳輸服務。

文件

MASV MCP Server

⚠️ Experimental Server: This is an experimental MCP server created to gauge interest and integration potential. It has not been subject to our rigorous internal verification processes. Further support and updates will be provided on a best effort basis. We want to hear from you ! If you have any questions or issues, please contact us at support@masv.io.

An MCP (Model Context Protocol) server that provides LLMs with tools to interact with the MASV API.

What is MASV?

MASV is an easy-to-use and ultra-reliable managed file transfer service designed for teams of all sizes. It allows users to send and receive massive files without size limits, while ensuring data integrity and security through its robust cloud infrastructure that supports cloud, on-prem, and hybrid workflows.

Learn more https://masv.io/

Requirements

Node.js 24 or newer. The published package is plain JavaScript compiled to ES2024, so no transpilation or polyfills are needed. Node 24 is the version the project is built and tested against, and the one the test suite requires — it imports the TypeScript sources directly using Node's built-in type stripping.

Installation

The server can be run directly with npx without installation, or installed globally if preferred:

# Run directly with npx (recommended)
npx @getmasv/masv-mcp-server

# Or install globally
npm install -g @getmasv/masv-mcp-server

Configuration

Required Environment Variables

The server requires the following environment variables to authenticate with the MASV API:

  • MASV_TEAM_ID - Your MASV team identifier
  • MASV_API_KEY - Your MASV API authentication key

Optional Environment Variables

  • MASV_ALLOW_DELETE - Set to true to allow LLM use package and portal deletion tools (default: false)

MCP Client Configuration

Add the server to your MCP client configuration file:

{
  "mcpServers": {
    "masv": {
      "command": "npx",
      "args": ["-y", "@getmasv/masv-mcp-server"],
      "env": {
        "MASV_TEAM_ID": "your-team-id",
        "MASV_API_KEY": "your-api-key"
      }
    }
  }
}

Note: The -y flag automatically confirms the package execution without prompting.

Available Tools

The server provides the following tools for LLM interaction:

Package Management

  • get_packages - List team packages
  • get_package - Get package details by ID
  • get_portal_packages - List packages uploaded to portals
  • get_package_files - List files in a package
  • get_package_transfers - Get package transfer history
  • update_package_expiration_date_and_time - Modify package expiration
  • delete_package - Delete a package (requires MASV_ALLOW_DELETE=true)

Portal Management

  • get_portals - List all portals
  • get_portal - Get portal details by ID
  • create_portal - Create a new portal
  • update_portal - Update portal configuration
  • delete_portal - Delete a portal (requires MASV_ALLOW_DELETE=true)

Activity Tracking

  • get_activities - List activities and events
  • get_activity_events - Get event history for an activity
  • get_activities_information - Get detailed activity state descriptions

Integration Management

  • get_integrations - List connected storage integrations
  • send_package_to_integration - Transfer package to connected storage
  • list_files_on_integration - Browse files on cloud integrations and MASV Storage Gateway
  • transfer_files_from_integration - Transfer files from storage to MASV (works with both cloud and MASV Storage Gateway)

Team Management

  • get_team_members - List team members and their details

License

MIT

Support

For questions, issues, or feedback please contact us at support@masv.io.

Development

Install dependencies

npm install

Build

npm run build

Format

npm run format

Prettier with a 100 column width. CI runs npm run format:check and fails on unformatted files.

Test

npm test
npm run test:coverage

Runs the offline suite with Node's built-in test runner. It needs no MASV credentials and makes no network calls, so it runs on every pull request, and it needs no build step because Node runs the TypeScript sources directly.

Relative imports inside src/ are written with .ts extensions so that Node can run the sources directly; tsc rewrites them to .js on emit. Keep new imports in that form, and note that Node's type stripping rules out TypeScript enum, namespace, and constructor parameter properties.

Use MCP server

In LLM chat application add command to start the server:

node /path/to/masv-mcp-server/build/index.js

To run MCP inspector to inspect and execute tools

npm run inspector