Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Default owners for all files
* @agentrust-io/maintainers

# Security-sensitive paths require security-reviewers sign-off
src/cmcp_gateway/audit/ @agentrust-io/security-reviewers @agentrust-io/maintainers
src/cmcp_gateway/tee/ @agentrust-io/security-reviewers @agentrust-io/maintainers
src/cmcp_gateway/policy/ @agentrust-io/security-reviewers @agentrust-io/maintainers

# CI/CD workflow changes
.github/workflows/ @agentrust-io/maintainers

# Package configuration
pyproject.toml @agentrust-io/maintainers
42 changes: 42 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
name: Bug report
about: Defect in gateway behavior
labels: bug
assignees: ''
---

## cmcp-gateway version

<!-- Output of `cmcp-gateway --version` or the git SHA if building from source -->

## Python version

<!-- Output of `python --version` -->

## TEE provider

<!-- e.g. Intel TDX, AMD SEV-SNP, AWS Nitro Enclaves, none -->

## Reproduction steps

1.
2.
3.

## Expected behavior

<!-- What you expected to happen -->

## Actual behavior

<!-- What actually happened -->

## Relevant logs or TRACE Claim output

```
<!-- Paste log output or TRACE Claim JSON here -->
```

## Conformance test ID (if applicable)

<!-- Prefix with ATTEST, POLICY, AUDIT, or TRACE — e.g. ATTEST-007, POLICY-003 -->
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: Security vulnerability
url: https://github.com/agentrust-io/cmcp/security/advisories/new
about: Report a security vulnerability via GitHub Security Advisories. Do not open a public issue.
- name: Design discussion
url: https://github.com/agentrust-io/cmcp/discussions
about: Start a design discussion or ask a broad question in GitHub Discussions before opening an issue.
- name: Trace spec proposal
url: https://github.com/agentrust-io/trace-spec/issues/new
about: Propose a change to the cMCP trace specification in the trace-spec repo.
25 changes: 25 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
name: Feature request
about: Propose a new capability
labels: enhancement
---

## Problem statement

<!-- Describe the problem or gap this feature addresses. Be specific about who is affected and under what conditions. -->

## Proposed solution

<!-- Describe the capability you want added. Include enough detail for an implementer to scope the work. -->

## Alternatives considered

<!-- List other approaches you evaluated and why you ruled them out. -->

## Security/TEE impact

<!-- Required. Describe any impact on the TEE boundary, attestation flow, secret handling, or threat model. Write "None" if not applicable. -->

## Spec alignment

<!-- Does this require a change to the trace spec? If yes, describe which fields or events are affected and link to the relevant spec section. If no, write "No trace-spec change required." -->
26 changes: 26 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
## What

<!-- Brief description of the change. One to three sentences. -->

## Why

<!-- Motivation and context. Link the issue this closes, e.g. Closes #123. -->

## Security impact

<!-- Required. If this change touches TEE boundaries, message signing, audit chain integrity,
capability tokens, or trust-score inputs, describe the impact. Otherwise write "None". -->

## Test plan

- [ ] `pytest` passes
- [ ] `ruff check` passes
- [ ] `mypy` passes
- [ ] Manual test performed (describe steps below if applicable)

<!-- Manual test steps (delete if not applicable): -->

## DCO sign-off

- [ ] I certify that I wrote or have the right to submit this contribution, and I agree to the
Developer Certificate of Origin (https://developercertificate.org).
19 changes: 19 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
open-pull-requests-limit: 5
ignore:
- dependency-name: "*"
update-types:
- "version-update:semver-major"

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
open-pull-requests-limit: 5
15 changes: 12 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,11 @@ on:

jobs:
test:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ["3.11", "3.12"]
python-version: ["3.11", "3.12", "3.13"]
os: [ubuntu-latest, windows-latest]

steps:
- uses: actions/checkout@v4
Expand All @@ -23,11 +24,19 @@ jobs:
- name: Install dependencies
run: pip install -e ".[dev]"

- name: Security scan
run: pip install bandit pip-audit && bandit -r src/ -c pyproject.toml && pip-audit

- name: Lint
run: ruff check src/ tests/

- name: Type check
run: mypy src/cmcp_gateway/

- name: Test
run: pytest tests/unit/ -v --tb=short
run: pytest tests/unit/ -v --tb=short --cov=src --cov-report=xml

- name: Upload coverage report
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: false
39 changes: 39 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: CodeQL

on:
push:
branches:
- main
pull_request:
branches:
- main
schedule:
- cron: '15 3 * * 0'

permissions:
actions: read
contents: read
security-events: write

jobs:
analyze:
name: Analyze (python)
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: python
queries: +security-extended

- name: Autobuild
uses: github/codeql-action/autobuild@v3

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: /language:python
47 changes: 47 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Publish to PyPI

on:
push:
tags:
- "v*"

permissions:
contents: read
id-token: write

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install hatchling
run: pip install hatchling

- name: Build package
run: python -m hatchling build

- name: Upload dist artifact
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/

publish:
needs: build
runs-on: ubuntu-latest
environment: pypi
steps:
- name: Download dist artifact
uses: actions/download-artifact@v4
with:
name: dist
path: dist/

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
37 changes: 37 additions & 0 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: OpenSSF Scorecard

on:
branch_protection_rule:
schedule:
- cron: '30 4 * * 1'
push:
branches:
- main

permissions:
security-events: write
id-token: write
contents: read
actions: read

jobs:
scorecard:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false
fetch-depth: 0

- name: Run Scorecard
uses: ossf/scorecard-action@v2
with:
results_file: scorecard-results.sarif
results_format: sarif
publish_results: true

- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: scorecard-results.sarif
7 changes: 7 additions & 0 deletions ADOPTERS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Adopters

Organizations using cMCP in production or evaluation. Open a PR to add your organization.

| Organization | Use Case | Since |
|---|---|---|
| Your org here | - | - |
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.1.0] - 2026-06-23

### Added

- Initial TEE gateway with provider support for TPM, SEV-SNP, TDX, and Opaque
- Cedar policy enforcement for request authorization at the gateway layer
- TRACE Claim generation using the `GatewayClaim` envelope from `agentrust-trace`
- `cmcp-verify` standalone verifier for validating TRACE Claims offline
- Audit chain with Ed25519 signing for tamper-evident log integrity

[Unreleased]: https://github.com/agentic-ai-foundation/cmcp-agentrust/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/agentic-ai-foundation/cmcp-agentrust/releases/tag/v0.1.0
Loading
Loading