Browser Automation · MODEL CONTEXT PROTOCOL
BuiltWith MCP Server
BuiltWith MCP Server is a community-listed Model Context Protocol server. Review the source repository before installation.
WHAT IT CONNECTS
What BuiltWith MCP Server gives an AI Agent
The source catalog does not include a structured feature list. Review the repository documentation before use.
SECURITY
An MCP listing is not a security review
An MCP server may receive model context, credentials, local files, or permission to call external systems. Review its code, requested environment variables, network behavior, package provenance, and maintenance status before connecting it to an agent.
README
Repository documentation
A Model Context Protocol (MCP) server that provides tools for querying the BuiltWith API to get information about website technology stacks. This server can be used with any AI assistant that supports the Model Context Protocol.
- Domain Lookup: Get detailed information about the technologies used by a specific domain
- Technology Search: Find domains across the web that use a specific technology, via the BuiltWith Lists API
- Technology Categorization: View technologies grouped by categories (Analytics, CMS, Frameworks, etc.)
- Detailed Information: Access descriptions, detection dates, and links for each technology
- Node.js 20 or higher
- A BuiltWith API key (get one at BuiltWith API)
-
Clone this repository:
git clone https://github.com/Cyreslab-AI/builtwith-mcp-server.git cd builtwith-mcp-server -
Install dependencies:
npm install
-
Build the project:
npm run build
The server requires a BuiltWith API key to function. You can provide this through environment variables when running the server or by adding it to your MCP settings configuration.
You can run the server directly with the API key as an environment variable:
BUILTWITH_API_KEY=your-api-key-here node build/index.jsAdd the server to your MCP client's settings file. The exact location depends on which MCP-compatible AI assistant you're using.
Most MCP clients follow a similar configuration pattern:
{
"mcpServers": {
"builtwith": {
"command": "node",
"args": ["/absolute/path/to/builtwith-mcp-server/build/index.js"],
"env": {
"BUILTWITH_API_KEY": "your-api-key-here"
},
"disabled": false,
"autoApprove": []
}
}
}For Claude Desktop:
// ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
// %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
"mcpServers": {
"builtwith": {
"command": "node",
"args": ["/path/to/builtwith-mcp-server/build/index.js"],
"env": {
"BUILTWITH_API_KEY": "your-api-key-here"
},
"disabled": false,
"autoApprove": []
}
}
}For Claude Developer Tools:
// ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json (macOS)
// %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json (Windows)
{
"mcpServers": {
"builtwith": {
"command": "node",
"args": ["/path/to/builtwith-mcp-server/build/index.js"],
"env": {
"BUILTWITH_API_KEY": "your-api-key-here"
},
"disabled": false,
"autoApprove": []
}
}
}Once the server is configured and running, you can use it with any MCP-compatible AI assistant to query website technology stacks.
With your MCP-compatible AI assistant, you can ask questions like:
- "What technologies does example.com use?"
- "Show me the technology stack for github.com"
- "What analytics tools does amazon.com use?"
- "What frameworks are used by netflix.com?"
- "Is wordpress.com using any e-commerce technologies?"
- "Find sites using Shopify"
- "Which sites in Australia use Google Analytics and Optimizely?"
For developers who want to integrate directly with the server:
The server communicates using the Model Context Protocol over stdio. You can also use the API client directly in your Node.js applications:
import { BuiltWithApiClient } from "./src/api-client.js";
const client = new BuiltWithApiClient({
apiKey: "your-api-key-here",
});
const result = await client.getDomainInfo("example.com");
console.log(result);The server provides the following tools:
Get technology stack information for a specific domain. Uses the free BuiltWith lookup by default, or the paid Domain API (currently v25) when detailed is set.
Parameters:
domain(required): Domain to analyze (e.g., example.com)detailed(optional): Whether to return detailed information (boolean)noMeta(optional): Whendetailedis true, exclude metadata (company name, address, etc.) to reduce response size/cost (boolean)noPii(optional): Whendetailedis true, strip personal names/emails from the response (boolean)hideText(optional): Whendetailedis true, hide technology description, link, tag and category fields to reduce response size/cost (boolean)
Find domains using a specific technology, via the BuiltWith Lists API. This calls BuiltWith's real Lists endpoint and supports pagination for large result sets.
Note: the Lists API is billed through the same BuiltWith API key as the Domain API, but requires a plan that includes list credits (Pro tier or above). Calling it with a key that doesn't have that access returns a clear authorization/upgrade error from BuiltWith itself, surfaced as the tool's error message.
Parameters:
technology(required): Technology name to search for (e.g., "Shopify", "Google Analytics")otherTechnologies(optional): Additional technology names that matching sites must also use, max 16 (array of strings)country(optional): ISO 3166-1 alpha-2 country code(s) to filter by, comma-separated for multiple, e.g. "US" or "AU,NZ" (string)since(optional): Only include live sites detected using the technology since this date or phrase, e.g. "2016-01-20" or "30 Days Ago" (string)includeMeta(optional): Include metadata (company name, location, contacts, social, etc.) for each matching domain (boolean)offset(optional): Pagination cursor - pass thenextOffsetvalue from a previous response to fetch the next page (string)limit(optional): Maximum number of results to return from the fetched page; does not request additional pages (number)
npm run devsrc/index.ts: Main server entry pointsrc/api-client.ts: BuiltWith API clientsrc/handlers/: Request handlerssrc/types.ts: Type definitions
Contributions are welcome! Here's how you can contribute:
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin feature/your-feature-name - Submit a pull request
For major changes, please open an issue first to discuss what you would like to change.
If you encounter any issues or have questions, please:
- Open an issue on GitHub
- Contact us at contact@cyreslab.ai
MIT License
Copyright (c) 2025 Cyreslab-AI
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
COMMUNITY