botrun-default-mcp
A stdio-based MCP (Model Context Protocol) server providing PDF analysis, image analysis, web search, web scraping, and visualization tools. Designed to run via uvx with no server deployment needed.
Tools
| Tool | Description |
|---|---|
chat_with_pdf |
Analyze local PDF files with Gemini via Botrun Gateway (supports large files via chunked parallel processing) |
chat_with_imgs |
Analyze local image files with Gemini Vision via Botrun Gateway |
web_search |
Search the web via Perplexity API (supports OpenRouter) |
scrape |
Scrape web pages to Markdown via ScraperAPI |
create_html_page |
Generate HTML pages and save to local files |
create_plotly_chart |
Generate interactive Plotly charts as local HTML files |
create_mermaid_diagram |
Generate Mermaid diagrams as local HTML files |
current_date_time |
Get current date/time in Asia/Taipei timezone |
Installation
uvx botrun-default-mcp
Or install from source:
git clone https://github.com/sebastian-hsu/botrun_default_mcp_uv.git
cd botrun_default_mcp_uv
uv sync
Configuration
The server automatically loads environment variables from a .env file in the working directory. Just point cwd to the directory containing your .env file — no need to pass env in the MCP config.
LLM routing (chat_with_pdf / chat_with_imgs)
Both tools call Gemini. Which endpoint they use is decided by environment variables (no runtime fallback):
BOTRUN_GATE_BASE_URL+BOTRUN_GATE_API_KEYboth set → requests go through Botrun Gateway's/gemini/*passthrough (base_url = ${BOTRUN_GATE_BASE_URL}/gemini, auth viaAuthorization: Bearer). Vertex runs behind the gateway, so no GCP service account is needed. This is the recommended setup.- Otherwise → direct Vertex AI with the
GOOGLE_APPLICATION_CREDENTIALS_FOR_FASTAPIservice account (projectscoop-386004, regionus-central1). - Neither → the tools fail fast with a message naming both options.
Models available through the gateway passthrough are the Vertex gemini-2.5-* family (gemini-2.5-flash, gemini-2.5-pro, gemini-2.5-flash-lite). Aliases such as gemini-flash-latest do not exist there and return 404.
Claude Desktop / Claude Code
Add to your MCP settings (claude_desktop_config.json or .claude.json):
{
"mcpServers": {
"botrun-default-mcp": {
"command": "uvx",
"args": ["botrun-default-mcp"],
"cwd": "/path/to/directory/with/dotenv"
}
}
}
LangGraph
{
"botrun-default-mcp": {
"transport": "stdio",
"command": "/path/to/uvx",
"args": ["botrun-default-mcp"],
"cwd": "/path/to/directory/with/dotenv"
}
}
.env file example
BOTRUN_GATE_BASE_URL=https://gate.botrun.ai
BOTRUN_GATE_API_KEY=br-your-key-here
OPENROUTER_API_KEY=sk-or-v1-xxx
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
SCRAPERAPI_API_KEY=your-scraperapi-key
Environment Variables
| Variable | Required | Description |
|---|---|---|
BOTRUN_GATE_BASE_URL |
Yes* (for PDF/image tools) | Botrun Gateway base URL, e.g. https://gate.botrun.ai |
BOTRUN_GATE_API_KEY |
Yes* (for PDF/image tools) | Gateway br- API key (sent as Authorization: Bearer) |
GOOGLE_APPLICATION_CREDENTIALS_FOR_FASTAPI |
Yes* (only without gateway) | GCP service account JSON key for direct Vertex AI |
PPLX_API_KEY |
Yes† (for web_search) | Perplexity API key |
OPENROUTER_API_KEY |
Yes† (for web_search) | OpenRouter API key (alternative to PPLX_API_KEY) |
OPENROUTER_BASE_URL |
With OpenRouter | OpenRouter base URL |
SCRAPERAPI_API_KEY |
Yes (for scrape) | ScraperAPI key |
PDF_ANALYZER_MODEL |
No | Gemini model for PDF analysis (default: gemini-2.5-flash); comma-separated list = fallback order |
IMG_ANALYZER_MODEL |
No | Gemini model for image analysis (default: gemini-2.5-flash); comma-separated list = fallback order |
* Either BOTRUN_GATE_BASE_URL + BOTRUN_GATE_API_KEY (recommended) or GOOGLE_APPLICATION_CREDENTIALS_FOR_FASTAPI is required for chat_with_pdf / chat_with_imgs.
† Either PPLX_API_KEY or OPENROUTER_API_KEY + OPENROUTER_BASE_URL is required for web_search.
Development
# Setup
uv sync
# Run tests
uv run pytest tests/ -v
# Build
uv build
# Publish to PyPI
cd sh && bash seba_pypi.sh
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file botrun_default_mcp-0.5.0.tar.gz.
File metadata
- Download URL: botrun_default_mcp-0.5.0.tar.gz
- Upload date:
- Size: 83.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b499cfb130a41ec53a1fc8393154b5d78f12c32d8fe5a75079da0805fc6da258
|
|
| MD5 |
c073405cee19c90afb96175434b3dd8c
|
|
| BLAKE2b-256 |
9a70e83e64cf6b4fbc02a5002a40d59b299bdf8a03d45ba3957b00b169c0fcc3
|
File details
Details for the file botrun_default_mcp-0.5.0-py3-none-any.whl.
File metadata
- Download URL: botrun_default_mcp-0.5.0-py3-none-any.whl
- Upload date:
- Size: 19.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf182daf9fd6da6e530bd948ac9beadd0ad16d29d788d4eb7cccb67daa19ec10
|
|
| MD5 |
fbec8017725490630856b4957319ab0c
|
|
| BLAKE2b-256 |
5ae3103a0e0c560ab2666f067bed3748c0e9a80faa69fb9ceb255a26e374945d
|