Skip to main content
The Coding Agent Governance inventory is a live picture of what your developers run on a workstation. Each entry aggregates events from the deployed hooks so you can answer the question, “What AI is in my organization right now?”

Open the inventory

Select Agent Governance from the left sidebar, then select Inventory. The page opens on the Workstation Inventory tab. Switch tabs to choose what you want to review:
  • Workstation Inventory to see installed agents and their activity.
  • MCP Servers to see the MCP servers your agents call.
  • AI Models to see the underlying models invoked through agents.
  • Skills to see the skills your agents loaded during sessions.
Each tab lets you filter, search, and pivot into the Coding Agent Governance overview, policies, or policy violations. Every tab also opens a detail drawer on row click. Every drawer carries a Usage section that lists who uses the item, and a download icon in the header that exports the item’s events as a CSV report.

Workstation Inventory

The Workstation Inventory tab shows every agent and AI tool your hooks have observed. The Developers with Coding Agents pie chart breaks down the agents your developers use. The Sessions trend compares this week’s sessions against last week’s. Workstation Inventory Branded logos appear only for governed agents such as Cursor, Claude Code, Codex, and GitHub Copilot. Every other row (including discovered tools and any agent type the user interface has not yet learned to recognize) shows a generic AI model icon. Use the table to spot agents that are out of date, developers whose agent has stopped reporting, and tools your developers added that you have not adopted. Select a row to open the agent’s detail drawer. The header shows a Governed or Discovered status chip. Below the chip, the drawer shows:
  • Last Seen and Sessions cards, with the reported version when the agent sends one.
  • A Usage section. Select Distinct Users to open the users panel.
  • An Activity section. Select Recent Events to open the event list in a side panel, or Policy Violations to jump to that agent’s violations.
Claude Code agent detail drawer showing the Governed status chip, the Last Seen and Sessions cards, and the Usage and Activity sections

MCP Servers

The MCP Servers tab shows every MCP server your agents have called. The following cards summarize the MCP servers your agents called in the last month:
  • Risk: A donut chart that buckets servers by the risk band derived from their Endor Score.
  • By Source: A pie chart that breaks servers down by where they come from.
  • Blocked: The count of servers your policies block.
Use the Risk filter to focus on the riskiest servers. Policies set the review and threat labels. A policy with an inventory classification tags the servers it matches as Approved, Blocked, Suspicious, or Malicious, and servers with no matching policy show Unreviewed. See Inventory classification to set the tags. The label and the score are different signals. The label records your organization’s decision, applied by your policies. The Endor Score and the risk band derived from it are computed by Endor Labs from the server’s configuration and source. A low-scoring server stays Unreviewed until a policy classifies it. To connect the two, write an MCP Server Posture policy that matches on a score threshold and carries an inventory classification. For example, tag every server scoring 4 or lower as Blocked. MCP Servers inventory

Identify unsanctioned MCP servers

The following steps enable you to identify unsanctioned MCP servers.
  1. Select a server to open its detail drawer. It opens with Last Seen and Tool Calls cards.
  2. Review the details section: the source, server type, host, transport, launch command, available tools, and environment variable names.
  3. Under Usage, select Distinct Users to open the users panel.
  4. Under Risk, select Policy Violations to open that server’s violations, or Endor Score Factors to open the per-dimension Endor Score breakdown in a side panel.
See Write a policy to gate access to specific servers. MCP server detail drawer showing the Last Seen and Tool Calls cards, the details section with the Source field, and the Usage and Risk sections

MCP server sources

The Type column, the By Source pie chart, and the drawer’s Source field classify each server by where it comes from. Whether the server runs locally or remotely is a separate signal, shown as Server Type in the drawer. A server shows a dash until it is classified. That covers servers last seen before your hooks picked up source classification, and events the hook had no configuration snapshot to check against. The classification updates as new events arrive. Endor Labs doesn’t score agent plugins as a single unit. It evaluates the MCP servers and skills a plugin contributes. See How Coding Agent Governance works for related inventory limits.

AI Models

The AI Models tab shows the language models invoked through your agents. Above the table, a Top Models by Sessions list ranks the most-used models and a Top Providers by Sessions list ranks their providers in the selected time range. Every column in the table is sortable, and the filters narrow the table to one agent or provider. AI Models inventory Use the table to track model adoption and to flag models that fall outside your approved set. Select a row to open the model’s detail drawer: Last Seen and Tool Calls cards, and a Usage section whose Distinct Users entry opens the users panel.

Skills

The Skills tab shows the skills your agents loaded during sessions. The following cards summarize the skills your agents loaded in the last month:
  • Risk: A donut chart that buckets skills by the risk band derived from their Endor Score.
  • Top 5 Riskiest Skills: The lowest-scoring skills by Endor Score.
  • Blocked: The count of skills your policies block.
Use the Risk filter to focus on the riskiest skills. As with MCP servers, policies set the review and threat labels. See Inventory classification. These labels are separate from the score bands (Unauthorized, Caution, Safe) that come from the Endor Score. Skills inventory Use the table to triage low-scoring skills and to coordinate with developers on which skills your organization trusts. Policies can flag or block skills by name or by Endor Score. See Skill Access to write those rules.

Review a skill

The following steps enable you to review a skill’s metadata, content, users, and risk.
  1. Select a row to open the skill’s detail drawer. It opens with Last Seen and Sessions cards.
  2. Review the frontmatter metadata: description, allowed tools, license, compatibility, file count, and file path.
  3. Under Content, open the captured SKILL.md in a side panel.
  4. Under Usage, select Distinct Users to open the users panel.
  5. Under Risk, select Endor Score Factors to open the per-dimension score breakdown.
Skill detail drawer showing the Last Seen and Sessions cards, frontmatter metadata, the SKILL.md content entry, and the Usage and Risk sections

How skills are discovered

At every session start, the hook scans for SKILL.md files in two directory scopes and reports every skill it finds on the session-start event. Cursor scans across the common agent skill directories so that a skill installed for any supported agent appears in the inventory.

SKILL.md format

Each skill is a directory that contains a SKILL.md file with YAML frontmatter.
The frontmatter exposes these keys to the Endor Labs inventory:
  • name: Used as the skill identifier. If it’s missing, the inventory uses the parent directory name instead.
  • description: Shown on the skill row and detail page.
  • license: Surfaced alongside the skill for compliance review.
  • compatibility: Free-text dependency requirement.
  • allowed-tools: List of tools the skill may call. Accepts a YAML list or a space-separated string.

Discovery limits and behavior

Skill discovery works within the following limits:
  • A single event carries up to 100 skills. The hook skips any additional skills.
  • The hook truncates each skill’s content to 128 KiB and caps a single event payload at 10 MiB. When a skill’s content would push the payload past the cap, the hook reports that skill with metadata only.
  • The hook skips directories named .git, node_modules, vendor, __pycache__, and .venv to keep discovery fast.
  • The hook doesn’t follow symbolic links.
  • If two skills share the same name, the first one encountered wins. Workspace directories scan before user-home directories.
  • The hook skips SKILL.md files it cannot read, so a single corrupt skill doesn’t break inventory. A readable file with malformed frontmatter still appears, using the directory name as the skill name.
The hook doesn’t capture skills the agent loads at runtime from outside the scanned directories.

See who uses an item

Every detail drawer carries a Usage section with a Distinct Users entry showing the all-time count of developers observed using the item. Select the entry to open the users list in a side panel. The list shows every developer who has used the item, when they were first seen, and how active they have been over the last 30 days. When an item looks risky, it tells you which developers to talk to and whether they still use it. Distinct Users panel listing each user of the Claude Code agent with first seen, last active, and active days The list itself is all-time, and the two activity columns cover the last 30 days. N/A in the activity columns means the user has been idle on the item for over a month, not that data is missing. Agents report different user identifiers, so one developer can appear as more than one row. Cursor reports the developer’s email. Claude Code reports the email or the operating system login. Codex and GitHub Copilot report the operating system login.

Next steps

Continue with the following pages: