Skip to content

Latest commit

 

History

History

README.md

aimarket-mcp-packager — MCP server

CI aimarket-plugins MCP server Test coverage License: Apache-2.0

This repository ships a Model Context Protocol (MCP) server that packages AIMarket capabilities into self-hosted MCP server products (Docker image metadata, MCP manifest, Claude Desktop config).

Transport: stdio (mcp_stdio_server.py). Built with the official MCP Python SDK (mcp package, FastMCP).

Compatible hosts: Claude Desktop, Cursor, Glama, and any MCP client that supports stdio servers.


MCP server in this repo

Item Location
MCP entrypoint mcp_stdio_server.py
MCP SDK dependency requirements-mcp.txtmcp>=1.6,<4
Glama / Docker run Dockerfile, glama.json
Tool implementation aimarket_mcp_packager/packager_core.py

Run locally:

pip install -r requirements-mcp.txt
pip install -e .
python mcp_stdio_server.py

Or with Docker (stdio MCP server):

docker build -t aimarket-mcp-packager .
docker run --rm -i aimarket-mcp-packager

MCP tools

The server exposes 3 tools (no MCP resources or prompts):

Tool Description
package_capability Build an MCP server package: Docker image name, mcp_manifest, subscription tiers, connection string
generate_dockerfile Generate a Dockerfile template for the packaged MCP server
generate_claude_desktop_config Generate a claude_desktop_config.json snippet (mcpServers) for docker-run MCP

Example tool call (conceptual):

{
  "name": "package_capability",
  "arguments": {
    "capability_id": "translate.multi@v2",
    "product_id": "prod-001",
    "name": "Lyra",
    "description": "Multilingual translator",
    "input_schema": { "type": "object", "properties": { "text": { "type": "string" } }, "required": ["text"] }
  }
}

input_schema takes a JSON Schema object (a JSON string is also tolerated for backward compatibility). Every tool parameter is documented in the server's tool schema for MCP clients.


MCP resources

This server does not register MCP resources or prompts — only the tools above. Output is JSON text returned from each tool call.


Client configuration

Claude Desktop

{
  "mcpServers": {
    "aimarket-mcp-packager": {
      "command": "python",
      "args": ["/path/to/aimarket-mcp-packager/mcp_stdio_server.py"]
    }
  }
}

Docker variant (see generate_claude_desktop_config tool output):

{
  "mcpServers": {
    "aimarket-mcp-packager": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "aimarket-mcp-packager:latest"]
    }
  }
}

Cursor

Add the same stdio server under Settings → MCP (command + args pointing at mcp_stdio_server.py or the Docker image above).


Python library (optional)

The same packaging logic is available as a library and as an AIMarket Hub plugin (PyPI package coming soon — for now pip install -e . from this directory, or use the AIMarket Hub Docker image). Hub HTTP routes are optional; the MCP server runs standalone via mcp_stdio_server.py.

from aimarket_mcp_packager.mcp_packager import MCPPackager

packager = MCPPackager()
pkg = packager.package(
    capability_id="translate.multi@v2",
    product_id="prod-001",
    name="Lyra",
    description="Multilingual translator",
    input_schema={"type": "object", "properties": {"text": {"type": "string"}}},
    price_per_call_usd=0.40,
)

print(pkg.docker_image)
print(pkg.mcp_manifest)
print(packager.generate_claude_desktop_config(pkg))

When to use

  • Distribute AI capabilities as self-hosted MCP servers (Docker + manifest)
  • Generate Claude Desktop / Cursor MCP client configs
  • Enterprise on-prem deployment with subscription tiers

Subscription tiers (packaged products)

Tier Calls/month Price
Starter 100 $9.99
Pro 1,000 $49.99
Enterprise 10,000 $299.99

Documentation

Document Description
User guide Install, Hub plugin, verify loaded
User cases Personas and cross-plugin workflows
SDK integration Code examples and hook behavior

License

MIT · Maintained by AI-Factory