Skip to main content

The missing cognitive primitive for AI agents. Structured intelligence from any text.

Project description

Decompose

CI PyPI Python

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 text
  • decompose_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

License: Proprietary — Copyright (c) 2025-2026 Echology, Inc.

Philosophy: All intelligence begins with decomposition.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

decompose_mcp-0.1.1.tar.gz (79.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

decompose_mcp-0.1.1-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

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

Hashes for decompose_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7d0fb57d16ab1e84956a35e35fd318fe9392b4c7c15db7169d72d2a3af6dfe4f
MD5 297adcea740f60a431baa88bbb7ae040
BLAKE2b-256 eae58e8dc1a49395deeb90237712712a2cf5a487ae507b7b2db441e6a9fb0b3e

See more details on using hashes here.

Provenance

The following attestation bundles were made for decompose_mcp-0.1.1.tar.gz:

Publisher: publish.yml on echology-io/decompose

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for decompose_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cb16f51ea319d3c65a2b2624ba23b3ec5b83d3d6a7288ed890029c88ba6c2a92
MD5 1053ebb205d51038c88cc534ed0f97f4
BLAKE2b-256 8293490d2d41edc4ed6392695bd6125fa9e2affae1aae63db5e7f0b552a32cef

See more details on using hashes here.

Provenance

The following attestation bundles were made for decompose_mcp-0.1.1-py3-none-any.whl:

Publisher: publish.yml on echology-io/decompose

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page