Summary
JTL Fulfillment Network (JTL-FFN) for merchants: products, stock per warehouse, outbound orders with shipping status and tracking, inbound deliveries, returns, warehouses and shipping methods of your fulfillers. Create or cancel outbounds on request. OAuth2.
Guided setup
Connect JTL Fulfillment Network to Microsoft Copilot in 2 minutes
Start a free trial on AnythingMCP Cloud, connect JTL Fulfillment Network in the guided setup, then add your MCP URL to Microsoft Copilot. No code and no server to run.
No credit card · 7-day trial · Self-host alternative available
Try asking
Example prompts for JTL Fulfillment Network
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → JTL Fulfillment Network, paste your credentials, mint an MCP API key — done. No Docker, no
git clone, no local server.
JTL Fulfillment Network + Microsoft Copilot
JTL Fulfillment Network (JTL-FFN) for merchants: products, stock per warehouse, outbound orders with shipping status and tracking, inbound deliveries, returns, warehouses and shipping methods of your fulfillers. Create or cancel outbounds on request. OAuth2.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
JTL_FFN_CLIENT_ID, JTL_FFN_CLIENT_SECRET
Step 1 — Get credentials
- Sign in once at fulfillment.jtl-software.com with your JTL account, which needs the Merchant role. Until that first sign-in the API answers 404 for your user.
- Open kundencenter.jtl-software.de/oauth (the page is not in the Kundencenter menu) and create an OAuth client with the scopes
ffn.merchant.readandffn.merchant.write. Redirect URI:https://cloud.anythingmcp.com/api/mcp-oauth/callbackon AnythingMCP Cloud, or<your AnythingMCP URL>/api/mcp-oauth/callbackwhen self-hosted. - Paste the client ID and secret into
JTL_FFN_CLIENT_IDandJTL_FFN_CLIENT_SECRET, install, then click Authorize with Provider on the connector page. Access tokens last 30 minutes and are renewed automatically. - Start with
jtl_ffn_get_current_user, thenjtl_ffn_list_warehousesandjtl_ffn_list_products. For an order,jtl_ffn_get_outboundshows its status andjtl_ffn_list_outbound_shipping_notificationsthe parcels with tracking.
A jfsku is JTL's 11-character product id (e.g. MERC01PRDCT), not your own SKU (merchantSku); outbound and inbound tools accept either the FFN id or your own order number. filter takes OData-style expressions such as status eq 'Shipped'. jtl_ffn_create_outbound and jtl_ffn_cancel_outbound are installed switched off: enable them deliberately and confirm the details before each call. Lists take limit (default 50) and offset.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Microsoft Copilot
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Microsoft Copilot uses MCP servers through agents built in Copilot Studio: you add AnythingMCP to an agent as a tool, then publish the agent to Microsoft 365 Copilot and Teams. Copilot Studio connects from Microsoft's cloud over Streamable HTTP, which AnythingMCP supports.
- In Copilot Studio, open your agent (or create one), go to Tools and choose Add a tool → New tool → Model Context Protocol.
- Enter a Server name (for example
AnythingMCP), a Server description that says what the connector does, and the Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio uses the description to decide when to call the server. - Under authentication, choose API key, set Type to Header and the header name to
X-API-Key, then select Create. - In Add tool, choose Create a new connection, paste an MCP API key from AnythingMCP (MCP Servers → your server → API keys) and select Add to agent.
- Try it in the agent's Test pane: ask for something that needs the
JTL Fulfillment Networktools. - Select Publish, then Channels → Microsoft 365 and Microsoft Teams, keep Make agent available in Microsoft Copilot selected and choose Add channel. See agent in Teams installs it for you; in Microsoft 365 Copilot, type @ and pick the agent.
Prefer per-user sign-in? Choose OAuth 2.0 → Dynamic discovery instead of an API key: each user then signs in to AnythingMCP the first time the agent calls it.
Self-hosting? Use your instance's public HTTPS address instead of https://cloud.anythingmcp.com. Copilot Studio connects from Microsoft's cloud, so localhost does not work.
Available tools
| Tool | What it does |
|---|---|
jtl_ffn_get_current_user | Return the JTL-FFN user behind the authorization: user id (your 4-character merchant id), address and roles |
jtl_ffn_list_warehouses | List the fulfiller warehouses authorized for this merchant, with warehouseId, fulfillerId, name, address and the shippingMethodIds each… |
jtl_ffn_list_fulfillers | List the fulfillment providers this merchant works with: 4-character userId (the fulfillerId used elsewhere), active flag and address |
jtl_ffn_list_shipping_methods | List the shipping methods the fulfillers allow this merchant to use: shippingMethodId, name, carrierName, carrierCode, shippingType… |
jtl_ffn_list_products | List the merchant's products in JTL-FFN with jfsku, merchantSku, name, identifiers (EAN, ASIN, MPN), dimensions, weight and attributes |
jtl_ffn_get_product | Get one product by its jfsku with all master data: name, merchantSku, identifiers, specifications (batch, best-before, serial number, bill… |
jtl_ffn_list_stock_levels | List stock for all products across all warehouses: per jfsku the available stockLevel, stockLevelReserved (held by outbounds)… |
jtl_ffn_get_product_stock | Get the stock of one product by jfsku: available, reserved, announced and blocked quantities, split by warehouse and fulfiller, by batch… |
jtl_ffn_list_warehouse_stock | List the stock of all products in one warehouse: per jfsku and merchantSku the available, reserved, announced and blocked quantities |
jtl_ffn_list_outbounds | List outbound orders (shipments the fulfiller sends to customers) with outboundId, merchantOutboundNumber, status (Preparation, Pending… |
jtl_ffn_get_outbound | Get one outbound order with its status, status timestamps, shipping address, items with open quantities, shipping method, notes and cancel… |
jtl_ffn_list_outbound_shipping_notifications | Get the shipping notifications the fulfiller posted for an outbound: shipped items with batch and serial numbers, and the packages with… |
jtl_ffn_list_outbound_changes | Change feed of outbounds modified within a time window (status changes, shipments, cancellations) |
jtl_ffn_list_inbounds | List inbound deliveries announced to the fulfillers' warehouses with inboundId, merchantInboundNumber, status (Preparation, Pending… |
jtl_ffn_get_inbound | Get one inbound delivery with its status, warehouse, supplier, purchase order number, note and items with announced quantities |
jtl_ffn_list_inbound_shipping_notifications | Get the shipping notifications of an inbound delivery, i.e. what is on its way to the warehouse: packages with tracking identifiers… |
jtl_ffn_list_returns | List customer returns with returnId, merchantReturnNumber, state (Announced, Arrived, Completed), warehouse, customer address, returned… |
jtl_ffn_get_return | Get one customer return by returnId with its state, items (condition, linked outbound), labels and notes |
jtl_ffn_list_cancel_reasons | List the standard cancel reasons of JTL-FFN (code and name) |
jtl_ffn_create_outbound | Create a new outbound order: the fulfiller will pick, pack and ship these items to the address, which costs money and cannot be undone once… |
jtl_ffn_cancel_outbound | Cancel an outbound order by setting its status to Canceled |
jtl_ffn_create_inbound | Announce an inbound delivery (Anlieferung, e.g. new stock from a supplier or production) to the fulfiller's warehouse, so the fulfiller can… |
FAQ
Which Copilot is this for? Microsoft 365 Copilot at work, through agents built in Copilot Studio. The Microsoft Copilot app for personal accounts has no option to add your own MCP server.
What do I need? A work account with access to Copilot Studio (a license or a trial) to build the agent. People who use it in Microsoft 365 Copilot or Teams need access to the agent: share it with them, or ask an admin to publish it to the organization. If your organization applies data policies to Power Platform connectors, they cover MCP servers too.
The agent doesn't call the tools. Check that the header name is exactly X-API-Key and that the key belongs to the same MCP server as the URL, and make the server description specific: Copilot Studio uses it to decide when to call the server. Publish the agent again after each change; in an open chat, type "start over" to get the new version.
Next steps
- Connector landing page
- Connect to Claude
- Connect to ChatGPT
- Connect to Cursor
- Connect to Gemini
- Connect to Meta Muse
Was this guide helpful?