搜索引擎协议服务

一个基于SearXNG的模型上下文协议(MCP)服务器,提供可配置的网页搜索功能,支持语言和时间范围过滤,以及搜索结果格式化。

  • by moonwwdz
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 moonwwdz/searxng-mcp

使用说明

SearXNG MCP服务器

一种模型上下文协议(MCP)服务器,使用 SearXNG 搜索引擎。

特性

  • 通过SearXNG进行网络搜索
  • 可配置的搜索引擎
  • 语言和时间范围过滤
  • 搜索结果格式
  • 标准golang项目结构,易于扩展

项目结构

searxng-mcp/
├── cmd/                    # Main application entry points
│   └── server/
│       └── main.go        # Server main function
├── internal/               # Internal packages (not exported)
│   ├── config/            # Configuration management
│   ├── searxng/           # SearXNG search engine client
│   ├── tools/             # MCP tool implementations
│   └── server/            # MCP server setup
├── go.mod
├── go.sum
├── .env.example
└── README.md

配置

服务器可以通过环境变量进行配置:

  • SEARXNG_BASE_URL:SearXNG实例URL(默认值: http://localhost:8080)
  • SEARXNG_TIMEOUT:请求超时(默认值: 30s)
  • SEARXNG_USER_AGENT:HTTP用户代理标头(默认值: searxng-mcp/1.0)
  • MCP_SERVER_NAME:服务器名称(默认值: SearXNG MCP Server)
  • MCP_SERVER_VERSION:服务器版本(默认值: 1.0.0)

复制 .env.example 到 .env 并根据需要进行定制。

用法

建筑

go build -o searxng-mcp ./cmd/server

跑步

./searxng-mcp

添加新工具

要添加新的MCP工具:

  1. 在中创建新文件 internal/tools/ (例如。, newtool.go)
  2. 实施 Tool 接口:
    type Tool interface {
        Name() string
        Description() string
        Schema() *mcp.Tool
        Handler() mcp.ToolHandler
    }
    
  3. 在中注册该工具 cmd/server/main.go:
    newTool := tools.NewNewTool()
    mcpServer.RegisterTools(newTool)
    

依赖项

  • github.com/mark3labs/mcp-go:Go的MCP实现

许可证