# jamjet-labs/jamjet-policy [Health: Active]

**Category:** 🔒 Security  
**Repository:** https://github.com/jamjet-labs/jamjet-policy/tree/main/packages/mcp-shim  
**GitHub Stars:** 2  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/jamjet-labs-jamjet-policy

## Description
MCP stdio interceptor (@jamjet/mcp-shim) that applies one YAML policy file (block / requireapproval / audit / budget cap) to tools/call requests before they reach the real MCP server. The same policy also runs in Claude Code PreToolUse hooks (@jamjet/claude-code-hook), OpenAI Agents SDK guardrails (@jamjet/openai-guardrail), and JamJet's Python/TS SDKs — jamjet audit show tails every decision across every adapter from /.jamjet/audit/.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `uvx` (confidence: low):

```json
"mcpServers": {
  "jamjet-policy": {
    "command": "uvx",
    "args": ["jamjet-labs-jamjet-policy"]
  }
}
```

## Documentation

## What jamjet-labs/jamjet-policy MCP server does

The jamjet-labs/jamjet-policy MCP server provides the MCP adapter for JamJet Policy. It runs as a stdio interceptor between an MCP client and the real MCP server, examining `tools/call` requests before they are passed onward.

Rules are defined in one YAML policy file. The supported decision types described by the project are blocking a request, requiring approval, auditing a request, and applying a budget cap. This makes the MCP adapter suitable for controlling which agent actions can proceed and for recording the resulting decisions.

The MCP package is one of several JamJet Policy adapters. The same policy format and audit JSONL schema are also used by the Claude Code PreToolUse hook, the OpenAI Agents SDK guardrail, and JamJet’s Python and TypeScript SDKs.

## How it works

The interceptor receives MCP traffic over stdio and evaluates each applicable `tools/call` request against the configured YAML policy. A request may be denied, paused for approval, recorded, or constrained by the policy’s budget rules. Requests that pass the policy can then reach the underlying MCP server.

Policy decisions from the MCP adapter are part of a shared audit trail rather than an isolated MCP-only log. The repository states that `jamjet audit show` can tail decisions from every adapter, with audit data stored under `/.jamjet/audit/`. The command-line package also provides `approve` for the unified adapter workflow, although that package is separate from the MCP shim itself.

## Setup and configuration

Configuration is based on a single `policy.yaml` file. The excerpt does not provide the file schema, a complete example, or the exact command used to start `@jamjet/mcp-shim`, so those details should be taken from the repository’s package documentation before deployment.

The project organizes the MCP implementation in `packages/mcp-shim` and identifies the package as `@jamjet/mcp-shim`. The policy specification is shared across adapters and is documented by the repository’s `conformance/` material.

## Tools and capabilities

The jamjet-labs/jamjet-policy MCP server supports these policy outcomes for MCP tool calls:

- Block a request before it reaches the real MCP server.
- Require approval before allowing a request to proceed.
- Audit policy decisions using the shared JSONL audit format.
- Apply a budget cap to governed actions.
- Share policy behavior with the project’s other adapters.

## Limitations and notes

The provided material describes an interceptor for MCP `tools/call` requests, not a catalog of business-specific MCP tools. It also does not specify supported MCP clients, authentication settings, environment variables, licensing, or a standalone installation command.

The repository contains multiple packages. Installing or configuring `@jamjet/mcp-shim` should not be confused with installing the Claude Code hook, OpenAI guardrail, CLI, or the Python and TypeScript SDKs. Those components use the same policy concepts, but the excerpt does not establish that they are bundled into the MCP interceptor.

_Full upstream README: https://allmcps.com/mcp/jamjet-labs-jamjet-policy/readme_

