# LinkupPlatform-linkup-mcp-server [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/LinkupPlatform/linkup-mcp-server  
**GitHub Stars:** 29  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/linkupplatform-linkup-mcp-server

## Description
Search the web in real time to get trustworthy, source-backed answers. Find the latest news and co…

## Tools
Capabilities this server exposes over MCP:

- **linkup-search** — Search the web in real time using Linkup to retrieve current information, facts, and news from trusted sources.
- **linkup-research** — Submits 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. T…
- **linkup-get-research** — Retrieve the current state of a research task started with `linkup-research`.
- **linkup-fetch** — Fetch and extract content from any webpage URL.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "linkupplatform-linkup-mcp-server": {
    "command": "npx",
    "args": ["-y","linkup-mcp-server","apiKey=LINKUP_API_KEY"]
  }
}
```

## Documentation & README

# Linkup MCP Server

A Model Context Protocol (MCP) server that provides web search and page fetching capabilities through [Linkup's](https://www.linkup.so/) 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.

## Features

- 🔍 **Real-time Web Search**: Search the web for current information, news, and data
- 🧠 **Deep Research**: Start long-running, multi-source research tasks and poll for results
- 🌐 **Page Fetching**: Fetch and extract content from any webpage
- 🎯 **Natural Language Queries**: Use full questions for best results
- 📊 **Flexible Search Depth**:
  - `standard` - For queries with direct answers
  - `deep` - For complex research requiring analysis across multiple sources
- 🎯 **Result Filtering**: Restrict by domain (`includeDomains` / `excludeDomains`), date range (`fromDate` / `toDate`), and `maxResults`
- 🖼️ **Image Results**: Optional `includeImages` for search and `extractImages` for fetch
- 🖥️ **JavaScript Rendering**: Optional JS rendering for dynamic content
- 📄 **Raw HTML**: Optional `includeRawHtml` for fetch when you need the unprocessed page
- ⚡ **Fast**: Powered by Linkup's optimized infrastructure

## Installation

- Cursor, VSCode, Claude Code, Codex, or another MCP compatible client
- Linkup API key

### Getting Your API Key

1. Create a Linkup account for free at [app.linkup.so](https://app.linkup.so/)
2. Copy the API key from your dashboard

### Remote MCP Server (recommended)

The 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.

#### Cursor
[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=linkup&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmxpbmt1cC5zby9tY3A%2FYXBpS2V5PVlPVVJfQVBJX0tFWSJ9)


In your `~/.cursor/mcp.json` file, add the following:
```json
{
  "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](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more info.

```json
{
  "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:

```toml
[mcp_servers.linkup]
url = "https://mcp.linkup.so/mcp"
bearer_token_env_var = "LINKUP_API_KEY"
enabled = true
```

Or, if you prefer to keep using the query parameter:

```toml
[mcp_servers.linkup]
url = "https://mcp.linkup.so/mcp?apiKey=LINKUP_API_KEY"
enabled = true
```

### MCP Bundle (recommended for Claude Desktop)

Download 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](https://github.com/anthropics/mcpb?tab=readme-ov-file#mcp-bundles-mcpb) for more information.

**Quick Download:**
```bash
curl -L -o linkup-mcp-server.mcpb https://github.com/LinkupPlatform/linkup-mcp-server/releases/latest/download/linkup-mcp-server.mcpb
```

**Installation:**
1. Download `linkup-mcp-server.mcpb` from releases (or use the curl command above)
2. Click on the file to install
3. Configure your API key when prompted

### Local MCP Server

You can also run the MCP server locally over the `stdio` transport.

#### Cursor

[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=linkup&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImxpbmt1cC1tY3Atc2VydmVyIiwiYXBpS2V5PVlPVVJfTElOS1VQX0FQSV9LRVkiXX0%3D)

```json
{
  "mcpServers": {
    // ... other MCP servers
    "linkup": {
      "command": "npx",
      "args": [
        "-y",
        "linkup-mcp-server",
        "apiKey=LINKUP_API_KEY"
      ]
    }
  }
}
```

#### VSCode

```json
{
  "servers": {
    // ... other MCP servers
    "linkup": {
      "command": "npx",
      "type": "stdio",
      "args": [
        "-y",
        "linkup-mcp-server",
        "apiKey=LINKUP_API_KEY"
      ]
    }
  }
}
```

#### Codex

```toml
[mcp_servers.linkup]
command = "npx"
args = ["-y", "linkup-mcp-server", "apiKey=LINKUP_API_KEY"]
enabled = true
```

## Usage

Once configured, you can ask your AI agent to search the web or fetch webpage content:

**Search Examples:**
- "Search the web for the latest news about AI developments"
- "What's the current weather in Tokyo?"
- "Find information about the new EU AI Act and how it affects startups"
- "Search for the latest stock price of NVIDIA"

**Research Examples:**
- "Compare the 2024 cloud revenue growth of Microsoft, Amazon, and Google."

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:**
- "Fetch the content from https://example.com/article"
- "Get the content of this blog post: https://blog.example.com/post and make a summary of it"
- "Fetch https://example.com with JavaScript rendering enabled"

### Search Depths

- **Standard Search**: Best for queries with direct answers (weather, stock prices, simple facts)
- **Deep Search**: Best for complex research requiring analysis across multiple sources (comprehensive guides, comparative analysis, in-depth research)

## Tools Available

### `linkup-search`

Search 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:**
- Real-time data (weather, stocks, sports scores, events)
- Breaking news and current events
- Recent research and publications
- Product information and up-to-date prices
- Schedules and availability
- Any information not available in the AI's knowledge base

### `linkup-research`

Submits 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:**
- Comprehensive research reports and comparative analysis
- Investigations that require synthesizing many sources
- Complex questions where a quick search is insufficient

### `linkup-get-research`

Retrieve the current state of a research task started with `linkup-research`.

**Parameters:**
- `id` (required): The research task id returned by `linkup-research`.

**Behavior:**
- Returns the task object with its `status` (`pending`, `processing`, `completed`, `failed`).
- While `pending`/`processing`, keep polling every few seconds until a terminal state; faster than once per second is rate-limited.
- When `completed`, the result is in the `output` field; when `failed`, the reason is in the `error` field.

### `linkup-fetch`

Fetch 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:**
- Retrieve page content for analysis or summarization
- Extract article content from news sites
- Get documentation from technical websites
- Fetch blog posts and written content

## Development

### Prerequisites

- Node.js >= 24.0.0
- npm

### Setup

```bash
# Install dependencies
npm install
```

### Running the HTTP Server

```bash
npm run dev
```

This starts the local Streamable HTTP server at `http://localhost:2121/mcp`.

### Running with the stdio Transport
```bash
npm run build:stdio
npm run start:stdio -- apiKey=YOUR_API_KEY
```

For local development, you can also pass the key via environment variable:

```bash
LINKUP_API_KEY=YOUR_API_KEY npm run start:stdio
```

### Testing with MCP Inspector

```bash
npm run build:stdio
npm run inspector -- apiKey=YOUR_API_KEY
```

This will open the MCP Inspector in your browser where you can test the search tool interactively.

## License

MIT

## Links

- [Linkup Website](https://www.linkup.so/)
- [Linkup Documentation](https://docs.linkup.so/)
- [Model Context Protocol](https://modelcontextprotocol.io/)

## Support

If you have issues, contact us via email at [support@linkup.so](mailto:support@linkup.so) or join our [Discord server](https://discord.com/invite/9q9mCYJa86).

