Skip to main content

Trestle MCP

MCP server to easily use compliance-trestle (OSCAL tool) from Claude, Roo, or any MCP-compliant client.

mcp-name: io.github.oscal-compass/compliance-trestle-mcp

Getting Started

This project can be used in the following two ways:

Choose the option that best fits your workflow.

Usage from RooCode

  1. Add the following JSON to .roo/mcp.json (Roo workspace):

    {
        "mcpServers": {
            "trestle": {
                "command": "uvx",
                "args": ["--from", "compliance-trestle-mcp", "trestle-mcp"]
            }
        }
    }
    
  2. Open Roo, confirm trestle tools are listed in the MCP panel, and execute as needed.

    https://github.com/user-attachments/assets/59215549-cad9-4101-baa4-ecba77ac3904


Usage from CLI (MCP Client)

Step 1: Write your mcp.json config

{
    "mcpServers": {
        "trestle": {
            "command": "uvx",
            "args": ["--from", "./trestle-mcp-tmp", "trestle-mcp"]
        }
    }
}

Save this as mcp.json in your current directory.

Step 2: List Available Tools

uvx mcp-cli tools --config-file mcp.json

Sample output (tools available):

6 Available Tools
┌─────────┬─────────────────────────────────┬───────────────────────────────────────────────────────────────────┐
│ Server  │ Tool                            │ Description                                                       │
├─────────┼─────────────────────────────────┼───────────────────────────────────────────────────────────────────┤
│ trestle │ trestle_init                    │ Initialize a trestle working directory.                           │
│ trestle │ trestle_import                  │ Import an existing OSCAL model into the trestle workspace.        │
│ trestle │ trestle_author_catalog_generate │ Generate Catalog controls in markdown form from a catalog         │
│ trestle │ trestle_author_profile_generate │ Generate markdown documentation set for controls defined in profile│
│ trestle │ trestle_author_profile_resolve  │ Resolve an OSCAL profile to a resolved profile catalog.           │
│ trestle │ trestle_author_profile_assemble │ Assemble markdown controls into a Profile JSON file.              │
└─────────┴─────────────────────────────────┴───────────────────────────────────────────────────────────────────┘

Step 3: Execute a Tool (e.g., trestle_init)

Start MCP interactive shell:

uvx mcp-cli interactive --config-file mcp.json

Then run, for example:

> execute trestle_init '{"params": {}}'

Typical result:

✓ ✅ Tool executed successfully
{
  "result": {
    ...
    "content": [
      {
        "type": "text",
        "text": "✅ Trestle workspace initialized successfully"
      }
    ]
  }
}

You'll see folders as follows:

assessment-plans    catalogs               plan-of-action-and-milestones  system-security-plans
assessment-results  component-definitions  profiles

Tool List & Quick Reference

  • trestle_init: Initialize a trestle workspace
  • trestle_import: Import OSCAL models (Catalog/Profile/etc.) from a file or URL
  • trestle_author_catalog_generate: Generate markdown controls from a catalog
  • trestle_author_profile_generate: Generate markdown for profiles
  • trestle_author_profile_resolve: Resolve profile to catalog
  • trestle_author_profile_assemble: Assemble markdown controls into profile JSON
  • trestle_task_csv_to_oscal_cd: Convert a CSV mapping file into an OSCAL component definition
  • trestle_task_xlsx_to_oscal_poam: Convert a FedRAMP-format XLSX spreadsheet into an OSCAL Plan of Action and Milestones (POA&M)
  • trestle_validate: Validate a standalone OSCAL file (any top-level model, e.g. POA&M) against the OSCAL schema (and trestle's semantic checks)

For advanced use, refer to official compliance-trestle docs or developer documents in this repo.

Troubleshooting & Help

  • Make sure uvx is installed and on your PATH.
  • If you see command/module errors, check the MCP server path in mcp.json is correct.

We are a Cloud Native Computing Foundation sandbox project.

The Linux Foundation® (TLF) has registered trademarks and uses trademarks. For a list of TLF trademarks, see Trademark Usage.

OSCAL Compass is an independent open source project. It is not affiliated with, endorsed by, or sponsored by the National Institute of Standards and Technology (NIST) or any other government agency.

OSCAL Compass was originally contributed by IBM.

Release files for compliance-trestle-mcp 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for compliance-trestle-mcp 0.2.1
File Size Uploaded
compliance_trestle_mcp-0.2.1.tar.gz 111.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for compliance-trestle-mcp 0.2.1
File Interpreter ABI Platform
compliance_trestle_mcp-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 140.7 kB

Release files / compliance_trestle_mcp-0.2.1.tar.gz

Download URL compliance_trestle_mcp-0.2.1.tar.gz
Size 111.4 kB
Tags Source
SHA-256 checksum
How to use checksums
079adee307de18842bdf021aa469fddaff6c891deb77fb96b3534eedde49c92f
BLAKE2b-256 checksum
How to use checksums
fec25b0967fe5afc05948db31f26f448fe6f849d9f5a8c3cc47f3a41f3461936
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.

Transparency log

Release files / compliance_trestle_mcp-0.2.1-py3-none-any.whl

Download URL compliance_trestle_mcp-0.2.1-py3-none-any.whl
Size 29.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dedd7709a6f9a9f11089111de494238934351873f3b35bbe110f4711e99189a6
BLAKE2b-256 checksum
How to use checksums
39ea6a51571b23ec1c0ddfa8c60952cb8325f9b2c7024c741f5a5c2719447a3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page