logo
0
0
WeChat Login
refactor: remove unused user store import and update app title to 腾讯搜索

腾讯搜索代理

基于腾讯云 SearchPro API 的搜索代理服务,前后端分离架构,可编译为单二进制文件独立运行。同时集成 MCP(Model Context Protocol)服务,支持 AI 客户端通过标准协议调用搜索功能。

功能特性

  • 🔍 智能搜索:支持自然检索、多模态 VR、混合结果三种搜索模式
  • 🎯 结果筛选:按类型、站内域名、时间区间筛选搜索结果
  • 📊 相关性评分:展示搜索结果相关性百分比
  • 🖼️ 图片展示:搜索结果支持图片预览
  • 🔌 MCP 服务:支持 Streamable HTTP 和 stdio 两种传输模式
  • 📦 单二进制部署:前端资源嵌入后端,编译后即可独立运行

快速开始

环境要求

  • Node.js ≥ 20.19.0 或 ≥ 22.12.0
  • pnpm(前端包管理)
  • Go 1.26+(后端)
  • 腾讯云 API Key(环境变量 TENCENTCLOUD_WSA_APIKEY

前端开发

# 安装依赖
pnpm install

# 启动开发服务器(默认端口 5173,自动代理 /api 到后端 8080)
pnpm dev

# 生产构建(产物输出到 backend/dist)
pnpm build

# 类型检查
pnpm type-check

# 单元测试
pnpm test:unit

# 代码检查 + 自动修复
pnpm lint

# 代码格式化
pnpm format

后端开发

cd backend

# 设置 API Key
# Windows:
set TENCENTCLOUD_WSA_APIKEY=your_api_key
# Linux/Mac:
export TENCENTCLOUD_WSA_APIKEY=your_api_key

# 启动 HTTP 服务(默认监听 8080 端口)
go run main.go

# 以 MCP stdio 模式启动(供本地 AI 客户端调用)
go run main.go -mcp-stdio

# 构建单二进制文件(需先执行前端 pnpm build)
go build -o tencent_search.exe .

命令行参数

参数默认值说明
-mcp-stdiofalse以 MCP stdio 模式启动,无需网络端口
-log-levelinfo日志级别:debug / info / error
-port8080(或 PORT 环境变量)HTTP 服务监听端口

项目架构

tencent_search/
├── src/                    # 前端源码(Vue 3 + Vite + TypeScript)
│   ├── components/         # 公共组件(SearchTool、SearchFilter、文档组件)
│   ├── views/              # 页面视图(搜索页、文档页)
│   ├── stores/             # Pinia 状态管理(search、app)
│   ├── services/           # API 服务层(search.ts)
│   ├── types/              # TypeScript 类型定义
│   └── router/             # Vue Router 配置
├── backend/                # 后端源码(Go)
│   ├── main.go             # 入口:参数解析、路由注册、优雅关闭
│   ├── handler.go          # HTTP 处理函数
│   ├── service.go          # 公共搜索逻辑
│   ├── api.go              # 腾讯云 API 调用
│   ├── mcp_tool.go         # MCP 工具注册与处理
│   ├── model.go            # 数据结构定义
│   ├── middleware.go        # CORS 中间件
│   └── util.go             # 工具函数
└── dist/                   # 前端构建产物(嵌入后端)

MCP 服务

项目后端集成了 MCP 服务,允许 AI 客户端(如 Qwen Code)通过标准协议调用搜索功能。

传输方式

  • Streamable HTTPhttp://localhost:8080/api/mcp,远程调用,无状态模式
  • stdio:通过 -mcp-stdio 参数启动,本地调用,标准输入输出通信

MCP 工具参数

参数类型必填说明
querystring搜索关键词
modenumber结果类型:0=自然检索 / 1=多模态VR / 2=混合结果
sitestring限定搜索的站内域名
fromTimenumber时间区间起始时间戳(秒级)
toTimenumber时间区间结束时间戳(秒级)

客户端配置示例

Qwen Code 配置(stdio 模式):

{
  "mcpServers": {
    "tencent-search": {
      "command": "tencent_search.exe",
      "args": ["-mcp-stdio"]
    }
  }
}

远程调用配置(Streamable HTTP 模式):

{
  "mcpServers": {
    "tencent-search": {
      "url": "http://localhost:8080/api/mcp"
    }
  }
}

详细配置步骤和常见问题请访问应用内的 文档页

技术栈

技术
前端框架Vue 3.5 + Vite 8 + TypeScript 6
UI 组件库Ant Design Vue 4(自动按需引入)
状态管理Pinia 3(持久化插件)
路由Vue Router 5(history 模式)
后端Go 1.26
MCPmark3labs/mcp-go v0.52.0
代码检查Oxlint + ESLint
代码格式化Oxfmt
单元测试Vitest