The missing cognitive primitive for AI agents. Structured intelligence from any text.
Project description
Decompose
Stop prompting. Start decomposing.
The missing cognitive primitive for AI agents. Decompose turns any text into classified, structured semantic units — instantly. No LLM. No setup. One function call.
Before: your agent reads this
The contractor shall provide all materials per ASTM C150-20. Maximum load
shall not exceed 500 psf per ASCE 7-22. Notice to proceed within 14 calendar
days of contract execution. Retainage of 10% applies to all payments.
For general background, the project is located in Denver, CO...
After: your agent reads this
[
{
"text": "The contractor shall provide all materials per ASTM C150-20.",
"authority": "mandatory",
"risk": "compliance",
"type": "requirement",
"irreducible": true,
"attention": 8.0,
"entities": ["ASTM C150-20"]
},
{
"text": "Maximum load shall not exceed 500 psf per ASCE 7-22.",
"authority": "prohibitive",
"risk": "safety_critical",
"type": "constraint",
"irreducible": true,
"attention": 10.0,
"entities": ["ASCE 7-22"]
}
]
Every unit classified. Every standard extracted. Every risk scored. Your agent knows what matters.
Install
pip install decompose-mcp
Use as MCP Server
Add to your agent's MCP config (Claude Code, Cursor, Windsurf, etc.):
{
"mcpServers": {
"decompose": {
"command": "uvx",
"args": ["decompose-mcp", "--serve"]
}
}
}
Your agent gets two tools:
decompose_text— decompose any textdecompose_url— fetch a URL and decompose its content
OpenClaw
Install the skill from ClawHub or configure directly:
{
"mcpServers": {
"decompose": {
"command": "python3",
"args": ["-m", "decompose", "--serve"]
}
}
}
Or install the skill: clawdhub install decompose-mcp
Use as CLI
# Pipe text
cat spec.txt | decompose --pretty
# Inline
decompose --text "The contractor shall provide all materials per ASTM C150-20."
# Compact output (smaller JSON)
cat document.md | decompose --compact
Use as Library
from decompose import decompose
result = decompose("The contractor shall provide all materials per ASTM C150-20.")
for unit in result["units"]:
print(f"[{unit['authority']}] [{unit['risk']}] {unit['text'][:60]}...")
What Each Field Means
| Field | Values | What It Tells Your Agent |
|---|---|---|
authority |
mandatory, prohibitive, directive, permissive, conditional, informational | Is this a hard requirement or background? |
risk |
safety_critical, security, compliance, financial, contractual, advisory, informational | How much does this matter? |
type |
requirement, definition, reference, constraint, narrative, data | What kind of content is this? |
irreducible |
true/false | Must this be preserved verbatim? |
attention |
0.0 - 10.0 | How much compute should the agent spend here? |
entities |
standards, codes, regulations | What formal references are cited? |
actionable |
true/false | Does someone need to do something? |
Why No LLM?
Decompose runs on pure regex and heuristics. No Ollama, no API key, no GPU, no inference cost.
This is intentional:
- Fast: <500ms for a 50-page spec
- Deterministic: Same input always produces same output
- Offline: Works air-gapped, on a plane, on CI
- Composable: Your agent's LLM reasons over the structured output — decompose handles the preprocessing
The LLM is what your agent uses. Decompose makes whatever model you're running work better.
Built by Echology
Decompose is extracted from AECai, a document intelligence platform for Architecture, Engineering, and Construction firms. The classification patterns, entity extraction, and irreducibility detection are battle-tested against thousands of real AEC documents — specs, contracts, RFIs, inspection reports, pay applications.
Blog
- When Regex Beats an LLM — Decompose classifies the MCP spec in 3.78ms
- Why Your Agent Needs a Cognitive Primitive — attention scoring, irreducibility, and routing
- What "Simulation-Aware" Actually Means — the architecture behind AECai
License: Proprietary — Copyright (c) 2025-2026 Echology, Inc.
Philosophy: All intelligence begins with decomposition.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file decompose_mcp-0.1.1.tar.gz.
File metadata
- Download URL: decompose_mcp-0.1.1.tar.gz
- Upload date:
- Size: 79.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d0fb57d16ab1e84956a35e35fd318fe9392b4c7c15db7169d72d2a3af6dfe4f
|
|
| MD5 |
297adcea740f60a431baa88bbb7ae040
|
|
| BLAKE2b-256 |
eae58e8dc1a49395deeb90237712712a2cf5a487ae507b7b2db441e6a9fb0b3e
|
Provenance
The following attestation bundles were made for decompose_mcp-0.1.1.tar.gz:
Publisher:
publish.yml on echology-io/decompose
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
decompose_mcp-0.1.1.tar.gz -
Subject digest:
7d0fb57d16ab1e84956a35e35fd318fe9392b4c7c15db7169d72d2a3af6dfe4f - Sigstore transparency entry: 953578221
- Sigstore integration time:
-
Permalink:
echology-io/decompose@526bffe0288be03e8eb9a799c8b60ab9189e0ea1 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/echology-io
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@526bffe0288be03e8eb9a799c8b60ab9189e0ea1 -
Trigger Event:
push
-
Statement type:
File details
Details for the file decompose_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: decompose_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 16.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb16f51ea319d3c65a2b2624ba23b3ec5b83d3d6a7288ed890029c88ba6c2a92
|
|
| MD5 |
1053ebb205d51038c88cc534ed0f97f4
|
|
| BLAKE2b-256 |
8293490d2d41edc4ed6392695bd6125fa9e2affae1aae63db5e7f0b552a32cef
|
Provenance
The following attestation bundles were made for decompose_mcp-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on echology-io/decompose
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
decompose_mcp-0.1.1-py3-none-any.whl -
Subject digest:
cb16f51ea319d3c65a2b2624ba23b3ec5b83d3d6a7288ed890029c88ba6c2a92 - Sigstore transparency entry: 953578222
- Sigstore integration time:
-
Permalink:
echology-io/decompose@526bffe0288be03e8eb9a799c8b60ab9189e0ea1 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/echology-io
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@526bffe0288be03e8eb9a799c8b60ab9189e0ea1 -
Trigger Event:
push
-
Statement type: