# ai.gency/gency-mcp (npm · @gency-ai/gency-mcp)

Gency AI product image generation - MCP server for Claude, Codex, Cursor, VS Code

- Trust score: 55/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `@gency-ai/gency-mcp`: 55/100 (this document), [markdown](https://verifymcp.io/servers/ai-gency-gency-mcp/gency-ai-gency-mcp.md), [page](https://verifymcp.io/servers/ai-gency-gency-mcp/gency-ai-gency-mcp)

## Channel facts

- Registry: `npm`
- Package: `@gency-ai/gency-mcp`
- Version: `0.6.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 83/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known medium-severity CVE affects @hono/node-server 1.19.17, reached via @modelcontextprotocol/node > @hono/node-server. A fixed version is available.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (76 of 77), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 19/100
  - Repository check failed: the declared repository URL returned HTTP 404.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 4 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 54/100
  - 14% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 1344 tokens (~49/item across 27 items; 21 tools + 6 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add ai-gency-gency-mcp -- npx -y @gency-ai/gency-mcp
```

### Codex

```bash
codex mcp add ai-gency-gency-mcp -- npx -y @gency-ai/gency-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ai-gency-gency-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@gency-ai/gency-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ai-gency-gency-mcp --command npx --arg -y --arg @gency-ai/gency-mcp
```

### Hermes

```yaml
mcp_servers:
  ai-gency-gency-mcp:
    command: "npx"
    args: ["-y", "@gency-ai/gency-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "ai-gency-gency-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@gency-ai/gency-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 55, +33)

- [security regression] GHSA-frvp-7c67-39w9 affects this package: medium
- [security regression] Known CVEs: unverified → fail
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Dependency health: unverified → partial

### 2026-08-01 (score 22, +22)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Schema quality: unverified → 14
- [functional] First check of Schema quality: pass
- [functional] First check of Tool coverage: 100
- [functional] First check of Schema quality: unverified
- [functional] First check of Schema quality: fail
- [functional] Licence: MIT

### 2026-07-31 (score 0, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 0, 0)

- [functional] Package version: 0.4.1 → 0.6.0

### 2026-07-29 (score 0)

First indexed and scored.

## MCP tools (21)

### `login` (~201 tokens)

Start OAuth login (opens a browser). Captures the callback in-process and stores tokens at ~/.gency/tokens.json. gency-mcp uses OAuth only — this is the single sign-in flow.

Input parameters:

- `api_base` (string): OAuth provider base URL. Defaults to GENCY_OAUTH_API_BASE/GENCY_API_URL.
- `client_id` (string): OAuth client_id. Defaults to GENCY_OAUTH_CLIENT_ID env.
- `client_secret` (string): OAuth client_secret (only required for confidential clients). Defaults to GENCY_OAUTH_CLIENT_SECRET env.
- `port` (integer): Fixed loopback port. Default: 53682 (must be whitelisted in the OAuth client's redirect URIs as http://localhost:53682/callback).
- `scope` (string): Space-separated scopes. Defaults to product:read product:write team:read team:write user:read.
- `timeout_seconds` (integer): Login timeout. Default: 300.

### `logout` (~35 tokens)

Remove stored OAuth tokens (~/.gency/tokens.json). gency-mcp is OAuth-only — there is no API key state to clear.

### `auth_status` (~57 tokens)

Inspect current Gency OAuth state. Call this BEFORE the first gency tool in a session if unsure — output's 'Next action' line tells you whether to invoke `login` or proceed. gency-mcp authenticates with OAuth only.

### `get_team` (~18 tokens)

Get current team information including team name and plan

### `list_workspaces` (~18 tokens)

List all workspaces in the current team

### `create_workspace` (~29 tokens)

Create a new workspace. Confirm with the user before executing.

Input parameters:

- `name` (string, required): Workspace name

### `update_workspace` (~41 tokens)

Rename a workspace. Confirm with the user before executing.

Input parameters:

- `name` (string, required): New workspace name
- `workspaceId` (string, required): Workspace ID to update

### `list_templates` (~67 tokens)

List templates for a workspace (workspace-specific + defaults TEMPLATE_01~TEMPLATE_12). Present as a picklist for the user — do NOT silently pick.

Input parameters:

- `productType` (string): Product type filter (default: FASHION)
- `workspaceId` (string, required): Workspace ID

### `list_products` (~24 tokens)

List products in a workspace.

Input parameters:

- `workspaceId` (string, required): Workspace ID

### `get_product` (~26 tokens)

Get detailed information about a specific product.

Input parameters:

- `productId` (string, required): Product ID

### `create_product` (~152 tokens)

Create AI-generated product images. **Consumes credits — confirm with the user first.** Only `category: "CLOTHING"` is accepted by the API today. Defaults to ONE product per request (all colors go in a single `colors` array; split only on explicit user request). **Do NOT guess colors/fabrics/features/laundryTips from filenames or category — ask the user.** Generation is asynchronous: poll `get_product` until status leaves CREATING. Read resource `gency://api-reference/products` for the full ProductMetadata schema (category enum, additionalInfo, sizeTables format).

Input parameters:

- `products` (array, required): Array of product metadata
- `workspaceId` (string, required): Target workspace ID

### `update_product_status` (~52 tokens)

Change product review status. Confirm with the user. Transitions: BEFORE_REVIEW → IN_REVIEW → REVIEW_COMPLETE.

Input parameters:

- `productId` (string, required): Product ID
- `status` (string, required): New status

### `get_upload_url` (~109 tokens)

Get a presigned S3 URL to upload one product image, plus the uploadHandle that `upload_image` requires. Single-use, valid 1h; uploaded images retained 24h. See `gency://api-reference/images`. Tip: for the common 6+ images case, prefer `prepare_product_images` (single call).

Input parameters:

- `extension` (string, required): File extension (lowercase, no dot). Must match the PUT Content-Type.
- `workspaceId` (string, required): Workspace ID

### `download_product_image` (~97 tokens)

Render a generated product's detail page and save the resulting image locally. Requires the product to be generated (status past CREATING). Rendering is slow — allow up to 3 minutes.

Input parameters:

- `outputPath` (string): Absolute path to write the image to. Defaults to a file in the OS temp directory.
- `productId` (string, required): Product ID
- `templateId` (string): Template ID to render with (optional)

### `upload_image` (~119 tokens)

PUT a local image file to the presigned S3 URL that get_upload_url issued. Pass the `uploadHandle` from that call — it carries the destination URL, so no URL is accepted here.

Input parameters:

- `contentType` (string): MIME type (auto-detected from file contents if omitted)
- `filePath` (string, required): Absolute path to the local image file
- `uploadHandle` (string, required): The uploadHandle returned by get_upload_url. Single-use, valid 1h, and only redeemable by the caller it was issued to.

### `prepare_product_images` (~111 tokens)

Upload 6+ local images for a workspace and return imageIds ready for create_product. Use this when the user gives you several image paths — it replaces 6× (get_upload_url + upload_image). Fails fast if fewer than 6 paths are supplied (Gency requires min 6 per product).

Input parameters:

- `filePaths` (array, required): Absolute paths to local image files (6-50). Order is preserved; the first becomes the primary thumbnail.
- `workspaceId` (string, required): Workspace ID

### `get_me` (~14 tokens)

Get current authenticated user information

### `list_users` (~13 tokens)

List all team members

### `get_user` (~40 tokens)

Get information about a specific team member. The target user must belong to the same team as the caller.

Input parameters:

- `userId` (string, required): Target user ID

### `get_credits` (~27 tokens)

Get remaining credit balance for the team. Call this BEFORE create_product to ensure sufficient credits.

### `search_docs` (~56 tokens)

Search Gency API docs by keyword. Returns top 3 ranked snippets with line numbers from developers.gency.ai (cached 1h).

Input parameters:

- `query` (string, required): Search keywords (space-separated, e.g., 'webhook signature')

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/ai-gency-gency-mcp/gency-ai-gency-mcp#diagnostics

## Score history

- 2026-08-03: 55
- 2026-08-02: 55
- 2026-08-01: 22
- 2026-07-31: 0
- 2026-07-30: 0
- 2026-07-29: 0

## Links

- npm package: https://www.npmjs.com/package/@gency-ai/gency-mcp
- Socket report: https://socket.dev/npm/package/@gency-ai/gency-mcp
- Changelog RSS feed: https://verifymcp.io/servers/ai-gency-gency-mcp/gency-ai-gency-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/ai-gency-gency-mcp/gency-ai-gency-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/ai-gency-gency-mcp/gency-ai-gency-mcp
