About Pp MCP
Pp MCP is an MCP server published by Nokke32 in the Files category: a read-only MCP server that provides filtered account and portfolio data from one or more Portfolio Performance .portfolio files.
The repository has 8 stars and 1 forks, with the last commit 2 months ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/Nokke32/pp-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Pp MCP
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository yesterday. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- ✓Tests presentA test suite exists in the repository.
- !Dependencies pinnedNo lockfile. Installs can pull different code over time.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
1 check has not been run yet.
README
English | Deutsch
pp-mcp — MCP Server for Portfolio Performance
A read-only MCP server that provides filtered account and portfolio data from one or
more Portfolio Performance .portfolio
files — e.g. to generate reports from them (transactions of an account,
distributions/interest/taxes for a period, etc.).
Files are only read, never modified. Supports unencrypted and AES-encrypted (password-protected) files. Works as a standard MCP server with any MCP-compatible AI assistant (Claude, etc.) or your own scripts.
📖 Full documentation is in the Wiki — installation (local & Docker, single- & multi-source), connecting AI assistants (Claude Desktop, Claude Code, others), example prompts, and the complete tool reference (parameters/return values) for scripting against pp-mcp directly.
Quick start
pip install -r requirements.txt
export PP_FILE_PATH=/path/to/file.portfolio
python -m src.main # from the repo root; runs on http://localhost:8080
Or with Docker:
cp .env.example .env
docker-compose -f docker-compose.dev.yml up -d --build
See the Installation wiki page for the production/multi-source Docker setup, all environment variables, and connecting an AI assistant (Configuring AI Tools).
Terminology
Portfolio Performance uses the word "portfolio" for two different things, which can be ambiguous — pp-mcp uses these terms consistently everywhere (tool descriptions, parameters, the wiki):
- Source (parameter
source) — one complete.portfoliofile, i.e. one configured data source. Seelist_data_sources. - Portfolio (parameter
portfolio_name) — a securities portfolio/depot within a source (Portfolio Performance's own internal term for this object). Seelist_portfolios. - Account (parameter
account) — a cash account within a source. Seelist_accounts. - Security (parameter
security) — a stock, fund, ETF, etc. Seelist_securities.
If it's unclear whether "portfolio" refers to a source or a portfolio/depot in a
given context, check list_data_sources and list_portfolios to see which one
actually matches.
Structure
src/config.py— Pydantic settings (env /.env).src/portfolio.py—Portfolioclass (mtime-based cache, name↔UUID resolution, filtering & aggregation, one instance per source) +PortfolioRegistry(manages multiplePortfolioinstances based on the configured sources, one persourceid).src/mcp_server.py— FastMCP tools (thin wrappers around the registry), optional bearer auth.src/price_feed.py— SSRF-protected scraper for theGENERIC_HTML_TABLEprice feed (ariva.de), used byrefresh_prices.src/main.py— server startup.src/pp_parser/— vendored parser (decrypts/decompresses the file, reads protobuf).
README fetched from the repository yesterday. The original is authoritative.