Skip to main content

AI agent tools for Open Security Controls Assessment Language (OSCAL).

Project description

MCP Server for OSCAL

A Model Context Protocol (MCP) server that provides AI assistants (Claude, Cline, Kiro, Claude Code, etc.) with tools to work with NIST's Open Security Controls Assessment Language (OSCAL). Like many early adopters, we needed help implementing OSCAL proofs-of-concept to demonstrate value to business stakeholders. Perhaps due to limited availability of examples in the public domain, we found that most AI agents/LLMs alone produced inconsistent results related to OSCAL. The tools in this MCP server minimzed that problem for our use-case and we hope they do the same for you.

What is OSCAL?

OSCAL (Open Security Controls Assessment Language) is a set of framework-agnostic, vendor-neutral, machine-readable schemas developed by NIST that describe the full life cycle of GRC (governance, risk, compliance) artifacts, from controls to remediation plans. OSCAL enables automation of GRC workflows by replacing digital paper (spreadsheets, PDFs, etc.) with a standard-based structured data format.

Features

This MCP server provides tools for working with OSCAL:

1. List OSCAL Models

  • Tool: list_oscal_models
  • Retrieve all available OSCAL model types with descriptions, layers, and status
  • Understand the different OSCAL models and their purposes

2. Get OSCAL Schemas

  • Tool: get_oscal_schema
  • Retrieve JSON or XSD schemas for current GA release of individual OSCAL models. Because OSCAL schemas are self-documenting, this is equivalent to querying model documentation.
  • Used to answer questions about the structure, properties, requirements of each OSCAL model

3. List OSCAL Community Resources

  • Tool: list_oscal_resources
  • Access a curated collection of OSCAL community resources from Awesome OSCAL
  • Get information about available OSCAL tools, content, articles, presentations, and educational materials
  • Includes resources from government agencies, security organizations, and the broader OSCAL community

4. Query OSCAL Documentation

  • Tool: query_oscal_documentation
  • Query authoritative OSCAL documentation using Amazon Bedrock Knowledge Base (KB). Note that this feature requires you to setup and maintain a Bedrock KB in your AWS account. In future, we hope to provide this as a service.
  • Get answers to questions about OSCAL concepts, best practices, and implementation guidance.

Installation

If you just want to use the MCP server with your IDE or preferred AI tool, then you don't need to clone the project or download source code.

Prerequisites

Configuring IDEs and AI Tools

This MCP server communicates via stdio (standard input/output) and can be integrated with various IDEs and agentic tools that support the Model Context Protocol.

Configuration Format

Most MCP-compatible tools use a JSON configuration format described in the FastMCP documentation. Here's the basic structure:

{
  "mcpServers": {
    "oscal": {
      "command": "uvx",
      "args": ["--from", "mcp-server-for-oscal@latest", "server"],
      "env": {
      }
    }
  }
}

IDE-Specific Configuration

Kiro IDE See Kiro's MCP documentation for additional options. Add to your .kiro/settings/mcp.json:

{
  "mcpServers": {
    "oscal": {
      "command": "uvx",
      "args": ["--from", "mcp-server-for-oscal@latest", "server"],
      "env": {},
      "disabled": false,
      "autoApprove": [
        "get_oscal_schema",
        "list_oscal_resources",
        "list_oscal_models",
        "query_oscal_documentation"
      ]
    }
  }
}

Claude Desktop Add to your ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "oscal": {
      "command": "uvx",
      "args": ["--from", "mcp-server-for-oscal@latest", "server"]
    }
  }
}

VS Code Run the MCP: Open User Configuration command, which opens the mcp.json file in your user profile. You can then manually add the server configuration to the file. See the VSCode/Copilot docs for addtional options and details.

{
  "servers": [
    "oscal": {
      "command": "uvx",
      "args": ["--from", "mcp-server-for-oscal@latest", "server"]
    }
  ]
}

Environment Variables

Generally, configuration should not be required. See the file dotenv.example for available options. Note that a dotenv file is only needed in a development environment. For typical, runtime use of the MCP server, environment variables should be configured as described in the FastMCP documentation.

Development

See DEVELOPING to get started.

Security

See CONTRIBUTING for more information.

License

This project is licensed under the Apache-2.0 License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_server_for_oscal-0.1.5.tar.gz (339.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_server_for_oscal-0.1.5-py3-none-any.whl (326.7 kB view details)

Uploaded Python 3

File details

Details for the file mcp_server_for_oscal-0.1.5.tar.gz.

File metadata

  • Download URL: mcp_server_for_oscal-0.1.5.tar.gz
  • Upload date:
  • Size: 339.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcp_server_for_oscal-0.1.5.tar.gz
Algorithm Hash digest
SHA256 4277c9ec86c8fec0a97199965979282ddc22469ea503c8f5cab166c031325794
MD5 7a40ab8efe96e944a7f1fc322af13f14
BLAKE2b-256 69fbb86bd48b891141a95b1758b65c2695d8defcb60d32356bf24b072bad5ab2

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_server_for_oscal-0.1.5.tar.gz:

Publisher: release.yml on awslabs/mcp-server-for-oscal

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_server_for_oscal-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_server_for_oscal-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 281fe3272056a9fc1b2001e82a2b05c23d35b4b35cf6f39f9fcdbe4e6f11727d
MD5 890a3e1d951503f1d1013bc71f4f3dd0
BLAKE2b-256 0eab96e3f2cee33b8bf3e9ea8bb51cf0f9a9d715ca1595ac1db71d5ee6d37980

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_server_for_oscal-0.1.5-py3-none-any.whl:

Publisher: release.yml on awslabs/mcp-server-for-oscal

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page