mintsoft-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mintsoft-mcplook up stock levels for product SKU-1000"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mintsoft-mcp
A Model Context Protocol server for the Mintsoft warehouse management system, so Claude and any other MCP-capable LLM client can look up orders, products, stock, inbound, returns and reports — and, if you deliberately enable it, make guarded changes.
Unofficial. Not affiliated with or endorsed by Mintsoft / Access Group.
Why the safety model matters
Mintsoft has no sandbox — every API key points at a live WMS. This server is built around that fact:
Read-only by default. 37 read tools (GETs only). The 8 write tools are not registered at all unless
MINTSOFT_ENABLE_WRITES=1— when off, there is zero write surface for a model to misuse.Client allowlist. Even with writes on, every write is refused unless the target record belongs to a ClientId in
MINTSOFT_WRITE_CLIENT_ALLOWLIST(default: empty = refuse everything). Point it at a dedicated test client account, not your real brands.Destructive ops double-gated.
delete_productalso requiresconfirm=True;amend_bundlerefuses if the bundle has alt codes or recent stock activity unlessforce=True, and rolls back if the recreate fails.Everything audit-logged. Every API call (reads included) is appended to a local JSONL audit log (
~/.mintsoft-mcp/mintsoft_api_audit.jsonl) — timestamp, method, path, body, status, affected id. The API key is never logged. Readable in-session via theget_api_audit_logtool for tracing or recovering from changes.
Related MCP server: Odoo MCP Server
Install
From source (PyPI release coming):
uv tool install git+https://github.com/AhamadFalah/mintsoft-mcp
# or: pip install git+https://github.com/AhamadFalah/mintsoft-mcpYou need a Mintsoft API key (Mintsoft → Settings → API).
Hook it up
Claude Code
claude mcp add mintsoft -e MINTSOFT_API_KEY=your-key -- mintsoft-mcpClaude Desktop / Cursor / Windsurf / VS Code — add to the client's MCP config
(claude_desktop_config.json, .cursor/mcp.json, etc.):
{
"mcpServers": {
"mintsoft": {
"command": "mintsoft-mcp",
"env": { "MINTSOFT_API_KEY": "your-key" }
}
}
}To enable writes (against a test client only — see safety model above):
"env": {
"MINTSOFT_API_KEY": "your-key",
"MINTSOFT_ENABLE_WRITES": "1",
"MINTSOFT_WRITE_CLIENT_ALLOWLIST": "3"
}Tools
Reads (37, always on)
Area | Tools |
Orders |
|
Products & stock |
|
Inbound & returns |
|
Warehouse |
|
Account & reference |
|
Meta |
|
Writes (8, gated)
add_order_comment, add_order_tag, create_product, update_product,
add_alt_code, delete_product (needs confirm=True), amend_bundle,
discontinue_sku (footprint pre-check → rename [Discontinued] … + DisCont flag,
same ProductId so history survives).
Baked-in Mintsoft API quirks
Things this server handles that the official docs don't tell you:
Cloudflare blocks default user-agents (error 1010) — a browser UA is sent.
Validation failures come back HTTP 200 with
Success: false— surfaced as errors, not silently swallowed.Product.CommodityCodemust be a nested object{"Code": "..."}; a plain string is silently dropped. The client coerces strings automatically.AltCodesPOST takes query params, not a JSON body, andConnectMappingTypeis a channel name string ("Amazon","Shopify","API"…) despite Swagger saying integer.Bundles are hidden from
Product/Search— find them viaProduct/Listor by id.There is no in-place bundle edit —
amend_bundledoes delete + recreate (new ProductId) with guards and rollback.
Configuration
Env var | Default | Purpose |
| — | Required. Your Mintsoft API key. |
|
| Register the write tools. |
| (empty) | Comma-separated ClientIds writes may touch. Empty = all writes refused. |
|
| Audit-log every API call. |
|
| Log only PUT/POST/DELETE. |
|
| Audit log path. |
| (unset) | Optional: fetch the key from GCP Secret Manager via |
Smoke test
scripts/smoke_test.py verifies the full 187-endpoint surface: read-only tiers run
live; the guarded --write pass runs a create→read→delete cycle only against a
client whose name contains "test" (or MINTSOFT_TEST_CLIENT_ID) and skips writes
entirely if none exists.
python scripts/smoke_test.py # read-only
python scripts/smoke_test.py --write # + guarded write demoLicence
mcp-name: io.github.ahamadfalah/mintsoft-mcp
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/AhamadFalah/mintsoft-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server