<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Redirhub</title>
    <description>The latest articles on DEV Community by Redirhub (@redirhub).</description>
    <link>https://dev.to/redirhub</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3990182%2Fbdc43386-be9f-41f3-b5df-0134c8422bda.png</url>
      <title>DEV Community: Redirhub</title>
      <link>https://dev.to/redirhub</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/redirhub"/>
    <language>en</language>
    <item>
      <title>Your Redirect Domain Is Infrastructure: What the t.me Outage Teaches Us</title>
      <dc:creator>Redirhub</dc:creator>
      <pubDate>Sat, 18 Jul 2026 20:01:48 +0000</pubDate>
      <link>https://dev.to/redirhub/your-redirect-domain-is-infrastructure-what-the-tme-outage-teaches-us-4ada</link>
      <guid>https://dev.to/redirhub/your-redirect-domain-is-infrastructure-what-the-tme-outage-teaches-us-4ada</guid>
      <description>&lt;p&gt;A redirect domain looks small until people depend on it.&lt;/p&gt;

&lt;p&gt;In July 2026, Telegram's &lt;code&gt;t.me&lt;/code&gt; domain stopped resolving after the &lt;code&gt;.me&lt;/code&gt; registry placed it on &lt;code&gt;serverHold&lt;/code&gt;. Links such as &lt;code&gt;t.me/username&lt;/code&gt; and &lt;code&gt;t.me/channelname&lt;/code&gt; stopped working. Telegram's application was still running. The failure happened below the application layer, where the domain, registry, and DNS path meet.&lt;/p&gt;

&lt;p&gt;The domain returned the following day. DomainME said the hold was related to OFAC compliance. Reporting from TechCrunch connected the timing to a U.S. Treasury sanctions listing that contained a &lt;code&gt;t.me&lt;/code&gt; address pointing to a sanctioned VPN provider's Telegram group. That explanation is reported by the cited sources; we are not presenting it as an independently verified RedirHub finding.&lt;/p&gt;

&lt;p&gt;The operational lesson is broader than Telegram:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If a link is important enough to publish, print, embed, or build into software, its domain is infrastructure.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The redirect is a chain, not a single rule
&lt;/h2&gt;

&lt;p&gt;When someone clicks a redirect, several systems must work in sequence:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The device resolves the domain through DNS.&lt;/li&gt;
&lt;li&gt;The domain reaches the edge or origin.&lt;/li&gt;
&lt;li&gt;The redirect service matches the rule.&lt;/li&gt;
&lt;li&gt;The service returns an HTTP response.&lt;/li&gt;
&lt;li&gt;The browser follows the destination.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A failure in an earlier layer prevents the later layers from helping. A correct redirect rule cannot repair a domain that no longer resolves. A healthy destination cannot help if TLS fails before the request reaches the redirect service.&lt;/p&gt;

&lt;p&gt;That is why "the redirect is broken" is not a diagnosis. The first useful question is: &lt;strong&gt;which layer failed?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Check the path in order:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Domain and DNS:&lt;/strong&gt; Does the hostname resolve from more than one network?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TLS:&lt;/strong&gt; Is the certificate valid and being served for the expected hostname?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edge:&lt;/strong&gt; Does the request reach the redirect provider?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rule:&lt;/strong&gt; Does the source path match the intended record?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Destination:&lt;/strong&gt; Does the final URL return the expected response?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Policy or registry:&lt;/strong&gt; Has the domain, account, or namespace been restricted?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each layer has a different owner and a different recovery path. Treating them as one undifferentiated "link problem" wastes the first minutes of an incident.&lt;/p&gt;

&lt;h2&gt;
  
  
  One namespace can create a large blast radius
&lt;/h2&gt;

&lt;p&gt;A shared redirect domain is convenient: one recognizable domain, many links, one operating model. It also creates concentration risk.&lt;/p&gt;

&lt;p&gt;If that namespace becomes unavailable, the failure can reach every place where it appears:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Campaign URLs&lt;/li&gt;
&lt;li&gt;Documentation&lt;/li&gt;
&lt;li&gt;Printed QR codes&lt;/li&gt;
&lt;li&gt;Partner links&lt;/li&gt;
&lt;li&gt;Support articles&lt;/li&gt;
&lt;li&gt;App deep links&lt;/li&gt;
&lt;li&gt;Social posts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The more widely a domain is used, the more carefully its dependency should be managed. This applies to company-owned redirect domains, short-link providers, campaign platforms, and internal routing services—not only to Telegram.&lt;/p&gt;

&lt;p&gt;The risk is often invisible because the inventory is fragmented. Marketing owns campaign URLs. Product owns onboarding links. Support owns documentation. Nobody owns the namespace as a system.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical redirect-resilience checklist
&lt;/h2&gt;

&lt;p&gt;You do not need to turn every redirect into a distributed-systems project. You do need enough discipline to know what matters and recover quickly.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Inventory critical links
&lt;/h3&gt;

&lt;p&gt;Record the source URL, destination, owner, purpose, and replacement path for links used in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Revenue-generating campaigns&lt;/li&gt;
&lt;li&gt;Product onboarding&lt;/li&gt;
&lt;li&gt;Documentation&lt;/li&gt;
&lt;li&gt;Customer support&lt;/li&gt;
&lt;li&gt;Printed material&lt;/li&gt;
&lt;li&gt;Partner integrations&lt;/li&gt;
&lt;li&gt;Mobile and desktop applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A redirect without an owner becomes technical debt when the original campaign ends.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Monitor the whole path
&lt;/h3&gt;

&lt;p&gt;An HTTP 200 from one location does not prove that the full path works for every user. Check DNS, the redirect response, and the destination separately:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig +short go.example.com
curl &lt;span class="nt"&gt;-I&lt;/span&gt; https://go.example.com/docs
curl &lt;span class="nt"&gt;-I&lt;/span&gt; https://docs.example.com/getting-started
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For high-value links, run checks from multiple locations and record the complete redirect chain. A chain can end in &lt;code&gt;200&lt;/code&gt; while adding latency and extra failure points.&lt;/p&gt;

&lt;p&gt;RedirHub's link health monitoring is designed for this operational layer: it checks critical links from global locations and alerts when a monitored destination fails. It does not replace registrar or registry controls, but it makes the failures within your routing layer visible before users report them.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Keep the configuration portable
&lt;/h3&gt;

&lt;p&gt;Export redirect rules regularly. Preserve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Source hosts and paths&lt;/li&gt;
&lt;li&gt;Destination URLs&lt;/li&gt;
&lt;li&gt;Status codes&lt;/li&gt;
&lt;li&gt;Path and query-string behavior&lt;/li&gt;
&lt;li&gt;Ownership metadata&lt;/li&gt;
&lt;li&gt;Change history&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A redirect platform should give you control of the routing data, not turn it into a black box. RedirHub supports CSV import and export, bulk changes with dry-run safety, and API access so teams can rebuild or audit their redirect layer without manual re-entry.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Separate namespaces when the impact justifies it
&lt;/h3&gt;

&lt;p&gt;One domain is easier to remember. Separate domains can reduce blast radius. A company might separate product documentation, customer communications, paid campaigns, and internal tools.&lt;/p&gt;

&lt;p&gt;This does not remove registrar, DNS, or provider risk. It limits how much fails together. Use separation where the business impact justifies the additional operational work; do not create domains merely to make the architecture look sophisticated.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Plan for change
&lt;/h3&gt;

&lt;p&gt;The value of a redirect is that the destination can change without changing the published link. That only works when the redirect layer remains under active ownership.&lt;/p&gt;

&lt;p&gt;Review high-value rules. Remove stale destinations. Test migration rules before launch. Keep a record of why each rule exists. A redirect is not finished when it is created—it remains part of the system for as long as someone depends on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a managed redirect layer can—and cannot—do
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;t.me&lt;/code&gt; incident was a registry-level event. No redirect dashboard can make a registry hold disappear. Resilience starts by separating the risks you can control from the risks you cannot.&lt;/p&gt;

&lt;p&gt;A managed redirect layer can help with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Centralized rule ownership&lt;/li&gt;
&lt;li&gt;Bulk import and export&lt;/li&gt;
&lt;li&gt;API-based updates&lt;/li&gt;
&lt;li&gt;Redirect analytics&lt;/li&gt;
&lt;li&gt;Health monitoring for critical links&lt;/li&gt;
&lt;li&gt;Global edge delivery&lt;/li&gt;
&lt;li&gt;Clear separation between source URLs and destinations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the problem RedirHub is built to solve. RedirHub is not a vanity-link generator. It is the routing layer between a URL people use and the destination that serves them. The dashboard gives marketing and operations teams control; the API gives engineering teams a path to automate changes.&lt;/p&gt;

&lt;p&gt;The goal is straightforward: keep every link pointed in the right direction, and make failures visible before users find them.&lt;/p&gt;

&lt;h2&gt;
  
  
  The takeaway
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;t.me&lt;/code&gt; outage lasted about a day, but the engineering lesson is durable:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Short links are convenient. Reliable routing is the system behind them.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Know who owns the domain. Monitor the complete path. Export the configuration. Understand the blast radius. Keep a recovery option for the links that matter most.&lt;/p&gt;

&lt;p&gt;If a link is part of your product, your revenue funnel, your documentation, or your software, it deserves the same operational attention as any other production dependency.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>webdev</category>
      <category>seo</category>
      <category>infrastructure</category>
    </item>
    <item>
      <title>Connect Any AI Agent to RedirHub in 5 Minutes - Claude, Cursor, or Codex</title>
      <dc:creator>Redirhub</dc:creator>
      <pubDate>Fri, 10 Jul 2026 11:38:50 +0000</pubDate>
      <link>https://dev.to/redirhub/connect-any-ai-agent-to-redirhub-in-5-minutes-claude-cursor-or-codex-59ek</link>
      <guid>https://dev.to/redirhub/connect-any-ai-agent-to-redirhub-in-5-minutes-claude-cursor-or-codex-59ek</guid>
      <description>&lt;p&gt;You manage redirects through a dashboard. Your AI agent just sits there, smart but disconnected.&lt;/p&gt;

&lt;p&gt;There's a better pattern: give it MCP access and let it manage your redirects directly — from the same chat where you plan your deployment.&lt;/p&gt;

&lt;p&gt;I'll show you the setup for Claude Desktop, Cursor, and VS Code / Codex. It takes about five minutes, and the Free plan is enough.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1: Generate a Workspace API Token
&lt;/h2&gt;

&lt;p&gt;Log into your &lt;a href="https://redirhub.com" rel="noopener noreferrer"&gt;RedirHub&lt;/a&gt; dashboard and go to &lt;strong&gt;Settings → API Tokens&lt;/strong&gt;. Click &lt;strong&gt;Generate Token&lt;/strong&gt;, name it something like "Claude Desktop" or "Cursor MCP", and copy the token — it starts with &lt;code&gt;rh_&lt;/code&gt; and is shown only once.&lt;/p&gt;

&lt;p&gt;Keep this token private. You can revoke or rotate it anytime from the same page.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Even on the Free plan, you get full access to the MCP server — 17 tools and 15 resources. No upgrade needed.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Step 2: Add the MCP Config to Your Client
&lt;/h2&gt;

&lt;p&gt;The server endpoint is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://api.redirhub.com/mcp/v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Authentication is a Bearer token in the &lt;code&gt;Authorization&lt;/code&gt; header. Each client handles config differently — pick yours.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Desktop
&lt;/h3&gt;

&lt;p&gt;Claude Desktop reads MCP servers from a JSON config file:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;macOS:&lt;/strong&gt; &lt;code&gt;~/Library/Application Support/Claude/claude_desktop_config.json&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Windows:&lt;/strong&gt; &lt;code&gt;%APPDATA%\Claude\claude_desktop_config.json&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Linux:&lt;/strong&gt; &lt;code&gt;~/.config/Claude/claude_desktop_config.json&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open or create this file and add:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"redirhub"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"@anthropic/mcp-client"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"https://api.redirhub.com/mcp/v1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"--header"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"Authorization: Bearer YOUR_API_TOKEN"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;YOUR_API_TOKEN&lt;/code&gt; with the token from Step 1. Save the file, then &lt;strong&gt;completely quit and reopen Claude Desktop&lt;/strong&gt; (Cmd+Q on macOS — closing the window isn't enough).&lt;/p&gt;

&lt;p&gt;After restart, look for a small 🔌 icon in the chat input bar. Click it — you should see 17 RedirHub tools listed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cursor
&lt;/h3&gt;

&lt;p&gt;Cursor uses a &lt;code&gt;.cursor/mcp.json&lt;/code&gt; file in your project root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"redirhub"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://api.redirhub.com/mcp/v1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"headers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"Authorization"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bearer YOUR_API_TOKEN"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save the file and restart Cursor (or run &lt;strong&gt;Developer: Reload Window&lt;/strong&gt; from the command palette). The RedirHub tools will now be available in Cursor's AI chat.&lt;/p&gt;

&lt;h3&gt;
  
  
  VS Code / Codex
&lt;/h3&gt;

&lt;p&gt;OpenAI Codex reads from &lt;code&gt;.codex/mcp.json&lt;/code&gt; — same format as Cursor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"redirhub"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://api.redirhub.com/mcp/v1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"headers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"Authorization"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bearer YOUR_API_TOKEN"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save it in your project root and restart the Codex extension. You can also configure this globally via Codex's settings panel under &lt;strong&gt;MCP Servers → Add Server&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Any Other MCP Client
&lt;/h3&gt;

&lt;p&gt;HTTP transport at &lt;code&gt;https://api.redirhub.com/mcp/v1&lt;/code&gt; with a Bearer token header. Consult your client's MCP docs if the format differs.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 3: Your First AI-Powered Redirect
&lt;/h2&gt;

&lt;p&gt;Your client is connected. Let's do something real — skip the dashboard entirely.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a 301 Redirect via Chat
&lt;/h3&gt;

&lt;p&gt;Open your AI client and type:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Create a 301 redirect on RedirHub. The source URL should be /summer-sale on my domain, pointing to &lt;a href="https://myshop.com/summer-2026" rel="noopener noreferrer"&gt;https://myshop.com/summer-2026&lt;/a&gt;. Use dry-run mode first so I can preview it."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Your agent will:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Call the &lt;strong&gt;CreateLink&lt;/strong&gt; tool with &lt;code&gt;dry_run: true&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Show you exactly what will be created — the source, destination, redirect type, and which workspace it lives in&lt;/li&gt;
&lt;li&gt;Wait for your confirmation before going live&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once you confirm, the redirect is created instantly. Same result as the dashboard form, but you never left your chat.&lt;/p&gt;

&lt;h3&gt;
  
  
  List All Your Links in One Message
&lt;/h3&gt;

&lt;p&gt;Now try:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"List all my short links in my active RedirHub workspace."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Your agent calls the &lt;strong&gt;ListLinks&lt;/strong&gt; resource and returns them formatted — domain, slug, destination URL, and status. No filtering dropdowns, no pagination clicking.&lt;/p&gt;

&lt;p&gt;This is the mental-model shift: you're not filling out forms anymore. You're having a conversation with your infrastructure.&lt;/p&gt;




&lt;h2&gt;
  
  
  5 Real Prompts to Try
&lt;/h2&gt;

&lt;p&gt;Here are prompts that go beyond the basics. Copy-paste any of them into your connected AI client:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Bulk import from a CSV&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"I have a CSV at ~/redirects.csv with columns 'from' and 'to'. Import all of them into RedirHub as 301 redirects. Use dry-run first."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;2. Find and fix broken links&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Check all my redirects that point to 404 destinations. List them and offer to update each one to a working URL."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;3. UTM parameter sweep&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Add UTM parameters to all my links tagged 'spring-campaign'. Append ?utm_source=newsletter&amp;amp;utm_campaign=spring2026 to each destination URL."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;4. Domain migration prep&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Export all redirects from my workspace as JSON. I'm migrating domains and need a full inventory first."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;5. Analytics check&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Show me the top 10 most-clicked redirects this month with their click counts and last-clicked timestamps."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Troubleshooting
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Symptom&lt;/th&gt;
&lt;th&gt;Fix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🔌 Plug icon missing&lt;/td&gt;
&lt;td&gt;Quit Claude completely (Cmd+Q), not just close the window&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Cannot connect to MCP server"&lt;/td&gt;
&lt;td&gt;Verify the token is correct and not expired. Regenerate in Settings → API Tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor not showing tools&lt;/td&gt;
&lt;td&gt;Check &lt;code&gt;.cursor/mcp.json&lt;/code&gt; is in your project root, not your home directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Codex tools not appearing&lt;/td&gt;
&lt;td&gt;Try the global config path via settings panel instead of &lt;code&gt;.codex/mcp.json&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agent says "I don't have that tool"&lt;/td&gt;
&lt;td&gt;Restart the client. Some IDEs cache MCP servers at startup only&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;That's it. You now have an AI agent that can read, create, update, and delete redirects on your behalf. The same setup works whether you're managing five redirects or five thousand — the only difference is the prompt you type.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://redirhub.com/blog/connect-redirhub-to-claude-cursor-or-codex-in-5-minutes" rel="noopener noreferrer"&gt;RedirHub Blog&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>agents</category>
      <category>claude</category>
    </item>
    <item>
      <title>Build a Redirect Bot: From Zero to AI-Powered Redirect Manager with MCP</title>
      <dc:creator>Redirhub</dc:creator>
      <pubDate>Mon, 06 Jul 2026 08:18:51 +0000</pubDate>
      <link>https://dev.to/redirhub/build-a-redirect-bot-from-zero-to-ai-powered-redirect-manager-with-mcp-2oab</link>
      <guid>https://dev.to/redirhub/build-a-redirect-bot-from-zero-to-ai-powered-redirect-manager-with-mcp-2oab</guid>
      <description>&lt;p&gt;Managing redirects for a growing site or portfolio is the kind of work that doesn't scale — create the record, verify DNS, check SSL, monitor uptime, update when something changes. Multiply that by hundreds or thousands of domains and it's a full-time job.&lt;/p&gt;

&lt;p&gt;I built a redirect bot that handles all of this. It took 10 minutes, used zero custom code, and works with any AI agent that supports MCP (Model Context Protocol). Here's the exact playbook.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a Redirect Bot Can Do
&lt;/h2&gt;

&lt;p&gt;A redirect bot is an AI agent connected to a redirect management API through MCP. Once connected, it handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create and manage redirects&lt;/strong&gt; — add, update, or remove rules with a natural-language command&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bulk import from CSV&lt;/strong&gt; — drop a spreadsheet into the conversation and the bot processes hundreds of records&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitor link health&lt;/strong&gt; — check redirect status, SSL validity, and DNS config across your portfolio&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alert on failures&lt;/strong&gt; — push to Slack or email when a redirect breaks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment workflows&lt;/strong&gt; — move configs from staging to production with approval gates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Team collaboration&lt;/strong&gt; — multiple people manage redirects through shared workspaces with role-based permissions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key insight: this isn't a custom integration. It's built on MCP, an open protocol any AI agent understands. It works with Claude today, Codex tomorrow, and whatever ships next month — no rewrites.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Connect to RedirHub MCP
&lt;/h2&gt;

&lt;p&gt;The MCP server is available on every RedirHub plan, including free.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get your API token:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Log into your RedirHub dashboard&lt;/li&gt;
&lt;li&gt;Workspace → API Tokens&lt;/li&gt;
&lt;li&gt;Generate a token with redirect management permissions&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Configure your AI agent.&lt;/strong&gt; For Claude Desktop, add this to &lt;code&gt;claude_desktop_config.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"redirhub"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@redirhub/mcp-server"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"REDIRHUB_API_TOKEN"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your-token-here"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For Codex or Cursor, point the MCP config at &lt;code&gt;https://api.redirhub.com/mcp/v1&lt;/code&gt; with your Bearer token.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verify it.&lt;/strong&gt; Open your AI agent and ask: &lt;em&gt;"List my redirects."&lt;/em&gt; If it returns your records, you're connected.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Bulk Import from CSV
&lt;/h2&gt;

&lt;p&gt;Manual redirect creation is the biggest time drain — especially during migrations. The bot handles this in one shot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workflow:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Export your redirect list as CSV (source URL, destination URL, redirect type)&lt;/li&gt;
&lt;li&gt;Drop the CSV into your AI agent conversation&lt;/li&gt;
&lt;li&gt;The bot processes all records via MCP's &lt;code&gt;BulkImport&lt;/code&gt; tool and reports results&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Example prompt:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Here's a CSV with 150 redirects for our website migration. Create all of them as 301 redirects on RedirHub. For any that fail, tell me the source URL and the error reason."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The bot uses dry-run mode by default — you preview changes before committing. This matters for large migrations where a CSV typo could take down production pages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real result:&lt;/strong&gt; A marketing agency migrated 850 redirects from an old CMS in 4 minutes. Manual creation would have taken two full days. The bot flagged 3 records with invalid destination URLs — fixed and re-imported in 30 seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Monitoring + Slack Alerts
&lt;/h2&gt;

&lt;p&gt;A redirect that breaks silently is worse than no redirect. The bot watches:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Target URL status&lt;/strong&gt; — is the destination still alive?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSL certificate validity&lt;/strong&gt; — is HTTPS working?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DNS configuration&lt;/strong&gt; — is the domain still pointed correctly?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Response time&lt;/strong&gt; — is the redirect fast enough?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Monitor all my redirects and alert me in Slack if any destination returns a 4xx or 5xx. Check every hour."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The bot uses RedirHub's link health monitoring (Pro+) combined with &lt;code&gt;GetAccessLogs&lt;/code&gt; and &lt;code&gt;GetStats&lt;/code&gt; MCP tools. Slack alerts come through a webhook:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🚨 Redirect alert: old-site.com/blog → new-site.com/articles returned 404
Last successful check: 2 hours ago
Action needed: Update the destination or restore the target page
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This flips redirect management from reactive ("someone reported a broken link") to proactive ("I know before anyone notices").&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Deployment Workflow (Staging → Production)
&lt;/h2&gt;

&lt;p&gt;For teams managing redirects across environments, a deployment pipeline keeps things safe.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workflow:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create and test redirects in a staging workspace&lt;/li&gt;
&lt;li&gt;The bot generates a diff of staging vs. production&lt;/li&gt;
&lt;li&gt;A team member approves&lt;/li&gt;
&lt;li&gt;The bot deploys changes to production in one batch&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Compare my staging and production workspaces and show me the diff. Then deploy all staging-only redirects to production."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The bot uses &lt;code&gt;QueryResource&lt;/code&gt; to compare records across workspaces, then &lt;code&gt;BulkUpdateRecords&lt;/code&gt; with the dry-run flag to sync changes safely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real result:&lt;/strong&gt; A SaaS company managing 2,000+ redirects across 12 marketing sites used this workflow. Before the bot: one broken redirect per release. After: zero in six months.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Team Collaboration + Approval Flows
&lt;/h2&gt;

&lt;p&gt;Redirects shouldn't be managed by one person. With MCP, the bot coordinates across your team.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Approval flows:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Any redirect targeting production domains needs DevOps approval. Marketing domains auto-approve and post a Slack notification."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The bot checks the destination domain of each request and routes through the appropriate channel. Marketing gets campaign redirects instantly. Production changes get a second pair of eyes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results: Before vs After
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Before Bot&lt;/th&gt;
&lt;th&gt;After Bot&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Time to create 100 redirects&lt;/td&gt;
&lt;td&gt;3–4 hours&lt;/td&gt;
&lt;td&gt;2–3 minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Broken redirect detection&lt;/td&gt;
&lt;td&gt;Days (user reports)&lt;/td&gt;
&lt;td&gt;Minutes (automated)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deployment errors per release&lt;/td&gt;
&lt;td&gt;1–2&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Team members managing redirects&lt;/td&gt;
&lt;td&gt;1–2 (bottleneck)&lt;/td&gt;
&lt;td&gt;Anyone (self-serve)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DNS/SSL issues found weekly&lt;/td&gt;
&lt;td&gt;Manual spot-checks&lt;/td&gt;
&lt;td&gt;Automated daily scan&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The common thread: redirect management stops being a specialized task. Your SEO specialist doesn't need to learn an API. Your marketing manager doesn't need dashboard access. They just ask the bot.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;A redirect bot on MCP isn't a future project — it's something you can set up today on the free plan. Connect your AI agent, run your first bulk import, set up monitoring. The tools are open source, the protocol is standard, and the setup takes two minutes.&lt;/p&gt;

&lt;p&gt;The only question is what you'll do with the hours you get back.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>tutorial</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
