Skip to main content
Glama
Partner and Member Directory Extractor MCP Server

Partner and Member Directory Extractor MCP Server

Partner and Member Directory Extractor MCP Server

Glama score MCP Registry npm version npm downloads license mcpservers.org

An MCP server for the Mamba Labs Partner and Member Directory Extractor actor on Apify. Give it a partner directory or a member list URL. Each listed company comes back as one row with its website, domain, tier, tags, and location.

What's Inside

Related MCP server: Team Page People Extractor MCP Server

What it does

The actor reads three directory families: directories built on PartnerPage (Clay's Solutions Partner Directory and the Zapier partner directory among them), read through PartnerPage's public listing API; the Shopify Partner Directory; and member lists that link to one profile page per member, such as a trade association directory. Each row carries listing_name, company_domain, website, listing_url, tier, tags, location, rating, review_count, partner_since, and the listed_email and listed_phone the directory publishes. robots.txt is checked before every request. A directory that builds its list in the browser returns one free row with row_status unsupported.

All of the work runs on Apify. This package is a thin client that starts the actor run, waits for it, and hands back the dataset rows.

Quick start

You need Node.js 18 or newer and an Apify account with an API token.

Add this to your Claude Desktop config (claude_desktop_config.json), Cursor, or any MCP client:

{
  "mcpServers": {
    "mamba-partner-member-directory-extractor": {
      "command": "npx",
      "args": [
        "-y",
        "@mambalabsdev/mcp-partner-member-directory-extractor"
      ],
      "env": {
        "APIFY_TOKEN": "your-apify-token"
      }
    }
  }
}

Restart the client. The extract_directory_companies tool appears.

Prerequisites

Example prompts

  • "List every agency in the Clay experts directory with its website and tier."

  • "Pull 100 Shopify partners that do store migrations, with their rating and location."

  • "Turn the IAB UK member directory into a list of company domains."

Tool

extract_directory_companies. One tool. Example arguments:

{
  "directory_url": "https://www.clay.com/en/experts",
  "max_listings": "200"
}

Inputs

Every buyer facing input of the actor. Omitted inputs take the actor's own defaults. Numbers and yes or no inputs are sent as text.

Input

Type

Description

directory_url

string

One directory page

directory_urls

array

Up to 20 directory pages

max_listings

string

Listings per directory, 1 to 5000. Default 100

max_pages

string

Shopify and member lists: listing pages to read. Default 10

include_details

string

PartnerPage: tags, location, and email. Default true

dedupe_domains

string

Return a repeated company once. Default true

max_charge_usd

string

Optional cost cap for the run

Pricing

Pay per event on Apify, billed to your Apify account. Prices in USD.

Event

Free plan

Bronze

Silver

Gold

company-listed, per company row

$0.004

$0.0038

$0.0036

$0.0034

apify-actor-start, per run start (one per GB of run memory)

$0.0015

$0.0015

$0.0015

$0.0015

Skipped repeats, and no listings, robots disallowed, blocked, unsupported, and error rows are free.

Your keys

The actor needs no key. Proxy traffic adds nothing to your price: Mamba Labs pays the platform costs of the run.

Full actor documentation

apify.com/mambalabs/partner-member-directory-extractor

License

MIT. See LICENSE.

Available Tools

1 tool
extract_directory_companiesExtract companies from a partner or member directoryA
Read-onlyIdempotent

Turn a vendor partner directory or a trade body member list into one company row per listing. Give directory_url or directory_urls (up to 20). Reads directories built on PartnerPage (for example https://www.clay.com/en/experts or the Zapier partner directory) through PartnerPage's public listing API, the Shopify Partner Directory (any https://www.shopify.com/partners/directory/... page), and member lists that link to one profile page per member. Each row: listing_name, company_domain, website, listing_url, tier, tags, location, rating, review_count, partner_since, and the email and phone the directory itself publishes. robots.txt is checked before every request. A directory that cannot be read (it builds its list in the browser) returns one free row with row_status unsupported. A run that does not succeed is returned as an error with its run ID. Read-only; requires an APIFY_TOKEN; Apify charges per company row.

NameRequiredDescriptionDefault
max_pagesNoShopify and member list directories: listing pages to read, 1 to 100. Default 10.
max_listingsNoListings per directory, 1 to 5000. Each company row is billed. Default 100.
directory_urlNoOne directory page URL.
dedupe_domainsNoReturn a company listed more than once only once; skipped repeats are free. Default true.
directory_urlsNoUp to 20 directory page URLs.
max_charge_usdNoOptional. The run stops before any row that would take its charges over this amount.
include_detailsNoPartnerPage directories: true adds tags, location, and the listed email with one more request per listing. Default true.

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: robots.txt is checked before every request, unreadable directories yield one free row flagged unsupported, failed runs return an error with a run ID, an APIFY_TOKEN is required, and Apify bills per company row (with dedupe skips free and max_charge_usd as a stop). This is unusually rich operational context.

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?

Front-loaded with the core transformation, then source support, then row shape, then operational constraints — a sensible priority order with little filler. It is dense and somewhat run-on in the middle, which keeps it just shy of a 5.

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

Completeness5/5

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

With no output schema and seven optional parameters, the description fills the gap by enumerating the exact row fields returned (listing_name, company_domain, tier, tags, location, rating, partner_since, published email/phone) and describing both the unsupported and error outcomes. Nothing an agent needs in order to call it correctly is missing.

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?

Schema coverage is 100%, so the baseline is 3, and the description adds real value on top: it frames directory_url vs directory_urls as alternates with a 20-URL cap, ties include_details to extra per-listing requests, and connects dedupe to billing. It doesn't restate ranges already in the schema, which keeps the additions meaningful.

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?

States a specific verb and resource — turning a partner directory or member list into one company row per listing — and enumerates the exact source families supported (PartnerPage, Shopify Partner Directory, member lists). An agent knows precisely what this does without opening the schema.

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

Usage Guidelines4/5

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

It explains which input to supply (directory_url or directory_urls, up to 20) and the eligibility conditions for each source type, including the failure mode where a JS-rendered directory returns row_status unsupported. It stops short of an explicit 'do not use this for X' exclusion, but with no siblings there is little else to route against.

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. 1 tool updatev1.0.0
    • First observedextract_directory_companies

TDQS

A4.4/5.0

Scored across 1 tool

Disambiguation5/5

There is only one tool, so there is no possibility of selecting the wrong one. Its description signals a single, well-bounded operation (directory → company rows) with no sibling tools to confuse it with.

Naming Consistency5/5

The lone name, extract_directory_companies, follows a clear verb_noun_plural pattern in snake_case. There are no competing conventions to clash with, and the name is self-describing.

Tool Count3/5

A one-tool surface is thin even for a single-purpose extractor: there is no companion for checking run status, fetching a prior run's rows, or listing supported directory types, which the description implies are real concerns (run IDs, errors, per-row billing). It is defensible but borderline.

Completeness2/5

The async lifecycle is a dead end — the description says failed runs return a run ID, yet there is no tool to poll, retry, or retrieve results for that run, and no way to discover which directories are supported. The single extraction call itself is thorough, but agents will hit a wall after submitting work.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Extracts people (names and titles) from a company's team, leadership, or about page given a domain. Uses Apify to crawl and return structured data, with optional filters for seniority and email inclusion.
    1
    65 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Classifies company sites as B2B or B2C and as SaaS, online store, agency, manufacturer, wholesaler, distributor, or marketplace, while matching your own buyer phrases and returning the quoted text and page as evidence. Runs deterministically on Apify, giving one row per domain with grace-free status rows for unreachable, blocked, or empty sites.
    1
    79 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables users to pull portfolio company lists from Y Combinator, a16z, Sequoia, Accel, and other investors or any portfolio page URL, returning one row per company with name, domain, website, description, and stage or batch. Runs on Apify and produces Clay-ready output, with YC results filterable by batch, industry, region, status, and search terms.
    1
    350 npm
    MIT