c

curlMCP协议服务器

@janwilmake/curlmcp
0 Stars 539 次浏览 janwilmake 更新于 2026-08-23

一个多模态对话协议(MCP)服务器,它通过类似curl的接口实现与Web API的交互,提供对各种网站和API的访问,包含用户认证和响应转换功能。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "curlmcp": {
      "args": [
        "mcp-remote",
        "https://curlmcp.com/sse"
      ],
      "command": "npx"
    }
  }
}

服务介绍

curl mcp - 你所需要的最后一个 MCP

janwilmake/curlmcp context Thread Thread

[!IMPORTANT]
正在进行中的工作

需求:

  • 提供简单的 REST API(使用 OpenAPI)以及远程 MCP
  • 通过任何 MCP 客户端、API 和浏览器都易于使用。
  • X & GitHub OAuth
  • Stripe 信用存款
  • 上下文指令
  • 为流行网站(如 X 和 GitHub)提供 Markdown 转换代理
  • 有限的免费使用(每小时限流),超出限额后按需付费。
  • 可共享的指令模板

我的原则,使大语言模型能够与大量工具良好协作:

  1. 因为大语言模型了解流行的网站,所以指示它像普通人一样使用这些网站。
  2. 在幕后,确保每个输入都能被正确地路由到合适的替代网站。
  3. 确保每个响应都是 Markdown 格式,并且包含非常少的 token,理想情况下不超过 1000 个!这确保我们可以执行多个步骤。
  4. 确保死胡同能引导大语言模型回到正确的轨道上。
  5. 确保多步骤过程中的每一步都包含下一步要做什么的说明。
  6. 确保大语言模型访问的路径与用户或爬虫访问的路径相同。根据 accept 头和其他信息做出良好的响应以区分。

今天的开发者应该如何准备以支持这一点?

  1. 大多数 API 使用 POST 方法,但 GET 方法更容易通过 Markdown 进行指导。让我们推广使用 GET 方法,并推广具有最小 token 长度的简单易懂的 URL 结构。
  2. 确保使用 OpenAPI 展示可能的端点和路由。你的 API 应该是首要公民,而不是你的网站。
  3. 确保你的 OpenAPI 是可探索的,要么直接将其放在根目录下的 /openapi.json,如果不可行,则从 /.well-known/openapi 重定向到它。
  4. 确保所有作为 text/html 暴露的页面也暴露一个非 HTML 的变体(最好是 Markdown,如果是结构化数据也可以是 YAML),并且其长度不超过 1000 个 token,功能相同或相似。
  5. 在 API 中遇到错误时,应该总是将代理重新引导回正轨,就像我们对人类所做的那样。试着在 API 层级构建这些用户体验路径!

是否有可能将此作为中间件提供给 API?当然可以!统治一切的工具是 curl(或 fetch),并且可以通过以下方式使其安全:

  • 确保从以人为先的网站路由到为 AI 优化的网站。
  • 确保截断响应,使其永远不会超过某个限制。
  • 确保优先接受 Markdown 格式。

使用

MCP 使用:

通过将以下内容添加到配置中,将其安装到您的 MCP 客户端中:

{
  "mcpServers": {
    "curlmcp": {
      "command": "npx",
      "args": ["mcp-remote", "https://curlmcp.com/sse"]
    }
  }
}

浏览器使用

The curlmcp api 也非常易于从浏览器使用。认证会自动处理。

CLI 使用

你可以直接使用 curl,或者使用 curl mcp 代理:

  • 使用 curl -c cookies.txt https://curlmcp.com/login 登录并存储 cookie
  • 使用 curl -b cookies.txt https://curlmcp.com/curl/{your-request}

API 使用:/curl/{url} 端点

/curl/{url} 端点允许你向任何 URL 发送 HTTP 请求,模仿 curl 命令行工具的行为。它支持长格式查询参数来指定请求详情,如 HTTP 方法、头部和数据。

某些 URL 根据你的配置模板(默认为 default-proxy.yaml)被设置为通过代理访问。

API 规范

GET /curl/{url}?request={method}&header={header}&data={data}&...

注意:{url} 默认使用 https 协议。

支持的查询参数

参数 类型 描述 示例
request 字符串 指定 HTTP 方法。有效值:GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS request=POST
header 字符串数组 添加自定义 HTTP 头部。可重复用于多个头部。 header=Content-Type:application/json
data 字符串数组 在请求体中发送数据(POST)或查询字符串(使用 get=true)。可重复用于多个数据对。 data=key=value
data-urlencode 字符串数组 以 URL 编码形式在请求中发送数据。 data-urlencode=comment=this%20is%20awesome
get 布尔值 强制将数据作为 GET 请求的查询字符串发送。 get=true
include 布尔值 将响应头包含在输出中。 include=true
head 布尔值 发送 HEAD 请求。 head=true
user 字符串 指定认证凭据(格式:用户名:密码)。 user=user:pass
location 布尔值 跟随 HTTP 重定向。 location=true
verbose 布尔值 启用详细输出,以便调试。 verbose=true
access_token 字符串 注入 OAuth 令牌进行 X 或 GitHub 认证。 access_token=xyz
instructions 字符串 指定请求的上下文指令。 instructions=transform_response_to_markdown

链接

相关 MCP 服务