trust-ledger-os
This server provides read-only metadata and navigation tools for the Trust Ledger OS project: it can return the project manifest, list roadmap phases, fetch details for a specific phase by ID, list live app routes, and list the npm/PyPI/MCP package surfaces.
Trust Ledger OS
Trust Ledger OS is a trust and risk control plane for AI teams. Every high-impact change is reviewed, traced, and recorded before it reaches customers or cash.
Overview
The repo combines a public landing page with four scaffolded implementation phases. The same roadmap is mirrored into reusable package boundaries so the app, docs, and future library work stay aligned.
Mirrors:
icohangar-ops/trust-ledger-osCubiczan/trust-ledger-os
Related MCP server: AI Knowledge Center MCP
Core Roles
PRISM: runtime observability for agent calls, approvals, and latency.
Prelint: pre-merge product review for policy drift, bad defaults, and risky logic.
GIDE: secure offline editing and emergency fixes when the network is not trusted.
What It Does
Capture a code change, spend request, or agent action.
Review it against product policy and trust rules.
Attach a PRISM trace to the runtime decision.
Produce an approve, deny, or counter outcome.
Store the decision in a ledger future runs can reuse.
Live Routes
/landing page and roadmap/foundationphase 1 scaffold/framework-benchmarkphase 2 scaffold/research-reasoningphase 3 scaffold/production-controlsphase 4 scaffold
Phase Packages
foundation-kit/: shared agent glossary, decision tree, model/tool matrix, and prompt skeletons.framework-benchmark-suite/: framework profiles, comparison cases, and scoring rubric.research-reasoning-kit/: research pipeline stages and reusable reasoning patterns.production-controls-kit/: eval harness, drift monitoring, guardrails, and release gate scaffold.
Distribution Surfaces
packages/npm/: npm-friendly manifest and catalog export, published as@cubiczan/trust-ledger-os@0.1.2.packages/python/: PyPI-friendly manifest and catalog export, published astrust-ledger-os==0.1.2.packages/mcp/: MCP-ready tool and resource catalog, published astrust-ledger-os-mcp@0.1.2. Stdio for the Glama server listing; Streamable HTTP on a dedicated Vercel project (trust-ledger-os-mcp, Root Directorypackages/mcp).
Package Commands
npm package build:
npm --prefix packages/npm run buildMCP package build:
npm --prefix packages/mcp run buildMCP stdio server:
npm --prefix packages/mcp startMCP HTTP server:
npm --prefix packages/mcp run httpMCP HTTP smoke:
npm --prefix packages/mcp run smoke:httpPython CLI:
PYTHONPATH=packages/python/src python3 -m trust_ledger_os.cli --manifestVercel Python entrypoint:
src.trust_ledger_os.vercel_app:appfrompackages/pythonVercel MCP project: Root Directory
packages/mcp(do not reuse the Python app)
Release Workflow
GitHub Actions workflow:
.github/workflows/release.ymlTrigger it with a
v*tag orworkflow_dispatchRequired secrets for publish mode:
NPM_TOKENPYPI_API_TOKEN
The workflow builds the Next app, the npm and MCP packages, and the Python package before publishing.
Demo Assets
The 2-minute video plan and FFmpeg render command are in docs/TRUST_LEDGER_OS_VIDEO.md.
Generated assets live in public/demo:
trust-ledger-os-demo.mp401-hero-desktop.png02-how-it-works.png03-tool-stack.png04-builderbase-fit.png05-demo-deliverables.png06-hero-mobile.png
Implementation Roadmap
Foundation kit: shared agent glossary, model/tool matrix, and when-to-use-an-agent guidance.
Framework benchmark: compare LangGraph, OpenAI Agents SDK, AutoGen, PydanticAI, and LlamaIndex.
Research and reasoning: fundamental analysis, deep search, and reusable reasoning templates.
Production controls: eval harnesses, drift checks, tracing, guardrails, and approval gates.
Getting Started
npm install
npm run devBuild
npm run buildDevelopment Notes
Keep shared data in the package folders, not in the page components.
Import from each package
src/entry until the package exports are formalized.Add new phase work as reusable types and data first, then wire routes and docs.
Treat
README.mdanddocs/TRUST_LEDGER_OS.mdas the roadmap source of truth.
Repo Layout
trust-ledger-os/
├── app/
├── docs/
├── foundation-kit/
├── framework-benchmark-suite/
├── production-controls-kit/
├── research-reasoning-kit/
├── package.json
├── README.md
└── tsconfig.jsonAvailable Tools
5 toolsget_manifestB
Return the Trust Ledger OS manifest.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Return the manifest' – it does not mention potential errors, authentication requirements, rate limits, or what the manifest contains. The read-only nature is implied but not explicitly stated beyond the verb.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with no wasted words. It is appropriately sized for a simple zero-parameter tool, though it could arguably add a bit more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description is the only source of information. It does not explain what the manifest contains, how it is structured, or what the agent should expect as a return value. This is a significant gap for an agent deciding whether and how to use the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so there is nothing to explain. The description adds no parameter information, but none is needed. The baseline of 4 applies because the schema already fully covers the (empty) parameter set.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Return') and a clear resource ('Trust Ledger OS manifest'). It distinguishes itself from sibling tools (get_phase, list_packages, etc.) by naming a distinct entity, though it does not explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description gives no context about scenarios, prerequisites, or why an agent might choose get_manifest over siblings. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_phaseA
Fetch one roadmap phase by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Fetch' indicates a read operation, but it does not disclose what happens when the id is not found (e.g., error vs null), nor the return format. For a simple get, this is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero waste. It immediately states the verb, resource, and method. Perfectly concise for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter get, the description is minimally sufficient: it indicates the operation and target. However, with no output schema and no annotations, it does not explain the return value structure or error behavior, leaving some ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate for the lack of parameter documentation. It does not add any meaning to the 'id' parameter beyond the schema's basic type and required flag. The description merely says 'by id' without explaining what id represents or its format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (fetch), the resource (roadmap phase), and the method (by id). It distinguishes itself from list_phases by implying a single record retrieval. The verb is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly signals usage: you use this when you have a specific id and want one phase, as opposed to list_phases for all phases. However, it does not explicitly state when not to use it or name alternatives, so it misses the explicit guidance level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_packagesA
List the npm, PyPI, and MCP package surfaces.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose side effects, permissions, or return format. While listing is likely read-only, this is not stated and no annotations are present to clarify behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is well-structured and directly states the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters, the description is adequate. It could be slightly more explicit about what 'package surfaces' entails, but the meaning is reasonably inferable from the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is fully covered by an empty object. There is no parameter meaning to add beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and the subject (npm, PyPI, and MCP package surfaces). It is distinct from sibling tools like list_phases and list_routes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or conditions that would make this the preferred choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_phasesB
List the roadmap phases.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of indicating behavior. The verb 'List' implies a read-only retrieval operation, but the description does not explicitly state that it has no side effects, nor does it mention output format or potential errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words or redundant details. It is well-structured and immediately comprehensible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete enough for a trivial parameterless tool, but it does not describe what the returned list contains or how it is formatted. Since there is no output schema, some additional detail about the return value would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and full coverage, so there are no parameter semantics to document. The description correctly aligns with the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('List') and object ('roadmap phases'), making its primary purpose obvious. It does not explicitly contrast with sibling tools like get_phase, but the plural 'phases' and list verb sufficiently distinguish it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus siblings such as get_phase, list_packages, or list_routes. No context or selection criteria are offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_routesA
List the live app routes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
'List' implies a read-only operation, but the description does not explicitly disclose side effects, return format, or error behavior. With no annotations present, the description carries the burden but only partially fulfills it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundancy or irrelevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless listing tool, the description is mostly complete. It clearly identifies the object being listed, though it does not specify the output structure or clarify what 'live' means in this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and the input schema fully covers this. The baseline of 3 applies since there is no parameter information to add beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and the specific target ('live app routes'), making the tool's purpose immediately obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus sibling tools such as list_packages or list_phases. The intended use case must be inferred from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v0.1.0- First observed
get_manifest - First observed
get_phase - First observed
list_packages - First observed
list_phases - First observed
list_routes
TDQS
Scored across 5 tools
Each tool targets a distinct resource such as manifest, phases, routes, or packages, and get_phase is clearly the single-item counterpart to list_phases. There is only mild overlap potential in get_manifest possibly summarizing other surfaces, but descriptions keep the boundaries clear.
All tool names follow a consistent get_/list_ + noun pattern with snake_case throughout. This makes the tool set predictable and easy to navigate.
Five tools is a well-scoped size for a focused read-only informational server. Each tool covers a distinct surface without unnecessary duplication or bloat.
The core surfaces of the server—manifest, roadmap phases, routes, and packages—are covered with list and detail access where appropriate. Missing route- or package-level detail getters could be a minor gap, but list-level access may be sufficient for the apparent purpose.
Related MCP Connectors
Guarded MCP server for agent-readable business truth, provenance, readiness, and discovery.
Trust checks for MCP servers: trust scores, tool-drift detection, signed diligence receipts. Free.
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server exposing AgentForge Trust Score audit tools. Query trust, evaluate policies, list trusted servers, recommend with filter.4111MIT
- AlicenseNot gradedqualityAmaintenanceLocal-first MCP server that provides project context, verification gates, and structured tools for coding agents to discover knowledge, run diagnostics, and execute allowlisted commands within a repository.35MIT
- AlicenseNot gradedqualityCmaintenancePyPI-launched MCP server that exposes a living project model and outcome telemetry as read-only resources for MCP-aware clients.1Apache 2.0
- AlicenseBqualityBmaintenanceMCP server that initializes, manages, and operates traceable agentic infrastructure across your digital ecosystem, serving as a control plane to know project states, health, and initialize missing setups.371MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Cubiczan/trust-ledger-os'
If you have feedback or need assistance with the MCP directory API, please join our Discord server