@artemsemkin/envato-market-mcp
Provides access to the Envato Market API, including tools for purchase verification, item lookup, comment search, sales data, and account information.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@artemsemkin/envato-market-mcpShow my earnings breakdown for this year"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@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 datesget_item— look up an item by ID; returns sales count, rating, version, price, and tagssearch_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 creationget_account— account balance, available earnings, and profile details
Related MCP server: Cart MCP Server
Setup
You need one environment variable:
ENVATO_TOKEN— your Envato personal API token from build.envato.com
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-mcpAdd 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 buildAvailable Tools
7 toolsget_accountB
Account balance, available earnings, and profile details.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Envato item ID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| site | No | Envato Market site (e.g. "themeforest.net") | |
| type | No | Transaction type (e.g. "Sale", "Author Fee") | |
| to_date | No | End date (YYYY-MM-DD) | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| term | No | Search phrase to filter comments | |
| item_id | Yes | Envato item ID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Envato purchase code (UUID format) |
TDQS
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.
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.
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.
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.
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.
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.
7 tool updates
v1.2.1- First observed
get_account - First observed
get_earnings - First observed
get_item - First observed
get_statement - First observed
list_sales - First observed
search_comments - First observed
verify_purchase
TDQS
Scored across 7 tools
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.
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.
Seven tools is a well-scoped set for an Envato Market API surface. Each tool covers a meaningful operation without redundancy or bloat.
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
Related MCP Connectors
Marketplace of MCP servers and agent skills, free and paid, where developers publish and monetise.
MCP server for agentverse documentation, generated by doc2mcp.
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP Server for an Agent Task Marketplace
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP 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.17MIT
- AlicenseAqualityDmaintenanceMCP server for the Cart e-commerce intelligence API, enabling AI agents to search stores, products, ads, and suppliers, and analyze market trends.157 npmMIT
- FlicenseNot gradedqualityFmaintenanceAn MCP server for the Envato API that enables searching, purchasing, and downloading assets.-
- AlicenseAqualityCmaintenanceMCP server for Envato API that enables searching the marketplace catalog, viewing author statistics, checking buyer purchases, and accessing account details.133MIT