@vengtoo/mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VENGTOO_API_KEY | No | API key starting with azx_ | |
| VENGTOO_BASE_URL | No | Override API base URL. Default: https://api.vengtoo.com | |
| VENGTOO_CLIENT_ID | No | OAuth2 client ID | |
| VENGTOO_CLIENT_SECRET | No | OAuth2 client secret |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_namespacesA | List all namespaces in the tenant. Namespaces are optional containers that scope resources — useful when the same resource type name is used across multiple isolated environments (e.g., prod vs staging). |
| create_namespaceA | Create a new namespace. Resources created inside this namespace are isolated from resources in other namespaces. Use "default" namespace unless you specifically need isolation. |
| get_namespaceC | Get a namespace by ID. |
| delete_namespaceA | Delete a namespace by ID. This does not delete the resources inside it. |
| list_resource_typesA | List all resource types. A resource type defines a category of thing you protect (e.g. "document", "project", "invoice") and the actions available on it. |
| create_resource_typeA | Create a resource type. Do this before creating resources or policies. The actions list defines what verbs are valid for this type (e.g. ["read", "write", "delete"]). Policies targeting this type use these action names. |
| get_resource_typeC | Get a resource type by ID. |
| delete_resource_typeB | Delete a resource type by ID. |
| list_resourcesA | List resources in the tenant. |
| create_resourceA | Create a resource — a specific instance of a resource type (e.g. a specific document, a specific project). Set external_id to your system's own identifier (database UUID, slug) so you can reference it at evaluation time without storing Vengtoo's internal ID. |
| get_resourceC | Get a resource by ID. |
| delete_resourceC | Delete a resource by ID. |
| list_subjectsA | List subjects (users, services, AI agents, or any other principal) in the tenant. |
| create_subjectA | Create a subject — any principal that can be authorized (user, service, AI agent, device). Set external_id to your system's own user/service identifier so evaluation calls can reference it without a Vengtoo UUID lookup. |
| get_subjectC | Get a subject by ID. |
| delete_subjectB | Delete a subject by ID. |
| assign_role_to_subjectA | Give a subject a role. The subject inherits all policies assigned to the role. Use this to build RBAC: create a role, assign policies to it, then assign the role to subjects. |
| unassign_role_from_subjectA | Remove a role from a subject. The subject immediately loses any access that came exclusively from this role. |
| list_rolesA | List all roles. Roles are named collections of policies — assign a role to many subjects instead of assigning the same policies repeatedly. |
| create_roleA | Create a role. After creating it, assign policies to the role with assign_policy (entity_type: "role"), then assign subjects to the role with assign_role_to_subject. |
| get_roleB | Get a role by ID. |
| delete_roleA | Delete a role by ID. Subjects who had this role lose any access that came exclusively from it. |
| list_policiesA | List all policies in the tenant. |
| create_policyA | Create a policy. A policy grants or denies a set of actions on a resource type (type-level) or a specific resource (instance-level). After creating, assign it to a subject or role with assign_policy. For type-level: set resource_type_id and actions — the policy applies to ALL resources of that type. For instance-level: set resource_id and actions — the policy applies to ONE specific resource. |
| get_policyA | Get a policy by ID, including its resource and action assignments. |
| delete_policyA | Delete a policy by ID. Subjects or roles that had this policy assigned immediately lose the access it granted. |
| assign_policyA | Assign a policy to a subject, role, or group. This is what actually grants access — creating a policy alone does nothing until it is assigned. entity_type must be "subject", "role", or "group". For time-boxed (JIT) access: set expires_at. For future-dated access: also set starts_at. |
| unassign_policyA | Remove a policy assignment from a subject, role, or group. Access granted by this policy is revoked immediately. |
| check_authorizationA | Ask Vengtoo whether a subject can perform an action on a resource. Returns decision: true (allowed) or false (denied), plus the reason and which policy/access path was responsible. Identify the subject and resource using either their Vengtoo UUID (id) or your system's own identifier (external_id). external_id is preferred in production — it avoids the need to store Vengtoo UUIDs. For type-level checks (does this user have ANY access to this type of resource?): set resource_type and omit resource_id and resource_external_id. For instance-level checks (does this user have access to THIS specific resource?): set resource_id or resource_external_id. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 29 tools
Each tool targets a distinct operation on a specific entity (e.g., create_namespace, assign_policy, check_authorization). There is no overlap; even assignment operations are clearly separated by entity type.
All tool names use consistent snake_case with a verb_noun pattern (e.g., create_resource, list_roles, delete_policy). Longer names like assign_role_to_subject remain descriptive and follow the pattern.
With 29 tools, the count is high but justified by the comprehensive coverage of multiple entity types (namespace, policy, resource, resource_type, role, subject) and their CRUD plus assignment operations. It slightly exceeds the ideal range but remains well-scoped.
The tool set lacks update operations for all entities (e.g., update_policy, update_role). This forces users to delete and recreate objects to modify them, which is a significant gap for a permissions management system.