Skip to main content
Glama

aimarket-mcp — ecosystem MCP gateway

🔄 Synced from the AI-Factory monorepo (append-only history). Pull requests are welcome — merged PRs are imported back and re-synced here. Issues · Pull requests

🌐 English · Русский · Español · Français · 中文 · Glossary

🟢 Just want to try the marketplace? Install nothing.

Paste https://modelmarket.dev/mcp into your MCP client and you have market_search and 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. Six 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

market_status

Show the free trial invokes and prepaid balance left

read-only; the hub's health, this installation's remaining trial in the current window, and the AIMARKET_API_KEY balance when set (never the key)

Example — buy a GAIA Open-Meteo reading

market_search(intent="gaia weather open-meteo")
market_invoke(
  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: MyWebSearch MCP

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_API_KEY

Credit-account key from the hub's /start page (https://modelmarket.dev/start): priced market_invoke calls are paid from its prepaid balance; while it is short the free trial still applies. In HTTP mode it pays for every caller of that server

AIMARKET_SANDBOX_VISITOR

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

AIMARKET_MCP_KEY

HTTP bearer auth key. HTTP requests without a key are refused by default, including direct loopback clients. Configure a key and send Authorization: Bearer <key>; stdio needs no HTTP key. An intentionally anonymous endpoint can instead set AIMARKET_MCP_PUBLIC=1

AIMARKET_MCP_LOCAL_RELAY

HTTP only — default off. 1 explicitly trusts tokenless local TCP callers including arbitrary proxies/tunnels running as the server's user. Requires a loopback peer and Host, local browser Origin, no forwarding headers and verified same-user socket ownership. Prefer a bearer key; process names and public listeners cannot prove that a request is direct

AIMARKET_MCP_LOCAL_UNVERIFIED

HTTP only — default off. On macOS/Windows or another host without Linux socket tables, 1 additionally bypasses unavailable socket ownership proof. Requires AIMARKET_MCP_LOCAL_RELAY=1 as well. Neither setting bypasses a configured bearer key or production mode

AIMARKET_MCP_PUBLIC

HTTP only — 1 answers anonymous callers from anywhere, without a key (an explicit choice for a public endpoint)

AIMARKET_MCP_HOST

HTTP only — listen address (default 127.0.0.1; the HTTP image sets 0.0.0.0)

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: aimarket-mcp. Glama generates a container from the build settings in its admin panel:

Field

Value

Build steps

["bash scripts/glama_install.sh"]

CMD arguments

["mcp-proxy", "--", ".venv/bin/python", "-m", "aimarket_mcp.stdio_server"]

Placeholder parameters

{}

Pinned commit SHA

empty (latest synced commit)

Build, inspect, and publish a release after syncing source changes. A repository sync alone does not refresh the deployed tool catalog or its quality evaluation. The catalog should contain all six tools listed above. See Glama build and release instructions.

Consumers

  • Connected successfully? Share your host, configuration, and one working tool using the Show and tell template.

  • 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

Registries

See the directory submission checklist and current status before submitting or refreshing a listing.

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

Available Tools

5 tools
market_invoke_toolA

Run one capability from market_search on the hub's free trial tier.

Returns the capability's output plus the nonce of the hub-signed receipt, so the result is verifiable against the hub's published key rather than trusted on faith. A few trial invokes are granted per installation; after that the hub answers 402 and this reports that instead of fabricating a result. Paid access needs an on-chain escrow deposit, which is an operator action and deliberately not available here.

Inputs: capability_id (required), input, product_id, source_hub. Returns: result

market_search_toolA

Discover paid AI capabilities listed on an AIMarket hub, with prices.

Free — no wallet, key or payment channel. Returns capability_id, product_id, price per call in USD and a trust score; pass both ids to market_invoke to run one. The hub lists only capabilities it can actually execute, so an empty result means it genuinely does not sell that. Set AIMARKET_HUB_URL to point at a different hub.

Inputs: intent (required), limit, category, max_price_usd. Returns: result

metis_verify_toolA

Run Metis cognition + verification on an input; returns answer plus verify_score/verified.

Calls the Metis /v1/verify API. Response includes machine-readable metadata [verify_score=… status=… route=… verified=…] so agents can fail-closed when confidence is insufficient. Configure AIMARKET_METIS_URL and optional AIMARKET_METIS_KEY.

Inputs: input (required), route. Returns: result

web_fetch_toolA

Fetch a web page by URL and return its main text content.

SSRF-hardened (scheme allow-list, private-IP block, per-redirect re-validation, size cap). Output is sanitized, role-marker stripped, and wrapped in <untrusted>…</untrusted> before it can reach a model — safe for agent consumption with explicit untrusted marking.

Inputs: url (required), max_chars. Returns: result

web_search_toolA

Search the web for current facts and return the top result snippets.

Uses DuckDuckGo HTML results. Output is sanitized and wrapped <untrusted> like web_fetch. Prefer this over guessing when the answer depends on recent events or documentation.

Inputs: query (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.3/5.0

    Scored across 5 tools

    Disambiguation4/5

    Each tool has a fairly distinct purpose: web_search vs web_fetch (find vs retrieve), market_search vs market_invoke (discover vs execute), and metis_verify is a standalone verification endpoint. The only slight overlap is that market_invoke can run arbitrary hub capabilities while metis_verify runs a specific one, which could raise 'which do I call?' questions, but the descriptions clarify the difference.

    Naming Consistency5/5

    All five tools follow the same {domain}_{verb}_tool snake_case convention (web_search_tool, market_invoke_tool, market_search_tool, metis_verify_tool, web_fetch_tool). The redundant '_tool' suffix is unnecessary but applied uniformly, so it remains fully predictable.

    Tool Count4/5

    Five tools is a lean but reasonable set covering search, fetch, market discovery, invocation, and verification. It is on the thin side for a market/hub server since no tool exposes trial quota, hub config, or errors-as-state beyond what invoke returns, but nothing feels padded.

    Completeness4/5

    The core loop is covered: discover capabilities (market_search), run one (market_invoke), verify output (metis_verify), plus web search/fetch for grounding. Minor gaps exist (no tool to inspect remaining trial invokes or hub status), and paid escrow is intentionally excluded, but agents can work around these.

    Maintenance

    ActivityActive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to perform web searches with full content retrieval and multi-engine provenance, including trust scoring and local corpus persistence, via MCP integration.
      8 npm
      4
      Apache 2.0
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to perform unified web research through a single MCP server, including search, page fetching, recursive crawling, document parsing, YouTube transcript extraction, and deep multi-query research.
      3
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI chat backends to fetch public webpages and obtain cleaned readable text, Markdown, article content, metadata, and summary-ready prompts through MCP tools.
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables MCP clients and agents to run structured web searches and fetch web pages as Markdown through a search/fetch API, with rate limiting, retry/backoff, request deadlines, and private-address blocking for safer agent use.
      2
      877 npm
      MIT