Skip to main content
Glama
administrativetrick

Etsy MCP Server

Etsy MCP Server

A Model Context Protocol (MCP) server that provides integration with the Etsy API v3. This server enables AI assistants to search for products, get shop information, retrieve listing details, and more on Etsy.

Features

  • 🔍 Search Listings: Search for active products on Etsy with filters

  • 🏪 Shop Information: Get detailed shop data and reviews

  • 📦 Listing Details: Retrieve comprehensive product information with images

  • 🔥 Trending Products: Discover what's currently popular on Etsy

  • Reviews: Access shop reviews and ratings

  • 📊 Pagination Support: Handle large result sets efficiently

Related MCP server: Etsy MCP Server

Prerequisites

  • Node.js 18 or higher

  • An Etsy API key (from Etsy Developer Portal)

Getting an Etsy API Key

  1. Go to Etsy Developers

  2. Sign in with your Etsy account

  3. Create a new app in the Developer Console

  4. Copy your API Key (also called "Keystring")

Note: For read-only operations (searching, viewing public data), you only need an API key. For operations that modify data (creating listings, managing shops), you would need OAuth 2.0 authentication, which is not currently implemented in this server.

Installation

From npm (when published)

npm install -g etsy-mcp-server

From Source

git clone <repository-url>
cd etsy-mcp-server
npm install
npm run build

Configuration

Claude Desktop Configuration

Add the following to your Claude Desktop configuration file:

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

{
  "mcpServers": {
    "etsy": {
      "command": "npx",
      "args": ["-y", "etsy-mcp-server"],
      "env": {
        "ETSY_API_KEY": "your_etsy_api_key_here"
      }
    }
  }
}

Or if installed from source:

{
  "mcpServers": {
    "etsy": {
      "command": "node",
      "args": ["/path/to/etsy-mcp-server/build/index.js"],
      "env": {
        "ETSY_API_KEY": "your_etsy_api_key_here"
      }
    }
  }
}

Environment Variable

Alternatively, you can set the API key as an environment variable:

export ETSY_API_KEY=your_etsy_api_key_here

Available Tools

search_listings

Search for active listings on Etsy.

Parameters:

  • keywords (required): Search terms

  • limit (optional): Number of results (1-100, default: 25)

  • offset (optional): Pagination offset (default: 0)

  • min_price (optional): Minimum price filter

  • max_price (optional): Maximum price filter

  • sort_on (optional): Sort by created, price, updated, or score

  • sort_order (optional): asc, desc, ascending, or descending

Example:

Search Etsy for handmade leather wallets under $50

get_listing_details

Get detailed information about a specific listing.

Parameters:

  • listing_id (required): Numeric listing ID

  • includes (optional): Array of additional data (Shop, Images, User, Videos, Inventory)

Example:

Get details for Etsy listing ID 1234567890

get_shop_by_name

Retrieve information about a shop by its name.

Parameters:

  • shop_name (required): Shop name/slug

Example:

Get information about the Etsy shop "ArtisanLeatherCo"

get_shop_listings

Get all active listings from a specific shop.

Parameters:

  • shop_id (required): Numeric shop ID

  • limit (optional): Number of results (1-100, default: 25)

  • offset (optional): Pagination offset

  • sort_on (optional): Sort field

  • sort_order (optional): Sort direction

Example:

Show me all listings from Etsy shop ID 12345678

search_shops

Search for shops by name.

Parameters:

  • shop_name (required): Shop name to search

  • limit (optional): Number of results (1-100, default: 25)

  • offset (optional): Pagination offset

Example:

Search for Etsy shops with "pottery" in their name

Get currently trending listings on Etsy.

Parameters:

  • limit (optional): Number of results (1-100, default: 25)

  • offset (optional): Pagination offset

Example:

Show me trending items on Etsy

get_shop_reviews

Get reviews for a specific shop.

Parameters:

  • shop_id (required): Numeric shop ID

  • limit (optional): Number of results (1-100, default: 25)

  • offset (optional): Pagination offset

  • min_created (optional): Unix timestamp for minimum date

  • max_created (optional): Unix timestamp for maximum date

Example:

Get recent reviews for Etsy shop ID 12345678

Development

Build

npm run build

Watch Mode

npm run watch

Development Mode

npm run dev

API Rate Limits

Etsy's API has rate limits:

  • 10 requests per second per API key

  • Be mindful of pagination when retrieving large datasets

Error Handling

The server includes comprehensive error handling:

  • Invalid API keys return authentication errors

  • Missing required parameters return validation errors

  • Rate limit errors are surfaced to the user

  • Network errors are caught and reported

Limitations

  • Read-only: This server only supports read operations (searching, viewing)

  • Public data only: Can only access publicly available information

  • OAuth not implemented: Cannot perform authenticated operations like managing listings or accessing private shop data

Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

License

MIT

Resources

Troubleshooting

"ETSY_API_KEY environment variable is required"

Make sure you've set the ETSY_API_KEY in your configuration file or environment variables.

"Authentication failed"

Verify your API key is correct and active in the Etsy Developer Portal.

"Rate limit exceeded"

Wait a moment before making more requests. Consider implementing delays between requests if making many calls.

Connection Issues

Ensure you have internet connectivity and that Etsy's API is accessible from your network.

Available Tools

7 tools
get_listing_detailsC

Get detailed information about a specific Etsy listing by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
listing_idYesThe numeric ID of the listing
includesNoAdditional data to include (Shop, Images, User, Videos, Inventory)

TDQS

C2.9/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 of behavioral disclosure. It states the tool retrieves 'detailed information,' implying a read-only operation, but doesn't specify aspects like authentication requirements, rate limits, error handling, or the format of returned data. This is a significant gap for a tool with no annotation coverage.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse and understand quickly.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It doesn't address behavioral traits like authentication or rate limits, and while the input schema is well-documented, the description fails to compensate for missing context about the tool's operation and results, making it inadequate for full agent understanding.

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%, so the input schema fully documents both parameters ('listing_id' and 'includes'). The description adds no additional semantic context beyond implying the tool uses a listing ID, which is already covered in the schema. This meets the baseline score when the schema handles parameter documentation.

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 the action ('Get detailed information') and resource ('about a specific Etsy listing by its ID'), making the purpose unambiguous. However, it doesn't explicitly differentiate this tool from sibling tools like 'get_shop_listings' or 'search_listings', which might also retrieve listing information but with different scopes or filters.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing a valid listing ID, or compare it to siblings like 'get_shop_listings' (for multiple listings) or 'search_listings' (for broader searches), leaving the agent to infer usage context.

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

get_shop_by_nameC

Get information about an Etsy shop by its shop name.

ParametersJSON Schema
NameRequiredDescriptionDefault
shop_nameYesThe name/slug of the shop

TDQS

C2.9/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 states this is a read operation ('Get information'), which implies safety, but lacks details on permissions, rate limits, error handling, or what specific information is returned (e.g., shop details, status). This leaves significant gaps for an agent to understand the tool's behavior fully.

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, clear sentence with zero wasted words. It's front-loaded with the core purpose and efficiently specifies the parameter context. Every part earns its place, making it easy for an agent to parse quickly without unnecessary elaboration.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for a tool that presumably returns shop information. It doesn't explain what 'information' includes (e.g., shop stats, policies), potential errors, or usage constraints. For a read operation with no structured support, more context is needed to guide an agent effectively.

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%, with the parameter 'shop_name' documented as 'The name/slug of the shop'. The description adds minimal value by mentioning 'shop name' but doesn't clarify semantics like format, case sensitivity, or examples. This meets the baseline of 3 since the schema does the heavy lifting, but no extra insight is provided.

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 the action ('Get information') and target resource ('an Etsy shop by its shop name'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'search_shops' or 'get_shop_listings', which prevents a perfect score, but the verb+resource combination is specific and unambiguous.

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?

The description provides no guidance on when to use this tool versus alternatives like 'search_shops' or 'get_shop_listings'. It mentions the parameter ('shop name') but doesn't clarify prerequisites, such as needing an exact shop name versus partial matching, or when other tools might be more appropriate for broader queries.

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

get_shop_listingsC

Get all active listings from a specific Etsy shop.

ParametersJSON Schema
NameRequiredDescriptionDefault
shop_idYesThe numeric ID of the shop
limitNoNumber of results to return (1-100, default: 25)
offsetNoPagination offset (default: 0)
sort_onNoSort results by
sort_orderNoSort order

TDQS

C2.9/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 mentions 'active listings' and implies a read operation, but fails to address critical aspects like rate limits, authentication needs, pagination behavior (beyond parameters), or what 'active' means operationally. This leaves significant gaps for a tool with 5 parameters.

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, efficient sentence that front-loads the core purpose without unnecessary words. Every element ('Get all active listings from a specific Etsy shop') directly contributes to understanding the tool's function.

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

Completeness2/5

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

Given 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain return values, error conditions, or behavioral constraints like rate limits. For a data retrieval tool with multiple options, more context is needed to guide effective use.

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%, so the input schema fully documents all 5 parameters. The description adds no additional parameter semantics beyond implying 'active' filtering, which isn't reflected in the schema. This meets the baseline for high schema coverage but doesn't enhance understanding.

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 the action ('Get') and resource ('all active listings from a specific Etsy shop'), making the purpose evident. However, it doesn't explicitly differentiate from siblings like 'get_trending_listings' or 'search_listings' beyond the shop-specific focus, which prevents a perfect score.

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?

The description provides no guidance on when to use this tool versus alternatives like 'search_listings' or 'get_shop_by_name'. It lacks context about prerequisites (e.g., needing a shop ID) or exclusions, leaving the agent to infer usage from the tool name alone.

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

get_shop_reviewsC

Get reviews for a specific Etsy shop.

ParametersJSON Schema
NameRequiredDescriptionDefault
shop_idYesThe numeric ID of the shop
limitNoNumber of results to return (1-100, default: 25)
offsetNoPagination offset (default: 0)
min_createdNoUnix timestamp for minimum review creation date
max_createdNoUnix timestamp for maximum review creation date

TDQS

C2.9/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 implies a read-only operation ('Get reviews'), but doesn't specify aspects like rate limits, authentication requirements, pagination behavior (beyond what the schema hints at with limit/offset), or error handling. This is a significant gap for a tool with multiple parameters and no output schema.

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, efficient sentence that front-loads the core purpose without unnecessary words. It earns its place by clearly stating the tool's function, making it easy for an agent to parse quickly.

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

Completeness2/5

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

Given the tool has 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't address behavioral traits like pagination, rate limits, or return format, which are crucial for proper tool invocation. The high schema coverage helps with parameters, but overall context is lacking for a tool of this complexity.

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%, so the schema fully documents all 5 parameters (shop_id, limit, offset, min_created, max_created) with types, constraints, and descriptions. The description adds no additional parameter semantics beyond implying the tool fetches reviews, which is already clear from the tool name and schema. This meets the baseline for high 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 clearly states the verb 'Get' and the resource 'reviews for a specific Etsy shop', making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_shop_listings' or 'search_shops', which might also retrieve shop-related data, so it misses the top score for specificity against alternatives.

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?

The description provides no guidance on when to use this tool versus alternatives, such as 'search_shops' or 'get_shop_listings', nor does it mention any prerequisites or exclusions. It simply states what the tool does without contextual usage information, leaving the agent to infer based on tool names alone.

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

search_listingsC

Search for active listings on Etsy. Returns product listings matching the search criteria.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsYesSearch keywords to find listings
limitNoNumber of results to return (1-100, default: 25)
offsetNoPagination offset (default: 0)
min_priceNoMinimum price in USD
max_priceNoMaximum price in USD
sort_onNoSort results by
sort_orderNoSort order

TDQS

C2.9/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 states the tool returns product listings matching search criteria but lacks details on permissions, rate limits, pagination behavior, or error handling. For a search tool with 7 parameters, this leaves significant gaps in understanding how it behaves beyond the basic function.

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

Conciseness4/5

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

The description is concise and front-loaded in a single sentence, clearly stating the purpose without waste. However, it could be slightly more structured by explicitly mentioning key parameters or constraints, but it efficiently communicates the core function.

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

Completeness2/5

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

Given the complexity of 7 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain return values, error cases, or behavioral traits like pagination or rate limits, leaving the agent with insufficient context for effective tool use beyond basic input handling.

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 schema description coverage is 100%, so the schema fully documents all 7 parameters. The description adds no additional meaning beyond implying search criteria are used, which is already covered by the schema. This meets the baseline of 3, as the schema does the heavy lifting without extra value from the description.

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 the tool searches for active Etsy listings and returns matches, specifying the resource (Etsy listings) and action (search). However, it doesn't differentiate from sibling tools like 'search_shops' or 'get_trending_listings' beyond mentioning 'active listings,' leaving some ambiguity about scope.

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?

The description provides no guidance on when to use this tool versus alternatives like 'get_trending_listings' or 'search_shops.' It mentions 'active listings' but doesn't clarify if this excludes other types or when to prefer it over siblings, offering only basic context without exclusions or alternatives.

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

search_shopsB

Search for Etsy shops by name or keywords.

ParametersJSON Schema
NameRequiredDescriptionDefault
shop_nameYesShop name to search for
limitNoNumber of results to return (1-100, default: 25)
offsetNoPagination offset (default: 0)

TDQS

B3.1/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 mentions searching by name or keywords but doesn't describe what the search returns (e.g., partial matches, relevance ranking), error conditions, rate limits, or authentication requirements. For a search tool with zero annotation coverage, this leaves significant 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?

The description is a single, efficient sentence that directly states the tool's function without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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?

Given the tool's moderate complexity (search with 3 parameters) and lack of annotations or output schema, the description is minimally adequate. It states what the tool does but fails to provide sufficient context about behavior, results, or usage compared to siblings, leaving the agent with incomplete information for optimal tool selection.

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%, so all parameters are documented in the schema. The description adds minimal value beyond the schema by mentioning 'name or keywords', which loosely relates to the 'shop_name' parameter but doesn't provide additional syntax, format, or semantic details. This meets the baseline for high 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 clearly states the tool's purpose as searching for Etsy shops by name or keywords, which is a specific verb+resource combination. However, it doesn't explicitly distinguish this tool from sibling tools like 'get_shop_by_name' or 'search_listings', which prevents a perfect score.

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?

The description provides no guidance on when to use this tool versus alternatives like 'get_shop_by_name' or 'search_listings'. It doesn't mention any prerequisites, exclusions, or comparative contexts, leaving the agent to guess based on tool names alone.

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

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific Etsy resources: listings, shops, reviews, and trending items. The descriptions clearly differentiate between operations like getting details, searching, or retrieving all items, with no overlap that could cause misselection.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (e.g., get_listing_details, search_listings, get_shop_by_name). The naming is uniform across all 7 tools, using snake_case and clear action-object pairs, making them predictable and easy to understand.

Tool Count5/5

With 7 tools, this server is well-scoped for its Etsy domain, covering key operations like retrieving and searching listings and shops, plus reviews and trending items. Each tool earns its place without feeling thin or bloated, aligning with typical server sizes.

Completeness4/5

The toolset provides strong coverage for browsing and searching Etsy, including CRUD-like operations for listings and shops, but lacks update or delete actions (e.g., modifying listings or managing shop settings). This minor gap is workable for most agent use cases focused on data retrieval.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables seamless integration with Etsy's marketplace API v3 to search listings, manage shop inventory, create and update products, optimize SEO, and access seller resources with OAuth support for authenticated operations.
    5
  • A
    license
    B
    quality
    D
    maintenance
    Provides full access to the Etsy Open API v3 for both buyer browsing and seller shop management through 37 specialized tools. It enables users to manage listings, process orders, handle shipping, and access inventory data via secure OAuth 2.0 authentication.
    2
    41
    4
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/administrativetrick/etsy-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server