Shiphero Blog

AI-Friendly WMS, Security-First: How to Evaluate Agent Access to Your Warehouse Data

Read-only by default. Scoped credentials. Field-level PII control. Revocable tokens. How to evaluate whether a WMS is safe to connect an AI agent to.

In this article
h2
h2
h3
h3

The most AI-friendly WMS is the one you can connect an agent to and still pass your own security review. In practice that comes down to four things: the agent gets read-only access by default, its credentials are scoped to the specific data it needs, customer PII sits behind a separate permission, and every token can be revoked. ShipHero's AI Toolkit does all four. It exposes a read-only MCP server and a Public API Skill over a GraphQL API with 20 read scopes, 16 write scopes, and a field-level view:pii scope, on a SOC 2 Type 2 audited platform.

That is a narrower definition than most of the industry is working with right now, so let me explain the reasoning.

Most vendors are measuring the wrong thing

Warehouse software is currently competing on AI surface area. One WMS vendor is marketing an MCP endpoint that exposes 290 warehouse operations, with each tenant provisioning its own API keys to connect any LLM to a live warehouse. Others reach agents through third-party middleware that promises an agent can read and act on your WMS data within minutes. Manhattan advertises MCP and A2A protocol compatibility across its Agent Foundry.

I understand the appeal. A number like 290 sounds like capability, and it photographs well in a launch announcement. But an API key that unlocks 290 operations is also the single credential whose compromise costs you the most.

The security research published over the last year is fairly unanimous on this. Microsoft Security's guidance on least privilege for AI agents, the FINOS AI governance framework's Agent Authority model, and API security guidance from Curity and Tyk all land on the same four requirements: read-only by default with explicit approval for writes, narrowly scoped credentials instead of account-wide keys, time-bound tokens with a revocation path, and granular control over sensitive fields.

An account-wide API key satisfies none of them.

Four tests for whether a WMS is genuinely AI-friendly

1. Can an agent connect without an integration project?

The practical bar in 2026 is a native MCP endpoint you can point a client at. Some platforms clear it. Others want you to email for API credentials, wait on a partner program, or buy a developer enablement package. A third group is only reachable through third-party middleware, which does work, but it means another company is now holding a credential to your warehouse data. Put that in the evaluation.

2. Can the agent ask for exactly the data it needs?

GraphQL usually gets discussed as a performance feature. For agent access it is closer to a security feature. A REST endpoint returns a fixed payload, so if you request an order you get the whole object, customer email included, whether or not the task needed it. GraphQL makes the caller name every field it wants.

That matters more with agents than with conventional integrations, because everything an API hands an agent goes into a model's context window. A narrower response is a smaller problem if anything downstream goes wrong.

3. Does it work with the clients your team already uses?

An AI feature that only works inside the vendor's own assistant is not interoperability. ShipHero's MCP server works with Claude (Chat, Cowork, and Code), ChatGPT Work, Codex, Cursor, and any other MCP-compatible client, from one endpoint at https://mcp.shiphero.com/mcp.

4. Can a developer go deeper when the question gets harder?

Asking about yesterday's shipments and building an integration are different jobs, and we split them on purpose. The MCP handles operational questions. The Public API Skill gives coding agents the full GraphQL schema for custom query logic and integration work.

The five controls a security review will ask about

Take an AI-connected WMS to your security team and the conversation narrows quickly.

1. Is it read-only, and how is that enforced?

Both the ShipHero MCP and the Public API Skill are read-only. They can query data. They cannot create, update, or delete records.

The enforcement mechanism is the part worth asking about. Read-only by configuration is a setting, and settings get changed, sometimes by a well-meaning admin and sometimes by a prompt injection buried in an order note. Ours is enforced at the API. A token that lacks a change: scope is refused by the server, not by the client asking politely, and the AI Toolkit never receives one. There is no toggle to flip and no instruction that can turn a read into a write.

We did debate shipping write access. It would make for a better demo. But the first time an agent cancels the wrong order because a customer wrote something clever in a delivery note, the demo stops mattering. When a vendor tells you their agent access is read-only, ask which of the two they mean.

2. Are credentials scoped, or all-or-nothing?

ShipHero's Public API has 20 view: scopes and 16 change: scopes covering separate areas of the account: orders, inventory, products, billing, labor, returns, shipments, webhooks, and others. A token carries only what it was granted, and the API refuses anything outside that rather than failing open.

{
  "errors": [
    {
      "message": "Missing required scope(s): view:orders",
      "operation": "orders",
      "code": 7
    }
  ],
  "data": { "orders": null }
}

An agent that watches stock levels can be issued view:inventory and nothing else.

3. Can you keep PII away from the model?

This is the control most platforms do not have, and it is the one that starts to matter as soon as warehouse data begins flowing into AI clients.

In ShipHero, view:pii is a field-level scope. Leaving it out does not fail the query. It nulls the protected fields inside a response you are otherwise allowed to see, and it tells you it did so. Here is a token holding view:orders but not view:pii:

query GetOrder($id: String!) {
  order(id: $id) {
    data {
      id
      order_number
      fulfillment_status
      email
    }
  }
}

And the response it gets back:

{
  "data": {
    "order": {
      "data": {
        "id": "T3JkZXI6MTIzNDU=",
        "order_number": "1001",
        "fulfillment_status": "pending",
        "email": null
      }
    }
  },
  "extensions": {
    "scope_warnings": {
      "Order.email": {
        "code": "FIELD_SCOPE_MISSING",
        "message": "Field 'email' was not resolved because scope(s) 'view:pii' are missing",
        "required_scopes": ["view:pii"]
      }
    }
  }
}

The order data comes back normally. The email address does not come back at all.

Protected fields cover order emails, tax identifiers, shipping and billing contacts, third-party shipping account numbers, vendor contacts, worker names, user hourly rates, and return label details. What that buys you in practice: an agent can work out which orders shipped late yesterday and what it cost, without ever seeing who those orders went to.

If you are using the Public API Skill, you can also constrain this in the prompt itself:

Use the ShipHero Public API Skill to summarize orders created today.
Request view:orders, but do not request view:pii or any change scope.

4. What is the token lifecycle?

Scoped tokens come from the OAuth 2.0 Authorization Code flow with PKCE, so there is no shared client secret sitting in a config file waiting to leak. Access tokens expire. Refreshing one does not widen its scopes; getting more access means going back through authorization, which a human has to approve. Revocation runs through a documented endpoint at https://login.shiphero.com/oauth/revoke, and the Public API Skill ships scripts for setup, refresh, and revoke, so you can tell an agent to hand its access back when it is finished with a task.

You can also check what a token actually holds:

query { me { data { scopes } } }

Requesting a scope does not guarantee it was granted, so read the token response before you trust it.

5. Can agent activity take down production?

Runaway agent loops are a real operational risk, and a rate limit is as much a containment control as a billing one.

The AI Toolkit draws on a credit pool that is separate from normal Public API usage, so an agent stuck in a loop cannot starve the integrations actually running your warehouse. Throttling is based on query complexity rather than a flat request count, and you can price any query before running it with analyze: true. Accounts are also capped at 7,000 requests per rolling five minutes.

The platform underneath

Agent controls sit on top of a platform, and your reviewers will audit that too. ShipHero is SOC 2 Type 2 audited and attested with annual reassessment, is GDPR compliant, and monitors controls continuously through Drata. MFA and SAML2 single sign-on are available for account access. Our Trust Center documents the security and privacy program, with the SOC 2 report available under NDA, and we run a public bug bounty program.

One thing I would rather say here than have you find later. Legacy tokens minted at public-api.shiphero.com/auth/token, and tokens belonging to third-party developer users, are not scope-restricted. They carry whatever access the underlying user has. They exist because integrations built years ago still depend on them. For anything involving an AI agent, use the OAuth PKCE flow and grant explicit scopes. If a vendor cannot tell you which of their credential paths are scoped and which are not, that answer is worth more to you than a feature list.

Comparing WMS platforms on AI readiness

ShipHero JASCI Clarus WMS Extensiv Manhattan Active
API type GraphQL REST REST REST REST
Native MCP server Yes, GA Announced Aug 2026 Yes Via third-party middleware Agent Foundry, MCP-compatible
Read-only enforced at the API Yes Not publicly documented Not publicly documented Not publicly documented Not publicly documented
Granular read/write scopes 20 read / 16 write Not publicly documented Not publicly documented OAuth 2.0 client credentials Not publicly documented
Field-level PII scope Yes (view:pii) Not publicly documented Not publicly documented Not publicly documented Not publicly documented
Agent auth model OAuth 2.0 + PKCE Tenant-provisioned API keys Not publicly documented Client credentials, access gated Not publicly documented
Documented revocation endpoint Yes Not publicly documented Not publicly documented Not publicly documented Not publicly documented
Docs public, no gate Yes Partial Partial Credentials by request Customer portal

Based on publicly available vendor documentation as of August 2026. “Not publicly documented” means we could not find a public source, not that the control is absent. Vendors may offer additional controls under NDA or on request. Verify directly during your evaluation, and hold us to the same standard: every ShipHero claim above is documented at developer.shiphero.com.

I would weight that last row heavily. If you cannot read about a control before you sign, you cannot evaluate it.

Nine questions to ask any WMS vendor about AI access

How quickly a vendor can answer these tells you almost as much as what they answer.

Frequently asked questions

Can AI agents change data in my WMS?

With ShipHero's AI Toolkit, no. The MCP server and the Public API Skill are both read-only, enforced at the API rather than by the client, and cannot create, update, or delete records. Write access needs a separately authorized token with explicit change: scopes. Other platforms handle this differently, so ask how read-only is enforced rather than whether it exists.

What is an MCP server for a WMS?

Model Context Protocol is an open standard for connecting AI clients to external systems. An MCP server for a WMS lets tools like Claude or ChatGPT query live warehouse data without a custom integration. Ours is at https://mcp.shiphero.com/mcp.

Is GraphQL more secure than REST for AI access?

Not inherently, but it makes tighter control possible. GraphQL requires the caller to name each field, so a response can be narrowed to what the task actually needs. REST endpoints usually return fixed payloads, meaning sensitive fields arrive whether or not anyone wanted them. With agents, everything returned goes into a model's context, which turns response precision into a security property.

How do I stop an AI agent from seeing customer PII?

Use a token without view:pii. Protected fields return null inside queries you are otherwise allowed to run, with a scope_warnings entry explaining the omission. Non-sensitive fields resolve normally. With the Public API Skill you can also tell the agent not to request view:pii at authorization time.

Do I need a developer to connect AI to ShipHero?

No. Add the MCP server as a connector in your AI client and complete the ShipHero authorization flow in your browser. No code. The Public API Skill is the developer-facing option, for coding agents doing custom analysis or building integrations.

What happens if an agent's token is compromised?

A scoped read-only token is a much smaller incident than an account-wide key. It can read only the areas it was granted, cannot write anything, and cannot see PII unless view:pii was included. Revoke the refresh token at https://login.shiphero.com/oauth/revoke and delete the stored tokens. Access tokens already issued stay valid until they expire, so revoke promptly.

Where to go next

If you are evaluating WMS platforms on AI readiness, read our documentation rather than taking my word for any of this. The AI Toolkit and Scopes pages cover everything above, including the parts that are less flattering.

If you would rather see it running against real warehouse data, book a demo.

the process

Explore more of our features

Hands typing on a keyboard with text 'Talk to Your Warehouse: ShipHero MCP' and ShipHero logo.Shiphero logo on a grey background
July 15, 2026

How ShipHero MCP Turns Live Warehouse Data Into Real-Time Answers

Connect ShipHero to your favorite AI client. Ask operational questions in plain English and get instant, read-only answers from your live warehouse data.

Read more
Arrow icon
Shiphero logo on a grey background
September 9, 2025

How AI is Transforming Warehouse Management: Impact, Benefits, and Use Cases

Discover how AI in warehouse management is changing the industry with improved efficiency, accuracy, and cost reductions, and explore its real-world applications.

Read more
Arrow icon
Shiphero logo on a grey backgroundHands typing on a keyboard with text 'Talk to Your Warehouse: ShipHero MCP' and ShipHero logo.
July 15, 2026

How ShipHero MCP Turns Live Warehouse Data Into Real-Time Answers

Connect ShipHero to your favorite AI client. Ask operational questions in plain English and get instant, read-only answers from your live warehouse data.

Read more
Arrow icon
Shiphero logo on a grey backgroundWorker in a safety vest and gloves writing on a clipboard in a warehouse aisle.
April 7, 2026

5 Top Hurdles Our Prospects Face Before Signing With ShipHero

Discover the 5 biggest hurdles warehouse operators face before adopting a new WMS, and how ShipHero's high-velocity infrastructure helps you overcome them seamlessly.

Read more
Arrow icon
Shiphero logo on a grey backgroundBlue plastic storage bins stacked on a table with a glowing touchscreen device and tablet nearby in a warehouse.
March 2, 2026

Meet Tap-to-Pack: Eliminate Packing Errors and Speed Up Your Pack Line

Why Keyboards Are Killing Your Pack Line (And What to Do About It). Stop losing throughput to keyboards and mice. ShipHero's Tap-to-Pack replaces screen navigation with an 8-button industrial controller built for 99.9% packing accuracy.

Read more
Arrow icon