jamjet-labs/jamjet

πŸ› οΈ Other Tools and Integrations
0 Views
0 Installs

πŸ¦€ 🐍 - Durable, agent-native AI runtime with native MCP client + server and A2A support. Rust core for performance, Python authoring for ergonomics. Features graph-based workflows, durable execution, and multi-agent coordination.

Quick Install

One-Click IDE Configuration
claude_desktop_config.json
{
  "mcpServers": {
    "jamjet-labs-jamjet": {
      "command": "npx",
      "args": [
        "-y",
        "jamjet-labs-jamjet"
      ]
    }
  }
}
Or

Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.

Documentation Overview

⚑ JamJet

The action-control plane for AI agents. One policy file. One audit trail. Across hooks, guardrails, MCP gateways, SDKs, and custom runtimes.

jamjet MCP server CI PyPI Maven Central crates.io License Discord

jamjet.dev Β· Quickstart Β· Docs Β· Examples Β· Blog Β· Discord

Open in GitHub Codespaces Open in Gitpod


Write the safety policy once. Run it everywhere your agents can act.

JamJet sits underneath your agent (Claude Code, OpenAI Agents SDK, MCP clients, LangChain, CrewAI, ADK, Spring AI, custom code) and enforces what prompts cannot:

  • πŸ›‘οΈ Block unsafe tool calls at runtime: database deletes, payments, file writes
  • βœ‹ Pause for human approval on risky actions, durably
  • πŸ’Έ Cap cost per agent, per run, per project
  • πŸ“’ Record an audit trail that survives a regulator's review
  • βͺ Replay or resume crashed runs from the last checkpoint

Keep your agent framework. Add JamJet where tool calls need control.

JamJet safety demo

See it in 60 seconds

pip install jamjet
jamjet demo unsafe-tool-call

No API key. No Docker. No cloud account. The model is mocked; the enforcement path is real. Three more demos run the same way:

jamjet demo approval        # pause-for-approval flow
jamjet demo budget-cap      # $0.05 cost cap
jamjet demo mcp-tool-policy # MCP-shaped policy (preview of JamJet Gateway)

Works alongside Claude Code Β· OpenAI Agents SDK Β· MCP clients Β· LangChain Β· CrewAI Β· ADK Β· Spring AI Β· LangChain4j.

On the JVM: one dependency

Spring AI and LangChain4j teams get the same layer without writing glue code. The Spring Boot starter auto-injects JamJet advisors into your ChatClient: every call becomes durable and audited, with no changes to your application code.

<dependency>
    <groupId>dev.jamjet</groupId>
    <artifactId>jamjet-spring-boot-starter</artifactId>
    <version>0.1.0</version>
</dependency>
spring.jamjet.runtime-url=http://localhost:7700
spring.jamjet.approval.enabled=true   # opt-in human-in-the-loop approval

Crash recovery, event sourcing, and a REST endpoint to approve or reject held actions. Falls back gracefully if the runtime is unreachable.

Prefer no sidecar at all? JamJet Java Runtime embeds durable execution directly in your JVM process: Java 21, no Docker, 8.9Γ— faster than calling out to a REST sidecar (benchmark and launch post). Works with Spring AI, LangChain4j, and Google ADK.

β†’ See a Spring Boot agent survive kill -9 mid-run in examples/loan-underwriter-agent: resumes from disk checkpoints, gates disbursement on human approval, emits a signed receipt bundle.

The same policy, everywhere

Every agent toolchain is inventing its own safety layer. JamJet gives you one policy file and one audit trail across all of them.

AdapterInstallHost
@jamjet/claude-code-hooknpm i -g @jamjet/claude-code-hookClaude Code PreToolUse hook
@jamjet/mcp-shimnpx -y @jamjet/mcp-shim ...Any MCP client (Claude Desktop, Cursor, …)
@jamjet/openai-guardrailnpm i @jamjet/openai-guardrailOpenAI Agents SDK tool guardrail (TS)
jamjet.integrations.openai_guardrailpip install jamjetOpenAI Agents SDK tool guardrail (Python)
jamjetpip install jamjetPython SDK + runtime
dev.jamjet:jamjet-spring-boot-starterMaven / GradleSpring AI ChatClient advisors
@jamjet/cloudnpm i @jamjet/cloudTypeScript SDK + shared engine
@jamjet/clinpm i -g @jamjet/cliUnified jamjet audit show / jamjet approve

All adapters load the same policy.yaml. All emit conformant audit JSONL to ~/.jamjet/audit/. Run jamjet audit show to tail every decision across every adapter in one chronological view.

JamJet does not replace the hook points these platforms give you. It makes them do more: Claude Code's PreToolUse hook gets a real policy engine, approval flow, and audit trail, and the same rules carry unchanged to OpenAI Agents SDK, MCP clients, Spring AI, and your own Python or TypeScript code.

One policy, every adapter

# ~/.jamjet/policy.yaml
version: 1
rules:
  - { match: "*delete*", action: block }
  - { match: "payments.*", action: require_approval }
  - { match: "shell.exec", action: block }

Drop this file in ~/.jamjet/. Every adapter listed above uses it automatically.

Prompts are not a security boundary. The runtime is.

β†’ Read When AI Deletes the Database for why this is a runtime architecture problem, not a model problem. β†’ See the deeper durability demo at jamjet.dev/demo for what happens when an agent crashes mid-tool-call.

Policy in your own code

Drop a policy beside your agent code. The runtime intercepts any matching tool call before it leaves the agent's process: blocked_tools are refused outright, require_approval_for pauses execution durably and waits for an out-of-band decision. Crashes don't lose the approval; execution resumes when it arrives.

# workflow.yaml
policy:
  blocked_tools:
    - "*delete*"
    - "payments.refund"
  require_approval_for:
    - "database.*"
    - "payment.transfer"
    - "user.suspend"

Python, with the hosted control plane:

import jamjet
jamjet.cloud.configure(api_key="jj_...", project="my-agent")
jamjet.cloud.policy("block", "*delete*")
jamjet.cloud.policy("require_approval", "database.*")
# Every OpenAI / Anthropic call in this process is now policy-gated.

β†’ Runnable approval workflow in examples/hitl-approval Β· Cloud Quickstart

Where JamJet sits

            Your Agent / Framework
   (LangChain Β· CrewAI Β· ADK Β· custom Β· MCP client)
                     β”‚
                     β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚            JamJet Safety Layer                β”‚
  β”‚   policy Β· approval Β· budget Β· audit Β· replay  β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                     β”‚
                     β–Ό
        Tools Β· MCP servers Β· APIs Β· DBs Β· Agents

Use JamJet when your agent can…

  • call MCP servers or arbitrary tools
  • write to a database
  • send emails or Slack messages
  • trigger payments or external API calls
  • access customer data or PII
  • run for minutes/hours and needs to survive crashes
  • spend real model budget at scale
  • delegate to other agents

What JamJet adds

Without JamJetWith JamJet
Agent crashes lose progressResume from the last checkpoint
Tool calls rely on scattered app logicRuntime policy blocks unsafe actions
Human approval is custom glueApproval is a durable workflow step
Costs are discovered after the billBudgets enforced per agent / per run
Audit evidence is stitched from logsAppend-only event log, signed export
Memory is framework-specificPair with Engram for portable memory (MCP Β· REST Β· Python Β· Java)
Frameworks stay siloedMCP + A2A connect tools and agents

A full runtime underneath

The safety layer runs on a durable, event-sourced execution engine. When you want more than enforcement, it's already there:

  • Durable execution. Event log, snapshots, crash recovery, deterministic replay. agent.run_durable(...) in examples/react-agent-durable.
  • Sessions and memory. Persistent Session threads across runs and restarts, with a governed Engram retrieve/record loop. examples/session-memory.
  • Multi-agent. Sequential, Parallel, coordinator Team, and Loop; each sub-agent runs as its own governed durable execution. examples/team-multi-agent. Declare whole fleets in YAML with cron schedules: examples/fleet.
  • Evaluation. Batch eval with LLM-judge scoring (examples/eval-harness) and trajectory regression diffs (examples/trajectory-eval).
  • Deploy. agent.deploy(runtime="local" | "self-host" | "cloud") ships the same compiled IR to any runtime. examples/deploy-an-agent.
  • Dev loop. jamjet create scaffolds a project; jamjet dev runs the whole local stack with one command.
  • Web Companion. A UI embedded in the runtime binary: graph view, timeline, state inspector, replay and fork controls.

Works with your stack, not a replacement

JamJet does not replace LangChain, LangGraph, CrewAI, Google ADK, Spring AI, or your custom agent code. Use those to build agent behavior. Use JamJet to control what happens at runtime.

You're usingKeep it forJamJet adds
LangChain Β· LangGraph Β· CrewAI Β· Google ADK Β· AutoGenAuthoring agent behaviorRuntime safety: policy, audit, replay, approvals
LangSmith Β· Arize Β· Weights & BiasesObservability and evaluationActive enforcement (block at runtime) + durable recovery
Temporal Β· Orkes Β· DBOSGeneral durable workflowsAgent-native primitives: policy on tool calls, MCP/A2A, memory
Google Β· AWS Β· Azure agent platformsCloud-native ecosystemsOpen-source, cloud-neutral governance that works on-prem

Want to build the official integration for your framework? Claim a slot: 8 slots open, the first 10 merged contributors get JamJet swag.

Examples

ExampleWhat it shows
01-block-unsafe-toolA destructive tool call blocked before execution
hitl-approvalHuman approval as a first-class workflow primitive
react-agent-durableA ReAct agent on the durable engine: event log, replay, park-on-429
team-multi-agentMulti-agent Teams, each sub-agent its own governed run
loan-underwriter-agentSpring Boot agent that survives kill -9 and gates on human approval
claims-processingInsurance pipeline: 4 specialist agents + HITL + audit
eval-harnessBatch evaluation with LLM judge scoring

β†’ All 33 examples

Engram

Engram is the JamJet ecosystem's memory layer for agents. Where JamJet provides durable execution (process can crash and resume), Engram provides durable memory (facts persist across runs and version cleanly via supersede()). Temporal knowledge graph, hybrid retrieval, conflict detection. Ships as a Rust crate (also bundled into the Rust runtime above), an MCP server (Docker Β· GHCR), a standalone Python library (github.com/jamjet-labs/engram, 71% on LongMemEval-S), a Python client for the MCP server, and a Spring AI ChatMemoryRepository. Comparison with Mem0/Zep β†’ java-ai-memory.dev.

Architecture

Stack diagram
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     Authoring Layer                       β”‚
β”‚    Python SDK  |  Java SDK  |  TypeScript SDK  |  YAML     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                 Compilation / Validation                   β”‚
β”‚           Graph IR  |  Schema  |  Policy lint             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚      Rust Runtime Core     β”‚      Protocol Layer          β”‚
β”‚  Scheduler  |  State SM    β”‚  MCP Client  |  MCP Server   β”‚
β”‚  Event log  |  Snapshots   β”‚  A2A Client  |  A2A Server   β”‚
β”‚  Workers    |  Timers      β”‚                              β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                    Enterprise Services                     β”‚
β”‚  Policy  |  Audit  |  PII Redaction  |  OAuth  |  mTLS     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                      Runtime Services                      β”‚
β”‚  Model Adapters  |  Tool Execution  |  Engram Memory      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                         Storage                           β”‚
β”‚           Postgres (production)  |  SQLite (local)        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

"Engram Memory" here is the in-process distribution bundled with the Rust runtime. Engram also ships standalone; see Engram.

Documentation

Full docs at jamjet.dev

Quickstart Β· Concepts Β· Python SDK Β· Java SDK Β· YAML Workflows Β· REST API Β· MCP Β· A2A Β· Eval Β· Enterprise Β· Observability Β· CLI Β· Deployment

Contributing

Contributions welcome. See CONTRIBUTING.md.

Looking for a starter task?

Community

GitHub Discussions Β· Issues Β· Discord

License

Apache 2.0. See LICENSE.


Hosted control plane available at app.jamjet.dev: traces, approval queue, audit retention, team projects. Optional. The runtime, all SDKs, and Engram are Apache-2.0 with no usage limits.

⭐ Star JamJet if you believe agents need a runtime safety layer

Built by Sunil Prakash Β· Β© 2026 JamJet Labs Β· jamjet.dev Β· Apache 2.0

Related MCP Servers

modelcontextprotocol/server-everythingVerified

πŸ“‡ 🏠 - MCP server that exercises all the features of the MCP protocol

πŸ› οΈ Other Tools and Integrations1 views
0xMassi/webclaw

πŸ¦€ 🏠 🍎 🐧 - Web content extraction for AI agents. 10 tools: scrape, crawl, map, batch, extract, summarize, diff, brand, search, research. TLS fingerprinting bypasses anti-bot without a browser. 67% fewer tokens than raw HTML. npx create-webclaw auto-configures Claude, Cursor, Windsurf, Codex, OpenCode.

πŸ› οΈ Other Tools and Integrations0 views
2niuhe/plantuml_web

🐍 🏠 ☁️ 🍎 πŸͺŸ 🐧 - A web-based PlantUML frontend with MCP server integration, enable plantuml image generation and plantuml syntax validation.

πŸ› οΈ Other Tools and Integrations0 views
2niuhe/qrcode_mcp

🐍 🏠 🍎 πŸͺŸ 🐧 - A QR code generation MCP server that converts any text (including Chinese characters) to QR codes with customizable colors and base64 encoding output.

πŸ› οΈ Other Tools and Integrations0 views

Engagement

Views
0
Installs
0
Upvotes
0

Views and upvotes are unique per visitor network (hashed IP). Installs count copy actions.

Status

Health: Not checked yet

We have not completed a health check for this listing yet.

No check timestamp yet.

Unclaimed listing (imported or pending owner verification). Claim it β†’
β˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Claim this listing

Promote this listing

Optional paid placement. Free listings stay free forever.

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.