Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Mit Google anmelden, um Bewertungen zu schreiben.Prototyp · alle 30 Min. aktualisiert
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

String Web Access

von usestringVersion 1.3.8i★ 7iComputer oder Cloud
Name in der Registryai.usestring/web-access

So installierst du es

What it does

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

  • Connects Computer oder Cloud
  • Account or key Cloud: Needs Authorization · Local: Needs STRING_AI_API_KEY
  • Category Suche & KI-Gedächtnis

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

5/5 Prüfungen bestanden · Was du fragst, läuft über den Server des Anbieters (mcp.usestring.ai) · ✓ Befehle geprüft am 13. Nov. 2026

Zuerst: Welche KI nutzt du?

Wähle deine App, dann erscheinen die Schritte unten.

Klappt mit Claude · etwa 5 Min.

Du brauchst einen Schlüssel von String Web Access (auf der Seite des Anbieters erstellen) · Einmal auf claude.ai oder in der Desktop-App einrichten, dann im Chat nutzen · kostenlose Konten können 1 hinzufügen · bei Team/Enterprise fügt ein Owner ihn hinzu

  1. Bei String Web Access registrieren und Schlüssel erstellen

    Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.

    Seite von String Web Access öffnen ↗

  2. Öffne die Connectors-Seite von Claude

    CustomizeConnectors

    CustomizeConnectors1Add2https://…3Add4
  3. Klicke „Add“ → „Custom“ → „Web“ und fülle diese 2 Felder aus

    Kopiere jeden Wert in das gleichnamige Feld in Claude und klicke Continue

    Name · NameString Web Access
    Remote MCP server URL · Adressehttps://mcp.usestring.ai/v1/mcp

    Unter Request headers diesen Namen und Wert hinzufügen

    Header-NameAuthorization
    WertBearer <Schlüssel hier einfügen>

    Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem

    Klicke auf der von Claude erkannten Anmelde-Seite auf Continue · wähle bei Authentication, was der Anbieter angibt (Sign in now, Sign in when needed oder No sign in), dann Add

  4. Im Chat einschalten

    +ConnectorsString Web Access

  5. Ausprobieren

    Nutze String Web Access und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Claude sagt, dass es String Web Access nutzt, oder ein Werkzeug von String Web Access in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

ChatGPT kann String Web Access noch nicht verbinden

String Web Access braucht zum Verbinden deinen eigenen Schlüssel, aber die OpenAI-Hilfe beschreibt nur die Anmeldung per OAuth; eine Schlüssel-Option konnten wir nicht bestätigen

Das kannst du stattdessen tun

A · Eine App nutzen, die String Web Access verbinden kann

  • Du brauchst einen Schlüssel von String Web Access (auf der Seite des Anbieters erstellen) · Einmal auf claude.ai oder in der Desktop-App einrichten, dann im Chat nutzen · kostenlose Konten können 1 hinzufügen · bei Team/Enterprise fügt ein Owner ihn hinzu
  • Du brauchst einen Schlüssel von String Web Access (auf der Seite des Anbieters erstellen)
  • Du brauchst einen Schlüssel von String Web Access (auf der Seite des Anbieters erstellen)
  • Du brauchst einen Schlüssel von String Web Access (auf der Seite des Anbieters erstellen)

B · Andere in Suche & KI-Gedächtnis, die mit ChatGPT funktionieren

Aus den meistgenutzten derselben Kategorie, nur solche, die per Adresse ohne Schlüssel verbinden

Klappt mit Claude Code · etwa 5 Min.

Du brauchst einen Schlüssel von String Web Access (auf der Seite des Anbieters erstellen)

  1. Bei String Web Access registrieren und Schlüssel erstellen

    Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.

    Seite von String Web Access öffnen ↗

  2. Terminal öffnen

    Mac: Command+Leertaste drücken und Terminal tippen · Windows: PowerShell öffnen

  3. Diesen Befehl einfügen und Enter drücken

    claude mcp add --transport http --scope user web-access https://mcp.usestring.ai/v1/mcp --header 'Authorization: Bearer your-value'

    Ersetze „your-value“ vor dem Enter durch deinen Schlüssel

    Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem

  4. /mcp in Claude Code eingeben

    String Web Access sollte in der Liste als verbunden erscheinen

  5. Ausprobieren

    Nutze String Web Access und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Claude Code sagt, dass es String Web Access nutzt, oder ein Werkzeug von String Web Access in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Klappt mit Cursor · etwa 5 Min.

Du brauchst einen Schlüssel von String Web Access (auf der Seite des Anbieters erstellen)

  1. Bei String Web Access registrieren und Schlüssel erstellen

    Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.

    Seite von String Web Access öffnen ↗

  2. Mit diesem Button Cursor öffnen

    In Cursor öffnen

    Cursor fragt nach einer Bestätigung; klicke Install

  3. Schlüssel eintragen

    In den Einstellungen von String Web Access ist Authorization leer; trag deinen Schlüssel ein und speichere

    Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem

  4. KI-Chat in Cursor im Agent-Modus öffnen

  5. Ausprobieren

    Nutze String Web Access und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Cursor sagt, dass es String Web Access nutzt, oder ein Werkzeug von String Web Access in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Cursor abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Klappt mit VS Code · etwa 5 Min.

Du brauchst einen Schlüssel von String Web Access (auf der Seite des Anbieters erstellen)

  1. Bei String Web Access registrieren und Schlüssel erstellen

    Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.

    Seite von String Web Access öffnen ↗

  2. Mit diesem Button VS Code öffnen

    In VS Code öffnen

    VS Code fragt nach einer Bestätigung; klicke Install

  3. Schlüssel eintragen

    In den Einstellungen von String Web Access ist Authorization leer; trag deinen Schlüssel ein und speichere

    Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem

  4. KI-Chat in VS Code im Agent-Modus öffnen

  5. Ausprobieren

    Nutze String Web Access und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn VS Code sagt, dass es String Web Access nutzt, oder ein Werkzeug von String Web Access in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von VS Code abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Andere Apps mit MCP, etwa Windsurf, Zed oder Gemini CLI, fügen Server unterschiedlich hinzu. Sieh in der App-Liste nach

Alle Apps mit MCP ansehen →

Adresse für Apps, die über das Web verbinden

Adressehttps://mcp.usestring.ai/v1/mcp

JSON-Einstellungen stehen unten unter „Für Entwickler“

Hängst du fest? Frag Leute, die String Web Access nutzen💬 Diskussion →
Für Entwickler: Terminal-Befehle und JSON-Einstellungen

Über das Web

Claude Code

claude mcp add --transport http --scope user web-access https://mcp.usestring.ai/v1/mcp --header 'Authorization: Bearer your-value'

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "web-access": {
      "url": "https://mcp.usestring.ai/v1/mcp",
      "headers": {
        "Authorization": "Bearer your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "web-access": {
      "type": "http",
      "url": "https://mcp.usestring.ai/v1/mcp",
      "headers": {
        "Authorization": "Bearer your-value"
      }
    }
  }
}

Auf deinem Computer installiert

Claude Code

claude mcp add --scope user web-access --env STRING_AI_API_KEY=your-value -- npx -y @usestring/mcp

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "web-access": {
      "command": "npx",
      "args": [
        "-y",
        "@usestring/mcp"
      ],
      "env": {
        "STRING_AI_API_KEY": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "web-access": {
      "command": "npx",
      "args": [
        "-y",
        "@usestring/mcp"
      ],
      "env": {
        "STRING_AI_API_KEY": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "web-access": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@usestring/mcp"
      ],
      "env": {
        "STRING_AI_API_KEY": "your-value"
      }
    }
  }
}

Werte, die du selbst einträgst

  • STRING_AI_API_KEY geheim erforderlich env
    Your String API key (get one at portal.usestring.ai)
  • Authorization geheim erforderlich HTTP header
    Bearer

Die Beschreibungen sind noch im englischen Original.

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Auf einen Blick

Downloads pro Wochei
137/Wo.
Bestätigte Domain
✓ usestring.ai
Verbindung
Computer oder Cloud
Transport
stdio, streamable-http
Neueste Versioni
1.3.8
In der Registry veröffentlichti
3. Nov. 2026
Code zuletzt geänderti
12. Nov. 2026
Entwickler
usestring
Pakete
npm: @usestring/mcp
Registry-Status
Aktiv

Welche Apps ihn nutzen können

Basierend darauf, wie sich dieser Server verbindet, und auf der eigenen Doku jeder App, geprüft am 10. Nov. 2026.

Verbinden sich über das Internet in

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast

Laufen auf deinem Computer in

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

Alle Apps, mit Vor- und Nachteilen →

Was er kann

Tool-Namen und -Beschreibungen genau so, wie der Server sie am 14. Nov. 2026 gemeldet hat. Geschrieben hat sie der Entwickler, nicht wir; wir zeigen sie als reinen Text.

  • web_access_fetch

    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" } ```

  • web_access_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_fetc

  • web_access_search

    Search the public web for a caller-specified query and get ranked organic results back, plus whatever Google rendered around them: knowledge panel, AI overview, People also ask, local pack, videos, discussions. Google's images, videos, shopping, books, places and forums tabs are

  • web_access_sitemap

    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 acc

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 15. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde über die Domain usestring.ai bestätigt (die Registry prüft, wem die Domain gehört)

  • ✓ Bestanden

    Wird noch gepflegt

    Code zuletzt geändert: vor 3 Tagen

  • ✓ Bestanden

    Hat eine Lizenz

    Nutzt MIT

  • ✓ Bestanden

    Endpunkt antwortet

    Antwort in 176 ms (HTTP 200)

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Keine Anmeldung nötig

  • ✓ Bestanden

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Wir haben 4 Tool-Beschreibungen gelesen und keine versteckten Anweisungen an die KI gefunden

Diskussion

Fragen, Tipps teilen oder melden, dass etwas nicht geht. Sortiert nach „hilfreich“.

Noch keine Beiträge. Stell die erste Frage oder teile einen Tipp.

Beiträge hier stammen von Nutzern, nicht vom PopNx-Team.

Mit Google anmelden, um zu posten

Nutzerbewertungen

Noch keine Bewertungen

Mit Google anmelden, um zu bewerten

Im Vergleich mit anderen in Suche & KI-Gedächtnisi

  • Mehr Sterne als 90 % der anderen 6132 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 77 % der anderen 6132 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 6132 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist String Web Access sicher?

Er hat 5 von 5 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: Authorization, STRING_AI_API_KEY

Läuft er auf meinem Computer oder in der Cloud?

Beides geht: Installiere ihn auf deinem Computer oder verbinde dich mit der Cloud-Version.

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt vor 3 Tagen geändert, und die neueste Version (1.3.8) kam vor 12 Tagen in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL und funktioniert daher auch in Apps mit Remote-MCP, etwa ChatGPT im Web (volles MCP ab Business; Pro nur lesend).

Was kann ich stattdessen nutzen?

In derselben Kategorie: Context7, Codebase Memory, OpenSEO

Andere in derselben Kategorie

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Context7

Up-to-date docs for AI agents

von upstashWeit verbreitet↓ 1,2 Mio./Wo.★ 64.793Aktualisiert vor 3 Tagen

Computer oder Cloud

Codebase Memory

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

von DeusDataWeit verbreitet↓ 16.814/Wo.★ 48.634Aktualisiert vor 29 Tagen

Läuft auf deinem Computer

OpenSEO

Keyword research, site audits, rank tracking and AI visibility for your AI agent.

von every-appWeit verbreitet★ 27.703Aktualisiert gestern

Läuft in der Cloud✓ everyapp.com

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

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_search and web_access_product_help are read-only. The npm package's fetch can send writes through method and body; hosted /v1/mcp and /v2/mcp fetch also accept browser actions that can modify destination data. web_access_request sends 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
env STRING_AI_API_KEY=your-key npx @usestring/mcp
Install globally
npm install -g @usestring/mcp

STRING_AI_API_KEY=your-key string-ai-mcp

Build from source
git clone https://github.com/usestring/string-ai-mcp.git

cd string-ai-mcp npm install npm run build STRING_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:

{

"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:

{

"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:

{

"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:

{

"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:

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.