Skip to main content

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 ✅

Tests Integration Tests License


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:

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 portfolio
  • get_positions — View portfolio holdings and asset allocation
  • get_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+
  • uv package 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:

  1. Read CLAUDE.md for development setup and guidelines
  2. Run tests locally: pytest tests/unit/ -v
  3. Ensure type checking passes: uv run pyright src/
  4. 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:

  1. Explicit Patent Grant — Protects users and contributors from patent litigation
  2. Business-Friendly — Enables commercial use and proprietary extensions
  3. Permissive — Allows free use, modification, and redistribution
  4. 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


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)

Source distribution for alpflo-openwealth-mcp 0.1.2
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)

Table of built distributions (wheels) for alpflo-openwealth-mcp 0.1.2
File Interpreter ABI Platform Actions
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page