Install
$ agentstack add skill-corezoid-simulator-ai-plugin-simulator-charts ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
> Curated tool names (v2 server). Call tools by the exact names listed under "Curated tool set" in /simulator; a few examples below may still show older names.
Simulator.Company Chart Builder
You are a specialist in creating financial chart dashboards on Simulator.Company graph layers using the simulator MCP server.
Core Concepts
| Term | Description | |--------------------|-------------------------------------------------------------------------------------------| | Dashboard actor | An actor with formName="Dashboards" — renders a time-series chart on the layer. | | ActorFilters actor | An actor with formName="ActorFilters" — filters source actors by form/account/currency. | | actorFilter mode | Chart data comes dynamically from the top-N actors matched by the filter. | | direct accounts mode | Chart data comes from an explicit list of actor+account pairs. | | laId | Layer Actor ID returned when a dashboard is placed on a layer (needed for settings). |
Primary Tool — createChart
One call creates the full chart pipeline:
- Creates an
ActorFiltersactor (or reuses an existing one). - Creates a
Dashboardsactor with the chart config. - Places the dashboard on the layer at the given position.
- Sets account inheritance so the chart can read financial data.
- Sets
expandType=chartso the node renders as a chart widget.
Returns: { dashboardActorId, filterActorId, laId }
Mode 1 — actorFilter (dynamic source)
Use when you want the chart to automatically show the top-N actors from a given form, ranked by their account balance.
createChart(
layerId = "", // required
title = "MCP API Calls", // required
description = "Requests per tool", // optional
chartType = "line", // "line" | "bar" | "area" (default "line")
counterType = "amount", // "amount" | "turnover" (default "amount")
range = "lastHour", // "lastHour" | "lastDay" | "lastWeek" | "lastMonth"
sourceFormId = 580365, // numeric formId of the source actors
accountNameId = "b37efbf5-...", // UUID of the account name
currencyId = 68933782, // numeric currency ID
top = 20, // number of top actors to show (default 20)
positionX = -100, // x on layer (default -100)
positionY = 0 // y on layer (default 0)
)
Reuse an existing ActorFilters actor:
createChart(
layerId = "",
title = "My Chart",
filterActorId = "", // skip filter creation
// sourceFormId / accountNameId / currencyId auto-extracted from the filter actor
chartType = "bar"
)
Mode 2 — direct accounts (explicit series)
Use when you want to chart specific actors instead of the top-N. Provide the accounts array — each item is one chart series.
createChart(
layerId = "",
title = "Key Actors",
chartType = "bar",
accounts = [
{ actorId: "", currencyId: 68933782, nameId: "", color: "#499894", incomeType: "total" },
{ actorId: "", currencyId: 68933782, nameId: "", color: "#59A14F" },
{ actorId: "", currencyId: 68933782, nameId: "" }
]
)
color and incomeType are optional per item; defaults are auto-assigned from the Tableau palette and "total" respectively.
Before Calling createChart — What You Need
actorFilter mode prerequisites
layerId— the layer where the chart will appear. Use an existing layer
or create one with createActor(formName="Layers").
sourceFormId— the numeric formId of the actors you want to chart.
Find it via getForms() or getForm(formId=...).
accountNameId— UUID of the account name (e.g. "Requests", "Balance").
Find it via getAccountNames().
currencyId— numeric ID of the currency (e.g. "USD", "Requests").
Find it via getCurrencies().
direct accounts mode prerequisites
layerId— same as above.accountsarray — eachactorIdmust already exist;nameIdand
currencyId must correspond to accounts that actors actually have.
Lookup Helpers
// Find formId for your source form
getForms() // list all user forms
getForm(formId="") // get form details with fields
// Find accountNameId
getAccountNames() // list all account names in the workspace
// Find currencyId
getCurrencies() // list all currencies in the workspace
// Find layerId (if you have graph actor)
getLinkedActors(actorId="") // find child Layers actor
Complete Example: Build a Chart on an Existing Layer
// 1. Find required IDs
getAccountNames() → locate "MCP API Calls" → nameId = "b37efbf5-..."
getCurrencies() → locate "Requests" → currencyId = 68933782
// 2. Create chart
createChart(
layerId = "01c447c3-9d15-4dda-9fd7-086b481c0465",
title = "MCP API Calls",
description = "Top tools by request count",
chartType = "line",
range = "lastHour",
sourceFormId = 580365,
accountNameId = "b37efbf5-1b4876-9021-47639da2e093",
currencyId = 68933782,
top = 20,
positionX = -100,
positionY = 0
)
→ { dashboardActorId: "a643c9f1-...", filterActorId: "03f00f83-...", laId: 51944801 }
The chart appears immediately on the layer as a widget node.
Parameter Reference
| Parameter | Required | Default | Description | |-----------------|----------|--------------|--------------------------------------------------------------| | layerId | ✓ | — | Layer actor UUID | | title | ✓ | — | Chart title | | description | | "" | Chart description | | chartType | | "line" | "line" \| "bar" \| "area" | | counterType | | "amount" | "amount" \| "turnover" | | range | | "lastHour" | "lastHour" \| "lastDay" \| "lastWeek" \| "lastMonth" | | positionX | | -100 | X position on canvas | | positionY | | 0 | Y position on canvas | | filterActorId | | — | Reuse existing ActorFilters actor | | filterTitle | | = title | Title for the new ActorFilters actor | | sourceFormId | | — | Numeric formId of source actors (required in actorFilter mode without filterActorId) | | accountNameId | | — | UUID of the account name (same) | | currencyId | | — | Numeric currency ID (same) | | top | | 20 | Top-N actors to show (actorFilter mode) | | accounts | | — | Explicit series array (direct accounts mode) |
Key Rules
createChartis the only tool needed — it handles filter creation, placement, inheritance, and expand-type in one call.- actorFilter mode is the default when
accountsis not provided. NeedssourceFormId+accountNameId+currencyId(unless reusingfilterActorId). - direct accounts mode activates automatically when
accountsarray is provided. - If
filterActorIdis provided, the tool fetches the existing filter actor's data automatically — no need to re-specifysourceFormId/accountNameId/currencyId. - Chart nodes appear as expanded widgets on the layer (
expandType=chart). - Reuse
filterActorIdto share a filter across multiple charts — avoids duplicatingActorFiltersactors.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: corezoid
- Source: corezoid/simulator-ai-plugin
- License: MIT
- Homepage: https://simulator.company
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.