masv
Official# 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](mailto: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:
```bash
# 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:
```json
{
"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](mailto: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
```
TDQS
Scored across 20 tools
Most tools target clearly distinct resource+action pairs (portals, packages, integrations, activities). The activity trio (get_activities, get_activity_events, get_activities_information) has some overlap—get_activities vs get_activities_information could be confused—but descriptions differentiate them. Package variants (get_packages vs get_portal_packages vs get_package_files) are well explained.
Consistent snake_case verb_noun pattern dominates (get_portal, create_portal, delete_package). Minor deviations: 'list_files_on_integration' uses list_ where siblings use get_, and 'update_package_expiration_date_and_time' is unusually verbose. Still readable and largely predictable.
20 tools is slightly heavy but well-scoped for a full file-transfer platform spanning portals, packages, integrations, activities, and team members. Each tool maps to a distinct operation, so no obvious filler.
Portals have full CRUD (get/get/create/update/delete) and packages cover retrieval, files, transfers, expiration, and deletion. Notable gap: no direct create_package for team packages (only integration-driven creation), and no delete for integrations—minor workarounds exist but the package-creation lifecycle is incomplete.