Skip to main content
Glama
sdm7001

envato-mcp

by sdm7001
README.md
# envato-mcp

A [Model Context Protocol](https://modelcontextprotocol.io) (MCP) server for the
[Envato API](https://build.envato.com/). It lets MCP-compatible AI clients
(Claude Desktop, Cursor, and others) search the Envato Market catalog, look up
author statistics, inspect a buyer's purchases, and read the authenticated
user's account details.

## Features

- **Catalog search** — full-text item search, popular items, and category
  listings across Envato Market sites (ThemeForest, CodeCanyon, etc.).
- **Author stats** — public user info, item counts by site, badges, and
  market-wide totals.
- **Buyer / purchases** — list your purchases, fetch download links, and verify
  purchase codes.
- **Account info** — the authenticated user's account, username, and email.

Every tool validates its input with [zod](https://zod.dev) and returns the raw
Envato JSON response. API errors (including `401`/`403` auth failures and `429`
rate limiting) are surfaced as clear, actionable messages.

## Requirements

- Node.js 18 or newer.
- An Envato personal token (see below).

## Getting an Envato token

1. Go to <https://build.envato.com/create-token/>.
2. Select the permissions you need. For example:
   - *View and search Envato sites* — catalog tools.
   - *View your Envato Account username* / *email* — account tools.
   - *View your items' sales history* / *List purchases you've made* — buyer
     tools.
   - *Download your purchased items* — download links.
3. Create the token and copy it. You will pass it to the server as the
   `ENVATO_TOKEN` environment variable.

## Usage

Run directly with `npx` (no install required):

```bash
ENVATO_TOKEN=your-token-here npx envato-mcp
```

The server communicates over stdio and is intended to be launched by an MCP
client rather than used interactively.

### Claude Desktop

Add the server to your `claude_desktop_config.json`:

- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "envato": {
      "command": "npx",
      "args": ["-y", "envato-mcp"],
      "env": {
        "ENVATO_TOKEN": "your-token-here"
      }
    }
  }
}
```

### Cursor

Add the server to `~/.cursor/mcp.json` (or `.cursor/mcp.json` in a project):

```json
{
  "mcpServers": {
    "envato": {
      "command": "npx",
      "args": ["-y", "envato-mcp"],
      "env": {
        "ENVATO_TOKEN": "your-token-here"
      }
    }
  }
}
```

After saving, restart the client so it picks up the new server.

## Tools

### Catalog search

| Tool | Description | Arguments |
| --- | --- | --- |
| `envato_search_items` | Search the catalog for items matching a term. | `term` (string, required), `site` (string, optional), `page` (int, optional), `page_size` (int 1–100, optional) |
| `envato_popular_items` | Most popular items for a site. | `site` (string, e.g. `themeforest`) |
| `envato_categories` | All categories for a site. | `site` (string, e.g. `codecanyon`) |

### Author stats

| Tool | Description | Arguments |
| --- | --- | --- |
| `envato_user_info` | Public account details for a user. | `username` (string) |
| `envato_user_items_by_site` | Number of items a user sells per site. | `username` (string) |
| `envato_user_badges` | Badges earned by a user. | `username` (string) |
| `envato_market_totals` | Total users and items across Envato Market. | _none_ |

### Buyer / purchases

| Tool | Description | Arguments |
| --- | --- | --- |
| `envato_list_purchases` | List the authenticated buyer's purchases. | `filter_by` (enum, optional), `page` (int, optional) |
| `envato_download_link` | Download URL for a purchased item. | `item_id` (int) |
| `envato_verify_purchase` | Verify a purchase code and return sale details. | `code` (string) |

### Account info

| Tool | Description | Arguments |
| --- | --- | --- |
| `envato_account` | The authenticated user's account details. | _none_ |
| `envato_my_username` | The authenticated user's username. | _none_ |
| `envato_my_email` | The authenticated user's email. | _none_ |

## Development

```bash
npm install        # install dependencies
npm run dev        # rebuild on change (tsup --watch)
npm run typecheck  # type-check with tsc (no emit)
npm run lint       # lint with ESLint
npm run build      # bundle to dist/ with tsup
```

The build outputs an executable ESM bundle to `dist/index.js` with a Node
shebang, wired up as the `envato-mcp` bin.

## License

[MIT](./LICENSE) © 2026 Scott McAuley

TDQS

A4.1/5.0

Scored across 13 tools

Disambiguation5/5

Each tool targets a distinct resource or action: account info, purchases, items, search, categories, etc. No overlaps are apparent, and descriptions clearly differentiate them.

Naming Consistency5/5

All tools follow the 'envato_' prefix followed by a descriptive noun or noun phrase in snake_case (e.g., envato_account, envato_download_link). The naming pattern is uniform and predictable.

Tool Count5/5

With 13 tools, the server covers essential functional areas without being bloated or sparse. The count aligns well with the scope of the Envato Market API.

Completeness5/5

The tool set covers user account details, purchases, catalog browsing, search, and purchase verification. It provides a comprehensive surface for interacting with Envato Market, with no obvious gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues