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.6.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.6.0
File Size Uploaded Provenance
aimarket_mcp-0.6.0.tar.gz 38.2 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 65.3 kB

Release files / aimarket_mcp-0.6.0.tar.gz

Download URL aimarket_mcp-0.6.0.tar.gz
Size 38.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d14740c8017a657aa9828febc24a70b8e63cb4a2997dd303dc85b83275ea9227
BLAKE2b-256 checksum
How to use checksums
b7747c6e545ece4c7e7d22fed90ab48cc39cfffb29539cc700e3b04f75d88949
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.6.0-py3-none-any.whl

Download URL aimarket_mcp-0.6.0-py3-none-any.whl
Size 27.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3a87d8f63ebac4661cf96b43f82c78b277484642b2ad6b618914bb6658ba914b
BLAKE2b-256 checksum
How to use checksums
7e0af4687bb97ac7d20c3eca34bf9a7ab29da81823df6820c5b044f5f9e9d743
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.6.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