String Web Access

ai.usestring由 usestring.ai 发布官方发布者v1.3.8更新于 Nov 3, 2026

搜索网络、抓取任意URL,并将网站映射为干净、适合LLM使用的Markdown。

AI 翻译由 AI 模型根据下方的原文描述翻译,可能有误。

原文描述

Search the web, fetch any URL and map a site as clean, LLM-ready Markdown.

已验证Streamable HTTP可网页运行网页搜索与抓取浏览器自动化

概览

String Web Access 的托管 MCP 服务(mcp.usestring.ai),由 usestring.ai 发布;需要 API 密钥;Streamable HTTP;4 个工具。

暂无 AI 概览:以下信息来自注册中心条目和服务本身。

发布者
usestring.ai
端点
mcp.usestring.ai
最近检查

安装

在 SourceWeft 中

  1. 打开 控制台中的 String Web Access,将其添加到工作区。
  2. 连接 Authorization token 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/ai.usestring%2Fweb-access/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "string-web-access": {
      "type": "http",
      "url": "https://mcp.usestring.ai/v1/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

String AI Web Access MCP Server

The official Model Context Protocol (MCP) server for String AI's Web Access API. Search the web, fetch any URL or send it a request, and map a site's URLs — all returned as clean, LLM-ready Markdown. Connect any MCP-compatible client — VS Code, Cursor, Windsurf, Claude Desktop, and more.

Tools

ToolDescription
web_access_fetchFetch one URL and get clean, LLM-ready Markdown back
web_access_product_helpAsk about String products or services; get one source (two for comparisons), with a shared 4 KiB excerpt budget and source links
web_access_requestSend a POST, PUT or PATCH with a body to a URL
web_access_searchSearch the web: ranked results plus the knowledge panel, AI overview, local pack and other surfaces Google rendered; optional searchCount (1–300) pages Google; searchType searches Google's images, videos, shopping, books, places or forums tab; safeSearch, includeOmittedResults, autocorrect, restrictCountry and verbatim filter it; page, dateRange and sortBy refine a Google search; format is "structured" (JSON, the default and recommended) or "raw" (the Google results page as HTML, one page per call; page only, searchCount is rejected with raw)
web_access_sitemapCrawl a site and map its URLs as an asynchronous job, driven by action
web_access_reportSend one redacted, credit-free failure diagnostic to String support

web_access_fetch, web_access_search, and web_access_product_help are read-only. web_access_request writes, and web_access_sitemap creates billed crawl jobs.

The six-tool shape above is what the hosted server at https://mcp.usestring.ai/v1/mcp serves. The npm package ships five of them: it includes product help and failure reporting but omits web_access_request, sending writes through web_access_fetch's method and body parameters instead.

web_access_sitemap — sitemap crawl jobs

A crawl is a two-phase, asynchronous quote → approve → poll → read job: nothing is crawled or billed until the quote is explicitly approved.

actionWhat it does
submitQuote a crawl (url required; maxPages ≤ 10000 default 10, maxDepth ≤ 100 default 2, pathPrefix, budgetUsd, useSitemap optional). Returns jobId + estimatedCostUsd + estimatedPages, status awaiting_approval.
approveBilling consent — starts the crawl. 402 = insufficient funds; 409 partial_state = retry approve.
statusPoll progress: awaiting_approval → running (pending/processed) → completed | failed | canceled | token_cap_exceeded; partial_state = retry approve. Returns counts only — URLs come from results.
resultsPaginated discovered URLs (limit ≤ 5000 default 1000, offset). Durable after completion; per-URL discoveredUrls is only present for ~1h.
cancelStop a non-terminal job; already-fetched pages stay billed and readable.
listThe account's recent crawl jobs (limit ≤ 100 default 20, offset).

web_access_report — failure diagnostics

Reporting is optional and best-effort. Continue useful recovery first. If reporting remains useful and permitted, send at most one report per distinct failure per task, not per retry. Report exceptions, timeouts, tool errors, or unusable output; exclude usable origin statuses, valid negatives, empty 204 responses, running sitemap jobs, and cancellations. Each reporting attempt has a two-second deadline.

Remove Authorization headers, API keys, cookies, session tokens, personal data, and unrelated conversation content before calling. The server redacts common credential forms again. Never report a web_access_report failure or repeat a failed call only to gather reporting context. Reports use the configured API key for authentication but do not consume Web Access credits. If reporting is unavailable, unauthorized, rate-limited, or fails, stop reporting for the task.

Quick Start

Run with npx

bash
env STRING_AI_API_KEY=your-key npx @usestring/mcp

Install globally

bash
npm install -g @usestring/mcpSTRING_AI_API_KEY=your-key string-ai-mcp

Build from source

bash
git clone https://github.com/usestring/string-ai-mcp.gitcd string-ai-mcpnpm installnpm run buildSTRING_AI_API_KEY=your-key node build/index.js

Environment Variables

VariableRequiredDescription
STRING_AI_API_KEYYesYour String AI API key

Client Configuration

VS Code

Press Ctrl+Shift+P → Preferences: Open User Settings (JSON) and add:

jsonc
{	"inputs": [		{			"type": "promptString",			"id": "stringAiKey",			"description": "String AI API Key",			"password": true		}	],	"servers": {		"string-ai": {			"command": "npx",			"args": ["-y", "@usestring/mcp"],			"env": {				"STRING_AI_API_KEY": "${input:stringAiKey}"			}		}	}}

Or add a .vscode/mcp.json file to share the configuration with your team.

Cursor

Open Settings → Features → MCP Servers → + Add new global MCP server and paste:

json
{  "mcpServers": {    "string-ai": {      "command": "npx",      "args": ["-y", "@usestring/mcp"],      "env": {        "STRING_AI_API_KEY": "YOUR_API_KEY"      }    }  }}

Windsurf

Add to ~/.codeium/windsurf/model_config.json:

json
{  "mcpServers": {    "string-ai": {      "command": "npx",      "args": ["-y", "@usestring/mcp"],      "env": {        "STRING_AI_API_KEY": "YOUR_API_KEY"      }    }  }}

Claude Desktop

Add to your claude_desktop_config.json:

json
{  "mcpServers": {    "string-ai": {      "command": "npx",      "args": ["-y", "@usestring/mcp"],      "env": {        "STRING_AI_API_KEY": "YOUR_API_KEY"      }    }  }}

Testing with the MCP Inspector

The MCP Inspector lets you test your server interactively in a browser:

bash
npx @modelcontextprotocol/inspector node build/index.js

Then open http://127.0.0.1:6274, connect via stdio, and try calling each tool from the UI.

How It Works

┌──────────────────┐   stdio (JSON-RPC)   ┌──────────────────┐   HTTPS   ┌──────────────────┐│  VS Code / Cursor │ ◄──────────────────► │  String AI       │ ────────► │  String AI       ││  Windsurf / Claude│                      │  Web Access MCP  │           │  Web Access API  │└──────────────────┘                       └──────────────────┘           └──────────────────┘
  1. The IDE spawns this server as a child process and communicates over stdio.
  2. When the LLM decides it needs web content, it invokes web_access_fetch, web_access_search, or web_access_sitemap. Every failed call is reported exactly once with web_access_report, even when recovery later succeeds.
  3. This server forwards the request to String AI's Web Access API (using your API key from the environment) and returns the result to the LLM.

About String AI

String AI provides a web access API that returns any page as clean, LLM-ready Markdown. Get your API key at usestring.ai.

License

MIT

Security

Please report security vulnerabilities privately as described in SECURITY.md.

Maintenance and releases

This server may remain unchanged while its tools meet the documented contract. Maintenance includes checking runtime and MCP compatibility, investigating reported issues, and releasing fixes when needed. Commit frequency alone does not establish whether the server works.

Before shipping a change, run npm test and node scripts/check-versions.mjs. The package declares its supported Node.js versions in package.json; CI builds with Node.js 22. Report compatibility problems through GitHub issues.

The publish workflow records each published npm version as a GitHub release, tagged at the source commit recorded in the npm package metadata. Release notes describe the changes. The release job checks npm directly, so a registry publication failure does not hide a version that users can already install. A manual workflow run can record a missing GitHub release for the current published version without republishing the package or changing its version.

For a historical version whose source predates workflow changes, a maintainer may need to create its source tag first: GitHub limits the workflow token's ability to target older workflow history. The release job verifies that an existing tag matches the published package's source before using it.

来源:README.md,提交 8ced0ed

工具

4

web_access_fetch

Fetch a web page

Fetch a caller-specified HTTP(S) URL and get clean, LLM-ready Markdown back. **Primary use (the common case):** pass only a `url`. The page is fetched with a normal GET and returned as Markdown — no other parameters are needed. ```json { "url": "https://example.com/article" } ``` **Best for:** any URL, especially sites that block automated traffic or render their content client-side (news, docs, blogs, web apps). **Not for:** searching the web when you don't have a URL — use web_access_search instead. **Optional parameters (omit unless you need them):** - `format` — `markdown` (default), `raw` (the destination's verbatim body), or `json` (a `{ statusCode, headers, data }` envelope with the destination's status and headers). - `executeJS` — set true to render JavaScript for SPAs when the content comes back empty. - `actions` — drive a real browser (click, scroll, type, wait) before capturing the page. See below. **To send a direct POST, PUT or PATCH** (with a body), use `web_access_request` — this tool's direct HTTP path only issues GETs. Plenty of those calls are reads: a GraphQL query, a search backend that takes a body, a JSON API that refuses GET. - `headers` — forward custom request headers; not combinable with `executeJS` or `actions`, which run in a browser. - `countryCode` — ISO 3166-1 alpha-2 (e.g. "US") to route through a proxy in that country. - `solveCaptcha` — defaults true; set false to fail fast instead of spending effort solving a challenge. **Returns:** Markdown by default; the verbatim body or a JSON envelope when `format` is set accordingly. --- ## `actions` — driving the page instead of just loading it An `actions` sequence runs in a real browser session and returns the page as it stands after the last step. Use it when the content you need does not exist in the document until something happens to the page: a click past a consent gate, a search form submitted, a "load more" button, a tab or accordion opened, or rows that only render once s

输入参数url必填formatactionsheadersexecuteJScountryCodesolveCaptcha

web_access_request

Send a web request

Send a POST, PUT or PATCH request to any URL, through String's Web Access API. It works like web_access_fetch, but for calls that submit data rather than read a page — a JSON API that only accepts POST, a GraphQL endpoint, a search backend that takes a body. **Use web_access_fetch instead** whenever you only need to read a page. This tool sends a body to the destination rather than reading it, so use it only for a request the user actually asked for. **Usage Example:** ```json { "url": "https://api.example.com/search", "method": "POST", "body": { "q": "widgets" } } ``` **Returns:** The destination's response, in the requested format.

输入参数url必填bodyformatmethod必填headerscountryCodesolveCaptcha

web_access_sitemap

Map a site's URLs

Manage an asynchronous crawl of authorized public pages on one website. Starting from one URL, the crawler follows same-domain links breadth-first and can also seed from the site's /sitemap.xml. Requests must comply with destination policy, robots directives, rate limits, and access controls. Use this tool to discover pages for site audits, authorized retrieval worklists, or coverage checks before fetching individual pages. **Not for:** reading one page's content (use web_access_fetch) or open-ended web queries (use web_access_search). This single tool drives the whole job lifecycle through `action`: **1. `submit` — quote a crawl (nothing is crawled or billed yet).** Requires `url`. Optional: `maxPages` (1–10000, default 10), `maxDepth` (1–100, default 2), `pathPrefix` (only crawl URLs whose path starts with this, e.g. "/docs"), `budgetUsd` (spend ceiling; the crawl stops with status token_cap_exceeded if it would exceed it), `useSitemap` (also seed the site's root /sitemap.xml — one extra billed page, but finds pages links miss). A `maxPages` or `maxDepth` outside its range, 0 included, is rejected rather than replaced by the default — omit the field to get the default. Returns `jobId`, `estimatedPages`, and `estimatedCostUsd` with status `awaiting_approval`. ```json { "action": "submit", "url": "https://example.com", "maxPages": 200, "maxDepth": 3 } ``` **2. `approve` — start the quoted crawl (requires `jobId`).** This is the billing-consent step: pages are billed as they are fetched, capped by the quote/budget. Before approving a non-trivial `estimatedCostUsd`, confirm the spend with your user. Fails with status 402 if the account balance cannot cover the quote; a 409 partial_state error means an earlier approve was interrupted — just call approve again. **3. `status` — poll progress (requires `jobId`).** Statuses: `awaiting_approval` → `running` → terminal `completed` | `failed` | `canceled` | `token_cap_exceeded` (budget hit before maxPages; collected resu

输入参数urljobIdlimitaction必填offsetmaxDepthmaxPagesbudgetUsdpathPrefixuseSitemap

版本历史

2
  1. v1.3.8最新Nov 3, 2026
  2. v1.2.2Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分