Skip to main content
Glama

get_metric_time_series

Retrieve time-series data for a specific health metric within a defined period. Analyze trends by specifying start and end times, adjusting sample rates, and applying calculations like max, min, or mean values.

Instructions

Get user's time-series data for a single Fulcra metric.

Covers the time starting at start_time (inclusive) until end_time (exclusive). Result timestamps will include tz. Always translate timestamps to the user's local tz when this is known.

Args: metric_name: The name of the time-series metric to retrieve. Use get_metrics_catalog to find available metrics. start_time: The starting time period (inclusive). Must include tz (ISO8601). end_time: The ending time (exclusive). Must include tz (ISO8601). sample_rate: Optional. The number of seconds per sample. Default is 60. Can be smaller than 1. replace_nulls: Optional. When true, replace all NA with 0. Default is False. calculations: Optional. A list of additional calculations to perform for each time slice. Not supported on cumulative metrics. Options: "max", "min", "delta", "mean", "uniques", "allpoints", "rollingmean". Returns: A JSON string representing a list of data points for the metric. For time ranges where data is missing, the values will be NA unless replace_nulls is true.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
metric_nameYes
start_timeYes
end_timeYes
sample_rateNo
replace_nullsNo
calculationsNo

Implementation Reference

  • The handler function implementing the get_metric_time_series tool. It fetches time-series metric data from FulcraAPI.metric_time_series and returns it as JSON.
    @mcp.tool() async def get_metric_time_series( metric_name: str, start_time: datetime, end_time: datetime, sample_rate: float | None = 60.0, replace_nulls: bool | None = False, calculations: list[str] | None = None, ) -> str: """Get user's time-series data for a single Fulcra metric. Covers the time starting at start_time (inclusive) until end_time (exclusive). Result timestamps will include tz. Always translate timestamps to the user's local tz when this is known. Args: metric_name: The name of the time-series metric to retrieve. Use `get_metrics_catalog` to find available metrics. start_time: The starting time period (inclusive). Must include tz (ISO8601). end_time: The ending time (exclusive). Must include tz (ISO8601). sample_rate: Optional. The number of seconds per sample. Default is 60. Can be smaller than 1. replace_nulls: Optional. When true, replace all NA with 0. Default is False. calculations: Optional. A list of additional calculations to perform for each time slice. Not supported on cumulative metrics. Options: "max", "min", "delta", "mean", "uniques", "allpoints", "rollingmean". Returns: A JSON string representing a list of data points for the metric. For time ranges where data is missing, the values will be NA unless replace_nulls is true. """ fulcra = get_fulcra_object() # Ensure defaults are passed correctly if None kwargs = {} if sample_rate is not None: kwargs["sample_rate"] = sample_rate if replace_nulls is not None: kwargs["replace_nulls"] = replace_nulls if calculations is not None: kwargs["calculations"] = calculations time_series_df = fulcra.metric_time_series( metric=metric_name, start_time=start_time, end_time=end_time, **kwargs, ) return ( f"Time series data for {metric_name} from {start_time} to {end_time}: " + time_series_df.to_json( orient="records", date_format="iso", default_handler=str ) )
  • Helper function to obtain a FulcraAPI instance, handling authentication based on environment. Used by the tool handler.
    def get_fulcra_object() -> FulcraAPI: global stdio_fulcra if settings.fulcra_environment == "stdio": if stdio_fulcra is not None: return stdio_fulcra else: stdio_fulcra = FulcraAPI() stdio_fulcra.authorize() return stdio_fulcra mcp_access_token = get_access_token() if not mcp_access_token: raise HTTPException(401, "Not authenticated") fulcra_token = oauth_provider.token_mapping.get(mcp_access_token.token) if fulcra_token is None: raise HTTPException(401, "Not authenticated") fulcra = FulcraAPI() fulcra.set_cached_access_token(fulcra_token) return fulcra
  • The @mcp.tool() decorator registers this function as an MCP tool.
    @mcp.tool()

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fulcradynamics/fulcra-context-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server