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 ✅
Metadata
Release files for alpflo-openwealth-mcp 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| alpflo_openwealth_mcp-0.1.2.tar.gz | 141.5 kB | With provenance | Details for alpflo_openwealth_mcp-0.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| alpflo_openwealth_mcp-0.1.2-py3-none-any.whl | Python 3 | none | any | Details for alpflo_openwealth_mcp-0.1.2-py3-none-any.whl |
Total release size: 176.2 kB
Release files / alpflo_openwealth_mcp-0.1.2.tar.gz
| Download URL | alpflo_openwealth_mcp-0.1.2.tar.gz |
|---|---|
| Size | 141.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ab13ed39f69b119097e37c4b31f40df7319d3165ac08ba63d1ef93b248dcba19
|
|
BLAKE2b-256 checksum How to use checksums |
4572ac9ae26306af4b6637a154686a284b3e60fb263957fd2a513e4202953798
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 30, 2026.
Transparency logRelease files / alpflo_openwealth_mcp-0.1.2-py3-none-any.whl
| Download URL | alpflo_openwealth_mcp-0.1.2-py3-none-any.whl |
|---|---|
| Size | 34.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7f9ac6e14a842607b941a1a261aa8ac6695b869ec0164afcb037d263d2d808da
|
|
BLAKE2b-256 checksum How to use checksums |
3d9cdf3c745002b651add791b09eeeddc3d2ec737cd971f8862c868acefdbb2e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 30, 2026.
Transparency logSecurity for alpflo-openwealth-mcp 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for alpflo_openwealth_mcp-0.1.2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 30, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.