Skip to main content
Glama
Ownership verified

Server Details

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

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
oakallow/oakallow-mcp
GitHub Stars
1
Server Listing
Oakallow MCP Server

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 3.9/5 across 5 of 5 tools scored. Lowest: 2.9/5.

Server CoherenceA
Disambiguation4/5

Each tool has a distinct purpose, but check_approval_status and list_pending_approvals both relate to approvals and could be confused if not read carefully. However, descriptions clarify the difference, so disambiguation is good but not perfect.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (check_, list_, start_). The verbs are clear and the names are predictable.

Tool Count5/5

Five tools is a reasonable number for the domain of permission/approval management. It's well within the 3-15 range and each tool serves a distinct function without being overwhelming.

Completeness2/5

The tool surface has significant gaps. There is no way to approve or reject an approval request beyond checking its status, nor any tool to create, update, or delete custom tools beyond listing them. The start_test tool seems unrelated to the core domain, leaving incomplete coverage for the apparent purpose.

Available Tools

5 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
referenceYesREF number returned from a prior tool call that required approval.
Behavior4/5

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

Annotations already indicate read-only and idempotent behavior. The description adds the warning about duplicate approvals if the original tool is called, which is valuable context. However, it does not detail the response format or possible statuses, but given annotations, this is sufficient.

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 with no redundancy. The first sentence states the core purpose, and the second provides critical usage guidance. Every word earns its place.

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?

Given the simple single-parameter tool with no output schema, the description covers the essential context: when to use it (after a pending approval) and how to avoid misuse. It could optionally mention expected statuses, but is largely complete for its simplicity.

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% with a clear description for the 'reference' parameter. The description mentions 'REF number' but adds no new meaning beyond what the schema provides. Baseline 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 'Check the status of a pending approval request by REF number,' specifying the verb 'check' and the resource 'approval request' with the identifier. It distinguishes itself from sibling tools like 'list_pending_approvals' which lists all approvals.

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 instructs to 'Use this between retries of a tool call that is pending approval' and warns against calling the original tool again to check status, preventing duplicate approvals.

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.

ParametersJSON Schema
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.
Behavior4/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that the tool returns a permission verdict and resolution level, and emphasizes it does not actually make the call, reinforcing the safe, idempotent nature. It does not contradict annotations and adds context beyond them.

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 consists of two concise sentences with no redundant information. The first sentence states the action and key feature (no call made), and the second describes the return value. Every word earns its place, making it highly efficient.

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?

Given the tool has 5 parameters (only 1 required), no output schema, and high annotation coverage, the description is fairly complete. It explains the return (permission verdict and level), but does not mention potential error cases or the relationship to the sibling 'check_approval_status'. Still, it provides enough context for a read-only permission check tool.

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 the input schema already documents all 5 parameters with descriptions. The tool description does not add extra parameter details beyond stating the tool evaluates a given tool call. Baseline is 3, and the description provides no additional param-level insight, so score remains 3.

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 purpose: to check if a tool call would be allowed, require approval, or be blocked without executing it. It specifies the verb 'ask whether' and the resource 'tool call', and it differentiates from actual execution by noting no call is made. This distinguishes it from sibling tools like 'check_approval_status' which likely deal with existing approvals.

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 provides clear context for when to use the tool (before making a tool call) but does not explicitly exclude alternatives or mention when not to use it. It implies using it as a precautionary step, but lacks comparison to sibling tools like 'check_approval_status' or 'list_pending_approvals'. This still offers good guidance.

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.

ParametersJSON Schema
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.
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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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.

start_testCInspect

Starts a Testing Run

ParametersJSON Schema
NameRequiredDescriptionDefault
agentNoAn 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.
reasonNoShort 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.
Behavior2/5

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

With all annotation hints set to false, the description carries the full burden but discloses no behavioral traits. It implies mutation by starting a run but does not explain side effects, idempotency, or resource impact.

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

Conciseness3/5

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

The description is a single sentence with no waste, but it is under-specified. It achieves conciseness at the expense of informativeness, which is closer to minimal viable than ideal.

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

Completeness2/5

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

Given the lack of output schema and annotations, the description is insufficiently complete. It does not specify return values, asynchronous behavior, or any post-call effects, leaving the agent underinformed.

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 the baseline is 3. The tool description does not add any parameter-related information, relying entirely on the schema descriptions which are already present.

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

Purpose3/5

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

The description 'Starts a Testing Run' clearly identifies the action and resource, but it is minimal and does not distinguish the tool from siblings beyond the name. It lacks context on what a testing run entails.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like check_approval_status or list_pending_approvals. The description does not mention prerequisites, context, or exclusions.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Local zero-trust permission gateway for AI agents. Enforces policy-based tool authorization, human approvals, scoped permissions, and cryptographically verifiable audit logs.
    4
    5
    Apache 2.0
  • F
    license
    -
    quality
    B
    maintenance
    Provides a secure MCP boundary for AI agents, intercepting and validating tool calls, redacting secrets, and requiring human approval for sensitive actions with a tamper-evident audit trail.

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.