WorldQuant BRAIN MCP Server for Claude Code
Project description
WorldQuant BRAIN MCP Server
Minimal MCP server for WorldQuant BRAIN platform integration with Claude Code.
Features
- Complete BRAIN platform API integration (alphas, simulations, data)
- Forum access (glossary, search, posts)
- Biometric authentication support
- Browser automation for complex workflows
- Flexible credential management (env vars or system keyring)
Setup
1. Install Package
pip install -e .
# Install Playwright browser
python3 -m playwright install chromium
2. Configure Credentials
The server checks credentials in this order:
- Environment variables (
WQB_EMAIL,WQB_PASSWORD) - System keyring (macOS Keychain / Windows Credential Locker)
Choose one of the following methods:
Method 1: Environment variables via claude mcp add (recommended)
This registers the server and configures credentials in one step:
claude mcp add wqb-mcp -e WQB_EMAIL=you@example.com -e WQB_PASSWORD=yourpass -- python3 -m wqb_mcp.server
Method 2: System keyring
wqb-mcp-setup
3. Register MCP Server
Only needed if using Method 2 (Method 1 already registers the server).
Note: Use
python3(notpython) to ensure the correct interpreter is used when Claude Code spawns the process. Shell aliases don't work in non-interactive subprocesses.
claude mcp add wqb-mcp -- python3 -m wqb_mcp.server
4. Verify & Restart
# Check server connects
claude mcp list
# Restart Claude Code
exit
claude
Package Structure
wqb-mcp/
├── src/
│ └── wqb_mcp/
│ ├── __init__.py
│ ├── server.py # Entry point (auto-prompts setup on first run)
│ ├── setup.py # CLI credential setup
│ ├── models.py # Pydantic models
│ ├── config.py # Credential management (env vars + keyring)
│ ├── forum.py # Forum scraper (Playwright)
│ ├── client/
│ │ ├── __init__.py # BrainApiClient (composed from mixins)
│ │ ├── auth.py # Authentication
│ │ ├── simulation.py # Simulations
│ │ ├── alpha.py # Alpha management
│ │ ├── correlation.py # Correlation checks
│ │ ├── data.py # Datasets & datafields
│ │ ├── diversity.py # Diversity scoring
│ │ ├── community.py # Events, competitions
│ │ ├── user.py # Profile, messages, pyramids
│ │ ├── operators.py # Operators & selection
│ │ └── platform_config.py # Platform settings
│ └── tools/
│ ├── __init__.py # FastMCP instance
│ ├── auth_tools.py
│ ├── simulation_tools.py
│ ├── alpha_tools.py
│ ├── correlation_tools.py
│ ├── data_tools.py
│ ├── community_tools.py
│ ├── user_tools.py
│ ├── forum_tools.py
│ └── operators_tools.py
├── pyproject.toml
├── requirements.txt
└── README.md
Usage
Once configured, the MCP server provides tools for:
- Alphas: Create, simulate, submit
- Data: Fetch market data, fundamentals
- Simulations: Run backtests, analyze results
- Forum: Search docs, get glossary terms
- Account: Manage profile, settings
Troubleshooting
MCP shows "failed" status
- Check credentials are configured (see step 2 above)
- Make sure you used
python3notpythoninclaude mcp add - Run debug mode to see errors:
claude --debug
Playwright errors
Reinstall browser:
python3 -m playwright install chromium
Project details
Release history Release notifications | RSS feed
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 wqb_mcp-0.1.0.tar.gz.
File metadata
- Download URL: wqb_mcp-0.1.0.tar.gz
- Upload date:
- Size: 36.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c10c337d12a69519c5ab786137403a889a01df4c05b7d7c958b97640c2719af
|
|
| MD5 |
6276f484e8b488f38da37ce9e126509d
|
|
| BLAKE2b-256 |
95997f60f5632da231aaf62525ee69472ff7a5750656b3cd785d059bd75fec40
|
Provenance
The following attestation bundles were made for wqb_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on jordane95/wqb-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wqb_mcp-0.1.0.tar.gz -
Subject digest:
9c10c337d12a69519c5ab786137403a889a01df4c05b7d7c958b97640c2719af - Sigstore transparency entry: 952471786
- Sigstore integration time:
-
Permalink:
jordane95/wqb-mcp@2622fc3266fbbe768d14d71d4be8a1fe7c86bc56 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/jordane95
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2622fc3266fbbe768d14d71d4be8a1fe7c86bc56 -
Trigger Event:
push
-
Statement type:
File details
Details for the file wqb_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: wqb_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 45.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4f7d64496a331b62304025395d9ca71474833280fa996bc24b91ef6597b0c31
|
|
| MD5 |
af41b937960a97bbd2ccc6293497d2a9
|
|
| BLAKE2b-256 |
61b795a5ebd3b24d3baaee282d0ad9158c38a050907e4b0dcee64b2abbf60e64
|
Provenance
The following attestation bundles were made for wqb_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on jordane95/wqb-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wqb_mcp-0.1.0-py3-none-any.whl -
Subject digest:
b4f7d64496a331b62304025395d9ca71474833280fa996bc24b91ef6597b0c31 - Sigstore transparency entry: 952471787
- Sigstore integration time:
-
Permalink:
jordane95/wqb-mcp@2622fc3266fbbe768d14d71d4be8a1fe7c86bc56 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/jordane95
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2622fc3266fbbe768d14d71d4be8a1fe7c86bc56 -
Trigger Event:
push
-
Statement type: