MCP Server Fetch Python
by tatn
# mcp-server-fetch-python
An MCP server for fetching and transforming web content into various formats. This server provides comprehensive tools for extracting content from web pages, including support for JavaScript-rendered content and media files.
<a href="https://glama.ai/mcp/servers/8d0zm2o56d"><img width="380" height="200" src="https://glama.ai/mcp/servers/8d0zm2o56d/badge" alt="Server Fetch Python MCP server" /></a>
## Features
### Tools
The server provides four specialized tools:
- **get-raw-text**: Extracts raw text content directly from URLs without browser rendering
- Arguments:
- `url`: URL of the target web page (text, JSON, XML, csv, tsv, etc.) (required)
- Best used for structured data formats or when fast, direct access is needed
- **get-rendered-html**: Fetches fully rendered HTML content using a headless browser
- Arguments:
- `url`: URL of the target web page (required)
- Essential for modern web applications and SPAs that require JavaScript rendering
- **get-markdown**: Converts web page content to well-formatted Markdown
- Arguments:
- `url`: URL of the target web page (required)
- Preserves structural elements while providing clean, readable text output
- **get-markdown-from-media**: Performs AI-powered content extraction from media files
- Arguments:
- `url`: URL of the target media file (images, videos) (required)
- Utilizes computer vision and OCR for visual content analysis
- Requires a valid OPENAI_API_KEY to be set in environment variables
- Will return an error message if the API key is not set or if there are issues processing the media file
## Usage
### Claude Desktop
To use with Claude Desktop, add the server configuration:
On MacOS: `~/Library/Application\ Support/Claude/claude_desktop_config.json`
On Windows: `%APPDATA%/Claude/claude_desktop_config.json`
```json
"mcpServers": {
"mcp-server-fetch-python": {
"command": "uvx",
"args": [
"mcp-server-fetch-python"
]
}
}
```
## Environment Variables
The following environment variables can be configured:
- **OPENAI_API_KEY**: Required for using the `get-markdown-from-media` tool. This key is needed for AI-powered image analysis and content extraction.
- **PYTHONIOENCODING**: Set to "utf-8" if you encounter character encoding issues in the output.
- **MODEL_NAME**: Specifies the model name to use. Defaults to "gpt-4o".
```json
"mcpServers": {
"mcp-server-fetch-python": {
"command": "uvx",
"args": [
"mcp-server-fetch-python"
],
"env": {
"OPENAI_API_KEY": "sk-****",
"PYTHONIOENCODING": "utf-8",
"MODEL_NAME": "gpt-4o",
}
}
}
```
### Local Installation
Alternatively, you can install and run the server locally:
```powershell
git clone https://github.com/tatn/mcp-server-fetch-python.git
cd mcp-server-fetch-python
uv sync
uv build
```
Then add the following configuration to Claude Desktop config file:
```json
"mcpServers": {
"mcp-server-fetch-python": {
"command": "uv",
"args": [
"--directory",
"path\\to\\mcp-server-fetch-python", # Replace with actual path to the cloned repository
"run",
"mcp-server-fetch-python"
]
}
}
```
## Development
### Debugging
You can start the MCP Inspector using [npx](https://docs.npmjs.com/cli/v11/commands/npx)with the following commands:
```bash
npx @modelcontextprotocol/inspector uvx mcp-server-fetch-python
```
```bash
npx @modelcontextprotocol/inspector uv --directory path\\to\\mcp-server-fetch-python run mcp-server-fetch-python
```