compliance-trestle-mcp
LocalAbout compliance-trestle-mcp
compliance-trestle-mcp exposes compliance-trestle capabilities for authoring and working with OSCAL security compliance documentation. It is intended for coding agents and MCP CLI clients, with tools for importing, generating, converting, and validating OSCAL content.
Key features
- 01Initialize a trestle workspace
- 02Import OSCAL models from files or URLs
- 03Generate Markdown from catalogs and profiles
- 04Convert CSV and XLSX compliance data to OSCAL
- 05Validate OSCAL files against schemas and checks
Use cases
- 01Starting a workspace for OSCAL documentation
- 02Generating control documentation from a catalog or profile
- 03Converting a FedRAMP spreadsheet to a POA&M
- 04Checking an OSCAL file for schema and semantic issues
MCP support
Provides MCP tools for compliance-trestle to clients such as Roo Code and MCP CLI clients. Tools cover workspace setup, OSCAL authoring, conversion, and validation.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMETrestle 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:
- Usage from Coding Agent (Roo Code): Use Trestle-MCP from Roo Code via MCP.
- Usage from CLI (MCP Client): Invoke Trestle-MCP directly using an MCP CLI client.
Choose the option that best fits your workflow.
Usage from RooCode
-
Add the following JSON to
.roo/mcp.json(Roo workspace):{ "mcpServers": { "trestle": { "command": "uvx", "args": ["--from", "compliance-trestle-mcp", "trestle-mcp"] } } } -
Open Roo, confirm
trestletools 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 workspacetrestle_import: Import OSCAL models (Catalog/Profile/etc.) from a file or URLtrestle_author_catalog_generate: Generate markdown controls from a catalogtrestle_author_profile_generate: Generate markdown for profilestrestle_author_profile_resolve: Resolve profile to catalogtrestle_author_profile_assemble: Assemble markdown controls into profile JSONtrestle_task_csv_to_oscal_cd: Convert a CSV mapping file into an OSCAL component definitiontrestle_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.jsonis 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.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.