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.
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.
Settings → Connectors → Create, then add https://mcp.foundryims.com/mcp and
authenticate with a Foundry API key (see below).
Point any client that supports remote MCP servers at:
{
"mcpServers": {
"foundry-ims": {
"url": "https://mcp.foundryims.com/mcp"
}
}
}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.
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).
| Tool | |
|---|---|
list_orgs |
List the organizations you belong to and which is active |
set_org |
Set the active organization for subsequent calls |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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) |
- 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.
Questions or problems: support@foundryims.com
Documentation in this repository is released under the MIT License. The Foundry IMS service itself is proprietary.