自托管 · 开源 · MCP 协议

为 AI 编程工具装上
联网搜索 + 网页获取

linkseek 是一个开源自托管的远程 MCP 服务,通过 HTTP 为 Claude Code、Cursor 等 AI 工具提供「联网搜索」和「网页正文获取」能力,配套网页端管理后台。

开始使用 自部署 查看源码

功能

4 个 MCP 工具

遵循 Model Context Protocol 标准,兼容所有支持 MCP 的 AI 编程工具。

web_search
联网搜索关键词,返回结构化结果(标题、URL、摘要)。
参数:query maxResults timeRange language
web_fetch
获取网页正文并转为 Markdown,自动去噪(去除导航/广告/页脚)。
参数:url
web_search_and_fetch
搜索 + 批量抓取正文一步到位,适合快速收集多个来源。
参数:query fetchCount searchMaxResults
web_fetch_render
无头浏览器渲染获取 JS 动态页面(SPA),再转 Markdown。
参数:url

核心特性

使用方法

接入 AI 编程工具

linkseek 遵循标准 MCP Streamable HTTP 协议,配置一次即可永久生效。

关于公开实例:本站 https://linkseek.honlnk.com 是作者的个人部署,仅供自用和演示。 如果你希望使用 linkseek,推荐 自行部署(开源免费,5 分钟搞定)。 如需申请本站的测试 Key,可在 GitHub Issues 联系作者。

1. 获取 API Key

部署后在管理后台(https://admin.你的域名/)登录,在「Key 管理」新建一个 Key。明文 Key 只显示一次,请立即保存。

2. 配置 AI 工具

在 Claude Desktop / Claude Code / Cursor / Continue 等 AI 工具的配置文件中加入:

{
  "mcpServers": {
    "linkseek": {
      "url": "https://linkseek.honlnk.com",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
同一个 URL,两种用途:AI 工具配的 URL 就是文档页地址本身。
浏览器 GET 这个地址 → 返回文档页(你正在看的这个);AI 工具 POST + Authorization 这个地址 → 走 MCP 服务。靠 HTTP 方法和鉴权头区分,零冲突。
Bearer Token:YOUR_API_KEY 换成你在后台创建的 Key(形如 wf_xxxxxxxx)。

3. 验证连通性

配置完成后,在 AI 工具里直接提问需要联网的问题,例如「搜索最新的 Node.js LTS 版本」。也可以用 curl 手动测试:

curl https://linkseek.honlnk.com \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-03-26",
      "capabilities": {},
      "clientInfo": {"name": "test", "version": "1.0"}
    },
    "id": 1
  }'

成功的话会返回包含 "result" 的 JSON-RPC 响应。

工具参数速查

工具必填可选
web_searchquerymaxResults timeRange(day/month/year) language
web_fetchurl
web_search_and_fetchqueryfetchCount searchMaxResults timeRange language
web_fetch_renderurl

自部署

5 分钟自部署 linkseek

基于 Docker Compose,一台带 Docker 的 Linux 服务器即可。完整的部署脚本和配置已在 GitHub 仓库

架构一览: 公网 :443 → Nginx (HTTPS) → linkseek-app:7300 (Node)
    ├── MySQL(Key 存储 + 用量记录)
    ├── SearXNG(元搜索后端)
    └── Browserless(无头浏览器,web_fetch_render 用)

前置要求

部署步骤

  1. 克隆仓库

    git clone https://github.com/honlnk/linkseek.git
    cd linkseek
  2. 配置 DNS

    在你的域名服务商添加两条 A 记录,指向你的服务器 IP:

    记录类型主机记录记录值
    Alinkseek你的服务器 IP
    Aadmin.linkseek你的服务器 IP

    验证:dig +short linkseek.example.com 应返回服务器 IP。

  3. 申请 SSL 证书

    使用 certbot 为两个域名申请一张证书:

    sudo certbot certonly --standalone \
      -d linkseek.example.com \
      -d admin.linkseek.example.com

    证书续期由 certbot 自带的 systemd timer 自动处理。若要无感续期,需配置 --deploy-hook 在续期后重载 Nginx。

  4. 配置环境变量

    从模板复制并填入你的密钥:

    cp .env.production.example .env.production

    编辑 .env.production,替换所有 __XXX__ 占位符:

    # 生成强随机值
    openssl rand -hex 32    # MYSQL_ROOT_PASSWORD
    openssl rand -hex 16    # MYSQL_PASSWORD(DATABASE_URL 里要一致)
    openssl rand -hex 32    # SESSION_SECRET
    
    # 自定义值
    ADMIN_PASSWORD=你的强密码
    关键:DATABASE_URL 里的密码必须与 MYSQL_PASSWORD 完全一致。
  5. 放置 Nginx 网关配置

    仓库提供了双层网关的示例配置(deploy/nginx/),按需修改域名和证书路径后部署。

    如果你已有反向代理(如 Caddy、Nginx Proxy Manager),直接把 linkseek.example.comadmin.linkseek.example.com 都反代到 linkseek-app:7300 即可——应用层会自动按 Host 分流。

  6. 启动服务

    docker compose -f docker-compose.prod.yml up -d
    
    # 查看启动状态
    docker compose -f docker-compose.prod.yml ps
    
    # 查看 app 日志(应看到迁移成功 + 管理员账号就绪)
    docker logs linkseek-app

    数据库迁移和管理员初始化在容器启动时自动执行(幂等),无需手动跑 seed。

  7. 验证

    # 文档页应返回 HTML
    curl https://linkseek.example.com/
    
    # 健康检查
    curl https://linkseek.example.com/health
    # {"status":"ok"}
    
    # MCP 握手(先在后台建 Key)
    curl https://linkseek.example.com \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -H "Accept: application/json, text/event-stream" \
      -d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}},"id":1}'

    浏览器打开 https://admin.linkseek.example.com/,用 ADMIN_PASSWORD 登录后台,新建 Key 后即可接入 AI 工具。

境外站点抓取慢?如果你的服务器在国内,建议给 SearXNG 和 Browserless 配置出站 HTTP 代理(如 mihomo/clash)。 在 docker-compose.prod.yml 的对应服务下加 HTTP_PROXY / HTTPS_PROXY 环境变量,并在 app 的 .env 里配置 NO_PROXY 把内网域名排除掉。详见仓库 docker-compose.prod.yml 注释。

日常维护

# 更新到最新版本
docker compose -f docker-compose.prod.yml pull
docker compose -f docker-compose.prod.yml up -d

# 查看日志
docker compose -f docker-compose.prod.yml logs -f app

# 数据库备份
docker exec linkseek-mysql mysqldump -u linkseek -pPASSWORD linkseek > backup.sql

# 停止(保留数据)
docker compose -f docker-compose.prod.yml down