ten-mcp-server
MCP server exposing the Ten formal algebra for machine intelligence communication.
Ten treats messages as math, not natural language. This server gives LLMs structured access to Ten's algebraic operations via the Model Context Protocol.
Tools
| Tool | Description |
|---|---|
ten_encode |
Build a Ten expression from a structured dict and return its binary wire format |
ten_decode |
Deserialize wire bytes back into a structured expression |
ten_compose |
Algebraically combine two expressions (sequence, product, nest, union, intersect) |
ten_project |
Extract a subset of facet dimensions from an expression |
ten_filter |
Evaluate expressions against facet-based filter criteria |
ten_describe |
Return a human-readable structural description of an expression |
ten_verify |
Validate expression tree integrity and check assertion metadata |
All operations are pure code — no AI inference, no LLM calls. Encoding is building a data structure. Decoding is deserializing bytes. Filtering is numeric comparison.
Installation
One-click (MCP clients)
mcp install ten-mcp-server
From PyPI
pip install ten-mcp-server
From source
git clone https://github.com/johnbeans/Ten.git
cd Ten
pip install ./tenlang # install Python bindings first
pip install ./ten_mcp_server # install MCP server
Usage
As an MCP server (stdio transport)
ten-mcp-server
# or
python -m ten_mcp_server
Claude Desktop configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"ten": {
"command": "ten-mcp-server"
}
}
}
Expression Format
Expressions are JSON-friendly dicts with a type field:
# Scalar: a numeric value with dimension and precision
{"type": "scalar", "dimension": 0, "value": 42.0, "precision": "64bit"}
# Operation: a verb with optional arguments
{"type": "operation", "verb": "query", "args": [
{"type": "scalar", "dimension": 1, "value": 100.0}
]}
# Assertion: a claim with confidence and identity
{"type": "assertion", "claim": {"type": "scalar", "dimension": 0, "value": 1.0},
"who": {"type": "identity", "pubkey": "AAAA..."},
"confidence": 0.95}
# Compositions: combine expressions algebraically
{"type": "sequence", "left": {...}, "right": {...}}
{"type": "nesting", "envelope": {...}, "payload": {...}}
Facets
Expressions can carry facet vectors — fixed-position sortable metadata:
urgency, cost, privilege, confidence, ttl, effort, reputation, value
Use ten_filter to evaluate expressions against facet criteria (e.g., "urgency >= 0.8 AND cost <= 50.0").
Dependencies
- tenlang — Python bindings for the Ten algebra (wraps libten C core)
- mcp — Model Context Protocol SDK
License
Apache-2.0 — Jolly Logic, LLC
Release files for ten-mcp-server 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ten_mcp_server-0.1.0.tar.gz | 11.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ten_mcp_server-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.7 kB
Release files / ten_mcp_server-0.1.0.tar.gz
| Download URL | ten_mcp_server-0.1.0.tar.gz |
|---|---|
| Size | 11.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2864eaad01bce255e46851b4f5e8a29c211ca6abe16c230c7cd971beb67964f7
|
|
BLAKE2b-256 checksum How to use checksums |
f12fec94727e1ff00ffe4c6846d43102b0f3a504041ab3f6c12cb827fa39c6e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / ten_mcp_server-0.1.0-py3-none-any.whl
| Download URL | ten_mcp_server-0.1.0-py3-none-any.whl |
|---|---|
| Size | 12.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
923acb6894efe84c639f21e39226a77ed66f068c3f660ad91539eb0a16309e5e
|
|
BLAKE2b-256 checksum How to use checksums |
3254034d2b89fbf4a6bd4a7924c1e5379287789932f4a49815875019d8f1fa6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|