Skip to main content
The Market is FIM One’s built-in resource marketplace — a place where users browse and subscribe to Agents, Connectors, Knowledge Bases, MCP Servers, Skills, and Workflows published by others.
The Market uses a pull model: resources are discovered by browsing and explicitly subscribed to. There is no auto-join or push mechanism — users choose what to install.

How It Works

Publishing

Any resource owner can publish their resource to make it discoverable:
VisibilityWho can see itReview required?
PersonalOnly the creatorNo
OrganizationAll members of the creator’s orgNo (org-level trust)
Market (global)All authenticated usersYes — admin approval required
Publishing to the Market always goes through a review gate. Admins can approve, reject (with a note), or leave the resource pending. Rejected resources can be revised and resubmitted.

Subscribing

When you find a resource in the Market, subscribing makes it available in your workspace:
  • Subscribed Connectors appear in your tool set (auto-discovery mode) and in Agent binding dropdowns
  • Subscribed Agents appear in your Agent selector and in the call_agent catalog
  • Subscribed Skills are injected into your system prompt (following the same progressive/inline mode)
  • Subscribed Knowledge Bases are available for retrieval
  • Subscribed MCP Servers load their tools into your sessions
  • Subscribed Workflows appear in your Workflow list for execution
Subscriptions are instant — no approval needed from the publisher. Unsubscribe at any time to remove the resource from your workspace.

The Shadow Org

Under the hood, the Market is implemented as a shadow organization — an invisible system org (MARKET_ORG_ID) that holds no members. Resources published to the Market are set to visibility: "org" within this shadow org, which allows the existing resolve_visibility() query to include them naturally. This means the Market requires zero special-case code in the tool assembly pipeline. The same three-tier visibility filter that loads personal and org resources also loads Market resources:
conditions = [
    model.user_id == user_id,           # own resources
    and_(model.visibility == "org",     # org-shared (includes Market shadow org)
         model.org_id.in_(user_org_ids)),
    model.id.in_(subscribed_ids),       # Market-subscribed
]
The subscribed_ids clause is what makes Market work — when you subscribe, a ResourceSubscription row is created, and the resource appears in your visibility filter via that third condition.

Resource Types

All six resource types support the full Market lifecycle:
ResourcePublishSubscribeWhat you get
AgentA specialist agent in your selector and call_agent catalog
ConnectorAPI/database bridge available as tools
Knowledge BaseRetrieval source for RAG queries
MCP ServerThird-party tools loaded into sessions
SkillGlobal SOP injected into system prompt
WorkflowFixed-process automation in your workflow list

API

EndpointDescription
GET /api/marketBrowse published resources. Supports ?resource_type=, ?page=, ?size=
POST /api/market/subscribeSubscribe to a resource (by type + ID)
DELETE /api/market/unsubscribeUnsubscribe from a resource
GET /api/market/subscriptionsList your current subscriptions
Each resource type also has its own POST /api/{type}/{id}/publish and POST /api/{type}/{id}/unpublish endpoints for publishing control.