Skip to main content
Glama
varunjain-byte

Axivion MISRA C:2012 Compliance Agent

Axivion MISRA C:2012 Compliance Agent — MCP Server

An MCP (Model Context Protocol) server that turns GitHub Copilot into a MISRA C:2012 compliance assistant. It loads Axivion static-analysis reports, explains violations with full rule rationale, and proposes concrete, confidence-scored fixes.

Disclaimer: The MISRA rule knowledge in this tool is derived from publicly available summaries and documentation. It is not a substitute for the official MISRA C:2012 standard. For authoritative rule text, consult your licensed copy.


Features

Capability

Description

Report parsing

Auto-detects multiple Axivion JSON formats (issues, findings, warnings, results, bare arrays)

Rule knowledge base

29 MISRA C:2012 rules (2.x, 8.x, 10.x) with rationale, compliant/non-compliant examples, and fix strategies

Fix engine

Pattern-matching fixes for mechanical rules + context-aware guidance for complex ones

Confidence scoring

Each fix suggestion is rated HIGH / MEDIUM / LOW

Side-effect warnings

Cross-file impact analysis for rules affecting headers and callers

Architecture

┌──────────────────────────────────────────────────┐
│                  GitHub Copilot                   │
│              (MCP Client / LLM Host)              │
└──────────────┬───────────────────────────────────┘
               │  stdio (JSON-RPC)
┌──────────────▼───────────────────────────────────┐
│              fastmcp_server.py                    │
│  ┌──────────┐ ┌──────────┐ ┌──────────────────┐  │
│  │load_report│ │list_viols│ │analyze_violation │  │
│  └──────────┘ └──────────┘ └──────────────────┘  │
│  ┌──────────────┐ ┌──────────────┐               │
│  │ explain_rule  │ │ propose_fix  │               │
│  └──────────────┘ └──────────────┘               │
├──────────────────────────────────────────────────┤
│  core/                                            │
│  ├── axivion_parser.py       (JSON → violations)  │
│  ├── context_provider.py     (code context)       │
│  ├── misra_knowledge_base.py (29 rules)           │
│  └── fix_engine.py           (fix suggestions)    │
└──────────────────────────────────────────────────┘

Prerequisites

  • Python 3.10 or higher (required by the mcp SDK)

  • VS Code with GitHub Copilot extension

  • An Axivion JSON report (or use the included mock reports for testing)

Setup

# 1. Clone
git clone <your-repo-url>
cd MCP-MISRA

# 2. Create virtual environment (Python 3.10+)
python3.10 -m venv venv
source venv/bin/activate        # macOS / Linux
# venv\Scripts\activate         # Windows

# 3. Install dependencies
pip install -r requirements.txt

VS Code Configuration

Add the following to your VS Code settings.json (User or Workspace):

{
  "mcpServers": {
    "axivion-misra": {
      "command": "/absolute/path/to/venv/bin/python",
      "args": [
        "/absolute/path/to/fastmcp_server.py"
      ],
      "env": {}
    }
  }
}

Replace /absolute/path/to/ with the actual paths on your machine.

MCP Tools

1. load_report

Loads an Axivion JSON report and sets the workspace root for code context.

load_report(report_path="/path/to/report.json", workspace_root="/path/to/source")
→ "Successfully loaded report. Found 55 violations."

2. list_violations

Lists all violations in a specific file, with rule titles.

list_violations(file_path="src/module.c")
→ **15 violations in src/module.c:**
  - [MisraC2012-8.10] Line 92 (medium): Inline without static
    *Inline function shall be declared static*
  ...

3. analyze_violation

Deep analysis: code context + rule explanation + fix suggestion in one call.

analyze_violation(rule_id="MisraC2012-8.10", file_path="src/module.c")
→ Violation Analysis table
  + 30-line code snippet
  + Full rule explanation (rationale, examples)
  + Fix suggestion with confidence score

4. explain_rule

Full MISRA rule reference: title, category, rationale, compliant/non-compliant examples, and fix strategy.

explain_rule(rule_id="MisraC2012-10.3")
→ ## MisraC2012-10.3 — Assignment to narrower or different essential type
  **Category**: Required
  ### Rationale ...
  ### Non-Compliant Example ...
  ### Compliant Example ...
  ### How to Fix ...

5. propose_fix

Concrete, confidence-scored fix with before/after code and side-effect warnings.

propose_fix(rule_id="MisraC2012-8.10", file_path="src/module.c", line_number=92)
→ ### Fix Suggestion — MisraC2012-8.10
  **Confidence**: HIGH
  #### Before:  inline int square(int x) { ... }
  #### After:   static inline int square(int x) { ... }
  #### ⚠ Potential Side Effects: ...

Supported Axivion JSON Formats

The parser auto-detects these structures:

// Format 1: {"issues": [...]}
{"issues": [{"ruleId": "...", "location": {"path": "...", "startLine": 10}, ...}]}

// Format 2: {"findings": [...]}
{"findings": [{"rule": "...", "file": "...", "line": 10, ...}]}

// Format 3: Top-level array
[{"ruleId": "...", "location": {"path": "...", "startLine": 10}, ...}]

Each issue can use various key names — the parser normalises them:

  • Rule ID: ruleId, rule_id, rule, checkId

  • File path: location.path, location.file, file, path

  • Line number: location.startLine, location.line, line, startLine

  • Severity: severity, priority, level

MISRA Rules Covered

Rule 2.x — Unused Code (7 rules)

2.1 Unreachable code · 2.2 Dead code · 2.3 Unused type · 2.4 Unused tag · 2.5 Unused macro · 2.6 Unused label · 2.7 Unused parameter

Rule 8.x — Declarations & Definitions (14 rules)

8.1 Explicit types · 8.2 Prototype form · 8.3 Consistent declarations · 8.4 Compatible declaration · 8.5 Single extern · 8.6 One external definition · 8.7 No block-scope extern · 8.8 Static for internal · 8.9 Block scope if single use · 8.10 Static inline · 8.11 Extern array size · 8.12 Unique enum values · 8.13 Pointer to const · 8.14 No restrict

Rule 10.x — Essential Type Model (8 rules)

10.1 Appropriate operand type · 10.2 Character arithmetic · 10.3 Narrowing assignment · 10.4 Same type category · 10.5 Appropriate cast type · 10.6 Composite to wider · 10.7 Composite operand width · 10.8 Composite cast category

Running Tests

source venv/bin/activate
python tests/test_logic.py

The test suite validates:

  • Parser loads 55 violations across 29 rules

  • Knowledge base has complete entries for all 29 rules

  • Fix engine produces suggestions for every violation

  • Mechanical fixes are correct (8.10, 8.14, 8.2, 2.7, 2.1)

  • Enhanced context provider features work

  • Cross-file side-effect warnings fire for affected rules

Project Structure

MCP-MISRA/
├── fastmcp_server.py           # MCP server entry point (5 tools)
├── requirements.txt            # Python dependencies
├── README.md
├── LICENSE                     # MIT
├── .gitignore
├── core/
│   ├── __init__.py
│   ├── axivion_parser.py       # Multi-format JSON parser
│   ├── context_provider.py     # Code context + function extraction
│   ├── misra_knowledge_base.py # 29 MISRA rules with examples
│   └── fix_engine.py           # Fix suggestions + confidence scoring
└── tests/
    ├── __init__.py
    ├── test_logic.py           # Comprehensive test suite
    ├── mock_report.json        # 55-violation sample report
    ├── mock_code.c             # Basic C mock
    ├── mock_code_rule2x.c      # Rule 2.x edge cases
    ├── mock_code_rule8x.c      # Rule 8.x edge cases
    └── mock_code_rule10x.c     # Rule 10.x edge cases

License

MIT — see LICENSE.

A
license - permissive license
-
quality - not tested
-
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Hosted MCP server for structured code review passes on human- and AI-written code. Free tier.

  • Augments MCP Server - A comprehensive framework documentation provider for Claude Code

  • Scan any public GitHub MCP-server repo for security issues. 37 MCP-specific L1 rules, 8 languages.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/varunjain-byte/MISRA-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server