npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@mambalabsdev/mcp-contact-classifier

v1.0.0

Published

MCP server for the Mamba Labs Contact Classifier actor on Apify. Contact title in, department and seniority out, with an optional check on whether the person still holds the role.

Readme

Contact Classifier MCP Server

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

MCP server for the Mamba Labs Contact Classifier actor on Apify.

Give it a job title and it returns the department and the seniority level. Give it a name and a company domain too, and it also checks whether that person is still listed on their employer's own website. The classification is a deterministic rule table, so it needs no API key and returns the same answer for the same title every time.

Install

npx -y @mambalabsdev/mcp-contact-classifier

Claude Desktop

{
  "mcpServers": {
    "mamba-contact-classifier": {
      "command": "npx",
      "args": ["-y", "@mambalabsdev/mcp-contact-classifier"],
      "env": { "APIFY_TOKEN": "your-apify-token" }
    }
  }
}

Get an Apify token at console.apify.com/account/integrations.

Tool

classify_contact

One contact in, one classified row out. Only the job title is required.

| Input | Type | Required | Notes | | --- | --- | --- | --- | | job_title | string | yes | The contact's job title, exactly as you hold it. Classified by deterministic rules with no API key needed. | | full_name | string | no | Only needed for position verification. Classification works without it. This name is never sent to any language model. | | company_domain | string | no | Only needed for position verification. The company's website domain, with or without https. | | verify_position | boolean | no | Check whether the person is still listed on their employer's own website. Adds roughly 3 seconds and 9 requests per contact, and needs both the name and the domain. Default false. | | use_llm_fallback | boolean | no | Sends titles the rules cannot place to your own model, using the LLM_API_KEY secret environment variable on your own copy of the actor. Only the title is sent, never the person's name. Default false. | | llm_provider | enum | no | openai, anthropic or google. Which provider your LLM_API_KEY belongs to. Only read when the LLM fallback is on. Default openai. | | llm_model | string | no | Model id passed straight through to the provider. Only read when the LLM fallback is on. Default gpt-4o-mini. | | skipCache | enum | no | Set to true to ignore cached results and classify from scratch. Default false. |

Reading the output

21 flat snake_case fields, one row per contact. department is one of 12, seniority one of 12, and seniority_rank is 1 to 12 so a decision maker filter is a comparison rather than a list of strings. classification_rule names the rule that fired, which is what makes the decision auditable.

With no LLM_API_KEY set, titles the rules cannot place come back null. The row is still returned.

Billing

You are charged per contact classified, plus a small actor start fee. The deterministic classification calls no model and no third party API.

Pricing is on the actor's Apify page. Running this server consumes Apify credits.

What this server does and does not do

It is a thin client for the Apify actor. It passes your input through and returns the actor's output unchanged. Every behavior described above lives in the actor, not here.

This actor does not discover people. The name and title come from you. It classifies a title and, optionally, checks a name against a page the employer published. To find people in the first place, use People Finder.

Errors are surfaced, never swallowed. An invalid input, an invalid token, an exhausted balance, a timeout, or a run that returns anything other than a dataset all come back as an explicit tool error rather than as an empty result.

Source

The actor is on the Apify Store. This wrapper is MIT licensed.

Built by Mamba Labs