Skip to main content
New Monthly plans from $39/mo. No contracts, cancel anytime. See pricing →

MCP Server

Just ask your assistant

Connect StackScan to Claude, Cursor, or any MCP client and put technographic data where you are already working. No SDK and no glue code. Paste a config block and ask a question.

What is MCP, in one minute

The Model Context Protocol is an open standard that lets AI assistants use outside tools. Clients that speak it, including Claude Desktop, Claude Code, Cursor and Windsurf, can call StackScan the way you would, without you ever leaving the conversation.

One connector, many clients

The same small server works in every MCP client. Configure it once per app; there is nothing StackScan-specific to learn beyond your two credentials.

The assistant does the driving

You ask in plain English. The assistant decides which lookup fits, calls it, and reads the answer back, including follow-ups like "now check the other five domains".

Local by design

The server is a tiny Node process started by your own client with npx. Your token lives in your config file, on your machine, and is sent only to api.stackscan.com.

Things you can just say

Your assistant picks the right lookup and reads the answer back. You never touch an endpoint.

"What is example.com built on?"

"Who's behind vercel.com? What industry, where are they, what's their LinkedIn?"

"How many sites run Klaviyo, and in which countries?"

"Here are 15 domains from my CRM. Which ones are on Shopify, and who are they?"

"How many StackScan credits do I have left?"

And because the answers land inside the conversation, you can keep going: "drop the agencies and give me the rest as a CSV", "draft an outreach line for each based on their stack". That part is your assistant's job, and it is where this beats copy-pasting from a dashboard.

Five tools

check_creditsfree Balance, monthly allocation, and how much of this session's spend cap is used. Never charged, and the recommended first call to confirm the connection works.
lookup_company1 credit The company behind a domain: name, industry, city, country, address, LinkedIn profile. No match, no charge.
lookup_domain_technologies1 credit Technologies detected on a domain, grouped by category: CMS, analytics, payments, hosting, and so on.
lookup_technology1 credit How many sites run a technology, and the countries where it is most used.
lookup_companies1 credit / match Up to 20 domains in one call, returned as a compact table. Charged only for domains that resolve. Misses in the batch cost nothing.

All five are read-only lookups against StackScan's index. None of them can modify your CRM, your account, or anything else.

Set it up

Four steps, about five minutes. You need Node.js 18 or newer installed. Check with node --version. There is nothing else to install: your client downloads the server automatically the first time it starts.

1 Get your two values Sign in and open My Account → API Tokens. Create a token and copy it. It is shown once. Your workspace UUID is on the same page.

What you are copying

Token           1|AbCdEf...   (starts with a number and a pipe)
Workspace UUID  dbc9437e-0dcb-4e1b-af70-f12ec4c23304
2 Add it to your client Pick whichever you use. The JSON block is identical everywhere. Only the file it goes in differs. Paste your two values where the placeholders are and keep the quotes.

Claude Desktop

Open Settings → Developer → Edit Config. That opens claude_desktop_config.json. If the file is empty, paste the whole block. If it already has mcpServers, add just the "stackscan" entry inside it.

Cursor

Same block in ~/.cursor/mcp.json to enable it everywhere, or in .cursor/mcp.json inside one project. Cursor also lists it under Settings → MCP once the file is saved.

Windsurf

Same block in ~/.codeium/windsurf/mcp_config.json.

Anything else that speaks MCP

The server is a standard stdio MCP server. Point your client at the command npx -y @stackscan/mcp-server with the two environment variables, in whatever file it uses. Its documentation will name the location.

The config block (identical in every client)

{
  "mcpServers": {
    "stackscan": {
      "command": "npx",
      "args": ["-y", "@stackscan/mcp-server"],
      "env": {
        "STACKSCAN_API_TOKEN": "paste-your-token",
        "STACKSCAN_TENANT_ID": "paste-your-workspace-uuid"
      }
    }
  }
}

Claude Code: one command instead

claude mcp add stackscan \
  --env STACKSCAN_API_TOKEN=paste-your-token \
  --env STACKSCAN_TENANT_ID=paste-your-workspace-uuid \
  -- npx -y @stackscan/mcp-server
3 Restart the app Quit it completely and reopen. Closing the window is not enough. StackScan then appears in the connectors list.
4 Check it works Ask "how many StackScan credits do I have?". That call is free, so it confirms the connection without spending anything.

If something is wrong

StackScan is not in the list The config file almost certainly has a JSON error, usually a trailing comma or a missing brace. Paste it into a JSON validator. If the JSON is clean, check node --version: the server needs 18 or newer.
"Rejected the API token" The token was mistyped or has been revoked. Create a fresh one; they are shown only once.
"Denied access" The workspace UUID does not match a workspace that token can use. Both values come from the same page. Copy them together.
"Session lookup cap reached" That is the built-in spend cap stopping a long run, as designed. Raise STACKSCAN_SESSION_LOOKUP_CAP if you meant it (see below), or restart the client for a fresh session.

All the settings

Everything is configured through environment variables in that same env block. Only the first two are required.

VariableRequiredWhat it does
STACKSCAN_API_TOKENYesYour API token from My Account → API Tokens. Treat it like a password.
STACKSCAN_TENANT_IDYesYour workspace UUID, from the same page. Lookups are billed to this workspace's credits.
STACKSCAN_SESSION_LOOKUP_CAPNoThe spend cap: how many charged lookups one session may make before the server refuses further ones. Default 25. Free calls never count.
STACKSCAN_API_BASENoWhere the server sends requests. Defaults to https://api.stackscan.com; you will not normally change it.

Credits, and a cap that protects them

Lookups draw on the same Bulk Lookup Credits as the dashboard and the API. There is nothing extra to buy, and the server tells the assistant its running total after every charged call, so you always know where you stand.

One credit per answer

A lookup that finds nothing is not charged, batches are charged per match rather than per request, and checking your balance is always free.

A spend cap, not just a rate limit

An assistant can loop far faster than a person clicks. The server stops after 25 charged lookups per session and says so, rather than quietly working through your balance. Raise it when you mean to.

It runs on your machine

There is no StackScan gateway in the middle. The server runs locally and calls api.stackscan.com directly, so your token goes from your machine to us and nowhere else. We never see your conversation, only the domains you looked up. It is read-only: it cannot change anything, here or in your tools.

Common questions

Can StackScan read my conversations?

No. The only thing that ever reaches StackScan is the tool call itself: the domain or technology being looked up. The conversation stays between you and your assistant.

How do updates work?

npx -y fetches the latest published version each time the client starts, so you are always current without doing anything. To pin a version instead, use @stackscan/mcp-server@0.1.0 in the args.

Does it cost anything on top of my plan?

No. The server is free and open source; lookups spend the same Bulk Lookup Credits as the dashboard, at the same rates. Any paid plan's token works.

Can my whole team use it?

Yes. Each person creates their own token in the shared workspace, and everyone's lookups draw on the workspace's credit balance. Revoke any token from the same page at any time.

Does it work with ChatGPT?

Not yet. ChatGPT's connectors point at remote, hosted MCP servers rather than launching a local one like this. Any client that runs local MCP servers works today. From anywhere else, the REST API is the same data.

I'd rather call the API directly

Everything the MCP server does is a thin wrapper over the REST API, with the same endpoints and the same credits. Start at the API reference.