Foundry IMS
Official remote MCP server for Foundry IMS: manage an inventory and product catalog — products, variants, brands, categories, images, custom fields, bundles, and assemblies/BOMs.
Documentation
Foundry IMS — MCP Server
Official remote Model Context Protocol server for Foundry IMS, an inventory and product-information management system for parts, gear, and multi-channel retailers.
It lets an AI assistant work directly on a Foundry catalog: search and edit products and variants, manage brands and categories, curate images, and inspect or rebuild assemblies (bills of materials) and bundles.
Endpoint: https://mcp.foundryims.com/mcp (Streamable HTTP)
Registry name: com.foundryims/foundry-ims
This repository holds the public documentation and the
server.json manifest for the hosted service. The server itself is
hosted — there is nothing to install or run locally.
Install
Claude
Foundry IMS is published in Claude's connector directory — search for Foundry IMS in Settings → Connectors and click Connect. Sign in with your Foundry account and the connection is scoped to the organizations you belong to.
To add it manually as a custom connector, use the URL https://mcp.foundryims.com/mcp.
ChatGPT
Settings → Connectors → Create, then add https://mcp.foundryims.com/mcp and
authenticate with a Foundry API key (see below).
Cursor, VS Code, Zed, and other MCP clients
Point any client that supports remote MCP servers at:
{
"mcpServers": {
"foundry-ims": {
"url": "https://mcp.foundryims.com/mcp"
}
}
}
Authentication
Two modes are supported:
| Mode | How | Multi-org |
|---|---|---|
| OAuth | Sign in with your Foundry account when the client prompts | Yes — use list_orgs / set_org to switch |
| API key | Send Authorization: Bearer fims_… | No — the key is bound to one organization |
Create an API key in the Foundry admin under Settings → API Keys. Every call is scoped
to that key's permissions; a 403 means the key lacks the required permission.
Tools
36 tools over OAuth, or 34 with an API key (list_orgs and set_org are OAuth-only,
since a key is already bound to a single organization).
Organizations (OAuth only)
| Tool | |
|---|---|
list_orgs | List the organizations you belong to and which is active |
set_org | Set the active organization for subsequent calls |
Products
| Tool | |
|---|---|
search_products | Search by name, SKU, UPC/GTIN/MPN, or channel/supplier SKU |
get_product | Fetch one product with its variants |
create_product | Create a SIMPLE, FAMILY, ASSEMBLY, or BUNDLE product |
update_product | Update name, description, brand, category |
delete_product | Soft-delete (trash) a product |
restore_product | Restore a trashed product |
Variants (sellable SKUs)
| Tool | |
|---|---|
search_variants | Search variants across SKU, name, and barcodes |
get_variant | Fetch one variant, including price and available quantity |
update_variant | Update SKU, name, price, cost, and identifiers |
Assemblies / bills of materials
| Tool | |
|---|---|
get_bom | Get an assembly's active bill of materials |
bom_can_build | How many units can be built from on-hand stock |
set_bom | Replace an assembly's BOM with a new active version |
delete_bom | Remove the recipe (the product itself is untouched) |
flatten_bom | Inline a sub-assembly's components into its parent |
find_where_used | Reverse lookup — every BOM and bundle using a component |
replace_bom_component | Swap a component across every BOM that uses it |
Bundles
| Tool | |
|---|---|
get_bundle_components | List a bundle's component variants |
add_bundle_component | Add a component with a quantity |
update_bundle_component | Change a component's quantity |
remove_bundle_component | Remove a component |
Brands
| Tool | |
|---|---|
list_brands | List brands |
create_brand | Create a brand |
update_brand | Rename, re-slug, or set rich descriptions and SEO metadata |
merge_brands | Reassign every product from one brand to another |
Categories
| Tool | |
|---|---|
list_categories | List the category tree |
create_category | Create a category |
update_category | Rename, re-slug, reparent, or set descriptions and SEO metadata |
reorder_categories | Set display order within a sibling group |
Images
| Tool | |
|---|---|
add_variant_image | Add an image by URL — Foundry fetches and re-hosts the bytes |
remove_variant_image | Remove an image |
reorder_variant_images | Set image order |
Custom fields
| Tool | |
|---|---|
list_custom_fields | List the org's custom field definitions |
get_custom_values | Read custom field values on a product or variant |
set_custom_values | Set custom field values (upsert) |
Notes for agents
- IDs are UUIDs and are not guessable — call
search_productsorsearch_variantsfirst, then act on the returnedid. - Search matches identifiers, not just names: pass a SKU, UPC, GTIN, MPN, or a
channel/supplier SKU straight into
search. - Pricing and SKUs live on the variant, not the product. Use
update_variant. - To enumerate every product of a type, call
search_productswithtypeset and nosearchterm, then page usingmeta.total. delete_productandset_bomare significant changes — confirm with the user first.
Links
Support
Questions or problems: support@foundryims.com
License
Documentation in this repository is released under the MIT License. The Foundry IMS service itself is proprietary.