AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Add Global Variable

skill-microsoft-skills-for-copilot-studio-add-global-variable · by microsoft

Add a global variable to a Copilot Studio agent. Use when the user needs a variable that persists across topics in the same conversation and can optionally be visible to the AI orchestrator.

No reviews yet
0 installs
37 views
0.0% view→install

Install

$ agentstack add skill-microsoft-skills-for-copilot-studio-add-global-variable

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-microsoft-skills-for-copilot-studio-add-global-variable)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Add Global Variable? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Add Global Variable

Create a global variable that persists across all topics within a conversation.

Instructions

  1. Auto-discover the agent directory:

`` Glob: **/agent.mcs.yml `` Use the top-level agent. NEVER hardcode an agent name.

  1. Read settings.mcs.yml to get the schemaName prefix:

`` Read: /settings.mcs.yml ` Extract the root-level schemaName value (e.g., copilotsheadercre3c_fullagent`).

  1. Determine from the user:
  • Variable name (PascalCase, e.g., LastDiscussedCity)
  • Description of what it stores
  • Whether the AI orchestrator should be aware of it (aIVisibility)
  • Default value (if any)
  • DO NOT skip any of these properties. If the user doesn't provide them, ask follow-up questions to get the necessary information.
  1. Create the variable file at /variables/.mcs.yml:
# Name: 
# 
name: 
aIVisibility: 
scope: Conversation
description: 
schemaName: .globalvariable.
kind: GlobalVariableComponent
defaultValue: 
  1. Key fields explained:
  • name — PascalCase identifier. This is how topics reference the variable: Global. (e.g., Global.LastDiscussedCity).
  • aIVisibility — Controls orchestrator awareness:
  • UseInAIContext — The orchestrator can read and reason about this variable. Use when the variable influences routing or response generation (e.g., user preferences, conversation state the AI should track).
  • HideFromAIContext — The variable exists but the orchestrator doesn't see it. Use for internal bookkeeping (e.g., counters, flags) that topics use but the AI doesn't need to reason about.
  • scope: Conversation — Always Conversation for global variables (persists for the session).
  • schemaName — Must follow the pattern .globalvariable.. Read the prefix from settings.mcs.yml.
  • defaultValue — Initial value. Use DEFAULT if no specific initial value is needed.

How Topics Use Global Variables

Topics reference global variables with the Global. prefix:

# Reading a global variable in a condition
- kind: ConditionGroup
  id: conditionGroup_Xk9mPq
  conditions:
    - id: conditionItem_Lw3nRs
      condition: =!IsBlank(Global.LastDiscussedCity)
      actions:
        - kind: SendActivity
          id: sendMessage_Yt7vBw
          activity:
            text:
              - "Last time we discussed {Global.LastDiscussedCity}."

# Setting a global variable from a topic
- kind: SetTextVariable
  id: setTextVariable_Qp4kMn
  variable: Global.LastDiscussedCity
  value: =Topic.CityName

When to Use Global Variables

  • Cross-topic state: A value set in one topic needs to be read in another (e.g., user's preferred language, last search query)
  • AI-aware context: The orchestrator should know something about the conversation state to make better routing decisions (use UseInAIContext)
  • Conversation-wide defaults: A default value that multiple topics can read and optionally override
  • Dynamic knowledge sources: A global variable can hold a URL that a knowledge source references via =$"{Global.VarName}". This enables routing to different SharePoint folders or websites per user (e.g., by geolocation or department). See /copilot-studio:add-knowledge for the full pattern. Important: the variable value must be a clean, direct URL — not a SharePoint AllItems.aspx link with query parameters.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.