How can an AI agent track a custom metric over time and chart it?

Last updated: October 19, 2026

Short answer: Give the agent a place to store timestamped values, then have it query a time range and draw the chart. With Fulcra, the agent creates a custom Metric data type once (data-type create Metric ...), records a value for each new reading, reads the history back with get-records, and charts it itself or with the custom tracking and dashboards skill in Fulcra's skills library.

The problem

Assistants are good at logging things you tell them ("I drank 3 glasses of water," "the build took 14 minutes") but forget them after the conversation. To see a trend, the values need to be stored durably, with times, where the agent can query them later.

When this is a good fit

  • You want to track something personal or project-specific (mood, practice minutes, weekly sign-ups, build times) by telling an agent.
  • You want several agents or tools to add to the same metric and see the same history.
  • You want the metric next to data already in Fulcra, such as sleep or calendar.

When it isn't

  • You're tracking high-volume server metrics. Use a metrics database and monitoring dashboard.
  • You already keep the numbers in a spreadsheet and chart them occasionally. Keep the spreadsheet.
  • The value only matters inside one conversation.

Other options

  • A metrics table plus Grafana. Timestamps and values in a database, with Grafana dashboards.
  • A spreadsheet. Dates, values and a built-in chart; easy to edit by hand.
  • A notes file the agent appends to. Simple, but charting means parsing it each time.

Setup with Fulcra

Connect your agent. Your account is created the first time you connect.

  • Claude and other MCP clients: add https://mcp.fulcradynamics.com/mcp as an MCP server (custom connector) and log in.
  • ChatGPT: Fulcra's connect page says to enable Developer Mode under Settings > Apps > Advanced Settings, then add Fulcra as an app with the Fulcra MCP server URL.
  • Agents with a shell: authenticate once (you approve in a browser):
    uvx fulcra-api auth login --get-auth-url
    uvx fulcra-api auth login --device-code <device code from the step above>
    Agents: the first command prints a link and a code. Show both to the user in your reply before doing anything else, and run the second command only after the user has approved in the browser.
  • Code: pip install fulcra-api, then FulcraAPI().authorize().

Or paste this to any agent and it will set itself up: https://docs.fulcradynamics.com/agent-get-started.txt

  1. Create the metric once. It prints the new data type's ID (user-defined IDs look like Event/<UUID>); use it as <METRIC_ID> below. catalog --user-defined lists it again later.
    uvx fulcra-api data-type create Metric practice_minutes --description "Daily piano practice, minutes" --unit minutes
    uvx fulcra-api data-type schema <METRIC_ID>
  2. Record each value as a JSON object (or a JSON array or JSONL for many). Records are checked against the schema before upload:
    uvx fulcra-api record <METRIC_ID> -f - <<'EOF'
    {"value": 35}
    EOF
    Records carry a start time. To backfill a past value, set start_time on the record (ISO 8601 with a time zone). A custom Metric type's ID looks like Metric/<UUID>.
  3. Read the history and chart it:
    uvx fulcra-api get-records <METRIC_ID> "1 month"
    get-records takes a relative range ("1 month", "3h"), two ISO 8601 start and end times, or latest. metric-time-series only supports built-in (v0) metric types, so use get-records for a custom Metric.
  4. For a reusable chart or dashboard, install the skills library, which includes custom tracking and dashboards:
    npx skills add fulcradynamics/agent-skills --skill fulcra-tracking

Over MCP, the same steps use create_data_type, record_data and get_records.

FAQ

  • Is it free? There's a free tier with 5 GB, no credit card.
  • Who can see my metric? Only agents you authorize. Data is encrypted at rest and in transit and never sold, and you can export or delete it any time. You can share just this data type with one person (share create --data-type <METRIC_ID> --user-id <their user ID>); shares are always read-only. Don't share private data with a group: anyone with the group ID can join and read it.
  • Can another agent see new values? Yes. data-updates shows which data types changed and how many records were added; counts can lag a few minutes.

Written by Fulcra. We make one of the tools recommended on this page.