# Fetch MCP server guide

## Overview[​](#overview "Direct link to Overview")

A simple, lightweight MCP server that retrieves data from a website to add real-time context to an AI agent workflow.

[GoFetch](https://github.com/StacklokLabs/gofetch) is a Go implementation of the original [Fetch MCP server](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch) with improved performance and security, built by Stacklok.

## Metadata[​](#metadata "Direct link to Metadata")

Expand to view the MCP server's metadata

Server metadata

```
Name: io.github.stacklok/fetch

Type: container

Description: Allows you to fetch content from the web

Tier: Community

Status: Active

Transport: streamable-http

Image: ghcr.io/stackloklabs/gofetch/server:1.0.6

Target Port: 8080

Has Provenance: Yes



Permissions:

  Network:

    Insecure Allow All: true

    Allow Port: 443

Repository URL: https://github.com/stackloklabs/gofetch

Popularity: 25 stars

Last Updated: 2026-08-07T03:07:39Z



Tools:

  - fetch



Tags:

  content, html, markdown, fetch, fetching, get, wget, json, curl, modelcontextprotocol



Example Command:

  thv run fetch
```

## Usage[​](#usage "Direct link to Usage")

* UI
* CLI
* Kubernetes

Select the `fetch` MCP server in the ToolHive registry. No additional configuration is required to run it.

By default, it can access any website. To restrict its network access, [enable **network isolation**](/toolhive/guides-ui/network-isolation.md) and enter the allowed hosts and ports.

Run with the default configuration. ToolHive [isolates the server's network access](/toolhive/guides-cli/network-isolation.md) by default; the registry's default profile for `fetch` allows all outbound HTTPS traffic, since the server needs to reach arbitrary websites:

```
thv run fetch
```

To restrict which website resources the server can access, create a custom permission profile:

fetch-profile.json

```
{

  "network": {

    "outbound": {

      "insecure_allow_all": false,

      "allow_host": ["intranet.example.com", ".googleapis.com"],

      "allow_port": [443]

    }

  }

}
```

To also reach services on the Docker host through `host.docker.internal` (or the bridge gateway IP), pass the `--allow-docker-gateway` flag. The flag grants gateway access independently of the permission profile, so you don't need a matching `allow_host` or `allow_port` entry:

```
thv run --allow-docker-gateway --permission-profile fetch-profile.json fetch
```

Create a Kubernetes manifest to deploy the Fetch MCP server:

fetch.yaml

```
apiVersion: toolhive.stacklok.dev/v1beta1

kind: MCPServer

metadata:

  name: fetch

  namespace: toolhive-system

spec:

  image: ghcr.io/stackloklabs/gofetch/server:1.0.6

  transport: streamable-http

  mcpPort: 8080

  proxyPort: 8080
```

Apply the manifest to your Kubernetes cluster:

```
kubectl apply -f fetch.yaml
```

## Sample prompts[​](#sample-prompts "Direct link to Sample prompts")

Here are some sample prompts you can use to interact with the Fetch MCP server:

* "Fetch the latest news from `https://news.ycombinator.com`"
* "Get the current weather for `https://weather.com`"
* "Retrieve the latest blog posts from `https://example.com/blog`"

## Recommended practices[​](#recommended-practices "Direct link to Recommended practices")

* Customize the network isolation permission profile to restrict the server's outbound network access to the specific hosts and ports required for your use case, since the default profile allows all outbound HTTPS traffic.
* Enable [telemetry](/toolhive/guides-cli/telemetry-and-metrics.md) to monitor tool usage including URL access for security and auditing purposes.
