Gurufocus Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Gurufocus Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
NOTE: This repo is currently a work in progress and is not yet ready for production use.
A comprehensive GuruFocus MCP server and Python API client library with Pydantic models for all responses.
This monorepo contains two packages:
A standalone Python client library for the GuruFocus API.
httpxAn MCP server exposing GuruFocus data to AI assistants.
# Install both packages
pip install gurufocus-api gurufocus-mcpfrom gurufocus_api import GuruFocusClient
async with GuruFocusClient() as client:
summary = await client.get_summary("AAPL")
print(summary.gf_score)export GURUFOCUS_API_TOKEN=your-token
gurufocus-mcpFirst, install the package:
pipx install gurufocus-mcp # recommended for CLI tools
# or
pip install gurufocus-mcpThen add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"gurufocus": {
"command": "gurufocus-mcp",
"env": {
"GURUFOCUS_API_TOKEN": "your-token-here"
}
}
}
}After adding the configuration, restart Claude Desktop. You should see the GuruFocus tools available in Claude's interface.
Running from source (for development):
{
"mcpServers": {
"gurufocus": {
"command": "uv",
"args": ["run", "gurufocus-mcp"],
"env": {
"GURUFOCUS_API_TOKEN": "your-token-here"
}
}
}
}The MCP server supports TOON format for token-efficient responses, achieving 30-60% reduction in token usage compared to JSON.
Per-request format selection:
All tools accept a format parameter:
"toon" (default) - Token-efficient format optimized for LLM contexts"json" - Standard JSON format for debugging or compatibility# TOON format (default)
result = await client.call_tool("get_stock_summary", {"symbol": "AAPL"})
# JSON format
result = await client.call_tool("get_stock_summary", {"symbol": "AAPL", "format": "json"})Environment variable configuration:
# Change the default output format (default: toon)
export GURUFOCUS_DEFAULT_OUTPUT_FORMAT=jsonAll settings can be configured via environment variables with the GURUFOCUS_ prefix.
| Variable | Description |
|---|---|
GURUFOCUS_API_TOKEN | Your GuruFocus API token |
| Variable | Default | Description |
|---|---|---|
GURUFOCUS_CACHE_ENABLED | true | Enable response caching |
GURUFOCUS_CACHE_DIR | .cache/gurufocus-mcp | Directory for cache storage |
Recommended: Set an absolute path for GURUFOCUS_CACHE_DIR to ensure consistent caching across sessions:
export GURUFOCUS_CACHE_DIR="$HOME/.cache/gurufocus-mcp"Or in Claude Desktop config:
{
"mcpServers": {
"gurufocus": {
"command": "gurufocus-mcp",
"env": {
"GURUFOCUS_API_TOKEN": "your-token-here",
"GURUFOCUS_CACHE_DIR": "/Users/yourname/.cache/gurufocus-mcp"
}
}
}
}| Variable | Default | Description |
|---|---|---|
GURUFOCUS_RATE_LIMIT_ENABLED | true | Enable rate limiting |
GURUFOCUS_RATE_LIMIT_RPM | 30.0 | Maximum requests per minute |
GURUFOCUS_RATE_LIMIT_DAILY | 0 | Maximum requests per day (0 = unlimited) |
| Variable | Default | Description |
|---|---|---|
GURUFOCUS_API_BASE_URL | https://api.gurufocus.com/public/user | API base URL |
GURUFOCUS_API_TIMEOUT | 30.0 | Request timeout in seconds |
GURUFOCUS_API_MAX_RETRIES | 3 | Maximum retry attempts for failed requests |
| Variable | Default | Description |
|---|---|---|
GURUFOCUS_DEFAULT_OUTPUT_FORMAT | toon | Default format: toon (token-efficient) or json |
| Variable | Default | Description |
|---|---|---|
GURUFOCUS_LOG_LEVEL | INFO | Logging level: DEBUG, INFO, WARNING, ERROR |
GURUFOCUS_LOG_FORMAT | console | Log format: console (human-readable) or json (structured) |
# Clone the repository
git clone https://github.com/yourorg/gurufocus-mcp.git
cd gurufocus-mcp
# Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies
uv sync --all-packages
# Run tests
uv run pytest
# Run tests with coverage
uv run pytest --cov --cov-report=html --junitxml=junit.xml
# Run linting
uv run ruff check .gurufocus-mcp/
├── packages/
│ ├── gurufocus-api/ # Python API client
│ └── gurufocus-mcp/ # MCP server
├── docs/ # Documentation
├── examples/ # Usage examples
└── pyproject.toml # Workspace configThis project is an unofficial tool and is not affiliated with, endorsed by, or sponsored by GuruFocus.com, LLC or any of its subsidiaries.
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.