Sema is a content-addressed vocabulary for AI agents. Precise thinking, reliable references, safe multi-agent coordination. Hash the meaning, get the word.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
claude mcp add sema -- npx -y understanding-graph{
"mcpServers": {
"sema": {
"command": "npx",
"args": ["-y", "understanding-graph"],
"env": {
"GOOGLE_API_KEY": "<google_api_key>"
}
}
}
}GOOGLE_API_KEYResumen de MCP Servers
<!-- mcp-name: io.github.emergent-wisdom/semahash -->
<!-- deploy-trigger: 2026-04-11 -->
<p align="center">
<img src="https://raw.githubusercontent.com/emergent-wisdom/sema/main/docs/images/sema_banner.png" alt="Sema — When the hash is the word" width="800">
</p>
# Sema: When the Hash Is the Word
**Content-addressed semantics for multi-agent coordination.**
[](https://pypi.org/project/semahash/)
[](https://registry.modelcontextprotocol.io/servers/io.github.emergent-wisdom/semahash)
[](https://github.com/emergent-wisdom/sema/blob/main/paper/sema.pdf)
[](https://doi.org/10.5281/zenodo.19548971)
[](https://github.com/emergent-wisdom/sema/blob/main/LICENSE)
[](https://github.com/emergent-wisdom/sema/blob/main/LICENSE-CONTENT)
Sema is a semantic commons that content-addresses meaning itself: the definition *is* the identifier. By deriving identifiers from the cryptographic hash of a pattern's definition, any divergence in meaning produces a distinct hash, guaranteeing that misaligned agents halt rather than fail silently.
**Web:** [semahash.org](https://semahash.org) · **Discord:** [Join](https://discord.gg/hRhVqAuDYQ)
## Install
### MCP Server (recommended)
Add to any MCP client (Claude Code, Cursor, VS Code, Windsurf, Claude Desktop):
```json
{
"mcpServers": {
"sema": {
"command": "uvx",
"args": ["--from", "semahash[mcp]", "sema", "mcp"]
}
}
}
```
Or via Claude Code CLI:
```bash
claude mcp add sema -- uvx --from "semahash[mcp]" sema mcp
```
This uses [uv](https://docs.astral.sh/uv/) to download, install, and run sema
in an isolated environment on first invocation, then caches it for subsequent
calls.
### Claude Code plugin (MCP server + skill)
Sema also ships as a Claude Code plugin — MCP server plus a skill that teaches the agent the search/resolve/mint/handshake workflow:
```bash
# One-time: add the Emergent Wisdom marketplace
claude plugin marketplace add emergent-wisdom/marketplace
# Install the plugin
claude plugin install sema
```
This gives you the MCP server **and** the `sema-usage` skill (auto-loaded), which teaches when to search vs mint, how to embed handles in text, and how to verify meaning at boundaries. The skill is a Claude Code convenience — the MCP server works with any client.
For local development:
```bash
claude --plugin-dir /path/to/sema
```
### Permanent install (pip)
```bash
pip install "semahash[mcp]"
```
For CLI-only use (no MCP server):
```bash
pip install semahash
```
## Quick Start
### Use with AI Agents (MCP)
Already covered above via the JSON config or `pip install` path. For development against this repo:
```bash
git clone https://github.com/emergent-wisdom/sema.git
pip install -e "./sema[mcp]"
```
Your agent now has access to `sema_search`, `sema_lookup`, `sema_handshake`, and 9 more tools. Any MCP-compatible client works — Sema exposes a standard stdio server.
**Verify it works** — ask your agent: *"Search sema for coordination patterns and handshake on StateLock"*
Sema exposes a standard MCP stdio server — any MCP-compatible client works, including [OpenClaw](https://openclaw.ai/) (`openclaw mcp set sema '{"command":"uvx","args":["--from","semahash[mcp]","sema","mcp"]}'`).
### Use via CLI
```bash
# Search the vocabulary
sema search "coordination"
# Look up a specific pattern
sema resolve StateLock
# Print a pattern's full definition
sema show StateLock
# Browse the graph structure
sema skeleton
# Start local API + web frontend (binds to 127.0.0.1 by default)
sema serve
```
### Bring Your Own Vocabulary
Build a private registry from scratch — no PR or maintainer in the loop:
```bash
sema init ./mylib.db
export SEMA_DB_PATH=$(pwd)/mylib.db
sema apply --add path/to/MyPattern.json
sema search "..."
```
Subsequent `sema` commands (including `sema mcp`) read from your private
registry. See [CONTRIBUTING.md](CONTRIBUTING.md) for the canonical
contribution path and [docs/specification/versioning.md](docs/specification/versioning.md) for the
refinement and supersession policy.
### Use in Python
```python
from sema.core.registry import RegistryManager
registry = RegistryManager()
pattern = registry.get_pattern("StateLock")
# Look up the canonical reference
print(pattern["sema_ref"]) # StateLock#c9c2
# Verify an inline reference before relying on it
assert pattern["sema_ref"] == "StateLock#c9c2"
```
### Try the Protocol (No API Keys Needed)
```bash
python experiments/demos/local_handshake.py
```
See the handshake in action: matching hashes PROCEED, mismatched hashes HALT,
and unknown patterns HALT. Cooperative mode accepts short prefixes for drift
detection; strict mode requires the full hash. Takes 2 seconds.
## How It Works
```
word = hash(canonical(definition))
```
Take any concept (a coordination protocol, a reasoning pattern, a trust mechanism), express it in canonical form, hash it. That hash IS the word. Change one byte in the definition, get a different word.
```
Cooperative: sema_handshake("StateLock#c9c2")
-> PROCEED with assurance="prefix", or HALT
Strict: sema_handshake("StateLock", "<full 64-char hash>", strict=true)
-> PROCEED with assurance="full_hash", or HALT
```
This is the **Anti-Postel principle**: strict mode proceeds only on full-hash
identity; cooperative mode uses compact prefixes as a non-adversarial drift
signal. Mismatches fail closed in both modes.
## The Vocabulary
The bundled vocabulary spans 4 layers:
- **Physics** — Immutable substrate (locks, entropy, causality)
- **Mind** — Hybrid cognition (reasoning, inference, strategy)
- **Society** — Multi-agent coordination (economics, governance, protocols)
- **Infrastructure** — Operational constraints (data structures, verification)
Each pattern is a content-addressed behavioral definition. Concrete cards may
add machine-verifiable contracts, invariants, failure modes, parameters, and
typed dependencies where those fields are identity-defining.
## MCP Tools
When running as an MCP server (`sema mcp`), these tools are available:
| Tool | Description |
|------|-------------|
| `sema_search` | Search patterns by name, description, or meaning |
| `sema_lookup` | Get a pattern by its reference (e.g., `StateLock#c9c2`) |
| `sema_resolve` | Get a pattern with dependencies expanded |
| `sema_handshake` | Fail-closed semantic verification between agents |
| `sema_mint` | Create a new pattern (validate, hash, add to vocabulary) |
| `sema_propose_context` | Compute a context digest for a multi-agent definition set (drift detection) |
| `sema_verify_context` | Verify a context proposal from another agent |
| `sema_tree` | Browse vocabulary by layer and category |
| `sema_validate` | Validate a pattern JSON for correctness |
| `sema_stats` | Vocabulary statistics |
| `sema_graph_skeleton` | Ultra-minimal graph overview (~150 tokens) |
| `sema_reset_session` | Clear session cache so searches return full results again |
## Web Frontend
```bash
pip install "semahash[api]"
sema serve
# Open http://localhost:3000
```
Interactive 3D graph visualization, pattern browser, and search. Built with React + Three.js.
## Experiments
The `experiments/` directory contains a controlled multi-agent design challenge comparing three conditions:
| Condition | Sema | Turns | Outcome |
|-----------|------|-------|---------|
| A: Natural language only | No | 4 | Design rejected |
| B: Sema vocabulary | Yes | 11 | SAD Engine approved |
| C: Sema + protocol | Yes | 25 | SAD Engine with exhaustive vetting |
Agents with Sema patterns produced physics-grounded designs that survived adversarial scrutiny. Agents without Sema produced shallow designs that failed safety review.
To reproduce:
```bash
cd experiments/sema_design_challenge
export GOOGLE_API_KEY=your_key
./reproduce.sh
```
See [`experiments/sema_design_challenge/README.md`](experiments/sema_design_challenge/README.md) for details.
## Key Properties
- **Zero semantic collisions** across the full vocabulary
- **16.9x average token compression** via content-addressed stubs
- **Fail-closed architecture** — mismatches halt, never fail silently
- **Mean embedding similarity of 0.21** — high structural distinctness
### Formal-verification pilot
Sema's handshake decision kernel and canonicalization type tags have a small
Lean 4 proof suite. The handshake supports cooperative prefix matching for
ordinary drift detection and strict full-hash verification for proof-grade
identity; the proofs state each guarantee separately. The encoding proof
establishes pre-hash domain separation, while Python conformance tests connect
the models to production. See
[`verification/README.md`](verification/README.md) for the proven theorems,
trusted-computing-base assumptions, and explicit limits of the claim.
## Using with understanding-graph
Sema gives your agents shared *semantic* memory — a vocabulary of cognitive patterns with content-addressed identity. [Understanding Graph](https://github.com/emergent-wisdom/understanding-graph) gives them shared *episodic* memory — the actual thinking trail behind a decision. They compose:
```bash
claude mcp add sema -- uvx --from "semahash[mcp]" sema mcp
claude mcp add ug -- npx -y understanding-graph mcp
```
With both installed, an agent can:
1. Anchor an understanding-graph decision node in a sema pattern hash (e.g. `StateLock#c9c2`) so the meaning of the primitive can never drift.
2. Use `graph_semantic_search` to find all past graph nodes that reference a given sema pattern — hash-stable history, not keyword matching.
3. Call `sema_handshake` *before* writing a decision Lo que la gente pregunta sobre sema
¿Qué es emergent-wisdom/sema?
+
emergent-wisdom/sema es mcp servers para el ecosistema de Claude AI. Sema is a content-addressed vocabulary for AI agents. Precise thinking, reliable references, safe multi-agent coordination. Hash the meaning, get the word. Tiene 10 estrellas en GitHub y se actualizó por última vez today.
¿Cómo se instala sema?
+
Puedes instalar sema clonando el repositorio (https://github.com/emergent-wisdom/sema) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar emergent-wisdom/sema?
+
Nuestro agente de seguridad ha analizado emergent-wisdom/sema y le ha asignado un Trust Score de 87/100 (tier: Trusted). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene emergent-wisdom/sema?
+
emergent-wisdom/sema es mantenido por emergent-wisdom. La última actividad registrada en GitHub es de today, con 12 issues abiertos.
¿Hay alternativas a sema?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega sema en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/emergent-wisdom-sema)<a href="https://claudewave.com/repo/emergent-wisdom-sema"><img src="https://claudewave.com/api/badge/emergent-wisdom-sema" alt="Featured on ClaudeWave: emergent-wisdom/sema" width="320" height="64" /></a>Más MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!