Skip to content

feat(policy): cover all MCP operations - #86

Open
P4ST4S wants to merge 1 commit into
feat/principal-aware-policyfrom
feat/policy-all-mcp-operations
Open

feat(policy): cover all MCP operations#86
P4ST4S wants to merge 1 commit into
feat/principal-aware-policyfrom
feat/policy-all-mcp-operations

Conversation

@P4ST4S

@P4ST4S P4ST4S commented Aug 24, 2026

Copy link
Copy Markdown
Owner

Summary

Étend l’application des policies à toutes les opérations MCP client-originated, avec un mode de compatibilité explicite pour les déploiements 1.x.

Context

Cette PR est empilée sur #85.

Approach

  • ajoute policy.scope avec tools_only et all_operations ;
  • conserve tools_only comme défaut implicite des anciennes configurations ;
  • configure le nouveau fichier distribué en all_operations ;
  • centralise l’extraction method/name via le package MCP ;
  • évalue tools, resources, prompts, completion, logging, server/discover, tasks, extensions et les méthodes custom ;
  • refuse une opération denied avant forwarding et produit l’audit JSON-RPC -32030 ;
  • ne compte dans la métrique policy que les décisions réellement appliquées ;
  • maintient le rate limiting sur tools/call, hors périmètre de cette PR.

Test plan

  • go test -race ./... — passe
  • go build ./... — passe
  • go vet ./... — passe
  • matrice des huit familles MCP — couverte
  • tools_only laisse passer une resource malgré default deny — couvert
  • all_operations applique default deny à cette resource — couvert
  • refus resources/read en stdio — couvert
  • refus prompts/get en HTTP sans appel upstream — couvert
  • extraction taskId et noms génériques — couverte

Stability impact

Ajoute policy.scope. Son défaut tools_only préserve le comportement historique ; all_operations est un opt-in explicite. Les règles tool_name existantes restent valides.

Notes for reviewer

Les requêtes initiées par le serveur vers le client restent transmises : cette PR porte sur l’autorisation des opérations soumises par le principal client authentifié.

@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 76.05634% with 17 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
cmd/mcp-audit/main.go 12.50% 7 Missing ⚠️
internal/mcp/metadata.go 33.33% 6 Missing ⚠️
internal/proxy/http.go 87.50% 1 Missing and 1 partial ⚠️
internal/proxy/stdio.go 91.66% 1 Missing and 1 partial ⚠️

📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants