Skip to main content

MCP server for MeroShare (CDSC Nepal) — IPO/FPO applications, portfolio, and share management

Project description

mcp-meroshare

MCP (Model Context Protocol) server for MeroShare — Nepal's online share application system by CDSC Nepal.

Use it through opencode or any MCP-compatible client to manage IPO/FPO applications, portfolio, and share transactions directly from your AI tools.

Security

Credentials are stored in your OS keychain — the AI model cannot read them.

The project ships with an opencode.json config containing permission rules that block the model from accessing credentials through any bash command. The model is denied from:

  • Reading the OS keychain (keyring.get_password, security find-generic-password)
  • Reading environment variables (MERO_SHARE_*)
  • Running arbitrary python3 or python commands

The only Python commands allowed are pre-approved subcommands: python3 -m pytest, python3 -m build, python3 -m mcp_meroshare, and pip operations.

OS Backend
macOS Keychain (Security Framework)
Windows Windows Credential Manager
Linux Secret Service (gnome-keyring / KDE Wallet)

If no keychain backend is available (e.g. headless Linux), the server falls back to a JSON config file at ~/.meroshare/config.{profile}.json with a warning. The opencode.json rules also block the model from reading these fallback files.

Features

  • IPO/FPO Application — view open issues, apply with dry-run support
  • Portfolio — check your holdings and transaction history
  • Account — view DP list, own details, linked bank accounts
  • Multiple Accounts — switch between profiles (e.g. personal, family, office)
  • Security — credentials stored in OS keychain, never pass through the AI model

Tools

Tool Description
meroshare_get_dp_list List all DPs with their code numbers (call this first)
meroshare_login Log in to an account profile (reads from keychain)
meroshare_logout Clear session
meroshare_get_current_issues Open IPO/FPO/Rights issues
meroshare_apply_ipo Apply for an issue (with dry_run preview)
meroshare_get_bank_details Linked bank account info
meroshare_get_own_detail Your profile (BOID, demat, email)
meroshare_get_transactions Share transaction history

Installation

pip install mcp-meroshare

Quick Start

1. Find your DP

Call meroshare_get_dp_list to see available Depository Participants. Note the code number (e.g. 10400 for NABIL INVESTMENT BANKING LTD.).

2. Add a profile (terminal, not through AI)

mcp-meroshare add

You'll be prompted for:

  • DP code (from step 1)
  • Username (your BOID)
  • Password
  • CRN number
  • Transaction PIN (optional)

Credentials are saved to your OS keychain — the AI model never sees them.

3. Log in

meroshare_login

4. Apply for an IPO

meroshare_get_current_issues
meroshare_apply_ipo company_share_id: 123, applied_kitta: 10, demat: "...", boid: "...", bank_id: 1, account_branch_id: 1, account_number: "...", account_type_id: 1, customer_id: 1

Use dry_run: true to preview the application without submitting.

Multiple Accounts (Profiles)

mcp-meroshare add --profile <username>
mcp-meroshare add --profile aayansh

Then in your AI client:

"Apply 10 kitta for the recent ipo using aayansh login"

Each profile stores a separate entry in the OS keychain under service mcp-meroshare. The default profile name is default.

Environment Variables

Variable Default Description
MERO_SHARE_SESSION_TIMEOUT 900 (15 min) Session idle timeout in seconds
MERO_SHARE_MAX_RETRIES 2 Number of retries on 5xx/network errors
MERO_SHARE_CLIENT_ID DP client ID (resolved from DP code during configure)
MERO_SHARE_USERNAME MeroShare username / BOID
MERO_SHARE_PASSWORD Account password
MERO_SHARE_CRN_NUMBER CASBA registration number
MERO_SHARE_TRANSACTION_PIN Transaction PIN

Resolution order: OS keychain → environment variables → JSON config file (legacy fallback).

Set any of these to override the keychain value for a session.

CLI Flags

mcp-meroshare                   Run the MCP server (default)
mcp-meroshare add               Interactive credential setup (saves to OS keychain)
mcp-meroshare add --profile user_name     Set up a specific profile
mcp-meroshare remove --profile default Remove a profile from keychain
mcp-meroshare list              Show all configured profiles
mcp-meroshare --debug           Run with debug logging
mcp-meroshare --version         Show version

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_meroshare-1.5.0.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_meroshare-1.5.0-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

Details for the file mcp_meroshare-1.5.0.tar.gz.

File metadata

  • Download URL: mcp_meroshare-1.5.0.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for mcp_meroshare-1.5.0.tar.gz
Algorithm Hash digest
SHA256 6f47f4310979f300cb26a57dff96ee67eff8c591ecc585d9d5a86893113ffd98
MD5 6c11d39e0e29418e2ad0a9ff28b52416
BLAKE2b-256 b8cacb2e24b691fde1a622254819656ce3f1d7b682aefdc7d3857a945cd1749f

See more details on using hashes here.

File details

Details for the file mcp_meroshare-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: mcp_meroshare-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 21.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for mcp_meroshare-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f54a632df6934751f6d39e767975e17fd13e65c8225a1793f08c02da45210896
MD5 0d475f9bb70e9db032d88aa80fb0a1a4
BLAKE2b-256 746b2949c933bf03eb06352246fdf3f72b102ad1de136d6b6e4ba18d77b8b3ad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page