experimental-ext-interceptors
Status: Experimental. This repository provides a multi-language reference implementation of the proposed interceptor extension for the Model Context Protocol (MCP), as described in SEP-1763.
Ask AI about experimental-ext-interceptors
Powered by Claude Β· Grounded in docs
I know everything about experimental-ext-interceptors. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
MCP Interceptors (Experimental Extension)
Status: Experimental. This work is for prototyping and feedback only, and is not an accepted or official MCP extension.
This repository provides a multi-language reference implementation of the proposed interceptor extension for the Model Context Protocol (MCP), as described in SEP-1763.
Implementations
| Language | Directory | Package | Status |
|---|---|---|---|
| C# | csharp/sdk/ | ModelContextProtocol.Interceptors | In Progress |
| Go | go/sdk/ | github.com/modelcontextprotocol/ext-interceptors/go/sdk | Planned |
| Python | python/sdk/ | mcp-ext-interceptors | Planned |
| TypeScript | typescript/sdk/ | @ext-modelcontextprotocol/interceptors | Planned |
CI/CD
This monorepo uses path-based CI workflows to efficiently test only what changes:
How It Works
-
Language-specific workflows (
csharp.yml,python.yml,go.yml,typescript.yml)- Only trigger when their language directory or workflow file changes
- Run all tests, linting, and checks for that language
-
Status check workflow (
status-check.yml)- Runs on every PR to verify required checks passed
- Determines what needs to pass based on which files changed
- This is the only required check in branch protection
Examples
- Change
python/sdk/file.pyβ Only Python CI runs β PR requires Python checks to pass - Change both Go and TypeScript files β Both CIs run β PR requires both to pass
- Change only
README.mdβ No language CIs run β PR can merge immediately
Forcing All Checks
To run all language checks regardless of changed files:
- In a PR: Comment
/test all(only works for repo owners/members/collaborators) - Manually: Use GitHub Actions UI or CLI to trigger individual workflows
Adding New Required Checks
-
Add your check to the appropriate language workflow (e.g.,
python.yml):python-security-scan: name: "Security Scan" runs-on: ubuntu-latest steps: - name: Run security checks run: # your commands here -
Update the status check in
.github/workflows/status-check.yml:const requiredChecks = { python: [ 'Python CI / Linting', 'Python CI / Unit Tests (3.10)', // ... existing checks ... 'Python CI / Security Scan' // β Add your new check ], -
Submit PR - Your new check is now required for all relevant changes!
License
Apache License 2.0 - See LICENSE file for details
Resources
- Interceptor Framework Specification (SEP-1763) - Full specification and design details
- Model Context Protocol
