Connect a desktop or CLI client
Desktop and command-line assistants (Claude Desktop, Claude Code, Codex, and custom agents) connect to Logistified with an API key sent as a bearer token. (Web-chat apps like claude.ai and ChatGPT connect differently; see Connect claude.ai or ChatGPT.)
On this page
Section titled “On this page”- What you need
- The connection URL
- Connecting your assistant
- Custom HTTP clients
- Trying it out
- Connection troubleshooting
- See also
What you need
Section titled “What you need”- AI / Agent access (it’s in open beta, enabled for every store on any plan).
- An API key you’ve already created and copied.
- An MCP-capable assistant that lets you add a custom MCP server with a bearer token.
The connection URL
Section titled “The connection URL”Your store has a single MCP address. The exact URL is shown on the LLM / Agent Access page in the Connect your LLM card; it ends in /mcp:
POST https://<your-logistified-app-url>/mcpAuthorization: Bearer lstk_…You give your assistant two things: this URL and your API key (the lstk_… value) as the bearer token.
Connecting your assistant
Section titled “Connecting your assistant”The exact steps depend on the app, but the shape is always the same:
- In your assistant, add a custom MCP server (sometimes called a “connector” or “tool server”).
- Set the server URL to the
/mcpURL shown on the LLM / Agent Access page. - Set the authorization to a bearer token and paste your
lstk_…key. - Save. Your assistant should now list Logistified’s tools:
searchanddescribe_apito look up what it can do,runto do it,whoami, two documentation tools, and two recipe tools (list_skillsandget_skill).
Protocol versions. Logistified speaks every current revision of the MCP protocol, from 2024-11-05 through 2025-11-25 and the newer 2026-07-28, on the same address. Your assistant picks the newest one it supports automatically; you never choose. Simple scripts that send plain JSON requests keep working unchanged.
Custom HTTP clients
Section titled “Custom HTTP clients”If you maintain your own HTTP client or script, send a User-Agent that honestly identifies your application and version. For example, replace this illustrative value with your own application’s name and version:
User-Agent: YourInventoryAssistant/1.0Keep the bearer token and MCP request headers required by your client. An identifying header can help compatibility and diagnosis; it does not guarantee acceptance. Do not pretend to be a browser or another application. If your assistant manages its own headers, use its supported configuration and share its name and version with support if connection fails.
Trying it out
Section titled “Trying it out”Once connected, ask your assistant a question in plain language, such as “List my open purchase orders.” Behind the scenes it calls the run tool with a short program:
run("return await app.purchaseOrders.list({ status: 'open' });");If it comes back with your real purchase orders, you’re connected. If it fails, use the response details below before changing your key.
Connection troubleshooting
Section titled “Connection troubleshooting”Ask your client maintainer to check the HTTP status, response Content-Type, and error body together. Logistified answers a wrong or revoked key with 401; a 403 comes from an origin check or the connection layer, not from the key itself.
- An access-denied page or plain-text response before MCP connects: this can be a connection-layer rejection. A denial can also be JSON with an access-denied title or problem description; JSON by itself does not mean Logistified checked your key. Generic HTML or text could also mean a wrong URL or an intermediary error, so retain the actual error details.
- HTTP 401 with Logistified’s JSON
{"error":"unauthorized"}response: check the copied URL and bearer-token configuration, and whether the key was revoked. Replace a key only when needed for an actual key problem. - An MCP error or a tool result saying
FORBIDDEN_SCOPE: the connection reached the application, but that action is not permitted by the key or plan. Check the intended action and granted access; do not automatically request a more powerful key. Tool failures can arrive with HTTP 200, so read the result too.
For a persistent connection-layer denial, stop retrying and contact support through your normal support process. Changing keys is not a remedy for that denial. Do not automate repeated attempts or disguise your client to get around it. Share the time, client name/version, status, response type, and a small sanitized error excerpt or response reference ID. Never share the bearer token, authorization header, or store data in diagnostic logs.
See also
Section titled “See also”- API keys: creating and revoking the key you paste here.
- What the assistant can read: the full list of data it can reach.