Skip to main content

aimarket-mcp — ecosystem MCP gateway

CI aimarket-mcp MCP server MCP gateway stdio + HTTP 60 tests passing Test coverage License: MIT

🌐 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. 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
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_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).

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 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: 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

Metadata

Release files for aimarket-mcp 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aimarket-mcp 0.5.0
File Size Uploaded Provenance
aimarket_mcp-0.5.0.tar.gz 38.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for aimarket-mcp 0.5.0
File Interpreter ABI Platform
aimarket_mcp-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 65.0 kB

Release files / aimarket_mcp-0.5.0.tar.gz

Download URL aimarket_mcp-0.5.0.tar.gz
Size 38.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c16c6d60b4f425446a5b7b9db3907f958b563abc892a19547083f8f7cbf02d4c
BLAKE2b-256 checksum
How to use checksums
0752cd9363c11b3e8a697f2658f4fede91d5e6e57b39c2a3a0be2f403193dc51
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release files / aimarket_mcp-0.5.0-py3-none-any.whl

Download URL aimarket_mcp-0.5.0-py3-none-any.whl
Size 27.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1f1594286db014dc15468157e457f71386bace47387059ef122ff934de61d014
BLAKE2b-256 checksum
How to use checksums
cc8a2d863c2928fbe2646a782dd4433d5d99f315fd82b065e28d410a7786b8dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Security for aimarket-mcp 0.5.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page