HTTP请求工具

通过模型上下文协议(MCP)远程进行HTTP请求的工具,适用于需要安全访问外部API或获取网络内容的AI代理和应用。

  • by SylphxAI
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 sylphxltd/tools

使用说明

@sylphlab/tools获取mcp

通过模型上下文协议(MCP)远程发出HTTP请求。

此包提供了一个即用型MCP服务器,该服务器公开了网络获取功能,可能基于中定义的工具 @sylphlab/tools-net.

目的

此服务器允许MCP客户端(如AI代理或其他应用程序)通过HTTP/HTTPS请求web资源。它充当一个安全网关,从中获取核心获取逻辑 @sylphlab/tools-net,使用 @sylphlab/tools-adaptor-mcp,并通过MCP标准(stdio)提供服务。这对于需要与外部API交互或检索web内容但本身可能无法直接访问网络的代理至关重要。

特性

  • MCP服务器: 实现工具执行的模型上下文协议。
  • 显示提取工具: 提供一个工具(可能命名为 fetch 以执行HTTP/HTTPS请求(GET、POST等)。
    • 支持各种方法、标头和正文有效载荷。
    • 返回响应状态、标头和正文内容。
  • 可执行文件: 提供二进制文件(mcp-fetch)为了便于执行。
  • 安全: 充当MCP客户端发起的网络请求的受控接口。

安装

此软件包旨在用作独立服务器。

使用npm/pnpm/yarn(推荐)

作为依赖项或全局安装:

# Globally
npm install -g @sylphlab/tools-fetch-mcp
# Or in a project
pnpm add @sylphlab/tools-fetch-mcp

配置您的MCP主机(例如。, mcp_settings.json)使用 npx 或已安装的二进制路径:

// Using npx
{
  "mcpServers": {
    "fetch-mcp": {
      "command": "npx",
      "args": ["@sylphlab/tools-fetch-mcp"],
      "name": "Fetch Tool (npx)"
    }
  }
}

// Or using global install path (example)
{
  "mcpServers": {
    "fetch-mcp": {
      "command": "mcp-fetch", // Assumes it's in PATH
      "name": "Fetch Tool (Global)"
    }
  }
}

使用Docker(如果可用)

(假设是Docker镜像 sylphlab/tools-fetch-mcp:latest 存在)

docker pull sylphlab/tools-fetch-mcp:latest

配置您的MCP主机:

{
  "mcpServers": {
    "fetch-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i", // Essential for stdio communication
        "--rm",
        "sylphlab/tools-fetch-mcp:latest"
      ],
      "name": "Fetch Tool (Docker)"
    }
  }
}

本地建设(用于发展)

  1. 构建: 从monorepo根: pnpm build --filter @sylphlab/tools-fetch-mcp
  2. 配置MCP主机:
    {
      "mcpServers": {
        "fetch-mcp": {
          "command": "node",
          // Adjust path as needed
          "args": ["./packages/tools-fetch-mcp/dist/index.js"],
          "name": "Fetch Tool (Local Build)"
        }
      }
    }
    

用法

一旦服务器在MCP主机中运行并配置,客户端就可以发送请求。

MCP请求示例(概念GET):

{
  "tool_name": "fetch", // Assuming tool name is 'fetch'
  "arguments": {
    "url": "https://api.example.com/data",
    "method": "GET",
    "headers": {
      "Accept": "application/json"
    }
  }
}

预期响应片段(概念性):

{
  "result": {
    "status": 200,
    "statusText": "OK",
    "headers": {
      "content-type": "application/json",
      // ... other headers
    },
    "body": "{\"key\":\"value\"}" // Body as string
  }
}

依赖项

  • @modelcontextprotocol/sdk:用于创建MCP服务器实例。
  • @sylphlab/tools-adaptor-mcp:使核心工具定义适应MCP格式。
  • @sylphlab/tools-net:包含发出HTTP请求的底层逻辑。
  • @sylphlab/tools-core:提供基础工具定义结构。

由Sylph Lab开发。