mcpField
T
tenzir-ocsf

tenzir-ocsf

github.com/tenzirSecurity3121 installsUpdated 1d ago
Repository

About tenzir-ocsf

A skill for consulting OCSF reference documentation and answering questions from those sources, intended for users working with security event schemas. It requires reading relevant files first, limits claims to documented facts, and routes questions to a concise reading path.

Key features

  1. 01Routes questions to relevant documentation
  2. 02Looks up versions, classes, and objects
  3. 03Explains OCSF core concepts
  4. 04Answers only from consulted sources

Use cases

  1. 01Choose a class for a security event
  2. 02Find class or object attributes
  3. 03Review schema version changes
  4. 04Study extensions and profiles

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/tenzir/skills --skill tenzir-ocsf

After installing, type/tenzir-ocsfin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

articles.md
faqs.md
introduction.md
v1.0.0.md
articles/
defining-and-using-observables.md
modeling-alerts.md
OCSF-Storage-Strategies.md
patching-core-using-extensions.md
profiles-are-powerful.md
representing-process-parentage.md
faqs/
schema-faq.md
introduction/
appendix-a-guidelines-and-conventions.md
appendix-b-data-types.md
appendix-c-schema-construction-and-extension.md
attributes.md
categories.md
event-classes.md
extensions.md
introduction-to-the-framework-and-schema.md
notes.md
profiles.md
understanding-the-open-cybersecurity-schema-framework.md
v1.0.0/
classes.md
v1.0.0/classes/
account_change.md
api_activity.md
application_lifecycle.md
application.md
authentication.md
authorize_session.md
base_event.md

Details

From the project README

OCSF

Look up OCSF reference documentation and answer from those sources. Only state facts from files you read. Never invent schema details. If the documentation does not cover the question, say so.

Versions

Use the latest stable version unless the user requests a specific one. Stick to one version per answer.

Each version page links to its classes, objects, profiles, extensions, and types.

File layout

introduction.md          # OCSF overview and conceptual sections
introduction/{section}.md
faqs.md                  # Schema design rationale
faqs/{slug}.md
articles.md              # Deep-dive guides on specific topics
articles/{slug}.md
{version}.md             # Version summary (what's new, counts)
{version}/classes.md     # Class index grouped by category
{version}/classes/{name}.md
{version}/objects.md
{version}/objects/{name}.md
{version}/profiles.md
{version}/profiles/{name}.md
{version}/extensions.md
{version}/extensions/{name}/index.md
{version}/extensions/{name}/events/{event}.md
{version}/extensions/{name}/objects/{object}.md
{version}/extensions/{name}/profiles/{profile}.md
{version}/types.md

Question routing

Pick the shortest reading path for the question type.

Question patternStart here
Which class fits event X?Category table below → version classes index → candidate class pages
What attributes does class/object Y have?Version classes or objects index → the specific page
How do profiles work? / Which profile for X?Introduction: Profiles → version profiles index
How do I extend the schema?Introduction: Extensions or Patching the Core Schema
How do I populate observables / model alerts?FAQs and Articles
What changed between versions?Compare the two version pages
Conceptual / design questionIntroduction → FAQs

When the question asks you to pick a class, read multiple candidates and explain trade-offs.

Domain knowledge

Core concepts

Attributes are named fields with a data type. Every OCSF field has a requirement level: required, recommended, or optional.

Objects group related attributes into reusable structures. Objects can nest other objects.

Event classes define schemas for specific security events. Each class belongs to a category and inherits from Base Event.

Base Event provides universal attributes and serves as a catch-all when no more specific class fits.

Profiles are mix-ins that add cross-cutting attributes. A class can apply multiple profiles.

Extensions add vendor-specific attributes without modifying the core schema.

Event categories

Use the category range to narrow scope before diving into individual class pages.

RangeCategoryFocus
1xxxSystem ActivityOS-level: process, file, module, memory, kernel, registry
2xxxFindingsDetections, vulnerabilities, incidents, compliance
3xxxIAMAuthentication, authorization, account and group changes
4xxxNetwork ActivityGeneral traffic and protocol-specific activity
5xxxDiscoveryDevice, user, service, and resource enumeration
6xxxApplication ActivityWeb resources, API calls, file hosting, datastore operations
7xxxRemediationFile, process, network, and entity remediation actions
8xxxUnmannedDrones, vehicles, and robots
Naming conventions
  • snake_case everywhere: process_activity, network_endpoint.
  • Arrays use plural names: answers, enrichments, attacks.
  • When _id is Other (99), the sibling string must be populated with the source value.

Key suffixes:

SuffixMeaning
_idEnum integer identifier with a sibling string (same name minus _id). 0 = Unknown, 99 = Other.
_uidSchema-unique or external unique identifier (integer for classification attrs, string otherwise). Sibling uses _name.
_uuidGlobally unique 128-bit identifier (string). No sibling.
_nameFriendly name / caption sibling for _uid or _id attributes.
_timeTimestamp (timestamp_t, milliseconds since epoch).
_dtDatetime (datetime_t, RFC 3339 string). Added by the Date/Time profile alongside _time attributes.
_info / _detailObject carrying supplementary information.
_processReference to a Process object.
_verVersion string.
_listArray of values.

Answering principles

  • Read before answering. Every claim must trace back to a file you read.
  • Use the question routing table and category table to narrow scope before reading class or object pages.
  • Consult FAQs for schema design rationale and ambiguous mappings.
  • Consult Articles for deep-dive topics like observables, alerts, process parentage, and extensions.
  • Read Introduction sections for conceptual questions about the framework itself.

Comments

Markdown supported