- Mcp Portfolio Ideas
Mcp Portfolio Ideas
MCP Portfolio Ideas (Hosted Remote MCP Server)
mcp-portfolio-ideas is a hosted MCP server for portfolio understanding and idea generation with LLMs.
It gives your MCP client structured tools to:
- store and inspect portfolios
- optimize allocations with multiple strategies
- explain risk/return tradeoffs
- keep optimization defaults as reusable preferences
The server endpoint is:
https://mcp-portfolio-ideas.metapartner.ai/mcp/sse/
Why Use It
Without MCP, portfolio analysis in chat is mostly unstructured text and guesses.
With this server, your LLM can call typed tools and return:
- reproducible outputs
- strategy-aware optimization
- auditable settings used for each run
- a consistent workflow from portfolio input to optimized result
Quick Start (LM Studio First)
LM Studio uses an mcp.json file with an mcpServers object.
- Open your LM Studio MCP config file.
- Add the server entry below under
mcpServers. - Restart/reload MCP servers in LM Studio.
Use this entry:
{
"mcpServers": {
"mcp-portfolio-ideas": {
"url": "https://mcp-portfolio-ideas.metapartner.ai/mcp/sse/",
"transport": "sse",
"headers": {
"X-API-Key": "mcp_portf_ideas_guest_512B6vEMEMUZqJorLW9JlEzQrpMagnlwi-95QkqvxZk"
}
}
}
}
Copy-paste example file:
github/examples/lm-studio-mcp.json
Use In Other MCP Clients
Any MCP client that supports:
- remote
ssetransport - custom HTTP headers
can use this same server. See:
github/examples/remote-mcp-entry.json
Tool Catalog
Current toolset:
Portfolio management
create_portfolio
- Purpose: create/store a portfolio from symbols or symbol->weight map.
- Args:
portfolio:dict[str,float]orlist[str]portfolio_name(optional):str
- Access: registered users only.
list_portfolios
- Purpose: list accessible portfolios.
- Args: none.
- Access: guest + registered.
get_portfolio
- Purpose: get allocation + performance + optimization metadata in one call.
- Args:
portfolio_id:str
- Access: guest + registered.
rename_portfolio
- Purpose: rename an existing portfolio.
- Args:
old_name:strnew_name:str
- Access: registered users only.
delete_portfolio
- Purpose: delete a portfolio.
- Args:
portfolio_id:str
- Access: registered users only.
Optimization
optimization_settings
- Purpose: get/set/validate/delete optimization defaults and overrides.
- Args:
operation:"get" | "set" | "validate" | "delete"(default:"get")portfolio_name(optional):strsettings(optional):dictscope:"user" | "portfolio"(default:"user")
- Access:
get+validate: guest + registeredset+delete: registered users only
optimize_portfolio
- Purpose: optimize an existing portfolio and create
optimized_{PORTFOLIO}_{TIMESTAMP}. - Args:
portfolio_name:strstrategy: strategy name or"auto"constraints:dict | "auto" | nullstrategy_parameters:dict | "auto" | nullcalc_library:"PyPortfolioOpt" | "RiskfolioLib" | "auto"save_as_preference:boolpreference_scope:"user" | "portfolio"
- Access: registered users only.
Discovery and feedback
get_help
- Purpose: task-focused help and prompt guidance.
- Args:
topic(optional):str
- Access: guest + registered.
get_capabilities
- Purpose: inspect strategies, constraints, library support, and role permissions.
- Args: none.
- Access: guest + registered.
submit_feedback
- Purpose: send product feedback / feature requests.
- Args:
text:str
- Access: guest + registered.
Strategy Examples
Common strategies:
maximize_sharpe_ratiominimize_volatilitymaximize_returnefficient_return(PyPortfolioOpt only)efficient_risk(PyPortfolioOpt only)hrp(RiskfolioLib)minimize_cvar(RiskfolioLib)black_litterman(RiskfolioLib)
Aliases:
mean-variancemean_variancemarkowitz
Example User Interactions
Starter prompts for your LLM:
- "Create a portfolio named
CoreTechwith AAPL 10%, MSFT 35%, GOOGL 30%, TSLA 7%, AMZN 8%." - "Optimize
CoreTechfor maximum Sharpe ratio with max 50% per asset." - "Set user defaults to
minimize_volatilitywith max 25% per asset." - "Use auto settings to optimize
CoreTechagain."
More prompt packs:
github/examples/prompt-playbook.md
Technical Implementation
High-level architecture:
- FastAPI service with MCP mounted at
/mcp - SSE transport at
/mcp/sse/
Implementation highlights:
- Optimization:
- supports
PyPortfolioOptandRiskfolioLib - loads data via
yfinance
- supports
- Defaults:
- 1 year horizon
- mean-variance portfolio optimization
- maximize Share ratio (relative return, scaled by associated risk)
Access Modes and Limits
- The config above uses a guest key:
- good for discovery, help, read operations
- since guests are operating in a shared workspace, we clean it up every night, to facilitate a better user experience.
- For full features, and private portfolios and calculations, use a registered user key (ask us).
Disclaimer
This service is for informational and educational purposes, it does not constitute financial advice. Portfolio optimization is based on historical data which may not predict future performance. Past performance does not guarantee future results. All investments carry risk including potential loss of principal. Consult with a qualified financial advisor before making investment decisions. Calculations have been done using your assets percentages, but scaled to an account value of $100,000.00 for illustrative purposes. You are expected to learn and make up your mind from this analysis, not to to follow it blindly.
Server Config
{
"mcpServers": {
"mcp-portfolio-ideas": {
"url": "https://mcp-portfolio-ideas.metapartner.ai/mcp/sse/",
"transport": "sse",
"headers": {
"X-API-Key": "mcp_portf_ideas_guest_512B6vEMEMUZqJorLW9JlEzQrpMagnlwi-95QkqvxZk"
}
}
}
}