Skip to main content
Glama

ScanPower MCP Server

Official
by scanpower

ScanPower MCP Server

A Model Context Protocol (MCP) server that provides access to the ScanPower API for Amazon FBA and e-commerce operations.

Overview

This MCP server enables you to interact with the ScanPower API through MCP-compatible clients. ScanPower is a platform to sellers and 3PLs manage Amazon FBA operations, purchase orders, outbound shipments, item/box/pallet labeling, and catalog operations.

Features

  • Flexible Authentication: Supports both automatic authentication and manual API token passing

  • Token Management: Automatic token retrieval when not provided, with optional manual token passing

  • Amazon SP-API Integration: Provides access to Amazon's Selling Partner API through ScanPower

  • FBA Operations: Manage inbound shipments, packing options, and inventory

  • Prep Billing: Manage prep matrix, price tiers, and billing

  • Catalog Operations: Search and manage Amazon catalog items

  • User Management: Access user accounts and proxy user functionality

Installation

  1. Clone or download this repository

  2. Install dependencies:

    npm install
  3. Build the project:

    npm run build

Configuration

  1. Copy the example environment file:

    cp .env.example .env
  2. Edit .env with your ScanPower credentials:

    # ScanPower API Configuration SCANPOWER_BASE_URL=https://api.scanpower.com SCANPOWER_OPENAPI_SPEC=https://unity.scanpower.com/docs/api/scanpower-api-bundled.json SCANPOWER_USERNAME=your_username SCANPOWER_PASSWORD=your_password # Optional: Proxy user ID for making calls on behalf of another user SCANPOWER_PROXY_USER_ID= # Amazon SP-API Configuration (for Amazon-specific operations) AMAZON_MARKETPLACE_ID=ATVPDKIKX0DER AMAZON_ACCESS_KEY_ID=your_access_key AMAZON_SECRET_ACCESS_KEY=your_secret_key AMAZON_ROLE_ARN=your_role_arn

Usage

Running the Server

npm start

Or for development:

npm run dev

Available Tools

The server provides the following MCP tools:

Authentication & User Management

  • getUsers: Get a list of active users (parent and sub users)

  • getProxyUsers: Get a list of Client Proxy Users

  • getApiToken: All other API calls require the token that this endpoint provides

  • getAccessToken: Get an access token from Amazon with which to make SP-API calls

Catalog Operations

  • searchCatalogItems: Search Catalog Items

  • catalogSearch: Catalog Search

FBA Inbound Operations

  • listInboundPlans: List InboundPlans

  • createInboundPlan: Create Inbound Plan

  • getInboundPlan: Get Inbound Plan

  • listInboundPlanBoxes: List InboundPlan Boxes

  • cancelInboundPlan: Cancel InboundPlan

  • listInboundPlanItems: List InboundPlan Items

  • updateInboundPlanName: Update InboundPlan Name

  • listPackingGroupBoxes: List PackingGroup Boxes

  • listPackingGroupItems: List PackingGroup Items

  • setPackingInformation: Set Packing Information

  • listPackingOptions: List Packing Options

  • generatePackingOptions: Generate Packing Options

  • confirmPackingOption: Confirm Packing Option

  • listInboundPlanPallets: List InboundPlan Pallets

  • listPlacementOptions: List Placement Options

  • generatePlacementOptions: Generate Placement Options

  • confirmPlacementOption: Confirm Placement Option

Shipment Operations

  • getShipment: Get Shipment

  • listShipmentBoxes: List Shipment Boxes

  • listShipmentContentUpdatePreviews: List ShipmentContent UpdatePreviews

  • generateShipmentContentUpdatePreviews: Generate ShipmentContent UpdatePreviews

  • getShipmentContentUpdatePreview: Get ShipmentContent UpdatePreview

  • confirmShipmentContentUpdatePreview: Confirm ShipmentContent UpdatePreview

  • getDeliveryChallanDocument: Get DeliveryChallan Document

  • listDeliveryWindowOptions: List DeliveryWindow Options

  • generateDeliveryWindowOptions: Generate DeliveryWindow Options

  • confirmDeliveryWindowOptions: Confirm DeliveryWindow Options

  • listShipmentItems: List ShipmentItems

  • updateShipmentName: Update Shipment Name

  • listShipmentPallets: List Shipment Pallets

  • cancelSelfShipAppointment: Cancel SelfShip Appointment

  • getSelfShipAppointmentSlots: Get SelfShip Appointment Slots

  • generateSelfShipAppointmentSlots: Generate SelfShip Appointment Slots

  • scheduleSelfShipAppointment: Schedule SelfShip Appointment

  • updateShipmentSourceAddress: Update ShipmentSource Address

  • updateShipmentTrackingDetails: Update Shipment TrackingDetails

  • listTransportationOptions: List Transportation Options

  • generateTransportationOptions: Generate Transportation Options

  • confirmTransportationOptions: Confirm Transportation Options

Compliance & Prep Operations

  • listItemComplianceDetails: List ItemCompliance Details

  • updateItemComplianceDetails: Update ItemCompliance Details

  • createMarketplaceItemLabels: Create Marketplace ItemLabels

  • listPrepDetails: List Prep Details

  • setPrepDetails: Set Prep Details

  • getInboundOperationStatus: Get InboundOperation Status

  • getBillOfLading: Get BillOfLading

  • getLabels: Get Labels

Inventory & Batch Operations

  • getInboundPlans: Get InboundPlans

  • createInboundPlanFromBatch: Create an inbound plan from the items in the provided batch

  • submitBoxes: Submit Boxes

  • scoutSearch: Wrapper around several SP-API calls for loading product, offers, and pricing data

  • selectBoxes: List boxes for a v1 Amazon batch

  • insertBox: Insert a Box

  • deleteBox: Delete a Box

  • selectBox: Get a Box

  • updateBox: Delete Box

  • selectBoxItems: List BoxItems

  • insertBoxItem: Insert BoxItem

  • deleteBoxItem: Delete BoxItem

  • updateBoxItem: Update BoxItem

  • selectInventory: Select Inventory

  • selectPallets: List Pallets

  • insertPallet: Insert Pallet

  • getMobileInventory: Returns found Inventory and Buylist quantities from the database grouped by Condition

  • deletePallet: Delete Pallet

  • selectPallet: List Pallet

  • updatePallet: Update Pallet

Purchase Orders

  • PurchaseOrders: Get a list of Purchase Orders

  • CreatePurchaseOrder: Create a single purchase order

  • UpdatePurchaseOrder: Update a purchase order. This does not change any of the items in the PO

  • PurchaseOrderItems: Get a list of purchase order items

  • CreatePurchaseOrderItems: Add items to a purchase order

  • UpdatePurchaseOrderItem: Update a single purchase order item

Batch Operations

  • Batches: Get Batches

  • CreateBatch: Create Batch

  • UpdateBatch: Update Batch

  • BatchItems: Get BatchItems

  • CreateBatchItems: CreateBatchItems

  • UpdateBatchItemGql: Update BatchItem

  • ImportPurchaseOrderItems: Import PurchaseOrderItems

  • Buylist: Get Buylist items

  • Inventory: Get Inventory

  • UpdateInventoryItems: Update InventoryItems

  • createBuylist: Create Buylist items

  • getPackHistory: Get PackHistory

Walmart Operations

  • getWmAccessToken: Get Walmart AccessToken

  • itemSetupByMatch: Get ItemSetup by Match

  • bulkInventoryUpdate: Bulk Inventory Update

  • allFeedStatuses: Get All FeedStatuses

  • retireAnItem: Retire an Inventory Item

  • itemLabel: Generate item labels

  • selectBatches: List Batches

  • insertBatches: Insert Batches

  • selectBatch: Get Walmart Batch by ID

  • updateBatches: Update Batches

  • deleteBatches: Delete Batches

  • selectBatchItems: List BatchItems

  • insertBatchItems: Insert BatchItems

  • updateBatchItems: Update BatchItems

  • updateBatchItem: Update BatchItem

  • deleteBatchItems: Delete BatchItems

  • getInboundShipments: Get InboundShipments

  • createInboundShipment: Create InboundShipment

  • fetchInboundPreview: Fetch InboundPreview

  • updateShipmentQuantities: Update Shipment Quantities

  • updateWmShipmentTrackingDetails: Update Walmart Shipment Tracking Details

  • createCarrierRateQuote: Create Carrier RateQuote

  • selectWmShipments: Select Walmart Shipments from the database

  • selectWmShipment: Select a single Walmart Shipment by Id

  • selectWmBoxes: Select Walmart Boxes from the database

  • insertWmBoxes: Insert Walmart Boxes into our database

  • updateWmBoxes: Update Walmart Boxes into our database

  • selectWmBox: Select a single Walmart Box by Id

  • deleteWmBoxes: Delete one or more Walmart Boxes by Id

  • createInboundShipmentLabel: Create InboundShipment Label

  • printCarrierLabel: Print Walmart Carrier Label

  • getInboundShipmentErrors: Get InboundShipment Errors

  • getInboundShipmentItems: Get InboundShipment Items

  • cancelInboundShipment: Cancel InboundShipment

Prep Matrix & Billing

  • selectPrepMatrixProducts: Get all Prep Matrix Product mappings

  • insertPrepMatrixProducts: Create multiple Prep Matrix Product mappings

  • selectPrepMatrixProduct: Get a specific Prep Matrix Product mapping by external_id

  • updatePrepMatrixProducts: Update a Prep Matrix Product mapping by external_id

  • deletePrepMatrixProducts: Delete one or more Prep Matrix Product mapping by external_id

  • selectPrepMatrices: Get all Prep Types

  • insertPrepMatrices: Create multiple Prep Type matrices

  • prepCenterBillingReport: Get the billing report for a given time period

  • prepCenterBillingReportPost: Get the billing report for a given time period

  • selectShipmentPrepMatrices: Get shipment-level ad hoc charges

  • selectShipmentPrepMatricesPost: Get shipment-level ad hoc charges

  • insertShipmentPrepMatrices: Add one or more shipment-level ad hoc charges

  • updateShipmentPrepMatrices: Update or delete one or more shipment-level ad hoc charges

  • selectPrepMatrix: Get a specific Prep Type Matrix by ID

  • updatePrepMatrices: Update one or more Prep Type Matrices by ID

  • deletePrepMatrices: Delete one or more Prep Type Matrices by ID

Webhooks & Carrier Operations

  • selectWebHooks: List WebHooks

  • generateWebHookSecretKey: Generate WebHook SecretKey

  • testWebHook: Test WebHook

  • updateWebHook: Update WebHook

  • deleteWebHook: Delete WebHook

  • getCarrierRateQuote: Get Carrier RateQuote

  • confirmCarrierRateQuote: Confirm Carrier RateQuote

  • cancelCarrierRateQuote: Cancel Carrier RateQutoe

Example Usage

Search for Catalog Items

{ "tool": "search_catalog_items", "arguments": { "keywords": "wireless headphones", "marketplace_ids": ["ATVPDKIKX0DER"], "page_size": 20 } }

Using API Token (Optional)

{ "tool": "search_catalog_items", "arguments": { "keywords": "wireless headphones", "marketplace_ids": ["ATVPDKIKX0DER"], "page_size": 20, "api_token": "your_api_token_here" } }

List Inbound Plans

{ "tool": "list_inbound_plans", "arguments": { "page_size": 10 } }

Get Inbound Plan Details

{ "tool": "get_inbound_plan", "arguments": { "inbound_plan_id": "your-plan-id-here" } }

Error Handling

The server includes comprehensive error handling for:

  • Authentication failures

  • API rate limiting

  • Invalid parameters

  • Network connectivity issues

  • Amazon SP-API errors

All errors are returned in a standardized format with descriptive error messages.

Development

Project Structure

scanpower-mcp-server/ ├── src/ │ └── index.ts # Main server implementation ├── dist/ # Compiled JavaScript output ├── package.json # Dependencies and scripts ├── tsconfig.json # TypeScript configuration ├── .env.example # Environment variables template └── README.md # This file

Building

npm run build

Development Mode

npm run dev

Watching for Changes

npm run watch

API Reference

This MCP server is based on the ScanPower API v2.0 specification. For detailed information about the underlying API endpoints and their parameters, refer to the ScanPower API documentation.

Authentication

The server uses basic authentication for initial API access and then manages bearer tokens for subsequent requests. Amazon SP-API operations require additional OAuth2-style authentication which is handled automatically.

Rate Limiting

The server respects ScanPower's rate limiting policies. If you encounter rate limit errors, the server will return appropriate error messages.

Support

For issues related to:

License

MIT License - see LICENSE file for details.

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests if applicable

  5. Submit a pull request

Changelog

v1.0.0

  • Initial release

  • Support for core ScanPower API operations

  • Authentication and token management

  • Amazon SP-API integration

  • Comprehensive error handling

Deploy Server
A
security – no known vulnerabilities
-
license - not tested
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Enables interaction with ScanPower's inventory and shipment management system through a secure MCP interface. Supports retrieving inventory data, creating shipment plans, and managing logistics operations through natural language.

  1. Overview
    1. Features
      1. Installation
        1. Configuration
          1. Usage
            1. Running the Server
            2. Available Tools
          2. Example Usage
            1. Search for Catalog Items
            2. Using API Token (Optional)
            3. List Inbound Plans
            4. Get Inbound Plan Details
          3. Error Handling
            1. Development
              1. Project Structure
              2. Building
              3. Development Mode
              4. Watching for Changes
            2. API Reference
              1. Authentication
              2. Rate Limiting
            3. Support
              1. License
                1. Contributing
                  1. Changelog
                    1. v1.0.0

                  MCP directory API

                  We provide all the information about MCP servers via our MCP API.

                  curl -X GET 'https://glama.ai/api/mcp/v1/servers/scanpower/scanmcp'

                  If you have feedback or need assistance with the MCP directory API, please join our Discord server