Skip to content
This repository was archived by the owner on Oct 27, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 42 additions & 42 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,22 @@
# Linkup Model Context Protocol
# 🌟 Linkup JS MCP Server

This package provides a [Model Context Protocol](https://modelcontextprotocol.com/) server for integrating Linkup's web search functionality with AI models that support function calling through MCP.
A Model Context Protocol (MCP) server that provides web search capabilities through Linkup's advanced search API. This server enables AI assistants and development tools to perform intelligent web searches with natural language queries.

You can check the NPM page [here](https://www.npmjs.com/package/linkup-mcp-server).
## ✨ Why Linkup?

- 🔍 **Advanced Web Search**: Leverage Linkup's AI-powered search engine for high-quality, relevant results
- 💬 **Natural Language Queries**: Ask questions in plain English or your preferred language - no need for keyword optimization
- 🚀 **Real-time Information**: Access up-to-date web content and current information
- 📚 **Comprehensive Results**: Get detailed search results with source citations
- 🔧 **Easy Integration**: Works with any MCP-compatible client

## 🚀 Installation

The Linkup MCP server can be used with any MCP-compatible client.

## Installation & Usage
For an integration with Claude Desktop or with Cursor, please follow instruction [here](https://docs.linkup.so/pages/integrations/mcp/mcp).

You can check the NPM page [here](https://www.npmjs.com/package/linkup-mcp-server).

You can run the Linkup MCP server directly using npx:

Expand All @@ -19,54 +31,30 @@ export LINKUP_API_KEY=YOUR_LINKUP_API_KEY
npx -y linkup-mcp-server
```

# Command Line Options
**Command Line Options**

| Option | Description |
| ------------ | ----------------------------------------------------------------- |
| `--api-key` | Your Linkup API key (required unless `LINKUP_API_KEY` env is set) |
| `--base-url` | Custom API base URL (default: `https://api.linkup.so/v1`) |
| `--help, -h` | Show help text |

# Usage with Claude
Consult your MCP client's documentation for specific configuration instructions.

Add the following to your `claude_desktop_config.json`. See the [MCP documentation](https://modelcontextprotocol.io/quickstart/user) for more details.
## 💬 Example Queries

To ensure compatibility with Claude, we recommend that `npx` command be accessible within the same environment. A common location for this is `/usr/local/bin/node` (on mac)
The Linkup MCP server excels at answering complex questions and finding specific information:

```json
{
"mcpServers": {
"linkup": {
"command": "npx",
"args": ["-y", "linkup-mcp-server"],
"env": {
"LINKUP_API_KEY": "YOUR_LINKUP_API_KEY"
}
}
}
}
```
- "What are the latest developments in quantum computing?"
- "How does the EU AI Act affect startups?"
- "Find recent research on sustainable aviation fuel"
- "What are the current best practices for MCP server development?"

or

```json
{
"mcpServers": {
"linkup": {
"command": "npx",
"args": ["-y", "linkup-mcp-server", "--api-key=YOUR_LINKUP_API_KEY"]
}
}
}
```

## Available Tools
## 🤝 Contributing

| Tool | Description |
| ------------ | --------------------------------------- |
| `search-web` | Perform a web search query using Linkup |
Pull requests are welcome! Feel free to open an issue first to discuss what you’d like to see improved.

## Development
### Development

Clone the repository and install dependencies:

Expand All @@ -76,7 +64,7 @@ cd js-mcp-server
npm install
```

# Available Scripts
### Available Scripts

| Script | Description |
| -------------------- | ---------------------------- |
Expand All @@ -86,6 +74,18 @@ npm install
| `npm run test` | Run tests |
| `npm run test:watch` | Run tests in watch mode |

# License
## 📚 Resources

- [Linkup Documentation](https://docs.linkup.so)
- [MCP Protocol Specification](https://modelcontextprotocol.io)
- [Linkup API Reference](https://docs.linkup.so/api-reference)

## 📣 Community & Support

* Email: [support@linkup.so](mailto:support@linkup.so)
* Discord: [Join our community](https://discord.com/invite/9q9mCYJa86)
* X / Twitter: [@Linkup_platform](https://x.com/Linkup_platform)

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
This project is licensed under the MIT License - Innovate freely! 🚀
6 changes: 3 additions & 3 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,13 @@ export const parseArgs = (args: OptionValues): Args => {
const bindTool = (server: McpServer, linkupClient: LinkupClient) => {
server.tool(
'search-web',
'Performs an online search using Linkup search engine and retrieves the top results as a string. This function is useful for accessing real-time information, including news, articles, and other relevant web content.',
'Search the web in real time using Linkup. Use this tool whenever the user needs trusted facts, news, or source-backed information. Returns comprehensive content from the most relevant sources.',
{
query: z.string().describe('The search query to perform.'),
query: z.string().describe("Natural language search query. Full questions work best, e.g., 'How does the new EU AI Act affect startups?'"),
depth: z
.enum(['standard', 'deep'])
.describe(
"The search depth to perform. Use 'standard' for straightforward queries with likely direct answers (e.g., facts, definitions, simple explanations). Use 'deep' for: 1) complex queries requiring comprehensive analysis or information synthesis, 2) queries containing uncommon terms, specialized jargon, or abbreviations that may need additional context, or 3) questions likely requiring up-to-date or specialized web search results to answer effectively.",
"The search depth to perform. Use 'standard' for queries with likely direct answers. Use 'deep' for complex queries requiring comprehensive analysis or multi-hop questions",
),
},
async ({ query, depth }) =>
Expand Down