Skip to main content
Glama

Server Details

Runtime permission, approval, and audit layer for AI agent tool execution.

Ownership verified
Status
Healthy
Uptime
99.8% over 74 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
oakallow/oakallow-mcp
GitHub Stars
1
Server Listing
Oakallow MCP Server

TDQS

A4.3/5.0

Scored across 4 tools

Disambiguation4/5

The four tools have mostly distinct purposes: listing tools, checking a permission verdict, checking one approval by REF, and listing pending approvals. The two approval-related tools and two tool-related tools could be confused at a glance, but descriptions clarify their distinct scopes.

Naming Consistency5/5

All names use consistent snake_case with verb-first phrasing: check_*, list_*. The pattern is predictable across the set despite minor variation in noun length.

Tool Count5/5

Four tools is a well-scoped surface for a permission and approval governance server. Each tool covers a distinct part of the agent workflow: discovery, preflight check, approval status, and pending approval listing.

Completeness4/5

The surface covers core permission and approval lifecycle needs: discovering available tools, checking whether a call is allowed, and tracking pending approvals. Minor gaps exist around approval history or cancellation, but core agent workflows are supported.

Available Tools

4 tools
check_approval_statusA
Read-onlyIdempotent
Inspect

Check the status of a pending approval request by REF number. Use this between retries of a tool call that is pending approval. Do NOT call the original tool again to check status; that will create a duplicate approval.

NameRequiredDescriptionDefault
referenceYesREF number returned from a prior tool call that required approval.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is largely covered. The description adds genuinely non-obvious behavioral context the annotations cannot express: that re-calling the original tool creates a duplicate approval. It omits any hint about the return values/status vocabulary, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero filler, and the core action plus the critical 'don't re-call the original tool' warning are front-loaded. Every sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only tool with full annotation coverage, this is nearly complete: it says what it does, how to call it, and the pitfall to avoid. With no output schema present, it could have sketched what status values come back, which is the one remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter is already documented as 'REF number returned from a prior tool call that required approval.' The description repeats the same REF concept without adding format, source, or validation detail, so the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Check the status of a pending approval request') plus the lookup key ('by REF number'), which implicitly separates it from the bulk-oriented list_pending_approvals. It stops short of naming that sibling explicitly, so differentiation is inferable rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the situation for use ('between retries of a tool call that is pending approval') and an explicit prohibition with its consequence ('Do NOT call the original tool again... that will create a duplicate approval'). Both the when and the when-not are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_permissionA
Read-onlyIdempotent
Inspect

Ask whether a given tool call would be allowed, require approval, or be blocked, without actually making the call. Returns the resolved permission verdict and the level it resolved from.

NameRequiredDescriptionDefault
orgNoThe oakallow organization external id (e.g. org_oak_…) this action targets. Required when your account has more than one org; optional if you have exactly one. Get it from the org-specific oakallow skill you downloaded for that org.
methodNoOptional method name.
tenant_idNoOptional tenant external id.
tool_nameYesThe tool to evaluate.
resource_idNoOptional resource external id.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so the safety profile is covered. The description adds meaningful value beyond that by stating no side effect occurs ('without actually making the call') and describing the return content (the verdict plus the level it resolved from), which the annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the tool's purpose and immediately followed by the return behavior. No filler and no repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although there is no output schema, the description names the return value and the possible verdict outcomes, and the parameter requirements are fully covered by the schema. An agent has everything needed to decide to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including the multi-org conditional requirement on 'org' is already documented in the schema. The description adds no additional parameter meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — ask whether a tool call would be allowed, require approval, or be blocked — and adds the crucial dry-run qualifier 'without actually making the call.' That distinguishes it cleanly from check_approval_status and list_pending_approvals, which concern actual approval records rather than hypothetical verdicts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context for use: evaluate a prospective tool call before making it, with the three possible outcomes spelled out. It does not explicitly name the sibling alternatives or state when not to use it, which keeps it short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_my_toolsA
Read-onlyIdempotent
Inspect

Enumerate the customer-defined tools currently available to the signed-in user in the named org (or their only org if they have one). Returns tool names, descriptions, default permission, and risk level.

NameRequiredDescriptionDefault
orgNoThe oakallow organization external id (e.g. org_oak_…) this action targets. Required when your account has more than one org; optional if you have exactly one. Get it from the org-specific oakallow skill you downloaded for that org.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, establishing a safe read operation. The description adds value by specifying that it returns tool names, descriptions, default permission, and risk level, and clarifies scope (user's tools, org). No behavioral contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using two sentences that front-load the purpose and scope. Every sentence adds essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one optional parameter, no output schema, and annotations cover safety and idempotency, the description is complete. It explains what is returned, the scope (user and org), and handles the single-org vs multi-org case.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%; the single 'org' parameter has a detailed description in the schema. The tool description does not add additional parameter meaning beyond what the schema provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: enumerating customer-defined tools. It specifies verb 'enumerate', resource 'customer-defined tools', scope 'available to signed-in user in named org', and output fields. This distinguishes it from sibling tools like check_approval_status or list_pending_approvals.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (listing tools for a user in an org) but does not explicitly state when to use this tool versus alternatives. It lacks when-not-to-use guidance or explicit prerequisites beyond the org parameter handling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_pending_approvalsA
Read-onlyIdempotent
Inspect

List approval requests still awaiting a human decision for the signed-in user. Useful for agents picking up an abandoned workflow.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, indicating no side effects. The description adds that it operates for the signed-in user, which is important context. This is adequate but not additional behavioral depth beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, clear sentences with no wasted words. The description is front-loaded with the main action and follows with a use case.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description covers the purpose, scope (signed-in user), and a usage context. It could mention the output format but is generally complete given the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and schema coverage is 100%. The description does not need to explain parameters. The baseline of 4 is appropriate as no additional info is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists approval requests still awaiting a human decision for the signed-in user. It distinguishes from siblings like check_approval_status by implying this is for all pending requests rather than a specific one.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Useful for agents picking up an abandoned workflow,' giving a concrete use case. However, it does not explicitly state when to avoid this tool in favor of siblings, leaving some guessing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Removedstart_test
  2. 1 tool update
    • Changedstart_test2 fields changed
      • changedInput schema / properties / agent / description
        Previous value: -"An identifier for the agent making this call (free text — a name, code, or number you use to track your own agents). Lets the oakallow governance report distinguish which agent submitted each call instead of attributing everything to the connector account. Optional but recommended; send the same value consistently per agent."New value: +"An identifier for the agent making this call (free text: a name, code, or number you use to track your own agents). Lets the oakallow governance report distinguish which agent submitted each call instead of attributing everything to the connector account. Optional but recommended; send the same value consistently per agent."
      • changedInput schema / properties / reason / description
        Previous value: -"Short non-sensitive summary of why this tool is being called (e.g. \"grant_credits requested after verify_coupon\"). Oakallow automatically redacts SSN, card numbers, emails, phone numbers, and addresses from this field before storing — do not rely on redaction, avoid putting customer PII here."New value: +"Short non-sensitive summary of why this tool is being called (e.g. \"grant_credits requested after verify_coupon\"). Oakallow automatically redacts SSN, card numbers, emails, phone numbers, and addresses from this field before storing. Do not rely on redaction; avoid putting customer PII here."
  3. 1 tool update
    • Addedstart_test
  4. 4 tool updates
    • First observedcheck_approval_status
    • First observedcheck_permission
    • First observedlist_my_tools
    • First observedlist_pending_approvals

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides permission gates and tamper-evident audit logging for AI agent tool executions, with declarative policies, consent ladders, and hash-chained verification.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables controlled AI-agent access to enterprise-shaped tools with a deny-by-default gated write path, human approval, dry-run execution, and append-only audit logging.
    1
    -
  • A
    license
    A
    quality
    B
    maintenance
    Local zero-trust permission gateway for AI agents. Enforces policy-based tool authorization, human approvals, scoped permissions, and cryptographically verifiable audit logs.
    4
    101 PyPI
    5
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.