MCP server for compliance-trestle OSCAL framework
Project description
Trestle MCP
MCP server to easily use compliance-trestle (OSCAL tool) from Claude, Roo, or any MCP-compliant client.
Getting Started
-
Prerequisite
- Install uvx
-
Clone the repository
git clone https://github.com/oscal-compass/proposal-20260204.git
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", "./trestle-mcp-tmp", "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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file compliance_trestle_mcp-0.1.0.tar.gz.
File metadata
- Download URL: compliance_trestle_mcp-0.1.0.tar.gz
- Upload date:
- Size: 40.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e45c60298b2d0edc9da2252f8a589638ca1a799e22b35af044e5ac54cc52751
|
|
| MD5 |
e164be2d48720d1b2e80a8f251642d85
|
|
| BLAKE2b-256 |
3bd446363f8c7cf870ea2f0058546e679fd1be7d1b6a9b1d02ff6ebf99f6b0d9
|
Provenance
The following attestation bundles were made for compliance_trestle_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on oscal-compass/compliance-trestle-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
compliance_trestle_mcp-0.1.0.tar.gz -
Subject digest:
2e45c60298b2d0edc9da2252f8a589638ca1a799e22b35af044e5ac54cc52751 - Sigstore transparency entry: 996019354
- Sigstore integration time:
-
Permalink:
oscal-compass/compliance-trestle-mcp@6685925871a27b8ebae19666fd7333ab64bcfe94 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/oscal-compass
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6685925871a27b8ebae19666fd7333ab64bcfe94 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file compliance_trestle_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: compliance_trestle_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 19.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2857b234a8f7a2ccec7c4d74db7672d00569ebde29f62dc91b5c3e306b400462
|
|
| MD5 |
185e55a5c622e156684c7578faac0e17
|
|
| BLAKE2b-256 |
3b3f3e46bed23423236c304aa1f310ae699f7ad502abd2dca072686740d16d31
|
Provenance
The following attestation bundles were made for compliance_trestle_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on oscal-compass/compliance-trestle-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
compliance_trestle_mcp-0.1.0-py3-none-any.whl -
Subject digest:
2857b234a8f7a2ccec7c4d74db7672d00569ebde29f62dc91b5c3e306b400462 - Sigstore transparency entry: 996019436
- Sigstore integration time:
-
Permalink:
oscal-compass/compliance-trestle-mcp@6685925871a27b8ebae19666fd7333ab64bcfe94 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/oscal-compass
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6685925871a27b8ebae19666fd7333ab64bcfe94 -
Trigger Event:
workflow_dispatch
-
Statement type: