.cursor — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited .cursor (MCP Server) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol (MCP) server that provides web search and page fetching capabilities through Linkup's advanced API. This server enables AI assistants like Claude to perform intelligent web searches with natural language queries and fetch content from any webpage, accessing real-time information from trusted sources across the web.
standard - For queries with direct answersdeep - For complex research requiring analysis across multiple sourcesincludeDomains / excludeDomains), date range (fromDate / toDate), and maxResultsincludeImages for search and extractImages for fetchincludeRawHtml for fetch when you need the unprocessed pageThe hosted Linkup MCP server uses the Streamable HTTP transport. If your client supports remote HTTP MCP servers, you can reference the hosted endpoint directly.
If your client supports custom HTTP headers, prefer sending your API key in Authorization: Bearer LINKUP_API_KEY instead of putting it in the URL. The ?apiKey=... query parameter remains supported for clients that cannot send custom headers.
In your ~/.cursor/mcp.json file, add the following:
{
"mcpServers": {
// ... other MCP servers
"linkup": {
"type": "http",
"url": "https://mcp.linkup.so/mcp?apiKey=LINKUP_API_KEY"
}
}
}#### VSCode Add this to your VS Code MCP config file. See VS Code MCP docs for more info.
{
"servers": {
// ... other MCP servers
"linkup": {
"url": "https://mcp.linkup.so/mcp?apiKey=LINKUP_API_KEY",
"type": "http"
}
}
}#### Codex
Codex supports both remote HTTP MCP servers and custom HTTP headers via config.toml.
Using a bearer token from the environment:
[mcp_servers.linkup]
url = "https://mcp.linkup.so/mcp"
bearer_token_env_var = "LINKUP_API_KEY"
enabled = trueOr, if you prefer to keep using the query parameter:
[mcp_servers.linkup]
url = "https://mcp.linkup.so/mcp?apiKey=LINKUP_API_KEY"
enabled = trueDownload the pre-built MCP bundle, a self-contained package that works across compatible MCP clients such as Claude Desktop. MCP Bundles are developed by Anthropic. See the MCP Bundles repository for more information.
Quick Download:
curl -L -o linkup-mcp-server.mcpb https://github.com/LinkupPlatform/linkup-mcp-server/releases/latest/download/linkup-mcp-server.mcpbInstallation:
linkup-mcp-server.mcpb from releases (or use the curl command above)You can also run the MCP server locally over the stdio transport.
#### Cursor
{
"mcpServers": {
// ... other MCP servers
"linkup": {
"command": "npx",
"args": [
"-y",
"linkup-mcp-server",
"apiKey=LINKUP_API_KEY"
]
}
}
}#### VSCode
{
"servers": {
// ... other MCP servers
"linkup": {
"command": "npx",
"type": "stdio",
"args": [
"-y",
"linkup-mcp-server",
"apiKey=LINKUP_API_KEY"
]
}
}
}#### Codex
[mcp_servers.linkup]
command = "npx"
args = ["-y", "linkup-mcp-server", "apiKey=LINKUP_API_KEY"]
enabled = trueOnce configured, you can ask your AI agent to search the web or fetch webpage content:
Search Examples:
Research Examples:
Research is a long-running operation (typically several minutes). The agent starts a task with linkup-research, then polls linkup-get-research with the returned task id until the status is completed or failed.
Fetch Examples:
linkup-searchSearch the web in real time using Linkup to retrieve current information, facts, and news from trusted sources.
Parameters:
query (required): Natural language search query. Full questions work best.depth (optional): Search depth - "standard" (default) or "deep".includeImages (optional, default false): Return relevant images alongside text results, each with a URL and metadata.includeDomains (optional): Array of domains to restrict results to, e.g. ["bbc.com", "reuters.com"]. Max 100 domains.excludeDomains (optional): Array of domains to exclude from results, e.g. ["reddit.com", "quora.com"].fromDate (optional): Only include content published on or after this date. Format YYYY-MM-DD.toDate (optional): Only include content published on or before this date. Format YYYY-MM-DD.maxResults (optional): Maximum number of results to return (positive integer).Use cases:
linkup-researchSubmits an autonomous Linkup research task: an agent that investigates the web to answer questions a single search query cannot resolve, returning a synthesized, cited answer. Use for verified answers to precise questions, focused investigations of a defined subject, or broad multi-angle reports. This is async and long-running (can take several minutes): it returns immediately with a task id and status rather than the final result. Use linkup-get-research to poll for completion.
Parameters:
query (required): Natural language research question. Detailed, full questions work best.mode (optional): Controls the type of investigation. Use "answer" for a precise, evidence-backed answer, "investigate" for a focused report on one subject, or "research" for a structured report across many topics. Omit to let Linkup classify the question.reasoningDepth (optional): How much reasoning effort the task spends, trading latency for coverage. Use "S" for light coverage, "M" for balanced, "L" (default) for thorough, or "XL" for exhaustive.includeDomains (optional): Array of domains to restrict results to, e.g. ["bbc.com", "reuters.com"]. Recommended; max 100 domains.excludeDomains (optional): Array of domains to exclude from results, e.g. ["reddit.com", "quora.com"].fromDate (optional): Only include content published on or after this date. Format YYYY-MM-DD.toDate (optional): Only include content published on or before this date. Format YYYY-MM-DD.Use cases:
linkup-get-researchRetrieve the current state of a research task started with linkup-research.
Parameters:
id (required): The research task id returned by linkup-research.Behavior:
status (pending, processing, completed, failed).pending/processing, keep polling every few seconds until a terminal state; faster than once per second is rate-limited.completed, the result is in the output field; when failed, the reason is in the error field.linkup-fetchFetch and extract content from any webpage URL.
Parameters:
url (required): The URL to fetch content from.renderJs (optional, default false): Whether to render JavaScript content. Enable for dynamic pages that load content via JavaScript. Note: makes the request slower.extractImages (optional, default false): Extract images found on the page and return them in a dedicated images field. Useful when you need a list of all images for further processing or analysis.includeRawHtml (optional, default false): Include the page's raw HTML in a dedicated rawHtml field. Useful for custom HTML parsing, preserving specific formatting, or accessing elements that might be filtered out during standard content extraction.Use cases:
# Install dependencies
npm installnpm run devThis starts the local Streamable HTTP server at http://localhost:2121/mcp.
npm run build:stdio
npm run start:stdio -- apiKey=YOUR_API_KEYFor local development, you can also pass the key via environment variable:
LINKUP_API_KEY=YOUR_API_KEY npm run start:stdionpm run build:stdio
npm run inspector -- apiKey=YOUR_API_KEYThis will open the MCP Inspector in your browser where you can test the search tool interactively.
MIT
If you have issues, contact us via email at [email protected] or join our Discord server.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.