MCP Server Documentation
Lots Intel MCP Server
Connect AI agents like Claude and Cursor to Lots Intel using the Model Context Protocol
Quick Information
MCP Endpoint
https://intel.lotsmcp.com/mcpAvailable Tools
19 tools
Authentication
OAuth 2.1 with PKCE
Setup Instructions
Configure your MCP client to connect to Lots Intel
Add this configuration to your Cursor settings:
{
"mcpServers": {
"lotsintel": {
"url": "https://intel.lotsmcp.com/mcp"
}
}
}Steps:
- Open Cursor Settings (Cmd/Ctrl + ,)
- Search for "MCP Servers"
- Click "Edit in settings.json"
- Add the configuration above
- Restart Cursor
- Cursor will automatically discover OAuth endpoints and handle authentication
Authentication
This server implements OAuth 2.1 with PKCE for secure authentication
OAuth 2.1 with PKCE (S256)
Most modern MCP clients will automatically discover and handle the OAuth flow. The server uses OAuth 2.1 with PKCE (S256) for secure authentication.
OAuth Discovery
https://intel.lotsmcp.com/.well-known/oauth-authorization-serverAuthorization Endpoint
https://intel.lotsmcp.com/api/oauth/authorizeToken Endpoint
https://intel.lotsmcp.com/api/oauth/tokenHow it works:
- Clients automatically discover OAuth endpoints
- Users are redirected to authenticate via browser
- Authorization code is exchanged for access token
- Bearer token is used for all MCP requests
Available Tools
19 MCP tools available for Lots Intel. Use these tool names when calling the MCP server.
competitors
lotsintel_archive_competitorArchive competitor
Take a competitor off the watch. History stays. A later import or restore_competitor puts them back.
lotsintel_get_competitorGet competitor
Get one competitor, the active pages and accounts being watched, the latest observation on each, and signals that have not been sent.
lotsintel_import_competitorsImport competitors
Add or update up to 50 competitors in one call. Match is the domain. An archived domain is brought back when it is imported again. Each row reports created, updated, or rejected. Pass surfaces on a row to set what to watch; omit surfaces to leave existing pages and accounts untouched.
lotsintel_list_competitorsList competitors
List competitors in a project. Filter with status (proposed, active, paused, archived), kind, or due=true. Archived competitors are omitted unless status=archived.
lotsintel_restore_competitorRestore competitor
Put an archived competitor back on the watch as active and due.
lotsintel_update_competitorUpdate competitor
Change kind, priority, interval, website, status, or notes. Status here is proposed, active, or paused. Removing someone from the watch is archive_competitor.
observations
lotsintel_record_observationRecord observation
Save what was seen on one surface. The first observation for that surface is a baseline and cannot by itself justify a signal. The same content is stored once and still counts as a completed check. Only active competitors can be checked.
lotsintel_refresh_social_surfaceRefresh social surface
Read one saved social account through the existing research provider, store the observation, and dedupe posts by URL. The project can spend 20 provider calls per day. The first snapshot is a baseline. A repeat of the same feed does not create another observation.
projects
lotsintel_create_projectCreate intel project
Create the product or project to watch, or return the existing project when this owner already used that name. A repeat does not overwrite the saved description or destinations.
lotsintel_get_projectGet intel project
Get one project plus counts of active competitors, competitors due for a check, and unsent signals.
lotsintel_list_projectsList intel projects
List the products this owner is watching.
lotsintel_update_projectUpdate intel project
Change the project name, website, description, or signal destinations. Destinations.emails receives signals. webhook_url, when set, must be https and is posted the same JSON.
signals
lotsintel_dismiss_signalDismiss signal
Keep a signal and do not send it. A sent signal cannot be dismissed.
lotsintel_list_signalsList signals
List signals for a project. status is unsent, sent, or dismissed. unsent means recorded and not yet delivered.
lotsintel_record_signalRecord signal
Record a competitive change. Pass observation ids from this competitor. At least one must be a later observation rather than a baseline. This does not send the signal.
lotsintel_send_signalSend signal
Deliver one signal once to the project email addresses and optional webhook. A second call returns the original delivery and does not send again. Fails with NO_DESTINATIONS when the project has nowhere to send. A partial failure stays unsent so only the failed destinations are retried.
surfaces
lotsintel_set_surfacesSet watch surfaces
Replace the pages and social accounts watched for one competitor. Social platforms are twitter (use this for X), instagram, linkedin, linkedin_page, and threads. A homepage, pricing page, changelog, or blog needs a public url.
watch
lotsintel_get_watch_queueGet watch queue
Start every check run here. Returns unsent signals first, then at most 3 due competitors. Each competitor includes its surfaces and the latest observation, or needs_surfaces when nothing is being watched yet.