MCP_TradingAgents / accounts_server.py
Anindhya's picture
Upload folder using huggingface_hub
01f0e50 verified
from mcp.server.fastmcp import FastMCP
from accounts import Account
mcp = FastMCP("accounts_server")
@mcp.tool()
async def get_balance(name: str) -> float:
"""Get the cash balance of the given account name.
Args:
name: The name of the account holder
"""
return Account.get(name).balance
@mcp.tool()
async def get_holdings(name: str) -> dict[str, int]:
"""Get the holdings of the given account name.
Args:
name: The name of the account holder
"""
return Account.get(name).holdings
@mcp.tool()
async def buy_shares(name: str, symbol: str, quantity: int, rationale: str) -> float:
"""Buy shares of a stock.
Args:
name: The name of the account holder
symbol: The symbol of the stock
quantity: The quantity of shares to buy
rationale: The rationale for the purchase and fit with the account's strategy
"""
return Account.get(name).buy_shares(symbol, quantity, rationale)
@mcp.tool()
async def sell_shares(name: str, symbol: str, quantity: int, rationale: str) -> float:
"""Sell shares of a stock.
Args:
name: The name of the account holder
symbol: The symbol of the stock
quantity: The quantity of shares to sell
rationale: The rationale for the sale and fit with the account's strategy
"""
return Account.get(name).sell_shares(symbol, quantity, rationale)
@mcp.tool()
async def change_strategy(name: str, strategy: str) -> str:
"""At your discretion, if you choose to, call this to change your investment strategy for the future.
Args:
name: The name of the account holder
strategy: The new strategy for the account
"""
return Account.get(name).change_strategy(strategy)
@mcp.resource("accounts://accounts_server/{name}")
async def read_account_resource(name: str) -> str:
account = Account.get(name.lower())
return account.report()
@mcp.resource("accounts://strategy/{name}")
async def read_strategy_resource(name: str) -> str:
account = Account.get(name.lower())
return account.get_strategy()
if __name__ == "__main__":
mcp.run(transport='stdio')