OpenWealth MCP Server - AI agent integration with Swiss wealth management systems via bLink gateway
Project description
openwealth-mcp
OpenWealth MCP Server for Claude — enabling conversational AI agents to query Swiss wealth management data via OpenWealth APIs.
Status: Phase 3 - Publication Ready — V3 API complete, test PyPI validation in progress ✅
What Is This?
An open-source MCP (Model Context Protocol) server that enables AI agents to interact with Swiss wealth management systems through the OpenWealth API v3.2.0 standard (Custody Services API).
This server provides a standardized interface for AI assistants like Claude to:
- List customers in the portfolio (cursor-based pagination)
- Get positions for portfolio holdings and asset allocation
- Get transactions for trade history and cash movements
Phase 1 Scope: Read-only operations only (Custody Services API). Write operations excluded.
Built with Python 3.11+ and designed for Swiss financial institutions using the OpenWealth standard.
Installation
For End Users (Using the MCP Server)
Prerequisites:
- Python 3.11+ (check with
python --version) - Claude Desktop app (download here)
- OpenWealth sandbox credentials (contact OpenWealth Association for access)
Step 1: Install the package
pip install alpflo-openwealth-mcp
Step 2: Configure Claude Desktop
Add this to your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"openwealth": {
"command": "python",
"args": ["-m", "openwealth_mcp"],
"env": {
"OPEN_WEALTH_USER": "your_username_here",
"OPEN_WEALTH_PASSWORD": "your_password_here",
"OPEN_WEALTH_BASE_URL": "https://api.openwealth.synpulse8.com/api/custody-services/v3"
}
}
}
}
Step 3: Restart Claude Desktop
The OpenWealth tools will now be available in your Claude conversations:
list_customers— Discover customers in your portfolioget_positions— View portfolio holdings and asset allocationget_transactions— Query transaction history
Example usage in Claude:
Show me all customers in my portfolio
What positions does customer C001 hold?
Get transactions for customer C001 in the last 30 days
Troubleshooting
"Server disconnected" error:
If Claude Desktop shows "Server disconnected", the package may not be installed globally:
# Install globally with pip
pip3 install alpflo-openwealth-mcp
# Or use the full path to your Python in the config
# macOS example:
{
"mcpServers": {
"openwealth": {
"command": "/Library/Frameworks/Python.framework/Versions/3.13/bin/python3",
"args": ["-m", "openwealth_mcp"],
"env": { ... }
}
}
}
Check installation:
python3 -c "import openwealth_mcp; print(openwealth_mcp.__version__)"
Development Setup
For Contributors (developing the MCP server itself)
Prerequisites
- Python 3.11+
uvpackage manager (install here)- OpenWealth sandbox credentials
Quick Start
# Clone repository
git clone https://github.com/alpflo/openwealth-mcp.git
cd openwealth-mcp
# Install dependencies
uv sync
# Run tests
pytest tests/unit/ -v
# Type check
uv run pyright src/
See CLAUDE.md for complete development workflow and testing guidelines.
Current MCP Tools
Three Read-Only Tools (Specification Complete)
This project provides read-only access to portfolio and customer data via the OpenWealth Custody Services API v3.2.0.
| Tool | Purpose | Status |
|---|---|---|
list_customers |
Discover customers in OpenWealth | ✅ Spec ready |
get_positions |
Fetch portfolio holdings | ✅ Spec ready |
get_transactions |
Query transaction history | ✅ Spec ready |
Scope: Read-only Custody Services API operations only. Write operations and customer lifecycle management are excluded.
Full API specifications: See docs/API-REFERENCE.md
Architecture
Claude Desktop → MCP Server → OpenWealth Client → OpenWealth API (Sandbox)
Key principles: Type safety, stateless tools, structured logging, read-only operations.
See docs/ARCHITECTURE.md for complete design philosophy and technical patterns.
Documentation
| Document | Purpose |
|---|---|
docs/ARCHITECTURE.md |
Design principles + technical stack |
docs/API-REFERENCE.md |
MCP tool schemas + examples |
docs/TESTING.md |
Testing guide + coverage reports |
docs/ROADMAP.md |
Development roadmap + milestones |
Tech Stack
Python 3.11+ • Pydantic • MCP SDK • httpx • structlog
See docs/ARCHITECTURE.md for complete details.
Roadmap
- ✅ Phase 1: Foundation complete
- ✅ Phase 2: Implementation + testing complete (81.90% coverage)
- ✅ Phase 3: Published to PyPI v0.1.0
Current Status: Production release available on PyPI
Contributing
Contributions are welcome! Please:
- Read CLAUDE.md for development setup and guidelines
- Run tests locally:
pytest tests/unit/ -v - Ensure type checking passes:
uv run pyright src/ - Follow Git workflow: feature branch → PR → review → merge
All contributions are licensed under Apache 2.0 (matching this repository).
See docs/ARCHITECTURE.md for design principles.
License
Apache License 2.0 — see LICENSE for full text.
Why Apache 2.0?
This project is licensed under Apache License 2.0 because:
- Explicit Patent Grant — Protects users and contributors from patent litigation
- Business-Friendly — Enables commercial use and proprietary extensions
- Permissive — Allows free use, modification, and redistribution
- Industry Standard — Widely adopted in AI tooling and wealth-tech ecosystems
Third-Party Notices
This project includes third-party libraries under Apache 2.0, MIT, and BSD licenses.
See NOTICE for complete attribution and license information.
All dependencies are compatible with Apache 2.0. No GPL-licensed code is included.
Contributing
Contributions are welcome once the initial implementation is complete. All contributions are implicitly licensed under Apache 2.0 (matching the repository license). We will not require a separate Contributor License Agreement (CLA) but reserve the right to add one if governance needs evolve.
For now, see CLAUDE.md for development guidelines.
About
Organization: alpflo (GitHub: @alpflo)
Purpose: Enable AI agents to interact with Swiss wealth management systems through a standardized, type-safe interface.
Status: Production release v0.1.0 available on PyPI.
Resources
- OpenWealth Association: https://openwealth.swiss
- MCP Protocol: https://modelcontextprotocol.io
- Claude Desktop: https://claude.ai/download
Last updated: 2026-05-29
Status: Phase 3 - Publication Ready ✅
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 alpflo_openwealth_mcp-0.1.2.tar.gz.
File metadata
- Download URL: alpflo_openwealth_mcp-0.1.2.tar.gz
- Upload date:
- Size: 141.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab13ed39f69b119097e37c4b31f40df7319d3165ac08ba63d1ef93b248dcba19
|
|
| MD5 |
bb324d01c5e9a706b0c9243270d54026
|
|
| BLAKE2b-256 |
4572ac9ae26306af4b6637a154686a284b3e60fb263957fd2a513e4202953798
|
Provenance
The following attestation bundles were made for alpflo_openwealth_mcp-0.1.2.tar.gz:
Publisher:
publish.yml on alpflo/openwealth-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
alpflo_openwealth_mcp-0.1.2.tar.gz -
Subject digest:
ab13ed39f69b119097e37c4b31f40df7319d3165ac08ba63d1ef93b248dcba19 - Sigstore transparency entry: 1675503487
- Sigstore integration time:
-
Permalink:
alpflo/openwealth-mcp@be39b4379ecdc1851eeab40022544d49be0f6d5d -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/alpflo
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@be39b4379ecdc1851eeab40022544d49be0f6d5d -
Trigger Event:
push
-
Statement type:
File details
Details for the file alpflo_openwealth_mcp-0.1.2-py3-none-any.whl.
File metadata
- Download URL: alpflo_openwealth_mcp-0.1.2-py3-none-any.whl
- Upload date:
- Size: 34.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f9ac6e14a842607b941a1a261aa8ac6695b869ec0164afcb037d263d2d808da
|
|
| MD5 |
653ff3e09f59377d03456f750a470182
|
|
| BLAKE2b-256 |
3d9cdf3c745002b651add791b09eeeddc3d2ec737cd971f8862c868acefdbb2e
|
Provenance
The following attestation bundles were made for alpflo_openwealth_mcp-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on alpflo/openwealth-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
alpflo_openwealth_mcp-0.1.2-py3-none-any.whl -
Subject digest:
7f9ac6e14a842607b941a1a261aa8ac6695b869ec0164afcb037d263d2d808da - Sigstore transparency entry: 1675503490
- Sigstore integration time:
-
Permalink:
alpflo/openwealth-mcp@be39b4379ecdc1851eeab40022544d49be0f6d5d -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/alpflo
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@be39b4379ecdc1851eeab40022544d49be0f6d5d -
Trigger Event:
push
-
Statement type: