We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ariadng/metatrader-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
from fastapi import APIRouter, HTTPException, Request, Query
from typing import List, Dict, Any, Optional
from datetime import datetime
router = APIRouter()
@router.get("/deals", response_model=List[Dict[str, Any]])
async def history_deals(
request: Request,
from_date: Optional[datetime] = Query(None, description="Start date (ISO format)"),
to_date: Optional[datetime] = Query(None, description="End date (ISO format)"),
symbol: Optional[str] = Query(None, description="Symbol filter, e.g., 'EURUSD'")
):
"""
Fetches historical deals and returns them as a list of records for easy data analysis and manipulation.
Input:
from_date (Optional[datetime]): Start date (ISO format)
to_date (Optional[datetime]): End date (ISO format)
symbol (Optional[str]): Symbol filter, e.g., 'EURUSD'
Response:
List[Dict[str, Any]]: List of deals as dictionaries.
"""
client = request.app.state.client
try:
df = client.history.get_deals_as_dataframe(from_date=from_date, to_date=to_date, group=symbol)
return df.to_dict(orient='records')
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
@router.get("/orders", response_model=List[Dict[str, Any]])
async def history_orders(
request: Request,
from_date: Optional[datetime] = Query(None, description="Start date (ISO format)"),
to_date: Optional[datetime] = Query(None, description="End date (ISO format)"),
symbol: Optional[str] = Query(None, description="Symbol filter, e.g., 'EURUSD'")
):
"""
Fetches historical orders and returns them as a list of records for easy data analysis and reporting.
Input:
from_date (Optional[datetime]): Start date (ISO format)
to_date (Optional[datetime]): End date (ISO format)
symbol (Optional[str]): Symbol filter, e.g., 'EURUSD'
Response:
List[Dict[str, Any]]: List of orders as dictionaries.
"""
client = request.app.state.client
try:
df = client.history.get_orders_as_dataframe(from_date=from_date, to_date=to_date, group=symbol)
return df.to_dict(orient='records')
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))