DuckDuckGo搜索服务器

一个基于Node.js的MCP服务器,提供DuckDuckGo搜索和网页内容抓取功能。

  • by yapweijun1996
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 yapweijun1996/mcp-node-duckduckgo

使用说明

MCP节点DuckDuckGo服务器

一个充当MCP服务器的Node.js应用程序,提供两个主要工具:

  • 搜索:查询DuckDuckGo并检索格式化的搜索结果。
  • 获取内容:从任何网页URL检索和解析文本内容。

目录

概述

MCP节点DuckDuckGo服务器是一个Node.js服务器,它提供了一个模块化接口(通过HTTP端点)来查询DuckDuckGo并获取网页内容。该项目展示了:

  • 用于创建服务器的Express。
  • Axios用于发出HTTP请求。
  • Cheerio用于解析HTML。

特性

  • DuckDuckGo搜索:使用POST API执行搜索查询并返回DuckDuckGo结果,该结果已格式化以供进一步处理。
  • Web内容获取:从给定的URL检索和解析文本内容。
  • 速率限制:提供基本速率限制以管理请求频率。
  • 可扩展MCP服务器:工具按模块组织,便于添加或修改功能。

需求

  • Node.js(v12或更高版本)
  • npm

安装

  1. 克隆存储库
    从GitHub克隆存储库:

    git clone <repository-url>
    
  2. 导航到项目文件夹

    cd mcp-node-duckduckgo-server
    
  3. 再进行
    使用npm安装所需的包:

    npm install express axios cheerio
    

用法

启动服务器

通过执行以下命令运行服务器:

node mcp-node-duckduckgo-server.js

您应该看到类似以下内容的日志消息:

MCP Server "ddg-search" running on port 3000

可用端点

列出工具

要列出所有可用工具,请打开一个新的终端窗口并运行:

curl http://localhost:3000/tools

这应该输出一个注册工具的JSON列表(例如,“搜索”和“fetchContent”)。

搜索工具

使用搜索工具执行搜索查询:

curl -X POST http://localhost:3000/run-tool -H "Content-Type: application/json" -d "{\"toolName\":\"search\",\"params\":{\"query\":\"test query\",\"maxResults\":5}}"

响应将包含来自DuckDuckGo的格式化搜索结果。

获取内容工具

从特定网页获取内容:

curl -X POST http://localhost:3000/run-tool -H "Content-Type: application/json" -d "{\"toolName\":\"fetchContent\",\"params\":{\"url\":\"https://www.channelnewsasia.com/singapore/ge2025-general-election-may-3-parliament-dissolved-5064316\"}}"

服务器将从获取的网页返回一个文本片段。

日志记录和调试

  • 服务器将信息和错误消息记录到终端。
  • 使用这些日志调试超时、HTTP错误或响应中的意外行为等问题。

贡献

欢迎投稿!如果你想做出贡献:

  1. 分叉存储库。
  2. 创建功能分支(git checkout -b feature/YourFeature).
  3. 提交您的更改(git commit -m 'Add some feature').
  4. 推到分支(git push origin feature/YourFeature).
  5. 打开拉取请求。

许可证

该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。