MCP, MCP server
MCP Server for OSCAL
MCP Server for OSCAL, an MCP server listed in the PlugVet directory.
Compatibility: Not stated.
Grade B
Minor issues only, no Medium or High. Worth a quick look at the findings below before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
PERMISSION_DELETE_FILES NETWORK_NO_FIXED_HOST SECRETS_PATH_DOTENV SECRETS_ENV_READ OBFUSCATION_FILE_OVER_READ_CAP
Why this grade
- PERMISSION_DELETE_FILES Low
Contains a call that can delete files.
bin/build_oscal_db.py, line 106
os.remove(db_path) - NETWORK_NO_FIXED_HOST Low
Makes a network call whose host is not written as a fixed address.
bin/refresh-nist-docs.sh, line 43
curl -L -o "$DOWNLOAD_DIR"/"$RELEASE_FILE_NAME" $RELEASE_URL || { echo "FAIL 4"; exit 4; } - SECRETS_PATH_DOTENV Low
Mentions a .env file.
.kiro/specs/oscal-mcp-server/design.md, line 640
- **Dotenv Loading**: `load_dotenv()` is called in `Config.__init__()` to load `.env` files. - SECRETS_ENV_READ Note
Reads an environment variable whose name contains KEY, SECRET, TOKEN, PASSWORD or CREDENTIAL.
src/mcp_server_for_oscal/config.py, line 71
self.agent_max_tokens: int = int(os.getenv("OSCAL_AGENT_MAX_TOKENS", "4096")) - OBFUSCATION_FILE_OVER_READ_CAP Note
A file was over the read cap and was not fully read.
src/mcp_server_for_oscal/oscal_schemas/oscal_assessment-plan_schema.xsd, line 1
<xs:schema xmlns="http://csrc.nist.gov/ns/oscal/1.0"
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Concern
can delete files.
PERMISSION_DELETE_FILES
bin/build_oscal_db.py, line 106
os.remove(db_path)
bin/update_hashes.py, line 84
commit = subprocess.run(
src/mcp_server_for_oscal/tools/validate_oscal_content.py, line 211
result = subprocess.run(
Show more
src/mcp_server_for_oscal/tools/README.md, line 193
| 4. oscal-cli | Full NIST validation | `subprocess.run()` if on PATH |
Install and update
Pass
No install-time script found, and dependencies are pinned or absent.
Network
Concern
can reach a host that is not written as a fixed address.
NETWORK_NO_FIXED_HOST
bin/refresh-nist-docs.sh, line 43
curl -L -o "$DOWNLOAD_DIR"/"$RELEASE_FILE_NAME" $RELEASE_URL || { echo "FAIL 4"; exit 4; }
bin/update-aws-cdefs.sh, line 46
curl -L -o "$DOWNLOAD_DIR"/"$RELEASE_FILE_NAME" $RELEASE_URL || { echo "FAIL 4"; exit 4; }
bin/update-oscal-schemas.sh, line 47
curl -L -o "$DOWNLOAD_DIR"/"$OSCAL_RELEASE_FILE_NAME" $OSCAL_RELEASE_URL
Show more
src/mcp_server_for_oscal/tools/query_component_definition.py, line 121
response = requests.get(source, timeout=config.request_timeout)
src/mcp_server_for_oscal/tools/validate_oscal_content.py, line 302
response = requests.get(file_uri, timeout=config.request_timeout)
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_DOTENV
src/mcp_server_for_oscal/config.py, line 71
self.agent_max_tokens: int = int(os.getenv("OSCAL_AGENT_MAX_TOKENS", "4096"))
.kiro/specs/oscal-mcp-server/design.md, line 640
- **Dotenv Loading**: `load_dotenv()` is called in `Config.__init__()` to load `.env` files.
DEVELOPING.md, line 27
Create a `.env` file from the template and set the relevant values:
Show more
DEVELOPING.md, line 29
cp dotenv.example .env
dotenv.example, line 3
# copy this file to .env and set appropriate values. See README.md
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Note
a file was over the read cap and was not fully read.
OBFUSCATION_FILE_OVER_READ_CAP
src/mcp_server_for_oscal/oscal_schemas/oscal_assessment-plan_schema.xsd, line 1
<xs:schema xmlns="http://csrc.nist.gov/ns/oscal/1.0"
src/mcp_server_for_oscal/oscal_schemas/oscal_assessment-results_schema.xsd, line 1
<xs:schema xmlns="http://csrc.nist.gov/ns/oscal/1.0"
src/mcp_server_for_oscal/oscal_schemas/oscal_complete_schema.json, line 1
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://csrc.nist.gov/ns/oscal/1.0/1.2.1/oscal-complete-schema.json","$comment":"OSCAL Unified Model of Models: JSON Sche
Show more
src/mcp_server_for_oscal/oscal_schemas/oscal_complete_schema.xsd, line 1
<xs:schema xmlns="http://csrc.nist.gov/ns/oscal/1.0"
src/mcp_server_for_oscal/oscal_schemas/oscal_poam_schema.xsd, line 1
<xs:schema xmlns="http://csrc.nist.gov/ns/oscal/1.0"
src/mcp_server_for_oscal/oscal_schemas/oscal_ssp_schema.xsd, line 1
<xs:schema xmlns="http://csrc.nist.gov/ns/oscal/1.0"
Licence
Pass
A licence file is present (LICENSE).
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit de7f35614f50. can delete files. can reach a host that is not written as a fixed address. reads a credential or environment file. a file was over the read cap and was not fully read.
Date and source
Date checked:
github.com
Commit graded: de7f35614f50c9ade5d08b3e1c617112ea573ad1
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.