Posted on ::

I recently built PortoSync, a Model Context Protocol (MCP) server that connects Indonesian investment portfolio data directly to AI assistants like Claude. It's been a game-changer for how my partner and I manage our scattered investments.

The Problem

Like many Indonesians, we have investments spread across multiple securities accounts. Checking our consolidated portfolio meant logging into different platforms, copying data, and manually piecing everything together. Not exactly fun when you're trying to have productive financial planning discussions.

What PortoSync Does

PortoSync connects to KSEI AKSES (the Indonesian central securities custodian) and lets you query your portfolio through natural language. Instead of navigating through multiple web interfaces, I can now just ask Claude things like:

  • "Show me my current holdings"
  • "What's my BBCA position?"
  • "How's my portfolio doing today?"

And get real-time data from all our accounts in one place.

PortoSync in action with Claude

P.S. The name, symbols, and numbers in the screenshot are redacted using random data.

Built on GoKSEI

This project was made possible by the GoKSEI library I built earlier. It's funny how tools enable better tools. What started as a simple way to programmatically access KSEI data became the foundation for something much more useful.

PortoSync supports all the major Indonesian investment types:

  • Saham (equities)
  • Obligasi (bonds)
  • Reksadana (mutual funds)

Technical Approach

I took a hybrid development approach for this project:

  • 20% traditional hand-coding for the core architecture and critical components
  • 80% AI-assisted development with careful supervision for the implementation details

This ratio is becoming my sweet spot for rapid prototyping. AI helps with the tedious parts while I focus on the architecture and business logic.

The MCP Advantage

The beauty of Model Context Protocol is that it makes AI assistants genuinely useful for real-world tasks. No more copy-pasting between apps or manual data gathering. The assistant gets direct access to your actual data and can help with analysis, planning, and decision-making.

PortoSync runs as either a stdio server or HTTP server, making it flexible enough to work with different MCP clients. I primarily use it with Claude Desktop, but it's designed to work with any MCP-compatible AI assistant.

Security and Privacy

Since this deals with financial data, security was a priority from day one. PortoSync:

  • Stores credentials securely using environment variables
  • Runs in a containerized environment with non-root user
  • Only accesses data you explicitly authorize
  • Keeps everything local, no data leaves your setup

Real-World Impact

The practical impact has been huge. Financial planning conversations with my partner are now much more productive. Instead of spending time gathering data, we spend time making decisions. "Hey Claude, show us our portfolio allocation" gives us instant insights to work with.

What's Next

I'm planning to add a local database and background worker to mirror the portfolio data. This would enable faster queries and reduce the load on KSEI's servers while keeping historical data for better insights. The MCP architecture makes it easy to add new features without breaking existing functionality.

If you're interested in trying it out, PortoSync is available on GitHub. Fair warning though, you'll need KSEI AKSES credentials and it's specifically built for the Indonesian market.

Building tools that solve your own real problems is incredibly satisfying. This one happens to make managing money less tedious, which feels like a win all around.