Skip to main content
Glama
artkrsk

@artemsemkin/envato-market-mcp

by artkrsk

@artemsemkin/envato-market-mcp

MCP server for the Envato Market API. Gives AI agents access to purchase verification, item lookup, comment search, sales data, and account info.

Tools

Support

  • verify_purchase — verify a sale by purchase code; returns buyer, item, license, and support dates

  • get_item — look up an item by ID; returns sales count, rating, version, price, and tags

  • search_comments — search ThemeForest comments on an item; optionally filter by keyword

Business

  • list_sales — list recent author sales (paginated, compact summaries)

  • get_earnings — monthly earnings and sales breakdown since account creation

  • get_account — account balance, available earnings, and profile details

Related MCP server: Cart MCP Server

Setup

You need one environment variable:

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "envato-market": {
      "command": "npx",
      "args": ["-y", "@artemsemkin/envato-market-mcp"],
      "env": {
        "ENVATO_TOKEN": "your-token"
      }
    }
  }
}
claude mcp add envato-market \
  -e ENVATO_TOKEN=your-token \
  -- npx -y @artemsemkin/envato-market-mcp

Add to .vscode/mcp.json (VS Code) or .cursor/mcp.json (Cursor) in your project:

{
  "servers": {
    "envato-market": {
      "command": "npx",
      "args": ["-y", "@artemsemkin/envato-market-mcp"],
      "env": {
        "ENVATO_TOKEN": "your-token"
      }
    }
  }
}

Build from source

git clone https://github.com/artkrsk/envato-market-mcp.git
cd envato-market-mcp
pnpm install
pnpm build

Available Tools

7 tools
get_accountB

Account balance, available earnings, and profile details.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description bears the full burden of behavioral disclosure. It only lists returned data categories and does not mention read-only semantics, authentication requirements, account scope, data freshness, or potential side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a compact, front-loaded phrase with no filler or redundancy. Every word contributes meaningful information about what the tool returns, making it appropriately concise for a trivial getter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema and low complexity, the description lists the key return categories (balance, earnings, profile details) which is largely sufficient. It is slightly vague on what 'profile details' encompasses and does not clarify account ownership, but it provides enough context for a basic call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the empty schema is complete and description has no parameter burden. The baseline of 4 applies because there are no parameter semantics to explain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource (account) and the specific information returned (balance, available earnings, profile details). It is more specific than a tautology and conveys the core purpose, though it lacks a verb and does not explicitly distinguish itself from sibling tools like get_earnings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided. There is no statement about when to use this tool versus alternatives such as get_earnings or get_statement, nor any exclusions or context for when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_earningsA

Monthly earnings and sales breakdown since account creation.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full burden of behavioral disclosure. It does reveal the time scope and aggregation level, but it does not mention output format, currency, net versus gross values, or whether the data is live or cached. This is a reasonable baseline for a zero-parameter read tool, but it lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no filler. It front-loads the core result and includes the important scope qualifier 'since account creation'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the tool has no parameters and no output schema, the description covers the essential invocation and return semantics. It could be more complete by specifying the response structure or units, but for this simple tool it is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there are no parameter semantics to explain. The empty schema is consistent and the description appropriately focuses on the return value rather than on parameter syntax.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns monthly earnings and sales breakdowns since account creation, giving a specific verb and resource. It distinguishes itself from unrelated siblings like search_comments and get_item, though it does not explicitly differentiate from list_sales, which could overlap in subject matter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus list_sales or get_statement. The phrase 'since account creation' implies an all-time aggregate scope, but the description never explicitly states selection criteria or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_itemB

Look up an Envato Market item by ID. Returns sales count, rating, version, price, and tags.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesEnvato item ID

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the operation is a lookup and lists return fields, but says nothing about authentication, rate limits, read-only guarantees, error behavior, or what happens if the ID is invalid or not found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The core action is front-loaded, and the return fields are listed efficiently. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter lookup with no output schema, the description provides the key output expectations (sales count, rating, version, price, tags), which is helpful. It lacks notes on error cases or access requirements, but the tool is simple enough that this is a minor gap rather than a major omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents the 'id' parameter as 'Envato item ID'. The description adds no further parameter semantics beyond confirming the lookup is by ID, so it meets the baseline but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Look up an Envato Market item by ID.' It also lists concrete return fields (sales count, rating, version, price, tags), which clearly distinguishes it from sibling tools that handle sales, earnings, statements, or account data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance about when to use this tool versus the siblings, nor any mention of prerequisites or exclusions. The usage context is only implied by the tool's stated purpose, so an agent gets little routing help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_statementB

List transactions from your Envato statement. Supports filtering by date range, transaction type, and site.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
siteNoEnvato Market site (e.g. "themeforest.net")
typeNoTransaction type (e.g. "Sale", "Author Fee")
to_dateNoEnd date (YYYY-MM-DD)
from_dateNoStart date (YYYY-MM-DD)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It establishes that the tool reads and filters transactions, but it omits pagination behavior despite a 'page' parameter existing, and says nothing about default scope when no filters are supplied or how results are ordered. For a financial listing tool, these are material behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero wasted words. The core action is front-loaded in the first sentence, and the second sentence efficiently summarizes filter capabilities. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema fully documents parameters, but with no annotations and no output schema, the description is the only source of behavioral context. It is adequate for basic invocation but leaves gaps around pagination, unfiltered behavior, and how this tool differs from sibling list_sales — gaps an agent would need to resolve at runtime.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all five parameters are already documented with descriptions and examples (e.g., 'Sale', 'themeforest.net', 'YYYY-MM-DD'). The description conceptually maps 'date range, transaction type, and site' to the relevant parameters but adds no new meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and resource ('transactions from your Envato statement'), making the core purpose clear. However, it does not differentiate from the sibling 'list_sales', which plausibly overlaps in function, leaving an agent uncertain which to choose without inspecting both schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by naming the supported filters (date range, transaction type, site), so an agent can infer this is the tool for filtered statement lookups. But it provides no explicit when-to-use vs. when-not-to-use guidance, and does not mention alternatives like list_sales or get_earnings for overlapping financial queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_salesB

List recent author sales (paginated). Returns compact sale summaries.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does add useful context: results are paginated and return compact sale summaries. However, it does not mention ordering, page size, what 'recent' means, authentication requirements, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two short sentences, front-loaded with the core purpose and pagination behavior, with no filler or repeated schema information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple one-parameter, read-only list operation with no output schema. The description covers the basics, but because annotations are absent and the output schema is missing, the agent still lacks details about return fields, page size, and ordering. It is adequate but not rich.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single 'page' parameter, so the schema already documents the parameter adequately. The description does not add extra meaning about the parameter, but none is needed given the schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('list ... author sales') and mentions pagination. However, it does not explicitly distinguish itself from siblings like get_earnings or get_statement, so the agent must infer which tool covers which kind of sales data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool instead of alternatives such as get_earnings, get_statement, or verify_purchase. The description does not state any exclusions, prerequisites, or preferred use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_commentsA

Search ThemeForest comments on an item. Returns conversation threads.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1)
termNoSearch phrase to filter comments
item_idYesEnvato item ID

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It does disclose that the tool returns conversation threads, which is useful. But it does not mention pagination behavior, ordering, possible empty results, authentication requirements, or rate-limit implications. For a read-only search tool this is acceptable but not richly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. It front-loads the core purpose ('Search ThemeForest comments on an item') and then adds the key output behavior ('Returns conversation threads'). Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity search tool, the description is mostly complete: a single required parameter is identified by the schema, the optional parameters are self-explanatory, and the return type is described at a high level. The absence of an output schema means exact thread shape is undocumented, but the description gives enough for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents all three parameters with 100% coverage, so the baseline is 3. The description adds little beyond the schema; it contextualizes item_id as a ThemeForest item and term as a search-based filter, but it does not explain how term interacts with comments or how page paginates threads.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('Search'), a specific resource ('ThemeForest comments'), and a constraint ('on an item'). This clearly distinguishes it from the sibling tools, which target purchases, earnings, statements, accounts, and item metadata rather than comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'on an item' implies the primary use case: retrieving comments for a given Envato item. However, the description does not explicitly state when to prefer this tool over alternatives, nor does it describe any exclusions, search behavior, or prerequisites beyond the item context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_purchaseA

Verify a sale by Envato purchase code. Returns buyer, item, license, and support dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesEnvato purchase code (UUID format)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It does disclose the return fields (buyer, item, license, support dates), which helps set expectations, but it does not state whether the operation is read-only, what happens for invalid codes, or any authentication or rate-limit considerations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. It front-loads the core action and then lists the key returned information, making it quick for an agent to parse and act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool, the description is largely complete: it names the required input, the action, and the return fields. It lacks explicit error or invalid-code behavior, but the core call-and-verify flow is understandable without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already describes code as an Envato purchase code in UUID format. The description adds minimal extra meaning beyond connecting the code to the sale verification action, so it meets the baseline but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Verify') and a specific resource ('a sale by Envato purchase code'), and it names the returned data: buyer, item, license, and support dates. This clearly distinguishes it from siblings like list_sales or get_item, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: call this when you have an Envato purchase code and need to verify a sale. However, it does not explicitly state when to prefer this tool over alternatives such as list_sales or get_statement, nor does it mention any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv1.2.1
    • First observedget_account
    • First observedget_earnings
    • First observedget_item
    • First observedget_statement
    • First observedlist_sales
    • First observedsearch_comments
    • First observedverify_purchase

TDQS

A3.7/5.0

Scored across 7 tools

Disambiguation4/5

Each tool targets a distinct area: item info, purchase verification, comments, and financial reporting. There is some overlap between list_sales, get_statement, and get_earnings, but their descriptions clarify the different data views.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: search_comments, verify_purchase, get_item, list_sales, get_statement, get_earnings, get_account. The verbs appropriately reflect each action, and the naming is predictable.

Tool Count5/5

Seven tools is a well-scoped set for an Envato Market API surface. Each tool covers a meaningful operation without redundancy or bloat.

Completeness4/5

The set covers the core Envato Market workflows: item lookup, purchase verification, comments, sales, earnings, statement history, and account overview. Minor gaps like item search or sale-level detail are possible, but the surface is functional for typical author/API needs.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP server that connects AI agents to Codinfy platform APIs for validating licenses, creating checkouts, listing products, tracking analytics, managing OAuth identity, and handling ad placements.
    17
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for Envato API that enables searching the marketplace catalog, viewing author statistics, checking buyer purchases, and accessing account details.
    13
    3
    MIT