Sigmeta
FreeNot checkedParse and classify signal metadata (freq, modulation, bandwidth) into a normalized catalog.
About
Parse and classify signal metadata (freq, modulation, bandwidth) into a normalized catalog.
README
SIGMETA
Parse and classify signal metadata (freq, modulation, bandwidth) into a normalized catalog.
PyPI CI License: COCL 1.0 Suite
Part of the Cognis Neural Suite.
pip install cognis-sigmeta
sigmeta classify capture.log # → normalized signal catalog in ms
🔎 Example output
Real, reproducible output from the tool — runs offline:
$ sigmeta-emit --version
sigmeta 0.6.6
$ sigmeta-emit --help
usage: sigmeta [-h] [--version] [--format {table,json,csv}] {classify} ...
Parse and classify signal metadata into a normalized catalog.
positional arguments:
{classify}
classify parse a signal log into a normalized catalog
options:
-h, --help show this help message and exit
--version show program's version number and exit
--format {table,json,csv}
output format (default: table)
Blocks above are real
sigmetaoutput — reproduce them from a clone.
Sample result format (illustrative values — run on your own data for real findings):
{
"findings": [
{
"id": "1234567890",
"title": "Suspicious Network Traffic",
"description": "Anomalous network traffic detected from IP 192.168.1.100",
"created_by": "John Doe",
"created_at": "2023-02-15T14:30:00Z"
},
{
"id": "2345678901",
"title": "Malware Detection",
"description": "Malware detected on machine with IP 192.168.1.101",
"created_by": "Jane Smith",
"created_at": "2023-02-16T10:45:00Z"
}
]
}
Contents
- Why sigmeta? · Features · Quick start · Example · Architecture · AI stack · How it compares · Integrations · Install anywhere · Related · Contributing
Usage — step by step
sigmeta parses textual signal-metadata logs into a normalized catalog (frequency, band, modulation, bandwidth, service hint). Analysis-only — no transmit or hardware control. Exits 1 when no records parse.
Install
pip install sigmetaClassify a log file into a catalog table:
sigmeta classify capture.logPipe from stdin (the input arg defaults to
-):cat capture.log | sigmeta classify -Read JSON output for downstream processing, CSV for spreadsheets/SIEM, or just the rollup with
--summary-only:sigmeta --format json classify capture.log | jq '.summary' sigmeta --format csv classify capture.log > catalog.csv sigmeta classify capture.log --summary-onlyGate automation/CI — use
--strictto fail on the first unparseable line, and rely on the non-zero exit when nothing parses:sigmeta classify capture.log --strict || echo "no usable signal records"
Why sigmeta?
Parse and classify signal metadata (freq, modulation, bandwidth) into a normalized catalog. — without standing up heavyweight infrastructure.
sigmeta is single-purpose, scriptable, and self-hostable: point it at a log, get a normalized catalog in the format your workflow already speaks (table · JSON · CSV), gate CI on the exit code, and let agents drive it over MCP.
Features
✅ Normalize Modulation
✅ Classify Band
✅ Service Hint
✅ Parse Line
✅ Parse Lines
✅ Catalog Summary
✅ Table · JSON · CSV output (
--format csvfor spreadsheets/SIEM)✅ Runs on Linux/macOS/Windows · Docker · devcontainer
✅ Ports in Python, JavaScript, Go, and Rust (
ports/)
Quick start
pip install cognis-sigmeta
sigmeta --version
sigmeta classify capture.log # normalized catalog (table)
sigmeta --format json classify capture.log # machine-readable
sigmeta --format csv classify capture.log # spreadsheet / SIEM import
cat capture.log | sigmeta classify - # stdin
sigmeta classify capture.log --strict # CI gate (non-zero exit)
Example
$ sigmeta classify demos/02-airband-scan/airband.log
LABEL FREQ BAND MOD BW SERVICE HINT
--------- ---------- ---- --- -------- -----------------------------
TWR 118.3 MHz VHF AM 8.33 kHz Aeronautical (AM voice / nav)
GND 121.9 MHz VHF AM 25 kHz Aeronautical (AM voice / nav)
EMERGENCY 121.5 MHz VHF AM 25 kHz Aeronautical (AM voice / nav)
records=6 bands={'VHF': 6} mods={'AM': 6} warnings=0
Try the demos
demos/ ships realistic, ready-to-run signal logs in the tool's real input
format, each with a SCENARIO.md (where the data came from, the exact run
command, and what to expect):
| Demo | Scenario |
|---|---|
01-basic |
Heterogeneous mixed-style log (kv + positional, mixed units) |
02-airband-scan |
VHF aeronautical airband (118-137 MHz AM) |
03-ism-survey |
ISM / U-NII unlicensed-band spectrum survey |
04-hf-utility |
HF utility / shortwave monitoring (3-30 MHz) |
05-empty-strict |
No usable records → exit-code / CI gate |
06-marine-vhf |
Marine VHF channel plan (156-162 MHz) |
07-pmr-landmobile |
UHF land-mobile / FRS-GMRS / DMR inventory |
08-satellite-downlink |
Satellite / weather downlink tracking |
09-mixed-units-csv |
Every unit/style → --format csv export |
python -m sigmeta classify demos/03-ism-survey/ism.log
python -m sigmeta --format csv classify demos/09-mixed-units-csv/capture.log
Architecture
flowchart LR
IN[sources] --> P[sigmeta<br/>curate + validate]
P --> OUT[query / analysis]
Use it from any AI stack
sigmeta is interoperable with every popular way of using AI:
MCP server —
sigmeta mcp(Claude Desktop, Cursor, Cognis.Studio, uncensored-fleet)OpenAI-compatible / JSON — pipe
sigmeta --format json classify capture.loginto any agent or LLMLangChain · CrewAI · AutoGen · LlamaIndex — wrap the CLI/JSON as a tool in one line
CI / scripts — exit codes + CSV/JSON for non-AI pipelines
How it compares
| | Cognis sigmeta | typical tools |
|---|:---:|:---:|
| Self-hostable, no account | ✅ | varies |
| Single command, zero config | ✅ | ⚠️ |
| JSON + CSV for CI | ✅ | varies |
| MCP-native (AI agents) | ✅ | ❌ |
| Polyglot ports (JS/Go/Rust) | ✅ | ❌ |
| Open license | ✅ COCL | varies |
Integrations
Pipes into your stack: CSV for spreadsheets/SIEM, JSON for anything, an MCP server (sigmeta mcp) for AI agents, and a webhook forwarder for SIEM/Slack/Jira. See docs/INTEGRATIONS.md.
Install — every way, every platform
pip install "git+https://github.com/cognis-digital/sigmeta.git" # pip (works today)
pipx install "git+https://github.com/cognis-digital/sigmeta.git" # isolated CLI
uv tool install "git+https://github.com/cognis-digital/sigmeta.git" # uv
pip install cognis-sigmeta # PyPI (when published)
docker run --rm ghcr.io/cognis-digital/sigmeta:latest --help # Docker
brew install cognis-digital/tap/sigmeta # Homebrew tap
curl -fsSL https://raw.githubusercontent.com/cognis-digital/sigmeta/main/install.sh | sh
| Linux | macOS | Windows | Docker | Cloud |
|---|---|---|---|---|
| scripts/setup-linux.sh | scripts/setup-macos.sh | scripts/setup-windows.ps1 | docker run ghcr.io/cognis-digital/sigmeta | DEPLOY.md (AWS/Azure/GCP/k8s) |
Related Cognis tools
Explore the suite → 🗂️ all 170+ tools · ⭐ awesome-cognis · 🔗 cognis-sources · 🤖 uncensored-fleet · 🧠 engram
Contributing
PRs, new rules, and demo scenarios are welcome under the collaboration-pull model — see CONTRIBUTING.md and SECURITY.md.
⭐ If
sigmetasaved you time, star it — it genuinely helps others find it.
Interoperability
{} composes with the 300+ tool Cognis suite — JSON in/out and a shared
OpenAI-compatible /v1 backbone. See INTEROP.md for the
suite map, composition patterns, and reference stacks.
License
Source-available under the Cognis Open Collaboration License (COCL) v1.0 — free for personal, internal-evaluation, research, and educational use; commercial / production use requires a license ([email protected]). See LICENSE.
Install Sigmeta in Claude Desktop, Claude Code & Cursor
unyly install sigmetaInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add sigmeta -- uvx --from git+https://github.com/cognis-digital/sigmeta cognis-sigmetaStep-by-step: how to install Sigmeta
FAQ
Is Sigmeta MCP free?
Yes, Sigmeta MCP is free — one-click install via Unyly at no cost.
Does Sigmeta need an API key?
No, Sigmeta runs without API keys or environment variables.
Is Sigmeta hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Sigmeta in Claude Desktop, Claude Code or Cursor?
Open Sigmeta on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectAmap Maps Mcp Server
MCP server for using the AMap Maps API
by duxiaohuiSupabase
Database, auth and storage
by SupabaseEverything
Reference / test server with prompts, resources, and tools.
Git
Tools to read, search, and manipulate Git repositories.
Sequential Thinking
Dynamic and reflective problem-solving through thought sequences.
Time
Time and timezone conversion capabilities.
Compare Sigmeta with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
