Skip to main content
Glama

๐Ÿ“– Read-only mirror. aimarket-mcp is published from the canonical AI-Factory monorepo. Pull requests are not accepted โ€” any commit pushed here is overwritten by scripts/mirror_satellites.sh on the next sync. ๐Ÿž Found a bug or have a request? Please open an issue.

aimarket-mcp โ€” ecosystem MCP gateway

๐ŸŸข Just want to try the marketplace? Install nothing.

Paste https://modelmarket.dev/mcp into your MCP client and you have market_search

  • market_invoke against the live hub, with a few free trial invokes per caller and a signed receipt for each โ€” no wallet, no key, no install. โ†’ docs/hosted-mcp-endpoint.md

Install this package when you want the other three tools (web_fetch, web_search, metis_verify), or want to point the market tools at a hub of your own.

One MCP gateway. Five hardened tools. Shared by Metis, ARGUS, and the ecosystem.

Transport: stdio (aimarket_mcp/stdio_server.py) for Glama / Claude Desktop / Cursor, built with the official Model Context Protocol Python SDK (mcp, FastMCP). Also ships Streamable-HTTP on :9090 for self-hosted deployments (aimarket-mcp-http, Docker Compose).

Item

Location

MCP entrypoint (stdio)

aimarket_mcp/stdio_server.py

MCP gateway (HTTP)

aimarket_mcp/server.py

Tool handlers + security

aimarket_mcp/tools.py, aimarket_mcp/security.py

Glama / Docker (stdio)

Dockerfile, glama.json

Self-host HTTP

Dockerfile.http, docker-compose.yml

Compatible hosts: Claude Desktop, Cursor, Glama, and any MCP client that supports stdio or Streamable-HTTP.

Tools

Tool

What it does

Hardening

web_fetch

Fetch a URL, return main text (readability-lite)

SSRF-guarded; output sanitized + <untrusted>-wrapped

web_search

Live DuckDuckGo search โ†’ top snippets

output sanitized + <untrusted>

metis_verify

Metis cognition + verification envelope

returns answer + verify_score / verified gate

market_search

Discover priced capabilities on an AIMarket hub

free; no wallet, key or channel; the hub lists only what it can execute

market_invoke

Run one on the hub's free trial tier

returns the signed receipt nonce; reports the hub's 402 verbatim when the allowance is spent

Example โ€” buy a GAIA Open-Meteo reading

market_search_tool(intent="gaia weather open-meteo")
market_invoke_tool(
  capability_id="gaia.weather.read@v1",
  product_id="gaia.gateway",
  source_hub="https://iot.modelmarket.dev",
  # input JSON with device_id om-wx-01 โ€” see tool schema / hub docs
)

Or the same HTTP the tool wraps:

curl -s -X POST "${AIMARKET_HUB_URL:-https://modelmarket.dev}/ai-market/v2/invoke" \
  -H 'Content-Type: application/json' \
  -H 'X-AIMarket-Sandbox-Visitor: vis_mcp_om_wx' \
  -d '{"capability_id":"gaia.weather.read@v1","product_id":"gaia.gateway",
       "source_hub":"https://iot.modelmarket.dev","input":{"device_id":"om-wx-01"}}'

That is the easy path (trial/sandbox). Proving an external wallet paid on-chain is a separate escrow flow (openChannel โ†’ DebitAuthorization โ†’ hub debit/settle) โ€” see docs/onchain-journal.md ยง3lโ€“ยง3m and gaia/docs/LIVE-RELAYS.md.

Why a gateway (not per-agent tools): generic capabilities are written once; the security core lives in one audited place. Ecosystem-specific capabilities live in their own MCP servers (aimarket-oracle-gateway, aimarket-plugins).

Related MCP server: Ollama Web Search

Configure (env)

var

meaning

AIMARKET_METIS_URL

Metis verify API base (default https://metis.modelmarket.dev)

AIMARKET_METIS_KEY

optional bearer for Metis verify

AIMARKET_SEARCH_URL

DuckDuckGo HTML endpoint override

AIMARKET_HUB_URL

AIMarket hub for market_search / market_invoke (default https://modelmarket.dev)

AIMARKET_SANDBOX_VISITOR

Trial identity for market_invoke; random per install, set it to keep an allowance across reinstalls

AIMARKET_MCP_KEY

HTTP only โ€” bearer auth key

AIMARKET_MCP_PRODUCTION

HTTP only โ€” 1 requires AIMARKET_MCP_KEY (fail-closed)

AIMARKET_MCP_RATE

HTTP only โ€” requests/min per key/IP (default 120)

AIMARKET_MCP_PORT

HTTP only โ€” listen port (default 9090)

Run (stdio โ€” Glama / Claude Desktop)

Claude Desktop (mcpServers entry) โ€” no clone, no working directory to get wrong:

{
  "mcpServers": {
    "aimarket-mcp": {
      "command": "uvx",
      "args": ["aimarket-mcp"]
    }
  }
}

uvx fetches the published package and runs its aimarket-mcp console script, which is the stdio server. With the package already installed, "command": "aimarket-mcp" and no args does the same thing.

From a checkout, for development:

pip install -e .
python -m aimarket_mcp.stdio_server

Run (HTTP โ€” self-host)

pip install -e .
AIMARKET_MCP_KEY=sk-... AIMARKET_MCP_PRODUCTION=1 aimarket-mcp-http   # :9090
# or: docker compose up -d   (uses Dockerfile.http)

Cursor / Claude (Streamable HTTP)

{
  "mcpServers": {
    "aimarket-web": {
      "type": "streamable-http",
      "url": "http://127.0.0.1:9090/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_AIMARKET_MCP_KEY"
      }
    }
  }
}

Publish on Glama

Listing: glama.ai/mcp/servers/alexar76/aimarket-mcp

Same pattern as aimarket-oracle-gateway (working on Glama): repo-root glama.json + Dockerfile + python -m aimarket_mcp.stdio_server.

Field

Value

Dockerfile

Dockerfile (from repo โ€” not Glama debian/uv template)

Command

python -m aimarket_mcp.stdio_server

Placeholder parameters

{}

Pinned SHA

empty (latest)

Do not use the auto-generated debian:trixie-slim + uv sync + mcp-proxy -- aimarket-mcp template โ€” that was the broken HTTP/ENOENT path.

Consumers

  • Metis โ€” enable the preset:

    enable_mcp_tools: true
    mcp_ecosystem_presets: [aimarket-web]
  • ARGUS โ€” add the server to argus.config.json mcpServers (see that repo).

Test

pip install -e '.[dev]' && pytest -q

Glama

Glama ignores repo Dockerfiles โ€” set Build steps in admin/dockerfile:

["bash scripts/glama_install.sh"]

CMD: [".venv/bin/python", "-m", "aimarket_mcp.stdio_server"]. Pin main or tag glama-build (not a fixed SHA). Details: docs/GLAMA.md.

Registries

Registry

Listing

Glama

glama.ai/mcp/servers/alexar76/aimarket-mcp

Official MCP Registry

io.github.alexar76/aimarket-mcp โ€” server.json + GitHub Actions

PyPI

pip install aimarket-mcp

GitHub Releases

github.com/alexar76/aimarket-mcp/releases

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
5dRelease cycle
7Releases (12mo)
Commit activity

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to fetch and analyze web content from URLs through MCP protocol. Supports batch processing, content extraction, summarization, and metadata extraction with intelligent filtering of ads and navigation elements.
  • A
    license
    A
    quality
    A
    maintenance
    Enables web search and web fetch operations using Ollama's hosted APIs, allowing MCP clients to search the web and retrieve page content.
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to perform grounded web research with injection resistance, claim verification, and cost-aware routing through MCP tools like web_search, fetch_url, extract_claims, and check_grounding.
    MIT

View all related MCP servers

Related MCP Connectors

  • Stealth web browser for agents: search, fetch, click and type through persistent sessions over MCP.

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

  • Reliable web access for AI agents: smart HTTP, rotating proxies, and full-browser rendering.

View all MCP Connectors

Latest Blog Posts

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/alexar76/aimarket-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server