shiplogic-mcp

shiplogic-mcp

3.2

If you are the rightful owner of shiplogic-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Shiplogic MCP Server is a Model Context Protocol server designed for seamless integration with the Shiplogic shipping API, providing a robust solution for managing shipping operations.

Shiplogic MCP Server

A Model Context Protocol (MCP) server that provides seamless integration with the Shiplogic shipping API. Built with the MCP SDK and TypeScript for type safety and better developer experience.

Features

  • 🚚 Get shipping rates - Calculate shipping costs between addresses
  • šŸ“¦ Create shipments - Book shipments with automatic tracking
  • šŸ” Track packages - Real-time shipment tracking
  • āŒ Cancel shipments - Cancel bookings when needed
  • āž• Optional services - Access add-on rates for special services

Installation

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Shiplogic API key (get one at shiplogic.com)

Quick Start

  1. Clone and install:
git clone https://github.com/jlwainwright/shiplogic-mcp.git
cd shiplogic-mcp
npm install
  1. Configure environment:
cp .env.example .env
# Edit .env and add your Shiplogic API key
  1. Build the server:
npm run build

Usage

With Claude Desktop

Add this to your Claude Desktop configuration:

{
  "mcpServers": {
    "shiplogic": {
      "command": "node",
      "args": ["/absolute/path/to/shiplogic-mcp/dist/index.js"],
      "env": {
        "SHIPLOGIC_API_KEY": "your_api_key_here"
      }
    }
  }
}

With MCP Inspector

Test the server using the MCP Inspector:

npm run inspect

Standalone

Run the server directly:

npm run dev

Available Tools

get_shipping_rates

Calculate shipping rates between two addresses.

{
  collection_address: {
    street_address: string,
    city: string,
    code: string,
    country?: string,
    type?: "residential" | "business"
  },
  delivery_address: {
    street_address: string,
    city: string,
    code: string,
    country?: string,
    type?: "residential" | "business"
  },
  parcels: [{
    length: number,    // cm
    width: number,     // cm
    height: number,    // cm
    weight: number,    // kg
    description?: string
  }],
  declared_value?: number
}

create_shipment

Create a new shipment with tracking.

{
  service_level_code: string,  // e.g., "ECO"
  collection_address: { /* same as above */ },
  delivery_address: { /* same as above */ },
  parcels: [{ /* same as above */ }],
  collection_contact: {
    name: string,
    mobile_number?: string,
    email?: string
  },
  delivery_contact: {
    name: string,
    mobile_number?: string,
    email?: string
  },
  customer_reference?: string,
  mute_notifications?: boolean
}

track_shipment

Track a shipment by reference number.

{
  tracking_number: string
}

cancel_shipment

Cancel an existing shipment.

{
  tracking_reference: string
}

get_opt_in_rates

Get optional add-on service rates.

{
  collection_address: { /* address object */ },
  delivery_address: { /* address object */ }
}

Configuration

Environment variables:

VariableDescriptionRequiredDefault
SHIPLOGIC_API_KEYYour Shiplogic API keyYes-
SHIPLOGIC_API_URLAPI base URLNohttps://api.shiplogic.com

Development

Project Structure

shiplogic-mcp-official/
ā”œā”€ā”€ src/
│   └── index.ts        # Main server implementation
ā”œā”€ā”€ dist/               # Compiled JavaScript (generated)
ā”œā”€ā”€ package.json
ā”œā”€ā”€ tsconfig.json
ā”œā”€ā”€ .env.example
└── README.md

Scripts

  • npm run build - Compile TypeScript
  • npm run dev - Build and run
  • npm run inspect - Run with MCP Inspector

Testing

# Run with MCP Inspector
npm run inspect

# In another terminal, test the tools
curl -X POST http://localhost:3000/tools/list

API Reference

This server integrates with Shiplogic API v2. For detailed API documentation, see:

License

MIT License - see file

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Support

If you find this project helpful, consider supporting my work. Your support helps me dedicate more time to open source development and create better tools for the community.

Acknowledgments


Made with ā¤ļø by Jacques Wainwright