Skip to main content

Keturah

A uniform, MCP-bridgeable manifest of a product's LLM-consumable interfaces.

Keturah lets any family product — library or service — answer one question: what can an LLM call here, and how? Each interface is a Capability (name, description, JSON-Schema input/output); a Manifest bundles them with the product and version. The name is biblical ("incense / that which is offered up") — the catalog of what each product offers.

There is already a standard for this — Model Context Protocol (MCP) — and Keturah does not replace it. Manifest.to_mcp() projects a manifest onto MCP's tools/list shape, so a real MCP server is a thin adapter over a Keturah manifest rather than a parallel definition. Keturah exists because the family is a mix of libraries and services, and because manifests should be built from the seam contracts a product already enforces (Deborah's plan schema, Milcah's specialist request/result, Mahalath's match, Galeed's events) so the manifest and the contract never drift.

from keturah import manifest, capability

m = manifest("tirzah", version="1.3.0", capabilities=[
    capability(
        "ask",
        "Answer a question over Tirzah's memory.",
        input_schema={"type": "object", "properties": {"query": {"type": "string"}}, "required": ["query"]},
    ),
])
m.to_dict()   # the full manifest (descriptions + schemas)
m.to_mcp()    # {"tools": [{"name": "ask", "description": ..., "inputSchema": ...}]}

A product typically exposes this as capabilities() and, where it is a service, a GET /api/capabilities endpoint (with ?format=mcp for the MCP view).

Develop

Works the same on native Linux and WSL — stdlib-only, no platform-specific steps.

pip install -e ".[dev]" && pytest

Download files

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

Source Distribution

keturah-0.3.0.tar.gz (27.0 kB view details)

Uploaded Source

Built Distribution

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

keturah-0.3.0-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

File details

Details for the file keturah-0.3.0.tar.gz.

File metadata

  • Download URL: keturah-0.3.0.tar.gz
  • Upload date:
  • Size: 27.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for keturah-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c6099cf0790b49053626af877b735cffde4c2d9c6b328e39fc888ab93379b4da
MD5 a46da5b474ea65a2887fa3cc4a678f1b
BLAKE2b-256 615cd1871ac4f6447466389265527c3f917ebc857551b4afc03da90a2fb2ad09

See more details on using hashes here.

File details

Details for the file keturah-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: keturah-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 22.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for keturah-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4a7891bb28500a388149ac97e7c4ee818353532db291ef568283d59eaa0b907e
MD5 40d4d979450cd5203a5445be793e5297
BLAKE2b-256 f250458ba85fee1eeaf561e1ef942b7280ecf2ce95bc80bbbe749e51d8e25d06

See more details on using hashes here.

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