safe-fetch-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | HTTP bind address. | 127.0.0.1 |
| PORT | No | HTTP port. | 3000 |
| TRANSPORT | No | Transport mode. Switch to Streamable HTTP by setting this or using --http flag. | stdio |
| SAFE_FETCH_ALLOWLIST | No | Comma-separated host allowlist. | |
| SAFE_FETCH_MAX_BYTES | No | Response size cap. | 5000000 |
| SAFE_FETCH_TIMEOUT_MS | No | Request timeout. | 10000 |
| SAFE_FETCH_ALLOW_LOCAL | No | Allow loopback/RFC-1918 targets (never allows metadata/link-local). | false |
| SAFE_FETCH_MAX_REDIRECTS | No | Redirect hop limit. | 5 |
| SAFE_FETCH_RATE_LIMIT_MAX | No | Requests per window, per IP (HTTP mode). | 60 |
| SAFE_FETCH_ALLOWED_ORIGINS | No | Comma-separated Origin allowlist (CORS) for HTTP mode. | |
| SAFE_FETCH_RATE_LIMIT_WINDOW_MS | No | Rate-limit window. | 60000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| fetch_urlA | Fetch an http(s) URL and return clean markdown. Read-only; refuses private/loopback/metadata targets by default. Args: url, format ('markdown'|'raw', default 'markdown'), max_bytes?, start_index?. Returns text content plus structuredContent {status, finalUrl, contentType, bytes, truncated}. Example: fetch_url({ url: 'https://example.com' }). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 1 tool
Only one tool exists, so there is no possibility of confusion or overlap. The tool's purpose is clearly defined.
The tool name 'fetch_url' follows a clear verb_noun pattern, consistent with common naming conventions. No inconsistencies exist.
A single tool feels thin for a server, but it is appropriate for a narrow, focused purpose like safe fetching. The tool is well-designed but the count is at the lower boundary.
The tool covers the core fetch operation with useful options (format, max_bytes, start_index). Minor gaps exist, such as no batch fetch or URL validation beyond built-in safety checks, but it adequately serves its stated purpose.