feat(policy): add MCP policy layer with startup validation#30
Draft
ghul0 wants to merge 1 commit intonicobailon:mainfrom
Draft
feat(policy): add MCP policy layer with startup validation#30ghul0 wants to merge 1 commit intonicobailon:mainfrom
ghul0 wants to merge 1 commit intonicobailon:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The adapter currently exposes all tools and resources from a configured MCP server and forwards tool arguments without an adapter-side policy layer. That makes it hard to enforce allowlists and request-shaping rules for higher-risk servers.
Root Cause
Server definitions only described connection and exposure settings. There was no config-level policy model to:
Fix
policymodel with allowlists for tools, resources, and promptsSummary
policy.tsimplementation andServerEntry.policytypingvalidatePoliciesInConfig()README.mdTesting
Policy test suite
Standalone note
This PR is intentionally based directly on
upstream/mainand does not include the repeated--mcp-configwork from PR #29.The only startup wiring change here is the standalone-compatible
init.tsaddition of:validatePoliciesInConfig(config)while preserving upstream's existing single-config loading:
const configPath = pi.getFlag("mcp-config") as string | undefined;const config = loadMcpConfig(configPath);