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

@texau/mcp-server

v1.1.0

Published

MCP server for TexAu Enterprise API — LinkedIn enrichment, people search, post search, email finding & verification, sync waterfall enrichment (email/phone/person/company) for AI agents, Claude, Cursor, Windsurf, VS Code Copilot, and more.

Readme

TexAu Enterprise API — MCP Server

Connect any AI assistant to TexAu's LinkedIn intelligence, waterfall enrichment, email, web scraping, and LLM tools via the Model Context Protocol (MCP). Works with Claude Desktop, Cursor, Windsurf, VS Code GitHub Copilot, Claude Code, Zed, Continue.dev, and any other MCP-compatible client.

The server auto-loads its tool catalog from the live API at startup, so any new endpoint TexAu adds becomes available in your AI assistant without a version bump.

What You Can Do

LinkedIn Intelligence

| Capability | Tool | Credits | |---|---|---| | Enrich a LinkedIn profile | enrich_profile | 1 / call | | Enrich a LinkedIn company page | enrich_company | 1 / call | | Bulk-enrich up to 50 profiles | enrich_profiles_bulk | 1 / result | | Bulk-enrich up to 50 companies | enrich_companies_bulk | 1 / result | | Search 700M+ indexed profiles | people_search | 0.1 / result | | Live LinkedIn profile search | linkedin_profile_search | 0.1 / result | | Search LinkedIn posts by keyword | post_keyword_search | 6 / call | | Recent profile activity (posts/comments/reactions) | profile_activities | 2 / call | | Engagement stream on a single post | post_activities | 3 / call | | Full post details | post_details | 1 / call |

Waterfall Enrichment (sync, single-record, multi-provider)

| Capability | Tool | Credits | |---|---|---| | Find a professional email | email_finder | 2 / success · 1 / soft fail | | Find a mobile phone | phone_finder | 3 / success · 1 / soft fail | | Verify deliverability of an email | email_verifier | 1 / success · 0.5 / soft fail | | Enrich a person from their email | person_enricher | 2 / success · 1 / soft fail | | Enrich a company from its domain | company_enricher | 2 / success · 1 / soft fail |

Waterfall endpoints try multiple internal providers in sequence and return the first success. Hard failures (all providers unreachable) are not billed — the MCP surfaces them as errors so your agent can retry safely.

Email (async, batch)

| Capability | Tool | Credits | |---|---|---| | Find emails for up to 100 people in one call | find_emails + check_email_finding | 2 / person found | | Verify up to 1000 emails in one call | verify_emails + check_email_verification | 0.5 / email |

Web Scraping & Intelligence

| Capability | Tool | Credits | |---|---|---| | OG, Twitter, SEO meta tags | web_meta_tags | 1 / call | | JSON-LD structured data | web_json_ld | 1 / call | | Tracking pixels / analytics tags | web_pixels | 1 / call | | Full-page HTML + Markdown | web_scrape | 2 / call | | Social profile links | web_social_links | 2 / call | | Technology stack detection | web_tech_stack | 2 / call | | Emails from a multi-page crawl | web_emails | 3 / call | | Sitemap URL discovery | web_sitemap | 2 / call | | Flagship all-in-one report | website_intelligence | 5 / call |

Search & Directories

| Capability | Tool | Credits | |---|---|---| | Bing web search | search_bing | 1 / call | | Google Trends time series | search_google_trends | 1 / call | | Yellow Pages directory search | directory_yellowpages | 1 / call |

YouTube

| Capability | Tool | Credits | |---|---|---| | YouTube video search | youtube_search | 1 / call | | Video metadata + optional captions | youtube_video | 1 / call | | Channel metadata | youtube_channel | 1 / call | | Channel video listing | youtube_channel_videos | 2 / call |

AI Enrichment

| Capability | Tool | Credits | |---|---|---| | LLM completion (OpenAI, Anthropic, Gemini) | ai_enrich | 2 / call | | LLM + web search (Perplexity) | ai_enrich (provider=perplexity) | 5 / call |

Custom Functions (local utilities)

| Capability | Tool | Credits | |---|---|---| | Clean and validate a domain | clean_domain | 0.5 | | Predict gender from first name | predict_gender | 1 | | URL-encode a string | encode_uri | 0.5 | | Count items in a separated list | count_occurrences | 0.5 | | Find sitemap URLs on a domain | find_sitemap_urls | 1 | | Dedupe and trim a list | normalize_list | 0.5 | | Classify an email (work/personal/role/disposable) | identify_email_type | 0.5 | | Extract URLs and emails from text | extract_urls_emails | 0.5 | | Normalize phone to E.164 | normalize_phone | 0.5 | | Normalize a company name | normalize_company | 0.5 | | Collapse whitespace | remove_whitespace | 0.5 | | Format / convert a datetime | format_datetime | 0.5 | | Follow redirects / resolve short links | find_redirect | 1 | | Round-robin lead distribution | distribute_leads | 0.5 |

Account / System

| Capability | Tool | Credits | |---|---|---| | Check your credit usage | check_usage | Free |

Prerequisites

  • A TexAu API key — grab one from your TexAu dashboard
  • An MCP client that speaks Streamable HTTP — Claude Desktop, Cursor, Windsurf, VS Code GitHub Copilot, Zed, Continue.dev, Claude Code, etc.

There is nothing to install locally. TexAu hosts the MCP server for you. You point your client at the URL, pass your API key as a header, and you're done.

Connection Details

| Field | Value | |---|---| | MCP endpoint | https://mcp.texau.com/mcp | | Transport | Streamable HTTP | | Auth header | x-api-key: <your TexAu API key> |

Every tool call is billed under your key — TexAu never proxies through a shared credit pool. Rotating or revoking the key in the dashboard immediately cuts off the MCP connection.


Setup by Platform

Claude Desktop

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

{
  "mcpServers": {
    "texau": {
      "url": "https://mcp.texau.com/mcp",
      "headers": {
        "x-api-key": "your-api-key-here"
      }
    }
  }
}

Restart Claude Desktop after saving.


Cursor

Create or edit .cursor/mcp.json in your project root (project-scoped) or ~/.cursor/mcp.json (global):

{
  "mcpServers": {
    "texau": {
      "url": "https://mcp.texau.com/mcp",
      "headers": {
        "x-api-key": "your-api-key-here"
      }
    }
  }
}

Windsurf

Edit ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "texau": {
      "serverUrl": "https://mcp.texau.com/mcp",
      "headers": {
        "x-api-key": "your-api-key-here"
      }
    }
  }
}

VS Code GitHub Copilot

Create .vscode/mcp.json in your workspace root:

{
  "servers": {
    "texau": {
      "type": "http",
      "url": "https://mcp.texau.com/mcp",
      "headers": {
        "x-api-key": "your-api-key-here"
      }
    }
  }
}

Claude Code (CLI)

claude mcp add --transport http texau https://mcp.texau.com/mcp \
  --header "x-api-key: your-api-key-here"

Verify:

claude mcp list

Zed

Add to your ~/.config/zed/settings.json:

{
  "context_servers": {
    "texau": {
      "url": "https://mcp.texau.com/mcp",
      "headers": {
        "x-api-key": "your-api-key-here"
      }
    }
  }
}

Continue.dev

Add to your ~/.continue/config.json:

{
  "mcpServers": [
    {
      "name": "texau",
      "url": "https://mcp.texau.com/mcp",
      "headers": {
        "x-api-key": "your-api-key-here"
      }
    }
  ]
}

Self-Hosting on Cloudflare Workers

The mcp-server folder doubles as a deployable Cloudflare Worker. You only need this if you want to run the MCP under your own domain instead of mcp.texau.com.

cd texau-v3-apis/mcp-server
npm install
npx wrangler login            # one-time, browser flow
npm run dev:worker            # local dev on http://localhost:8787/mcp
npm run deploy                # ship to your Cloudflare account

The Worker reads the caller's TexAu API key from the x-api-key header on every request and forwards it to https://v3-api.texau.com/api/v1. You can override the upstream URL via the TEXAU_API_URL var in wrangler.jsonc. No TexAu key is ever baked into the Worker — every customer's traffic bills against their own account.

Smoke test after deploy:

curl -s https://<your-worker>.workers.dev/health
curl -s -X POST https://<your-worker>.workers.dev/mcp \
  -H "x-api-key: your-api-key-here" \
  -H "content-type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Common Workflows

1. Research a person before outreach

"Enrich this profile https://linkedin.com/in/johndoe and find their email address"

The AI will:

  1. Call enrich_profile → get name, company, headline
  2. Call find_emails with name + company domain → get jobId
  3. Call check_email_finding polling until complete → return the email

2. Build a prospect list

"Find 20 VP of Sales at Series B SaaS companies in New York and get their LinkedIn profiles"

The AI will:

  1. Call people_search with contact.title = "VP of Sales", account.industry = "SaaS", account.location = "New York", size = 20
  2. Return a structured list of matching profiles

3. Research a company's thought leadership

"What is OpenAI's LinkedIn company data, and what posts have they published in the last month?"

The AI will:

  1. Call enrich_company with the OpenAI LinkedIn URL
  2. Call post_keyword_search with keyword "OpenAI" and datePosted = "past-month"

4. Monitor a topic/keyword

"Find the most recent LinkedIn posts about AI agents and summarize the top 5"

The AI will:

  1. Call post_keyword_search with keyword = "AI agents", sort = "date_posted"
  2. Call post_details on interesting posts for full content
  3. Summarize

5. Email list cleaning before a campaign

"Verify these 50 email addresses before I send a campaign"

The AI will:

  1. Call verify_emails with the list → get jobId
  2. Poll check_email_verification until status is "completed"
  3. Return a breakdown: valid / invalid / risky

6. Check credit balance

"How many TexAu credits have I used this month?"

The AI calls check_usage → returns total used, breakdown by tool, and remaining balance.


Async Tool Flow (Email Finding & Verification)

Email tools are asynchronous — they process jobs in the background for speed and scale.

Always follow this pattern:

1. find_emails({ data: [...] })         → returns { jobId: "abc123" }
2. check_email_finding({ jobId: "abc123" })  → status: "processing"
3. (wait 3-5 seconds)
4. check_email_finding({ jobId: "abc123" })  → status: "completed", results: [...]

The AI assistant handles this automatically — just ask for emails and it will poll for you.


Troubleshooting

| Error | Cause | Fix | |---|---|---| | 401 Missing x-api-key header | Header omitted from client config | Add "headers": { "x-api-key": "..." } to your MCP config | | API error (401) | Invalid or expired API key | Check your key in the TexAu dashboard | | API error (402) | Insufficient credits | Purchase more credits at app.texau.com | | API error (429) | Rate limit exceeded | Wait 60 seconds and retry | | API error (422) | Invalid parameters | Check the tool description for required fields | | Server not appearing in client | Client doesn't support HTTP MCP servers | Upgrade to a version that supports remote MCP, or use the self-hosted worker section above |


Authentication

Every MCP request carries your TexAu API key in the x-api-key header. The hosted Worker reads it per request and forwards it to the TexAu API under the same header name, so billing and rate limits attach to your account — not a shared pool. The key is never logged or echoed back in tool responses.

Upstream base URL: https://v3-api.texau.com/api/v1/