@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 listZed
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- Entrypoint: src/worker.ts
- Config: wrangler.jsonc
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:
- Call
enrich_profile→ get name, company, headline - Call
find_emailswith name + company domain → get jobId - Call
check_email_findingpolling 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:
- Call
people_searchwithcontact.title = "VP of Sales",account.industry = "SaaS",account.location = "New York",size = 20 - 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:
- Call
enrich_companywith the OpenAI LinkedIn URL - Call
post_keyword_searchwith keyword "OpenAI" anddatePosted = "past-month"
4. Monitor a topic/keyword
"Find the most recent LinkedIn posts about AI agents and summarize the top 5"
The AI will:
- Call
post_keyword_searchwithkeyword = "AI agents",sort = "date_posted" - Call
post_detailson interesting posts for full content - Summarize
5. Email list cleaning before a campaign
"Verify these 50 email addresses before I send a campaign"
The AI will:
- Call
verify_emailswith the list → get jobId - Poll
check_email_verificationuntil status is "completed" - 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/
