Atlas / MCP servers / putervision / @putervision/behavior-mcp

@putervision/behavior-mcpSAFE

mcp/putervision/behavior-mcp

⚡ High-frequency (~60Hz) in-browser behavior tree execution engine for autonomous AI agents. Reactive priority interrupts, safety guardrails & deterministic action replay over MCP.

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
3 2r · 1w · 0d
Transport
stdio
License
MIT
Stars
12
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://www.npmjs.com/package/@putervision/behavior-mcp) [](./CHANGELOG.md) [](https://github.com/putervision/behavior-mcp/actions/workflows/ci.yml) [](https://nodejs.org) [](https://opensource.org/licenses/MIT)

High-Frequency (~60Hz) In-Browser Behavior Tree Tactical Runtime Engine for AI Agents

@putervision/behavior-mcp is a Model Context Protocol (MCP) server that executes deterministic behavior trees directly in browser runtimes at ~60Hz with reactive trigger preemption, frame recordings, SHA-256 Merkle audit chains, and a 5-layer safety guardrail stack.

🌐 Official Documentation: putervision.com • Interactive Web Docs

⚡ 15-Second Quick Start

# 1. Initialize runtime & seed default behavior trees in your workspace
npx @putervision/behavior-mcp init

# 2. Run system diagnostic and health checks
npx @putervision/behavior-mcp doctor

# 3. Inspect active executions, blackboard state, and reactive triggers
npx @putervision/behavior-mcp inspect

🛠️ 10 Core MCP Tools

Read from source at commit 9c25e8a701adOBSERVED · 2026-10-11
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add behavior-mcp -- npx -y @putervision/[email protected]
03

Exposed tools (3)

2 read · 1 write · 0 destructive.

ToolRiskDescription
echo_toolreadEcho tool
pre_experiment_checkpointwriteInitial checkpoint before autonomous run
test_toolread
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (5 observation(s))
Network
none-observed
Shell
declared (1 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (10)

MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/engine/dispatch-enforcement.test.ts:12
const secret = 'test-pentad-hmac-secret-12345';
LOWInventory / provenance · inv.hidden_file · CWE-1104
.prettierignore
.prettierignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.windsurfrules
.windsurfrules
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
tests/engine/dispatch-enforcement.test.ts:120
expect(() => new Function(script)).not.toThrow();
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/engine/browser/actions-game.ts:2
import { NodeStatus } from '../../schema/types.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/engine/browser/actions.ts:2
import { NodeStatus } from '../../schema/types.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/engine/browser/conditions.ts:2
import { AffordanceBitmask } from '../../schema/types.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/engine/browser/executor-bundle.ts:2
import { BehaviorTreeNode, NodeStatus, DispatchToken } from '../../schema/types.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/engine/browser/executor-bundle.ts:8
import { canonicalJsonStringify } from '../../utils/canonical-json.js';
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
better-sqlite3, @eslint/js, @types/better-sqlite3, @types/node, @vitest/coverage-v8, eslint, jsdom, @types/jsdom
Why it matters. 13 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha 9c25e8a701adfull audit observations/trust-audit/mcp-server/putervision__behavior-mcp.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-119c25e8a701adSAFEB89first audit
06

Questions

What is the @putervision/behavior-mcp MCP server?

⚡ High-frequency (~60Hz) in-browser behavior tree execution engine for autonomous AI agents. Reactive priority interrupts, safety guardrails & deterministic action replay over MCP.

What tools does @putervision/behavior-mcp expose?

3 in total: 2 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is @putervision/behavior-mcp safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does @putervision/behavior-mcp need?

It reads BEHAVIOR_REQUIRE_DISPATCH_TOKEN and PENTAD_HMAC_SECRET from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does @putervision/behavior-mcp run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as @putervision/behavior-mcp at 0.4.1.

How current is this page?

The grade is for one exact copy of the source (9c25e8a701ad), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement