-
Notifications
You must be signed in to change notification settings - Fork 340
Description
🧭 Type of Feature
Please select the most appropriate category:
- Enhancement to existing functionality
- New feature or capability
- New MCP-compliant server
- New component or integration
- Developer tooling or test improvement
- Packaging, automation and deployment (ex: pypi, docker, quay.io, kubernetes, terraform)
- Other (please describe below)
🧭 Epic
Title: ABAC Controls for Virtual Server Access
Goal: Enable fine-grained, role-based access to MCP virtual servers and their tools using ABAC principles.
Why now: As organizations scale, secure and flexible access control is critical. This feature allows MCP clients to access only the virtual servers and tools they are authorized for, improving security and compliance.
🙋♂️ User Story 1
As a: Platform administrator
I want: to define which roles can access specific MCP virtual servers
So that: only authorized clients can see and use the tools on those servers
✅ Acceptance Criteria
gherkin
Scenario: Client with authorized role accesses a virtual server
Given an MCP client registers with a valid API key and a role header
And the role matches the allowed roles for a virtual server
When the client requests access to the virtual server
Then access is granted and available tools are listed
Scenario: Client with unauthorized role attempts access
Given an MCP client registers with a valid API key and a role header
And the role does not match the allowed roles for a virtual server
When the client requests access to the virtual server
Then access is denied
🙋♂️ User Story 2
As a: MCP client developer
I want: to specify my role when registering to the MCP server
So that: I can access only the virtual servers and tools permitted for my role
✅ Acceptance Criteria
gherkin
Scenario: Client specifies role in registration
Given a client includes a role header in the registration request
When the role matches a virtual server's allowed roles
Then the client can interact with that server's tools
📐 Design Sketch (optional)
flowchart TD
A[Client] -- API Key + Role Header --> B(MCP Server)
B -- Role matches --> C[Virtual Server Access Granted]
B -- Role does not match --> D[Access Denied]
🔗 MCP Standards Check
- Change adheres to current MCP specifications
- No breaking changes to existing MCP-compliant integrations
- If deviations exist, please describe them below:
🔄 Alternatives Considered
- Relying solely on API key authentication (less flexible, not role-aware)
- Implementing RBAC instead of ABAC (less granular, harder to extend for attributes beyond roles)
📓 Additional Context
- Related to security and compliance requirements for multi-tenant environments
- See also: Attribute-based access control (ABAC) overview
- Discussion: #security, #access-control