基于腾讯云 SearchPro API 的搜索代理服务,前后端分离架构,可编译为单二进制文件独立运行。同时集成 MCP(Model Context Protocol)服务,支持 AI 客户端通过标准协议调用搜索功能。
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-stdio | false | 以 MCP stdio 模式启动,无需网络端口 |
-log-level | info | 日志级别:debug / info / error |
-port | 8080(或 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 服务,允许 AI 客户端(如 Qwen Code)通过标准协议调用搜索功能。
http://localhost:8080/api/mcp,远程调用,无状态模式-mcp-stdio 参数启动,本地调用,标准输入输出通信| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 是 | 搜索关键词 |
| mode | number | 否 | 结果类型:0=自然检索 / 1=多模态VR / 2=混合结果 |
| site | string | 否 | 限定搜索的站内域名 |
| fromTime | number | 否 | 时间区间起始时间戳(秒级) |
| toTime | number | 否 | 时间区间结束时间戳(秒级) |
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 |
| MCP | mark3labs/mcp-go v0.52.0 |
| 代码检查 | Oxlint + ESLint |
| 代码格式化 | Oxfmt |
| 单元测试 | Vitest |