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:
- 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 JSON
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.