HDW MCP Server
The HDW MCP Server (also known as AnySite MCP Server) enables AI agents to access real-time web data from multiple platforms through a unified Model Context Protocol interface.
LinkedIn Integration - Advanced user search with 10+ filters (keywords, title, company, location, industry, education, seniority, job functions, languages), detailed profile extraction (experience, skills, education, posts, reactions, comments, connections, endorsers), email lookup, Sales Navigator search with 2500+ result capacity, company intelligence (profiles, employee lists, posts), post search and analytics, conversation management, and account actions (messages, connection requests, posts, comments)
Instagram Access - User profiles with follower counts, content extraction (posts and reels), engagement analysis (comments and likes), and hashtag/keyword search
Reddit Functionality - Post search with filters (relevance, sorting, time ranges, subreddit targeting), detailed post information with scores, and nested comment thread extraction
Web Scraping & Search - Google search with structured results, general webpage parsing with CSS selectors, and LinkedIn company discovery
Key Features - Bulk operations (1000-2500 results per request), flexible timeout control (20-1500 seconds), URN-based operations for precise targeting, multi-filter support, real-time non-cached data, automatic rate limit management, proxy rotation, error recovery (self-healing APIs), and secure OAuth authentication
Utilizes .env files for configuring API credentials and environment variables required for the server to function.
Supports installation via git clone from the repository for setting up the HDW MCP Server environment.
Enables searching for LinkedIn companies via Google, where the first result is typically identified as the best match.
Offers specific setup instructions and configuration file paths for macOS users to integrate with the HDW MCP Server.
Uses npm for dependency management during the installation process of the HDW MCP Server.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@HDW MCP Server find software engineers at Google with 5+ years experience"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Anysite MCP Server
The entire web is your database. Your AI assistant is the query interface.
A Model Context Protocol server that lets Claude, Cursor, ChatGPT, and any MCP client query structured data from LinkedIn, Instagram, Twitter/X, Reddit, YouTube, SEC EDGAR, Y Combinator, Crunchbase, and any URL on the web — through five universal tools, plus CRM write-back tools.
Quick start
Connect directly to the hosted server at https://mcp.anysite.io/mcp. It speaks MCP over Streamable HTTP with OAuth 2.0, and works with Claude Desktop, Claude Code, Cursor, Cline, Windsurf, ChatGPT, and any MCP-compliant client.
If your client supports HTTP transport, you do not need this npm package. The package exists as a stdio bridge for clients that only speak stdio.
Step 1: Sign up
Create an account at anysite.io. The MCP30 promo covers your first month of MCP Unlimited ($30/month, 6 req/min fair-use, no credit counting). Credit-based plans (Starter $49 / Growth $200 / Scale $300 / Pro $549 / Enterprise from $1,199) also include MCP access; see docs.anysite.io/mcp-server/overview.
Step 2: Connect your client
Settings → Connectors → Add Custom Connector
URL:
https://mcp.anysite.io/mcpClick Connect, authorize in the browser
Required: Settings → Capabilities → Tool access → Tools already loaded
The last step is critical. Claude Desktop's "Load tools when needed" mode uses name-based matching that fails on generic names like discover and execute. If you skip it, the tools exist but the model will not reliably call them.
claude mcp add --transport http anysite "https://mcp.anysite.io/mcp?api_key=YOUR_KEY"
claude mcp list # should show: anysite connectedThe URL carries your API key — treat it as a secret.
Edit ~/.cursor/mcp.json (global) or .cursor/mcp.json in the project root:
{
"mcpServers": {
"anysite": {
"url": "https://mcp.anysite.io/mcp?api_key=YOUR_KEY",
"transport": "http"
}
}
}Point any compliant client at https://mcp.anysite.io/mcp and authenticate via OAuth or ?api_key=YOUR_KEY.
Step 3: Verify
Ask the assistant:
What MCP tools do you have from anysite?It should list: discover, execute, get_page, query_cache, export_data — plus eight crm_* tools if the CRM integration is enabled on your account.
Step 4: Run a query
Use anysite to find 20 CTOs at Series B fintech startups in New York,
then show me the ones with AI or ML in their headline.The assistant runs discover on LinkedIn, picks the right search endpoint, calls execute, then narrows server-side with query_cache.
Related MCP server: Linkd MCP Server
stdio bridge (npm package)
@anysiteio/mcp is a thin local proxy: it runs on stdio and forwards every request to https://mcp.anysite.io/mcp over Streamable HTTP with your token. No business logic lives in the package — tools, instructions, caching and exports all come from the server, so new endpoints and tools appear without a package update.
Use it when your client cannot speak HTTP transport: stdio-only IDE plugins, older Cline/Continue builds, custom stdio runners, or environments where outbound HTTP must go through a managed local process.
Install
npm install -g @anysiteio/mcpOr run on demand with npx -y @anysiteio/mcp.
Configure your client
{
"mcpServers": {
"anysite": {
"command": "npx",
"args": ["-y", "@anysiteio/mcp"],
"env": {
"ANYSITE_ACCESS_TOKEN": "your_token_here"
}
}
}
}That is the entire configuration. Only ANYSITE_ACCESS_TOKEN is required — create one at app.anysite.io. The token can also live in ~/.anysite-mcp.env.
The tools
Tool | Purpose |
| List endpoints in a category with their params and LLM hints. Always call before |
| Fetch data. Returns first 10 items + |
| Paginate cached items without re-fetching (limit ≤ 50). |
| Filter / sort / aggregate cached items server-side. |
| Dump the full dataset to |
| HubSpot-and-friends read/write: connections, schema, upsert contacts/companies, query, undo. Visible only when CRM is enabled for your account. |
Sources surfaced through discover: LinkedIn, Instagram, Twitter/X, Reddit, YouTube, SEC EDGAR, Y Combinator, Crunchbase, DuckDuckGo, the universal web parser, plus AI parsers for GitHub, Amazon, Google Maps, G2, BuiltWith, Apify, GLEIF, Newegg and more. New endpoints appear automatically as soon as they ship on the platform.
Data fetched by execute is cached server-side for 7 days: one execute() call, then unlimited get_page / query_cache / export_data calls without re-paying API credits. Export files live for 24 hours (regenerated on demand while the cache entry is alive).
Usage pattern
discover("linkedin", "search")
→ endpoints: ["users", "companies", "posts", ...] with params
execute("linkedin", "search", "users", { keywords: "CTO AI" })
→ { items: [...first 10], total: 50, cache_key: "abc..." , next_offset: 10 }
get_page("abc...", offset=10) # next page, free
query_cache("abc...", { conditions: [{ field: "location", op: "contains", value: "San Francisco" }] })
export_data("abc...", "csv") # full dataset as a CSV download URLThe agent figures out the parameter names on its own from discover.
Migrating from 2.x
v3 is a breaking change: the package no longer reimplements the server locally — it proxies the hosted MCP server. What changes for you:
export_datareturns a download URL (https://mcp.anysite.io/exports/…) instead of a local file path. Thefile_pathfield is gone; agents that read the exported file from disk must download it instead. The URL is accessible without a token (the file name is unguessable) and lives for 24 hours — do not share the link if the data is sensitive.export_dataparameter isoutput_format. The oldformatname is transparently rewritten by the bridge for backward compatibility, but new prompts should useoutput_format.get_pagecapslimitat 50 (server-side page size limit).Cache is server-side now (7-day TTL, survives restarts, shared across your sessions) instead of in-process.
CRM tools appear (8
crm_*tools) when the CRM integration is enabled on your account.Env vars
ANYSITE_API_URLandANYSITE_OPENAPI_URLare removed — the bridge talks to the MCP server, not the raw API. UseANYSITE_MCP_URLto point at a different MCP server.binaliasesanysiteandmcpare removed — the command isanysite-mcp.Two LinkedIn endpoints that were reachable in 2.x (
sn_search/users,company/employees) are excluded by server policy.Tool results no longer carry a
mimeTypeon content items — the server defines the response shape.Cancelling a long
tools/callstops the client-side wait, but the server keeps processing the request (stateless transport cannot deliver the cancellation) — the work is still billed.
Skills — ready-made workflows
The MCP server gives raw access. Anysite Skills package that access into named workflows you summon by topic, so the assistant runs a proven pattern instead of improvising. Built for Claude Code (also works in Cursor / Windsurf via the same plugin format).
Workflow | What you say | What it does |
Lead generation | "Find me 50 marketing directors at Series A SaaS in Berlin and enrich with email" | LinkedIn search → enrichment → CSV |
Competitor intelligence | "Track @competitor across LinkedIn hires, social, YC, and recent posts" | Multi-source intel + hiring velocity + sentiment |
Person analyzer | "Deep-dive on this LinkedIn profile before our partnership call" | LinkedIn + Twitter + Reddit + GitHub + web → strategic brief |
Market research | "Map the AI legal-tech landscape — startups, funding, momentum" | YC + Crunchbase + SEC + Reddit + Twitter sentiment |
Customer pain mining | "Pull verbatim complaints about Salesforce from Reddit and Twitter" | Pain clusters + exact quotes + white-space gaps |
Brand reputation | "What is the conversation around our brand this week?" | Cross-platform mention scan with sentiment scoring |
Positioning map | "Plot 3-5 competitors on a positioning map, find the empty quadrant" | Five-axis comparison + positioning statement |
Full catalog (17 skills, including VC analyst, influencer discovery, audience analysis, content analytics, trend analysis): github.com/anysiteio/agent-skills.
Install
In Claude Code:
/plugin marketplace add https://github.com/anysiteio/agent-skills
/plugin install anysite-lead-generation@anysite-skillsYou can install one skill or the whole marketplace. The MCP server connection above is the only prerequisite.
Local development
git clone https://github.com/anysiteio/anysite-mcp.git
cd anysite-mcp
npm install
npm run build:tsc
ANYSITE_ACCESS_TOKEN=... node build/server.jsInspect the tools interactively:
npm run inspectorConfiguration
Env var | Required | Default | Notes |
| yes | — | Create one at app.anysite.io |
| no |
| Override the remote MCP server URL |
Variables can also live in ./.env or ~/.anysite-mcp.env (real environment variables and ./.env take precedence over ~/.anysite-mcp.env).
If the remote server is unreachable at startup, the bridge still starts in a degraded mode (empty tool list, descriptive errors on calls), keeps reconnecting in the background, and announces the tool list via tools/list_changed once the server is reachable again.
Project layout
src/
├── server.ts stdio entry (CLI bin): env handling, connect with retries, degraded mode
├── proxy.ts the bridge: remote client, generic request forwarding, tools/list cache,
│ format→output_format shim, error mapping, background list refresh
├── index.ts Smithery TypeScript runtime adapter
└── config.ts env-derived constantsLicense
Available Tools
26 toolsget_instagram_post_commentsC
Get Instagram post comments
Inputs: count (required), post (required), timeout.
get_instagram_userC
Get Instagram user information by URL, alias or ID
Inputs: user (required), timeout.
get_instagram_user_postsC
Get Instagram user posts
Inputs: count (required), user (required), timeout.
get_linkedin_chat_messagesC
Get top chat messages from LinkedIn management API. Account ID is taken from environment.
Inputs: user (required), company, count, timeout.
get_linkedin_companyC
Get detailed information about a LinkedIn company
Inputs: company (required), timeout.
get_linkedin_company_employeesC
Get employees of a LinkedIn company
Inputs: companies (required), count (required), first_name, keywords, +2 more.
get_linkedin_conversationsC
Get list of LinkedIn conversations from the messaging interface. Account ID is taken from environment.
Inputs: connected_after, count, timeout.
get_linkedin_email_userB
Get LinkedIn user details by email
Inputs: email (required), count, timeout.
get_linkedin_google_companyC
Search for LinkedIn companies using Google search. First result is usually the best match.
Inputs: keywords (required), count_per_keyword, timeout, with_urn.
get_linkedin_post_commentsC
Get LinkedIn comments for a post by URN
Inputs: count (required), urn (required), sort, timeout.
get_linkedin_post_reactionsB
Get LinkedIn reactions for a post by URN
Inputs: count (required), urn (required), timeout.
get_linkedin_post_repostsC
Get LinkedIn reposts for a post by URN
Inputs: count (required), urn (required), timeout.
get_linkedin_profileB
Get detailed information about a LinkedIn user profile
Inputs: user (required), with_education, with_experience, with_skills.
get_linkedin_user_commentsC
Get LinkedIn comments for a user by URN (must include prefix, example: fsd_profile:ACoAA...)
Inputs: urn (required), commented_after, count, timeout.
get_linkedin_user_connectionsC
Get list of LinkedIn user connections. Account ID is taken from environment.
Inputs: connected_after, count, timeout.
get_linkedin_user_postsC
Get LinkedIn posts for a user by URN (must include prefix, example: fsd_profile:ACoAAEWn01QBWENVMWqyM3BHfa1A-xsvxjdaXsY)
Inputs: urn (required), count, timeout.
get_linkedin_user_reactionsC
Get LinkedIn reactions for a user by URN (must include prefix, example: fsd_profile:ACoAA...)
Inputs: urn (required), count, timeout.
google_searchC
Search for information using Google search API
Inputs: query (required), count, timeout.
linkedin_sn_search_usersC
Advanced search for LinkedIn users using Sales Navigator filters
Inputs: count (required), company_locations, company_sizes, company_types, +16 more.
search_linkedin_postsC
Search for LinkedIn posts with various filters like keywords, content type, authors, etc.
Inputs: count (required), author_industries, author_title, authors, +6 more.
search_linkedin_usersC
Search for LinkedIn users with various filters like keywords, name, title, company, location etc.
Inputs: count (required), company_keywords, current_company, education, +9 more.
search_reddit_postsC
Search for Reddit posts with various filters
Inputs: count (required), query (required), sort, time_filter, +1 more.
send_linkedin_chat_messageC
Send a chat message via LinkedIn management API. Account ID is taken from environment.
Inputs: text (required), user (required), company, timeout.
send_linkedin_connectionC
Send a connection invitation to LinkedIn user. Account ID is taken from environment.
Inputs: user (required), timeout.
send_linkedin_postC
Create a post on LinkedIn. Account ID is taken from environment.
Inputs: text (required), comment_scope, timeout, visibility.
send_linkedin_post_commentB
Create a comment on a LinkedIn post or on another comment. Account ID is taken from environment.
Inputs: text (required), urn (required), timeout.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 26 tools
Most tools have distinct purposes targeting specific platforms (Instagram, LinkedIn, Google, Reddit) and actions (get, search, send). However, there is some overlap between get_linkedin_profile and get_linkedin_email_user, as both retrieve LinkedIn user details, which could cause minor confusion. Overall, the tool boundaries are clear with minimal ambiguity.
Tool names follow a highly consistent verb_noun pattern throughout, such as get_instagram_user, search_linkedin_posts, and send_linkedin_chat_message. All tools use snake_case with clear action prefixes (get, search, send), making them predictable and easy to understand. There are no deviations in naming conventions.
With 26 tools, the count is borderline high for a social media data and interaction server, leaning towards heavy. While it covers multiple platforms and actions, the number may feel overwhelming for an agent to navigate efficiently. A more focused set could improve usability without sacrificing functionality.
The tool set provides comprehensive coverage for LinkedIn operations, including CRUD-like actions (get, search, send) for profiles, posts, comments, and messages, with minor gaps such as updating or deleting LinkedIn content. Instagram and Reddit tools are more limited (only get/search), but the server's primary focus on LinkedIn is well-covered for core workflows.
Maintenance
Related MCP Connectors
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
Hosted LinkedIn MCP server on your own account: 35 tools for search, profiles, inbox, posts, pages.
A hosted LinkedIn MCP server for your own account. Paste one address into Claude, ChatGPT, Cursor or n8n to read your inbox, send messages and invitations, and search people. Free to start. Not made by LinkedIn.
LinkedIn API as MCP tools to retrieve profile data and publish content. Powered by HAPI MCP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables seamless interaction with LinkedIn for job applications, profile retrieval, feed browsing, and resume analysis through natural language commands.36-
- AlicenseAqualityDmaintenanceAn unofficial Model Context Protocol server that enables programmatic access to LinkedIn data through tools like user search, company search, profile enrichment, and contact retrieval.745 npm3ISC
- FlicenseNot gradedqualityDmaintenanceA comprehensive Model Context Protocol server that enables AI assistants to interact with LinkedIn APIs for profile management, content creation, networking, messaging, and analytics.2-
- AlicenseAqualityFmaintenanceAn unofficial Model Context Protocol server that provides LinkedIn tools for searching users, enriching profiles, retrieving contact information, and conducting deep research through natural language interfaces.513 npm5MIT